[598-51] Членский взнос в сумме заказа + чистка TS-ошибок Стола заказов #156
Reference in New Issue
Block a user
Delete Branch "fix/598-51-membership-fee-and-type-cleanup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что сделано
Членский взнос в сумме заказа. Заказчик на карточке предложения и на странице деталей видел себестоимость без взноса — вместо
1300 ₽(как в каталоге) показывалось1000 ₽. Причина: на контрактеtotal_costиmembership_fee— раздельные поля (сам контракт складывает их только как одноразовую локальную переменную для проверки баланса, никуда не сохраняя сумму). Backend теперь зеркалитmembership_feeиз блокчейна через delta-mapper и отдаёт готовое вычисляемое полеtotal_cost_with_feeв DTO заказа — фронту не нужно ничего складывать самому.MyOrders,OrdererOrderDetail,OrdererConsolidated,OrderCard) — видит цену с взносом.OffererIncomingOrders,SupplyPartyCard) — видит свою себестоимость + отдельную строку-подсказку со взносом пайщика.Строгая типизация sync-пути. При добавлении
membership_feeпочинил ровно то место, где раньше терялись on-chain-поля при синке (persistDomainв repository adapter принималQueryDeepPartialEntityбез проверки компилятором) — теперь именованныйPick-тип форсирует добавлять новые on-chain-поля в explicit update.Корневая причина ~35 ошибок компиляции desktop.
@Field(() => ID)в 5 marketplace DTO (apl-reception, inventory, outgoing-payment, shipment, stock) давал на фронте типunknownвместоstring— у Zeus-кодогена нет scalar-маппинга дляID. Заменил на@Field(() => String), как уже сделано в 42+ других полях кодовой базы.Реальный баг, не просто типы.
StockRestockPanel.vue(докладка у стойки выдачи) звалcreateStockProposalнапрямую, пропуская обязательный этап — оператор должен сначала получитьorder_hash+ акт черезgetStockIssuancePayloadsи подписать его локально. В рантайме это падало бы на валидации бэка. Реализовал двухфазный флоу по образцуIssueActOpenDialog.vue.Тесты после PR #152 (whitelist → реестр поставщиков). 7 файлов не компилировались — конструкторы сервисов набрали новые обязательные параметры, моки не обновили. Добавил новый
marketplace-supplier-registry.service.spec.tsвзамен удалённого теста несуществующегоMarketplaceWhitelistService.Плюс UI-полировка стола поставщика (текст онбординга, реальные контакты кооператива вместо "обратитесь в поддержку", ФИО/наименование в реестре поставщиков и на пунктах выдачи вместо голого username, разные иконки в меню администратора) и точечные фиксы (
YANDEX_MAPS_API_KEYотсутствовал в 3 из 4 мест сборки конфига, мёртвая ссылка на удалённыйboot/map.ts, опечаткаcopyFullHash→copyText).Проверено
tsc --noEmitвcontroller— 0 ошибокvue-tsc --noEmitвdesktop— 0 ошибокgenerate-schema→generate-client→sdk build— пройден дважды (после каждого schema-affecting изменения)Задача: 598-51