diff --git a/src/api/wms/customerStatementMain/index.ts b/src/api/wms/customerStatementMain/index.ts index bd60e0972..2f182e977 100644 --- a/src/api/wms/customerStatementMain/index.ts +++ b/src/api/wms/customerStatementMain/index.ts @@ -96,7 +96,10 @@ export const publish = async (id: number) => { export const confirmationShare = async (id: number) => { return await request.get({ url: `/wms/customer-statement-main/confirmationShare?id=` + id}) } - +// 根据对账单主id点击确认不分摊 +export const confirmationNoShare = async (id: number) => { + return await request.get({ url: `/wms/customer-statement-main/confirmationNoShare?id=` + id }) +} // 客户对账单查询客户代码 export const getCustomerList = async () => { return await request.get({ url: `/wms/customer-statement-main/confirmationShare`}) diff --git a/src/components/Form/src/Form.vue b/src/components/Form/src/Form.vue index 2e599dd83..4037b7250 100644 --- a/src/components/Form/src/Form.vue +++ b/src/components/Form/src/Form.vue @@ -496,4 +496,7 @@ export default defineComponent({ ::v-deep(.el-select-v2 .el-icon) { display: inline-flex; } +::v-deep(.el-input-number){ + width: 100%; +} diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index 4c195e17d..f0f471b00 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -1313,13 +1313,16 @@ export default { 重新对比成功: 'Re comparison successful', 确认对比结果: 'Confirm the comparison results', 确认成功: 'Confirmed successful', + 确认不分摊成功: 'Confirm successful non allocation', 确认分摊金额: 'Confirm the shared amount', + 确认不分摊: 'Confirm not to allocate', 导入模具分摊对账单: 'Import mold allocation statement', 是否重新对比: 'Do you want to re compare?', 是否确认对比结果: 'Are you sure about the comparison results?', "是否退回所选中数据?": 'Do you want to return the selected data?', 退回成功: 'Returned successfully', - 是否确认分摊金额: 'Do you want to confirm the allocation amount?', + 是否确认分摊金额: 'Are you sure about the allocation amount?', + 是否确认不分摊: 'Are you sure not to allocate?', 创建开票申请: 'Create an invoice request?', 详情:'Detail', 退回:'Return', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 4fa544df5..97dd8493b 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1313,13 +1313,16 @@ export default { 重新对比成功: '重新对比成功', 确认对比结果: '确认对比结果', 确认成功: '确认成功', + 确认不分摊成功: '确认不分摊成功', 确认分摊金额: '确认分摊金额', + 确认不分摊: '确认不分摊', 导入模具分摊对账单: '导入模具分摊对账单', 是否重新对比: '是否重新对比?', "是否确认对比结果": "是否确认对比结果?", "是否退回所选中数据?": '是否退回所选中数据?', 退回成功: '退回成功', 是否确认分摊金额: '是否确认分摊金额?', + 是否确认不分摊: '是否确认不分摊?', 创建开票申请: '创建开票申请', 作废成功:'作废成功', 退回: '退回', diff --git a/src/views/wms/deliversettlementManage/customerSaleInvoiceRecordMain/customerSaleInvoiceRecordMain.data.ts b/src/views/wms/deliversettlementManage/customerSaleInvoiceRecordMain/customerSaleInvoiceRecordMain.data.ts index 6f3a6a436..4b8a03ae6 100644 --- a/src/views/wms/deliversettlementManage/customerSaleInvoiceRecordMain/customerSaleInvoiceRecordMain.data.ts +++ b/src/views/wms/deliversettlementManage/customerSaleInvoiceRecordMain/customerSaleInvoiceRecordMain.data.ts @@ -5,6 +5,7 @@ import { } from '../moldAllocation/customerStatement/customerStatementMain.data' import * as CustomerStatementMainApi from '@/api/wms/customerStatementMain' import * as CustomerSaleInvoiceMainApi from '@/api/wms/customerSaleInvoiceMain' +import { accountantFormart } from '@/utils/formatter' const { t } = useI18n() // 国际化 @@ -166,6 +167,138 @@ export const CustomerSaleInvoiceMain = useCrudSchemas(reactive([ width:150 } }, + { + label: '模具未税金额', + field: 'moldUntaxedAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '模具税额', + field: 'moldTaxAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '模具含税金额', + field: 'moldTaxTotal', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '材料未税金额', + field: 'materialsUntaxedAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '材料税额', + field: 'materialsTaxAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '材料含税金额', + field: 'materialsTaxTotal', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, { + label: '模具未税尾差', + field: 'allocationDifferenceBeforeTax', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, { label: '金税票号', field: 'goldenTaxInvoiceNumber', diff --git a/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue b/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue index fdf0d5bae..0f96a15ff 100644 --- a/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue +++ b/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue @@ -40,7 +40,9 @@ discountAmount1 = 0, beforeTaxDiffAmount = 0, taxAmountDiff = 0, - rebateTax=0, + rebateTax = 0, + moldUntaxedAmount=0, + materialsUntaxedAmount=0 } = formModel // 2、系统税额:每条数据的合同价格X可开票数量,计算结果取两位小数之后*税率的计算结果,再保留2位。所有子表数据再求和 if (formType == 'update') { @@ -56,11 +58,29 @@ } // 2.主数据税额 mainTaxAmount = 未税金额*税率/100 保留两位小数 let mainTaxAmount = Number(beforeTaxAmount*taxRate*0.01).toFixed(2) + // 4、主数据模具税额 moldTaxAmount = 累加后的模具未税金额*利率/100保留两位小数 + let moldTaxAmount = Number(Number(moldUntaxedAmount) * Number(taxRate) * 0.01).toFixed(2) + // 6、主数据材料税额 materialsTaxAmount = 材料未税金额*税率/100 保留两位小数 + let materialsTaxAmount = Number(Number(materialsUntaxedAmount) * Number(taxRate) * 0.01).toFixed(2) + // 所有明细行模具分摊单价*数量保留两位小数之后累加 + let allAmount = tableData.reduce((prev, item) =>prev + Number((Number(item['allocationPrice'])*Number(item['qty'])).toFixed(2)),0).toFixed(2) + formRef.value.setValues({ // 主数据税额 taxAmount:mainTaxAmount, // 主数据价税合计金额:mainAdTaxAmount =未税金额+税额 - adTaxAmount:beforeTaxAmount+parseFloat(taxAmount) + adTaxAmount: (beforeTaxAmount + parseFloat(taxAmount)).toFixed(2), + // 主数据模具税额 + moldTaxAmount:moldTaxAmount, + // 主数据-模具含税金额 = 模具未税金额+模具税额 + moldTaxTotal: (Number(moldUntaxedAmount) + Number(moldTaxAmount)).toFixed(2), + // 主数据-材料金额 + materialsTaxAmount: materialsTaxAmount, + // 主数据-材料含税金额= 材料未税金额+材料税额 + materialsTaxTotal: (Number(materialsUntaxedAmount) + Number(materialsTaxAmount)).toFixed(2), + + // 主数据模具未税尾差 allocationDifferenceBeforeTax : 模具未税金额 减去 系统明细中品番数量*模具单价 保留两位小数后汇总金额 + // allocationDifferenceBeforeTax: (Number(moldUntaxedAmount) - Number(allAmount)).toFixed(2), }) } } @@ -70,15 +90,40 @@ const { taxRate = 0 } = formModel // 1、主数据未税金额 mainBeforeTaxAmount : 所有明细行未税金额的和 let mainBeforeTaxAmount = tableData.reduce((prev, item) =>prev + Number(item['beforeTaxAmount'].toFixed(2)),0).toFixed(2) - // 2.主数据税额 mainTaxAmount = 未税金额*税率/100 保留两位小数 + // 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) + // 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) + // 所有明细行模具分摊单价*数量保留两位小数之后累加 + let allAmount = tableData.reduce((prev, item) =>prev + Number((Number(item['allocationPrice'])*Number(item['qty'])).toFixed(2)),0).toFixed(2) + const sumObject = { // 主数据未税金额 beforeTaxAmount:mainBeforeTaxAmount, // 主数据税额 taxAmount:mainTaxAmount, // 主数据价税合计金额:mainAdTaxAmount =未税金额+税额 - adTaxAmount:(Number(mainBeforeTaxAmount)+Number(mainTaxAmount)).toFixed(2) + adTaxAmount:(Number(mainBeforeTaxAmount)+Number(mainTaxAmount)).toFixed(2), + // 主数据-模具未税金额 + moldUntaxedAmount: moldUntaxedAmount, + // 主数据-模具税额 + moldTaxAmount:moldTaxAmount, + // 主数据-模具含税金额 = 模具未税金额+模具税额 + moldTaxTotal: (Number(moldUntaxedAmount) + Number(moldTaxAmount)).toFixed(2), + // 主数据-材料未税金额 + materialsUntaxedAmount: materialsUntaxedAmount, + // 主数据-材料金额 + materialsTaxAmount: materialsTaxAmount, + // 主数据-材料含税金额= 材料未税金额+材料税额 + materialsTaxTotal: (Number(materialsUntaxedAmount) + Number(materialsTaxAmount)).toFixed(2), + // 主数据模具未税尾差 allocationDifferenceBeforeTax : 模具未税金额 减去 系统明细中品番数量*模具单价 保留两位小数后汇总金额 + allocationDifferenceBeforeTax: (Number(moldUntaxedAmount) - Number(allAmount)).toFixed(2), } formRef.value.setValues(sumObject) } @@ -267,7 +312,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => setV['customerName'] = val[0]['customerName'] CustomerStatementDetailApi.getCustomerStatementDetailPage({ pageNo:1, - pageSize: 5000, + pageSize: 50000, masterId:val[0]['id'] }).then((res) => { console.log(55,res) @@ -323,4 +368,5 @@ const tableSelectionDelete = (selection) => { defineExpose({openForm,openFormTable}) - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/customerSaleInvoiceRequestMain.data.ts b/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/customerSaleInvoiceRequestMain.data.ts index ca03b41cb..859670da0 100644 --- a/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/customerSaleInvoiceRequestMain.data.ts +++ b/src/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/customerSaleInvoiceRequestMain.data.ts @@ -6,6 +6,7 @@ import { import * as CustomerStatementMainApi from '@/api/wms/customerStatementMain' import * as CustomerSaleInvoiceMainApi from '@/api/wms/customerSaleInvoiceMain' import { DICT_TYPE, getDictOptions } from '@/utils/dict' +import { accountantFormart } from '@/utils/formatter' const { t } = useI18n() // 国际化 const invoiceType = [{label:'全部',value:''},...getDictOptions(DICT_TYPE.INVOICE_TYPE)] console.log(888, invoiceType) @@ -212,6 +213,96 @@ export const CustomerSaleInvoiceMain = useCrudSchemas(reactive([ width:150 } }, + { + label: '模具未税金额', + field: 'moldUntaxedAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + componentProps: { + disabled: true, + } + }, + }, + { + label: '模具税额', + field: 'moldTaxAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + componentProps: { + disabled: true, + } + }, + }, + { + label: '模具含税金额', + field: 'moldTaxTotal', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + componentProps: { + disabled: true, + } + }, + }, + { + label: '材料未税金额', + field: 'materialsUntaxedAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + componentProps: { + disabled: true, + } + }, + }, + { + label: '材料税额', + field: 'materialsTaxAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + componentProps: { + disabled: true, + } + }, + }, + { + label: '材料含税金额', + field: 'materialsTaxTotal', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + componentProps: { + disabled: true, + } + }, + }, { + label: '模具未税尾差', + field: 'allocationDifferenceBeforeTax', + formatter: accountantFormart, + table: { + width: 160 + }, + form: { + componentProps: { + disabled: true, + } + }, + }, { label: '金税票号', field: 'goldenTaxInvoiceNumber', diff --git a/src/views/wms/deliversettlementManage/moldAllocation/customerStatement/index.vue b/src/views/wms/deliversettlementManage/moldAllocation/customerStatement/index.vue index 1f75ab7fa..1334402d2 100644 --- a/src/views/wms/deliversettlementManage/moldAllocation/customerStatement/index.vue +++ b/src/views/wms/deliversettlementManage/moldAllocation/customerStatement/index.vue @@ -291,6 +291,15 @@ const butttondata = (row, $index) => { hasPermi: 'wms:customer-statement-main:confirmationShare', link: true // 文本展现按钮 }, + { + label: t('ts.确认不分摊'), + name: 'confirmationNoShare', + hide: row.isNoShare!='1', + type: 'primary', + color: '', + hasPermi: 'wms:customer-statement-main:confirmationShare', + link: true // 文本展现按钮 + }, { label: t('ts.创建开票申请'), name: 'createTicketApply', @@ -327,6 +336,9 @@ const buttonTableClick = async (val, row) => { } else if (val == 'confirmShareMoney') { // 确认分摊金额 handleConfirmShareMoney(row.id) + } else if (val == 'confirmationNoShare') { + // 确认不分摊金额 + handleConfirmationNoShare(row.id) } else if (val == 'createTicketApply') { // 创建开票申请 let mainRes = await CustomerStatementMainApi.getCustomerStatementMain(row.id) @@ -572,6 +584,26 @@ const handleConfirmShareMoney = async (id: number) => { await getList() } } +// 确认不分摊金额 +const handleConfirmationNoShare = async (id: number) => { + try { + await message.confirm(t('ts.是否确认不分摊')) + await CustomerStatementMainApi.confirmationNoShare(id) + // chooseRow.value = 5 + let res = await CustomerStatementMainApi.getCustomerStatementMainPage({ + id:chooseRow.value.id, + pageSize:20, + pageNo:1 + }) + if(res&&res.list&&res.list.length>0){ + chooseRow.value = res.list[0] + } + await message.success(t('ts.确认不分摊成功')) + } finally { + // 刷新列表 + await getList() + } +} // 根据状态返回该按钮是否显示 const isShowMainButton = (row, val) => { if (val.indexOf(row.status) > -1) { @@ -580,6 +612,14 @@ const isShowMainButton = (row, val) => { return true } } +// 根据状态返回该按钮是否显示 +const isShowMainButton1 = (row, val) => { + if (val.indexOf(row.isNoShare) > -1) { + return false + } else { + return true + } +} const tabCurrent = ref({}) const changeTabs = async (item) => { tabCurrent.value = item @@ -684,6 +724,16 @@ console.log(555,DetailAllSchemas.value) float: 'left', disabled: chooseRow.value.isShare == 0 ? true : false, hasPermi: 'wms:customer-statement-main:confirmationShare' + }, + { + label: t('ts.确认不分摊'), + name: 'confirmationNoShare', + hide: isShowMainButton1(chooseRow.value, ['1']), + type: 'primary', + color: '', + float: 'left', + disabled: chooseRow.value.isNoShare == 0 ? true : false, + hasPermi: 'wms:customer-statement-main:confirmationShare' } ] } else { @@ -747,6 +797,23 @@ const detailButtonBaseClick = async (val, item, detailTableObject) => { } ] } catch {} + }else if (val == 'confirmationNoShare') { + // 确认分摊金额 + try { + await handleConfirmationNoShare(chooseRow.value.id) + detailRef.value.submitUpdateList() + otherHeadButttonData.value = [ + { + label: t(`ts.导出`).replace('ts.', ''), + name: 'export', + hide: false, + type: 'success', + icon: 'ep:download', + color: '', + hasPermi: 'wms:customer-statement-main:export' + } + ] + } catch {} } } // 子表导出明细 @@ -833,6 +900,15 @@ const handleDetailSubmitForm = async (formType, data) => { disabled:true, float: 'left', hasPermi: 'wms:customer-statement-main:confirmationShare' + }, { + label: t('ts.确认不分摊'), + name: 'confirmationNoShare', + hide: isShowMainButton1(chooseRow.value, ['1']), + type: 'primary', + color: '', + float: 'left', + disabled:true, + hasPermi: 'wms:customer-statement-main:confirmationShare' } ] } else { @@ -855,6 +931,15 @@ const handleDetailSubmitForm = async (formType, data) => { disabled:false, float: 'left', hasPermi: 'wms:customer-statement-main:confirmationShare' + } ,{ + label: t('ts.确认不分摊'), + name: 'confirmationNoShare', + hide: isShowMainButton1(chooseRow.value, ['1']), + type: 'primary', + color: '', + float: 'left', + disabled: false, + hasPermi: 'wms:customer-statement-main:confirmationShare' } ] }