From 89ab9b7b83d11c379c04e50b8d959a65a3f71a45 Mon Sep 17 00:00:00 2001 From: Akira Date: Mon, 16 Mar 2026 09:57:43 +0900 Subject: [PATCH] =?UTF-8?q?=E3=81=93=E3=82=8C=E3=81=A7:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 利用可能 = available_stock = 在庫 - 全計画の引当合計(マイナスならマイナス表示) 不足 = available_stock がマイナスのとき、その絶対値を赤字表示 どの計画画面でも同じ「利用可能」の値が表示される 例(仁井田米有機 55袋、計画A 47袋 + 計画B 5袋): 利用可能: 3.00袋(どちらの計画でも同じ) 不足: 表示なし(まだ余裕あり) --- .../src/app/fertilizer/_components/FertilizerEditPage.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx b/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx index 4214935..69dfdf3 100644 --- a/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx +++ b/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx @@ -369,12 +369,12 @@ export default function FertilizerEditPage({ planId }: { planId?: number }) { const getPlanAvailableStock = (fertilizer: Fertilizer) => { const stock = getStockInfo(fertilizer); if (!stock) return null; - return getNumericValue(stock.available_stock) + (initialPlanTotals[fertilizer.id] ?? 0); + return getNumericValue(stock.available_stock); }; const getPlanShortage = (fertilizer: Fertilizer) => { const available = getPlanAvailableStock(fertilizer); if (available === null) return 0; - return Math.max(colTotal(fertilizer.id) - available, 0); + return available < 0 ? Math.abs(available) : 0; }; // ─── 保存(adjusted 優先、なければ calc 値を使用)