From d21f9879c31b73635c44a5fdb483e1b91e5d2cad Mon Sep 17 00:00:00 2001 From: pengm <674192343@qq.com> Date: Tue, 10 Feb 2026 09:23:01 +0800 Subject: [PATCH] 1.采购发票填写把报损数量后,发票金额会变成负数 --- src/components/Common/CommonNewBillEvent.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ src/components/Common/CommonTable/index.js | 2 +- 2 files changed, 57 insertions(+), 7 deletions(-) diff --git a/src/components/Common/CommonNewBillEvent.js b/src/components/Common/CommonNewBillEvent.js index 7b2db58..f998022 100644 --- a/src/components/Common/CommonNewBillEvent.js +++ b/src/components/Common/CommonNewBillEvent.js @@ -3330,12 +3330,62 @@ export default ChildComponent => { // else { // this.props.getServiceError(returnData); // } - } else if (sModelsType === "sales/salesCheck" && sFieldName === "dLossMoney" && name === "slave") { - if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) { - const dPprice = this.props.getFloatNum("dProductPrice"); /* 获取系统设定小数位 */ - tableDataRow.dProductMoney = commonUtils.convertFixNum(tableDataRow.dSrcMoney - tableDataRow.dLossMoney, dPprice); - } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) { - tableDataRow.dProductMoney = tableDataRow.dSrcMoney; + } else if (sModelsType === 'sales/salesCheck' && sFieldName === 'dLossMoney' && name === 'slave') { + const dPmoney = this.props.getFloatNum('dProductMoney'); + const { dNetPrice } = app.decimals; + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + const dTaxRate = commonUtils.convertToNum(tableDataRow.dTaxRate); /* 税率 */ + const dProductQty = commonUtils.convertToNum(tableDataRow.dProductQty); /* 数量 */ + if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) { + const dProductForeignMoney = commonUtils.convertFixNum(tableDataRow.dSrcNoCheckMoney - tableDataRow.dLossMoney, dPmoney); + const dProductMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductForeignMoney * dCurrencyRate : 0, dPmoney); /* 本位币金额 */ + tableDataRow.dProductForeignMoney = dProductForeignMoney; + tableDataRow.dProductMoney = dProductMoney; + const dProductNoTaxMoney = commonUtils.convertFixNum(dProductMoney / (1 + (dTaxRate / 100)), dPmoney); /* 不含税金额 */ + const dProductNoTaxPrice = commonUtils.convertFixNum(dProductQty !== 0 ? dProductNoTaxMoney / dProductQty : 0, dPmoney); /* 不含税价 */ + const dProductTaxMoney = commonUtils.convertFixNum(dProductMoney - dProductNoTaxMoney, dPmoney); /* 税额 */ + const dProductTaxForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductTaxMoney / dCurrencyRate : 0, dPmoney); /* 外币税额 */ + tableDataRow.dProductNoTaxMoney = dProductNoTaxMoney; /* 不含税金额 */ + tableDataRow.dProductNoTaxPrice = dProductNoTaxPrice; /* 不含税价 */ + tableDataRow.dProductTaxMoney = dProductTaxMoney; /* 税额 */ + tableDataRow.dProductTaxForeignMoney = dProductTaxForeignMoney; /* 外币税额 */ + /* 报损金额改变后 反算单价 */ + tableDataRow.dProductForeignPrice = tableDataRow.dProductQty !==0 ? commonUtils.convertFixNum( dProductForeignMoney/tableDataRow.dProductQty, dNetPrice) : 0; /* 外币税额 */ + tableDataRow.dProductPrice = tableDataRow.dProductQty !==0 ? commonUtils.convertFixNum( dProductMoney/tableDataRow.dProductQty, dNetPrice) : 0; /* 外币税额 */ + } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) { + const dProductForeignMoney = commonUtils.isNull(tableDataRow.dSrcNoCheckMoney, 0); + const dProductMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductForeignMoney * dCurrencyRate : 0, dPmoney); /* 本位币金额 */ + tableDataRow.dProductForeignMoney = dProductForeignMoney; + tableDataRow.dProductMoney = dProductMoney; + tableDataRow.dLossMoney = 0; + const dProductNoTaxMoney = commonUtils.convertFixNum(dProductMoney / (1 + (dTaxRate / 100)), dPmoney); /* 不含税金额 */ + const dProductNoTaxPrice = commonUtils.convertFixNum(dProductQty !== 0 ? dProductNoTaxMoney / dProductQty : 0, dPmoney); /* 不含税价 */ + const dProductTaxMoney = commonUtils.convertFixNum(dProductMoney - dProductNoTaxMoney, dPmoney); /* 税额 */ + const dProductTaxForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductTaxMoney / dCurrencyRate : 0, dPmoney); /* 外币税额 */ + tableDataRow.dProductNoTaxMoney = dProductNoTaxMoney; /* 不含税金额 */ + tableDataRow.dProductNoTaxPrice = dProductNoTaxPrice; /* 不含税价 */ + tableDataRow.dProductTaxMoney = dProductTaxMoney; /* 税额 */ + tableDataRow.dProductTaxForeignMoney = dProductTaxForeignMoney; /* 外币税额 */ + } + } else if (sModelsType && (sModelsType === 'purchase/purchasecheck' || sModelsType.includes('outside/outsideChecking') ) && sFieldName === 'dLossMoney' && name === 'slave') { + const dPmoney = this.props.getFloatNum('dMaterialsMoney'); + const { dNetPrice } = app.decimals; + const dTaxRate = commonUtils.convertToNum(tableDataRow.dTaxRate); /* 税率 */ + const type = 'Materials'; + const dProductQty = commonUtils.convertToNum(tableDataRow[`d${type}Qty`]); /* 数量 */ + if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) { + const dMoney = commonUtils.convertFixNum(tableDataRow.dSrcNoCheckMoney - tableDataRow.dLossMoney, dPmoney); + tableDataRow[`d${type}Money`] = dMoney; + const dProductNoTaxMoney = commonUtils.convertFixNum(dMoney / (1 + (dTaxRate / 100)), dPmoney); /* 不含税金额 */ + const dProductNoTaxPrice = commonUtils.convertFixNum(dProductQty !== 0 ? dProductNoTaxMoney / dProductQty : 0, dPmoney); /* 不含税价 */ + const dProductTaxMoney = commonUtils.convertFixNum(dMoney - dProductNoTaxMoney, dPmoney); /* 税额 */ + tableDataRow[`d${type}NoTaxMoney`] = dProductNoTaxMoney; /* 不含税金额 */ + tableDataRow[`d${type}NoTaxPrice`] = dProductNoTaxPrice; /* 不含税价 */ + tableDataRow[`d${type}TaxMoney`] = dProductTaxMoney; /* 税额 */ + /* 报损金额改变后 反算单价 */ + tableDataRow[`d${type}Price`] = dProductQty !==0 ? commonUtils.convertFixNum( dMoney/dProductQty, dNetPrice) : 0; /* 外币税额 */ + } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) { + tableDataRow.dMaterialsMoney = commonUtils.isNull(tableDataRow.dSrcNoCheckMoney, 0); tableDataRow.dLossMoney = 0; } } diff --git a/src/components/Common/CommonTable/index.js b/src/components/Common/CommonTable/index.js index 599d448..5a5ea0e 100644 --- a/src/components/Common/CommonTable/index.js +++ b/src/components/Common/CommonTable/index.js @@ -4883,7 +4883,7 @@ class CommonTableRc extends React.Component { } tableDataTotal.bSum = true; tableDataTotal.key = '0000'; - console.log('tableDat212222222aTotal', tableDataTotal); + if (this.mounted) { // 计算选中的行数,添加防御性检查 -- libgit2 0.22.2