From a6c534906fdc9776bd30c053a3edd97d041db9c5 Mon Sep 17 00:00:00 2001
From: zhang_li
Date: Tue, 29 Apr 2025 09:05:07 +0800
Subject: [PATCH 1/2] =?UTF-8?q?YT-2563WMS=E9=94=80=E5=94=AE=E5=BC=80?=
=?UTF-8?q?=E7=A5=A8=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91=E5=8F=98=E6=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/wms/customerSaleInvoiceMain/index.ts | 7 +-
.../CustomerSaleInvoiceBasicForm.vue | 95 ++++++++++---------
.../customerSaleInvoiceRequestMain.data.ts | 27 +++++-
3 files changed, 77 insertions(+), 52 deletions(-)
diff --git a/src/api/wms/customerSaleInvoiceMain/index.ts b/src/api/wms/customerSaleInvoiceMain/index.ts
index 7bad6f0c0..abb58ebf0 100644
--- a/src/api/wms/customerSaleInvoiceMain/index.ts
+++ b/src/api/wms/customerSaleInvoiceMain/index.ts
@@ -98,4 +98,9 @@ export const getCustomerList = async () => {
// 从客户对账单中获取客户代码 -- 销售记录
export const getRecordCustomerList = async () => {
return await request.get({ url: `/wms/customer-sale-invoice-record-main/getCustomerList`})
-}
\ No newline at end of file
+}
+
+// 选择税率获取模具税额和模具含税金额
+export const getAllocationAmount = async (customerNumber: string, rate: any) => {
+ return await request.get({ url: `/wms/customer-tool-apport-statement-detail/getAllocationAmount?customerNumber=` + customerNumber + '&rate=' + rate })
+}
diff --git a/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue b/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue
index ef9bb83b7..9b9443fd4 100644
--- a/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue
+++ b/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue
@@ -44,14 +44,10 @@
moldUntaxedAmount=0,
materialsUntaxedAmount=0,
alreadyMoldUntaxedAmount=0
-
} = formModel
// 2、系统税额:每条数据的合同价格X可开票数量,计算结果取两位小数之后*税率的计算结果,再保留2位。所有子表数据再求和
if (formType == 'update') {
// 编辑
- console.log('taxRate', taxRate)
- console.log('originFormModel', originFormModel.taxRate)
- console.log('taxAmount', taxAmount)
if (taxRate != originFormModel.taxRate) {
if (originFormModel) {
sumFormDataHandle1()
@@ -86,51 +82,49 @@
}
"
:sumFormDataByTableCustom="
- (formRef, formModel, tableData) => {
- const { taxRate = 0 } = formModel
- // 1、主数据未税金额 mainBeforeTaxAmount : 所有明细行未税金额的和
- let mainBeforeTaxAmount = tableData.reduce((prev, item) =>prev + Number(item['beforeTaxAmount'].toFixed(2)),0).toFixed(2)
- // 2、主数据税额 mainTaxAmount = 未税金额*税率/100 保留两位小数
- let mainTaxAmount = Number(mainBeforeTaxAmount * taxRate * 0.01).toFixed(2)
- // 3、主数据模具未税金额 moldUntaxedAmount : 取明细行第一条数据moldUntaxedAmount
- let moldUntaxedAmount = tableData[0].moldUntaxedAmount
- // 4、主数据模具税额 moldTaxAmount = 累加后的模具未税金额*利率/100保留两位小数
- let moldTaxAmount = Number(Number(moldUntaxedAmount) * Number(taxRate) * 0.01).toFixed(2)
+ async (formRef, formModel, tableData) => {
+ const { taxRate = 0,moldUntaxedAmount=0 } = formModel
+ // 1、主数据未税金额 mainBeforeTaxAmount : 所有明细行的(品番数量 * 合计单价),先保留两位小数再求和
+ let mainBeforeTaxAmount = tableData.reduce((prev, item) =>prev + Number((Number(item['sumPrice'])*Number(item['qty'])).toFixed(2)),0).toFixed(2)
+ // 2、主数据税额 mainTaxAmount = 所有明细行的(未税金额 * 税率),先保留两位小数再求和
+ let mainTaxAmount = tableData.reduce((prev, item) =>prev + Number((Number(item['beforeTaxAmount'])*Number(taxRate)*0.01).toFixed(2)),0).toFixed(2)
// 5、主数据材料未税金额 materialsUntaxedAmount : 所有明细行销售单价*数量保留两位小数之后累加
let materialsUntaxedAmount = tableData.reduce((prev, item) =>prev + Number((Number(item['price'])*Number(item['qty'])).toFixed(2)),0).toFixed(2)
- // 6、主数据材料税额 materialsTaxAmount = 材料未税金额*税率/100 保留两位小数
- let materialsTaxAmount = Number(Number(materialsUntaxedAmount) * Number(taxRate) * 0.01).toFixed(2)
- // 7、已分摊模具未税金额=(已分摊品番数量*分摊单价)保留两位小数 后汇总弄求和
+ // 6、主数据材料税额 materialsTaxAmount = 各明细行的(未税金额 * 税率),先保留两位小数再求和
+ let materialsTaxAmount =tableData.reduce((prev, item) =>prev + Number((Number(item['beforeTaxAmount'])*Number(taxRate)*0.01).toFixed(2)),0).toFixed(2)
+ // 7、已分摊模具未税金额=各明细行的(品番数量 * 模具分摊单价),先保留两位小数再求和
let alreadyMoldUntaxedAmount = tableData.reduce((prev, item) =>prev + Number((Number(item['allocationPrice'])*Number(item['qty'])).toFixed(2)),0).toFixed(2)
- // 8、主数据模具税额 alreadyMoldTaxAmount = (已分摊品番数量*分摊单价)保留两位小数*税率)保留两位小数后汇总求和
+ // 8、主数据已分摊模具税额 alreadyMoldTaxAmount ==各明细行的(模具分摊单价 *数量 * 税率),先保留两位小数再求和
let alreadyMoldTaxAmount = tableData.reduce((prev, item) => prev + Number((Number((Number(item['allocationPrice']) * Number(item['qty'])).toFixed(2)) * Number(taxRate) * 0.01).toFixed(2)), 0).toFixed(2)
-
+ const allAmountNum = await getAllocationAmount(formModel.customerStatementNumber)
+
const sumObject = {
// 主数据未税金额
beforeTaxAmount:mainBeforeTaxAmount,
// 主数据税额
taxAmount:mainTaxAmount,
// 主数据价税合计金额:mainAdTaxAmount =未税金额+税额
- adTaxAmount:(Number(mainBeforeTaxAmount)+Number(mainTaxAmount)).toFixed(2),
- // 主数据-模具未税金额
- moldUntaxedAmount: moldUntaxedAmount,
- // 主数据-模具税额
- moldTaxAmount:moldTaxAmount,
- // 主数据-模具含税金额 = 模具未税金额+模具税额
- moldTaxTotal: (Number(moldUntaxedAmount) + Number(moldTaxAmount)).toFixed(2),
+ adTaxAmount: (Number(mainBeforeTaxAmount) + Number(mainTaxAmount)).toFixed(2),
+ // 主数据模具未税金额
+ moldUntaxedAmount:allAmountNum.moldUntaxedAmount,
+ // 主数据模具税额
+ moldTaxAmount:allAmountNum.moldTaxAmount,
+ // 主数据模具含税金额
+ moldTaxTotal:allAmountNum.moldTaxTotal,
// 主数据-材料未税金额
materialsUntaxedAmount: materialsUntaxedAmount,
// 主数据-材料金额
materialsTaxAmount: materialsTaxAmount,
// 主数据-材料含税金额= 材料未税金额+材料税额
materialsTaxTotal: (Number(materialsUntaxedAmount) + Number(materialsTaxAmount)).toFixed(2),
-
// 主数据已分摊模具未税金额
alreadyMoldUntaxedAmount: alreadyMoldUntaxedAmount,
// 主数据已分摊模具税额
alreadyMoldTaxAmount: alreadyMoldTaxAmount,
- // 主数据模具未税差异=已分摊模具未税金额-模具分摊未税金额
- moldTaxAmountDiff: (Number(alreadyMoldUntaxedAmount) - Number(moldUntaxedAmount)).toFixed(2),
+ // 主数据模具未税差异=已分摊模具未税金额-模具未税金额
+ moldTaxAmountDiff: (Number(alreadyMoldUntaxedAmount) - Number(allAmountNum.moldUntaxedAmount)).toFixed(2),
+ // 主数据已分摊价税合计=已分摊模具未税金额+已分摊模具税额
+ alreadyMoldTaxTotal: (Number(alreadyMoldUntaxedAmount) + Number(alreadyMoldTaxAmount)).toFixed(2),
}
formRef.value.setValues(sumObject)
}
@@ -176,13 +170,12 @@ const openFormTable =async (type: string, row?: any, list?:any) => {
})
tableData.value = list // 重置明细数据
formRef.value.open(type, row)
- nextTick(()=>{
+ nextTick(async()=>{
initTableDataPrice()
})
}
const showTypeList = ref([])
-const onChange = (field, cur, formRef)=>{
- console.log('onChange',field, cur, formRef)
+const onChange =async (field, cur, formRef)=>{
if(field == 'taxRate'){
// 税额:taxAmount 未税价格*税率/100,四舍五入保留2位小数
tableData.value.forEach(item=>{
@@ -198,9 +191,6 @@ const onChange = (field, cur, formRef)=>{
}
}
const inputNumberChange = (field, index, row, val) => {
- console.log('inputNumberChange',field, index, row, val)
- console.log(row['beforeTaxAmount'])
- console.log(row['taxAmount'])
// 模具分摊单价 默认从模具分摊对账单带出,未税金额修改后重新计算,等于未税金额/数量-销售单价
@@ -258,7 +248,6 @@ const submitForm = async (formType, submitData) => {
return;
}
}
- console.log(data.beginTime)
if(!data.beginTime)data.beginTime = null;
if(!data.planDate)data.planDate = null;
if(!data.endTime)data.endTime = null;
@@ -317,16 +306,20 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
//客户对账单
setV['customerCode'] = val[0]['customerCode']
setV['customerName'] = val[0]['customerName']
- CustomerStatementDetailApi.getCustomerStatementDetailPage({
- pageNo:1,
- pageSize: 50000,
- masterId:val[0]['id']
- }).then((res) => {
- console.log(55,res)
- tableData.value = res.list && res.list.length > 0 ?res.list : []
- initTableDataPrice()
+
+ let detailRes = await CustomerStatementDetailApi.pageInvoice(val[0].id)
+ tableData.value = detailRes.list && detailRes.list.length > 0 ? detailRes.list : []
+ initTableDataPrice()
+ // CustomerStatementDetailApi.getCustomerStatementDetailPage({
+ // pageNo:1,
+ // pageSize: 50000,
+ // masterId:val[0]['id']
+ // }).then((res) => {
+ // console.log(55,res)
+ // tableData.value = res.list && res.list.length > 0 ?res.list : []
+ // initTableDataPrice()
- })
+ // })
// tableData.value = []
}
@@ -348,6 +341,8 @@ const initTableDataPrice = ()=>{
// 含税金额 未税价格+税额,四舍五入保留2位小数
item['afterTaxAmount'] = item['beforeTaxAmount'] + item['taxAmount'] //含税金额
+ // 模具分摊单价如果没有值的话显示0
+ item['allocationPrice'] = item['allocationPrice'] || 0
})
}
@@ -372,7 +367,15 @@ const handleDeleteTable = (item, index) => {
const tableSelectionDelete = (selection) => {
tableData.value = tableData.value.filter(item => !selection.includes(item))
}
-
+// 选择税率获取模具未税金额,模具税额和模具含税金额
+const getAllocationAmount = async (number) => {
+ const res = await CustomerSaleInvoiceMainApi.getAllocationAmount(number, formRef.value.formRef.formModel.taxRate)
+ return {
+ moldUntaxedAmount:res.moldUntaxedAmount.toFixed(2),//模具未税金额(模具分摊对账单中各明细行的模具费用之和,先保留两位小数后再相加)
+ moldTaxAmount:res.moldTaxAmount.toFixed(2),//模具税额(所关联的模具分摊对账单中所有明细行的(模具未税金额 * 税率),先保留两位小数再求和)
+ moldTaxTotal:res.moldTaxTotal.toFixed(2),//模具含税金额(模具未税金额+模具税额)
+ }
+}
defineExpose({openForm,openFormTable})