|
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
РЕЕСТР ТОВАРОВ (глобальный системный шаблон карточек):
- Домен ProductRegistry{Group,Card,Barcode} (Entity, без OrganizationId),
миграция Phase47; штрихкод уникален в реестре (ключ новизны).
- Наполнение «из МойСклад заново» (команда суперадмина, повторяемая): читает
entity/product (архивные/модификации/комплекты/услуги — считает и пропускает),
группы из productFolder (путь), штрихкоды всех типов; buyPrice→закупочная+
себестоимость, salePrices→продажная; пересоздаёт только MoySklad-карточки,
Shop-карточки не трогает. МойСклад только чтение (пагинация 1000, 429-бэкофф).
- Фоновое пополнение из каталогов магазинов-участников (recurring, флаг в
PlatformSettings, по умолчанию ВЫКЛ): новые штрихкоды → карточки; фильтр
мусора (неверная контр. цифра EAN-13/8, пустое имя); существующие не трогает.
- Копия реестра в каталог нового магазина при регистрации — фоновым заданием
(Hangfire) сразу после signup; баннер «Каталог загружается…», повторно не
копирует. Остатков нет (0).
- Флаг организации ContributesToRegistry (демо/автотест — ВЫКЛ миграцией).
- SuperAdmin раздел «Реестр товаров»: поиск/правка/удаление карточек, тоггл
фонового пополнения (причина+аудит), кнопка наполнения из МойСклад, флаги
участия орг. Только SuperAdmin.
СХЕМА ЦЕН (решение владельца 12.10): три цены в карточке.
- Закупочная: ReferencePrice→PurchasePrice (миграция Phase48 RENAME COLUMN,
данные сохранены). Каждая проведённая приёмка пишет закупочную = цена строки;
unpost возвращает из предыдущей проведённой приёмки. API отдаёт purchasePrice
и временно referencePrice (алиас для iOS).
- Себестоимость (Cost): только чтение, скользящее среднее (как было).
- Продажная (бывш. «розничная»): меняется приёмкой только при ручной правке в
строке. Системный тип цены «Розничная цена»→«Продажная цена» (миграция+сидер),
подписи в UI переименованы.
- Убраны: автозаполнение эталонной при первой приёмке, ReferencePriceRefreshJob
(30-дневная перезапись), понятие «эталонная» в UI.
Тесты: SupplyPricingSchemeTests (приёмка без правок → продажная не меняется,
закупочная = цена строки, себестоимость средняя; правка продажной в строке;
unpost → закупочная вернулась) — 3/3.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| Support | ||
| AdvancedModeFilterTests.cs | ||
| ApiReferenceDocsJobTests.cs | ||
| BarcodeScanTests.cs | ||
| BusinessTimeTests.cs | ||
| CatalogDtosSmokeTests.cs | ||
| ClaudeCliInvoiceExtractorParseTests.cs | ||
| ClaudeCliInvoicePhotosParseTests.cs | ||
| DomainFullPropertyTouchTests.cs | ||
| DomainPocoSmokeTests.cs | ||
| EanTests.cs | ||
| EmailTemplateRendererTests.cs | ||
| FiscalMockProviderTests.cs | ||
| food-market.UnitTests.csproj | ||
| HousekeepingJobsTests.cs | ||
| InternalBarcodeTests.cs | ||
| InventoryResultTests.cs | ||
| InvoiceMatcherTests.cs | ||
| InvoicePhotoRetentionTests.cs | ||
| MassaKScaleTests.cs | ||
| MediatrHandlerTests.cs | ||
| MoneyMathTests.cs | ||
| MovingAverageCostTests.cs | ||
| NegativeStockNotifyQuietHoursTests.cs | ||
| NoopNegativeStockAlertService.cs | ||
| PagedRequestTests.cs | ||
| PhoneNormalizationTests.cs | ||
| PinHasherTests.cs | ||
| PosContractsTests.cs | ||
| PosCoreTests.cs | ||
| RequiredGuidTests.cs | ||
| RetailPaymentValidatorTests.cs | ||
| RolePermissionsTests.cs | ||
| ScaleAutodiscoveryTests.cs | ||
| ScaleMonitorTests.cs | ||
| StockServicePropertyTests.cs | ||
| StockServiceTests.cs | ||
| TableReaderTests.cs | ||
| TenantQueryFilterTests.cs | ||
| UnitShortTests.cs | ||
| ValidatorTests.cs | ||
| WebkassaProviderTests.cs | ||
| WeightedBarcodeTests.cs | ||