From abb6d7f841c9a0fcd4ca2e1f9b5caaf849b40482 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 24 四月 2026 11:07:08 +0800
Subject: [PATCH] Merge branch 'dev_河南_鹤壁天沐玻璃厂' of http://114.132.189.42:9002/r/product-inventory-management into dev_河南_鹤壁天沐玻璃厂
---
src/views/procurementManagement/paymentLedger/index.vue | 33 ++++++++++++++++++++++++++++-----
1 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/src/views/procurementManagement/paymentLedger/index.vue b/src/views/procurementManagement/paymentLedger/index.vue
index f86e188..e707d08 100644
--- a/src/views/procurementManagement/paymentLedger/index.vue
+++ b/src/views/procurementManagement/paymentLedger/index.vue
@@ -195,6 +195,14 @@
const n = Number(v);
return Number.isFinite(n) ? n : 0;
};
+ const toTime = (v) => {
+ const t = new Date(v).getTime();
+ return Number.isFinite(t) ? t : -Infinity;
+ };
+ const toId = (v) => {
+ const n = Number(v);
+ return Number.isFinite(n) ? n : -Infinity;
+ };
// 浠ュ綋鍓嶅彸渚ц〃鏍煎睍绀虹殑鏁版嵁涓哄噯锛堝垎椤� slice 鍚庣殑鏁版嵁锛�
const rows = originalTableDataSon.value || [];
@@ -214,6 +222,25 @@
);
const paymentTotal = rows.reduce((sum, r) => sum + toNum(r?.paymentAmount), 0);
+ const latestRowByContract = new Map();
+ for (const r of rows) {
+ const contractNo = r?.purchaseContractNumber;
+ if (!contractNo) continue;
+ const existed = latestRowByContract.get(contractNo);
+ const currentTime = toTime(r?.paymentDate);
+ const existedTime = toTime(existed?.paymentDate);
+ const shouldReplace =
+ !existed ||
+ currentTime > existedTime ||
+ (currentTime === existedTime && toId(r?.id) > toId(existed?.id));
+ if (shouldReplace) {
+ latestRowByContract.set(contractNo, r);
+ }
+ }
+ const payableTotal = Array.from(latestRowByContract.values()).reduce(
+ (sum, r) => sum + toNum(r?.payableAmount),
+ 0
+ );
const columns = param?.columns || [];
const summary = columns.map((col, idx) => {
@@ -221,13 +248,9 @@
const prop = col?.property ?? col?.prop;
if (prop === "invoiceAmount") return invoiceTotal.toFixed(2);
if (prop === "paymentAmount") return paymentTotal.toFixed(2);
+ if (prop === "payableAmount") return payableTotal.toFixed(2);
return "";
});
-
- if (summary.length > 0) {
- summary[summary.length - 1] =
- rows.length > 0 ? toNum(rows[rows.length - 1]?.payableAmount).toFixed(2) : "0.00";
- }
return summary;
};
--
Gitblit v1.9.3