From 839fcaf9fc7f0a26f5b0135d32129e8b2a17d283 Mon Sep 17 00:00:00 2001 From: nns Date: Thu, 8 Oct 2026 02:10:11 +0500 Subject: [PATCH] =?UTF-8?q?fix(inventory):=20=D0=BF=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B8=D0=BD=D0=B2=D0=B5=D0=BD=D1=82=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B1=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B5=20=D0=BD=D0=B5=20=D0=BE=D0=B1=D0=BD=D1=83=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=BD=D0=B5=D0=BF=D0=BE=D1=81=D1=87=D0=B8?= =?UTF-8?q?=D1=82=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Авто-подтянутые строки создаются как ActualQty=BookQty (Diff=0) вместо ActualQty=0 (Diff=-stock). Проведение не трогает непересчитанные позиции (в т.ч. вне выбранной группы); истинный ноль вводится явным ActualQty=0. Co-Authored-By: Claude Opus 5.5 --- .../Controllers/Inventory/InventoriesController.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/food-market.api/Controllers/Inventory/InventoriesController.cs b/src/food-market.api/Controllers/Inventory/InventoriesController.cs index 424ef74..297039c 100644 --- a/src/food-market.api/Controllers/Inventory/InventoriesController.cs +++ b/src/food-market.api/Controllers/Inventory/InventoriesController.cs @@ -268,7 +268,13 @@ public async Task> Create([FromBody] InventoryInput i Notes = input.Notes, }; - // Если строки не указаны — подтягиваем все товары с ненулевым stock на складе. + // Если строки не указаны — подтягиваем товары склада как «ещё не + // посчитанные»: ActualQty = BookQty, Diff = 0. Так проведение НЕ трогает + // непосчитанные позиции (Diff=0 пропускается). Раньше здесь ставилось + // ActualQty=0 → Diff=-stock, и проведение ОБНУЛЯЛО всё, что кладовщик не + // пересчитал (в т.ч. всё вне выбранной группы). Кладовщик меняет ActualQty + // только у реально пересчитанных товаров (через add-line / правку строки); + // истинный ноль на складе вводится явным ActualQty=0. if (input.Lines is null || input.Lines.Count == 0) { var stocks = await (from s in _db.Stocks.AsNoTracking() @@ -283,8 +289,8 @@ public async Task> Create([FromBody] InventoryInput i { ProductId = st.ProductId, BookQty = st.Quantity, - ActualQty = 0, - Diff = -st.Quantity, + ActualQty = st.Quantity, + Diff = 0, UnitCost = st.Cost, SortOrder = order++, });