From e6080ac8ad345f8cd7378c7cfa5f0f70f80e3926 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期一, 18 五月 2026 16:59:58 +0800
Subject: [PATCH] 增加保养部件和附件
---
src/pages/inventoryManagement/scanOut/scanOut.logic.ts | 51 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 42 insertions(+), 9 deletions(-)
diff --git a/src/pages/inventoryManagement/scanOut/scanOut.logic.ts b/src/pages/inventoryManagement/scanOut/scanOut.logic.ts
index 05213fa..bf65c46 100644
--- a/src/pages/inventoryManagement/scanOut/scanOut.logic.ts
+++ b/src/pages/inventoryManagement/scanOut/scanOut.logic.ts
@@ -13,16 +13,23 @@
}
export function parseRemainingQuantity(row: AnyRow): number | null {
- const remRaw =
- row?.remainingQuantity ??
- row?.remaining_quantity ??
- row?.remainQuantity ??
- row?.remain_quantity;
+ const remRaw = row?.remainingQuantity;
return parseOptionalNumber(remRaw);
}
-export function defaultStockedQuantityFromRow(row: AnyRow): string {
- const rem = parseRemainingQuantity(row);
+export function parseRemainingShippedQuantity(row: AnyRow): number | null {
+ const remRaw = row?.remainingShippedQuantity;
+ return parseOptionalNumber(remRaw);
+}
+
+export function defaultStockedQuantityFromRow(
+ row: AnyRow,
+ scene: "inbound" | "outbound" = "inbound"
+): string {
+ const rem =
+ scene === "outbound"
+ ? parseRemainingShippedQuantity(row) ?? parseRemainingQuantity(row)
+ : parseRemainingQuantity(row) ?? parseRemainingShippedQuantity(row);
if (rem !== null) return String(Math.max(0, rem));
const avail = parseOptionalNumber(row?.availableQuality ?? row?.availableQuantity);
@@ -65,9 +72,35 @@
export function buildSalesLedgerProductList(recordList: AnyRow[]): AnyRow[] {
return recordList.map((item: AnyRow) => {
- const n = parseOptionalNumber(item.stockedQuantity);
+ const n = parseOptionalNumber(item.operateQuantity);
const qty = n !== null && !Number.isNaN(n) ? Math.max(0, n) : 0;
- const { stockedQuantity: _sq, ...rest } = item;
+ const { operateQuantity: _oq, ...rest } = item;
+ return { ...rest, stockedQuantity: qty };
+ });
+}
+
+/**
+ * 鎵爜鏁村崟鍙戣揣锛氭瘡琛屽緟鍙戞暟閲忕敱鍙拌处瀛楁绠楀嚭锛屼笌鐢ㄦ埛杈撳叆鏃犲叧锛堜笌 defaultStockedQuantityFromRow 鍑哄簱鍙e緞涓�鑷达級銆�
+ */
+export function resolveScanShipLineQuantity(row: AnyRow): number {
+ const rem =
+ parseRemainingShippedQuantity(row) ?? parseRemainingQuantity(row);
+ if (rem !== null) return Math.max(0, rem);
+
+ const avail = parseOptionalNumber(row?.availableQuality ?? row?.availableQuantity);
+ if (avail !== null) return Math.max(0, avail);
+
+ const qty = parseOptionalNumber(row?.quantity);
+ const shipped = parseOptionalNumber(row?.shippedQuantity) ?? 0;
+ if (qty !== null) return Math.max(0, qty - shipped);
+
+ return 0;
+}
+
+export function buildScanShipProductList(recordList: AnyRow[]): AnyRow[] {
+ return recordList.map((item: AnyRow) => {
+ const qty = resolveScanShipLineQuantity(item);
+ const { operateQuantity: _oq, ...rest } = item;
return { ...rest, stockedQuantity: qty };
});
}
--
Gitblit v1.9.3