|
|
@ -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}) |
|
|
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
|
|