From 3d4983ffad3c7adf8a89af10ddc36361b8e55ec1 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 22 四月 2026 10:01:29 +0800
Subject: [PATCH] fix: 本次开票金额需要重新计算
---
src/views/salesManagement/invoiceRegistration/index.vue | 67 +++++++++++++++++++++++----------
1 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index 2f6e60c..8990f31 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -741,51 +741,78 @@
};
//鏈寮�绁ㄥけ鐒︽搷浣�
+const getInvoiceCalcUnitPrice = (row) => {
+ const baseNoInvoiceNum = parseFloat(
+ row.tempNoInvoiceNum ?? row.originalNoInvoiceNum ?? row.noInvoiceNum ?? 0
+ );
+ const baseNoInvoiceAmount = parseFloat(
+ row.tempnoInvoiceAmount ?? row.noInvoiceAmount ?? row.taxInclusiveTotalPrice ?? 0
+ );
+ if (!baseNoInvoiceNum) {
+ return 0;
+ }
+ return baseNoInvoiceAmount / baseNoInvoiceNum;
+};
+
const invoiceNumBlur = (row) => {
if (!row.currentInvoiceNum) {
row.currentInvoiceNum = 0;
}
- if (row.currentInvoiceNum > row.tempNoInvoiceNum) {
+ const baseNoInvoiceNum = parseFloat(
+ row.tempNoInvoiceNum ?? row.originalNoInvoiceNum ?? row.noInvoiceNum ?? 0
+ );
+ const baseNoInvoiceAmount = parseFloat(
+ row.tempnoInvoiceAmount ?? row.noInvoiceAmount ?? row.taxInclusiveTotalPrice ?? 0
+ );
+ const unitPrice = getInvoiceCalcUnitPrice(row);
+ if (!unitPrice) {
+ row.currentInvoiceAmount = 0;
+ row.noInvoiceNum = Number(baseNoInvoiceNum).toFixed(2);
+ row.noInvoiceAmount = Number(baseNoInvoiceAmount).toFixed(2);
+ return;
+ }
+ if (row.currentInvoiceNum > baseNoInvoiceNum) {
proxy.$modal.msgWarning("鏈寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
row.currentInvoiceNum = 0;
}
// 璁$畻鏈寮�绁ㄩ噾棰�
- row.currentInvoiceAmount = (
- row.currentInvoiceNum * row.taxInclusiveUnitPrice
- ).toFixed(2);
+ row.currentInvoiceAmount = (row.currentInvoiceNum * unitPrice).toFixed(2);
// 璁$畻鏈紑绁ㄦ暟
- row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
- 2
- );
+ row.noInvoiceNum = (baseNoInvoiceNum - row.currentInvoiceNum).toFixed(2);
// 璁$畻鏈紑绁ㄩ噾棰�
- row.noInvoiceAmount = (
- row.tempnoInvoiceAmount - row.currentInvoiceAmount
- ).toFixed(2);
+ row.noInvoiceAmount = (row.noInvoiceNum * unitPrice).toFixed(2);
};
// 鏈寮�绁ㄩ噾棰濆け鐒︽搷浣�
const invoiceAmountBlur = (row) => {
if (!row.currentInvoiceAmount) {
row.currentInvoiceAmount = 0;
}
+ const baseNoInvoiceNum = parseFloat(
+ row.tempNoInvoiceNum ?? row.originalNoInvoiceNum ?? row.noInvoiceNum ?? 0
+ );
+ const baseNoInvoiceAmount = parseFloat(
+ row.tempnoInvoiceAmount ?? row.noInvoiceAmount ?? row.taxInclusiveTotalPrice ?? 0
+ );
+ const unitPrice = getInvoiceCalcUnitPrice(row);
+ if (!unitPrice) {
+ row.currentInvoiceNum = 0;
+ row.noInvoiceNum = Number(baseNoInvoiceNum).toFixed(2);
+ row.noInvoiceAmount = Number(baseNoInvoiceAmount).toFixed(2);
+ return;
+ }
// 璁$畻鏄惁瓒呰繃寮�绁ㄦ�婚噾棰�
- if (row.currentInvoiceAmount > row.tempnoInvoiceAmount) {
+ if (row.currentInvoiceAmount > baseNoInvoiceAmount) {
proxy.$modal.msgWarning("鏈寮�绁ㄩ噾棰濅笉寰楀ぇ浜庢湭寮�绁ㄩ噾棰�");
row.currentInvoiceAmount = 0;
}
// 璁$畻鏈寮�绁ㄦ暟
- row.currentInvoiceNum = (
- row.currentInvoiceAmount / row.taxInclusiveUnitPrice
- ).toFixed(2);
+ row.currentInvoiceNum = (row.currentInvoiceAmount / unitPrice).toFixed(2);
console.log("row.currentInvoiceNum ", row.currentInvoiceNum);
console.log(" row.originalNoInvoiceNum ", row.originalNoInvoiceNum);
// 璁$畻鏈紑绁ㄦ暟
- row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
- 2
- );
+ row.noInvoiceNum = (baseNoInvoiceNum - row.currentInvoiceNum).toFixed(2);
// 璁$畻鏈紑绁ㄩ噾棰�
- row.noInvoiceAmount = (
- row.tempnoInvoiceAmount - row.currentInvoiceAmount
- ).toFixed(2);
+ row.noInvoiceAmount = (row.noInvoiceNum * unitPrice).toFixed(2);
};
onMounted(() => {
--
Gitblit v1.9.3