gongchunyi
8 小时以前 b0780c607bd25d672a25d68ad04af18417f03772
fix: 供应商往来付款记录的合同金额去重
已修改1个文件
52 ■■■■ 文件已修改
src/views/procurementManagement/paymentLedger/index.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/paymentLedger/index.vue
@@ -191,23 +191,45 @@
};
// 子表合计方法
const summarizeMainTable1 = (param) => {
  let summarizeTable = proxy.summarizeTable(
    param,
    ["invoiceAmount", "paymentAmount"],
    {
      ticketsNum: { noDecimal: true }, // 不保留小数
      futureTickets: { noDecimal: true }, // 不保留小数
  const toNum = (v) => {
    const n = Number(v);
    return Number.isFinite(n) ? n : 0;
  };
  // 以当前右侧表格展示的数据为准(分页 slice 后的数据)
  const rows = originalTableDataSon.value || [];
  // 合同金额:按采购合同号去重后合计
  const invoiceByContract = new Map();
  for (const r of rows) {
    const contractNo = r?.purchaseContractNumber;
    if (!contractNo) continue;
    if (!invoiceByContract.has(contractNo)) {
      invoiceByContract.set(contractNo, toNum(r?.invoiceAmount));
    }
  );
  if (originalTableDataSon.value.length > 0) {
    summarizeTable[summarizeTable.length - 1] =
      originalTableDataSon.value[
        originalTableDataSon.value.length - 1
      ].payableAmount.toFixed(2);
  } else {
    summarizeTable[summarizeTable.length - 1] = 0.0;
  }
  return summarizeTable;
  const invoiceTotal = Array.from(invoiceByContract.values()).reduce(
    (sum, v) => sum + v,
    0
  );
  const paymentTotal = rows.reduce((sum, r) => sum + toNum(r?.paymentAmount), 0);
  const columns = param?.columns || [];
  const summary = columns.map((col, idx) => {
    if (idx === 0) return "合计";
    const prop = col?.property ?? col?.prop;
    if (prop === "invoiceAmount") return invoiceTotal.toFixed(2);
    if (prop === "paymentAmount") return paymentTotal.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;
};
/** 搜索按钮操作 */
const handleQuery = () => {