From ba4bf18f27a9e116723ac36ec1acb7d70061e85e Mon Sep 17 00:00:00 2001
From: "YEJIAXING-PC\\lenovo" <591141169@qq.com>
Date: Fri, 28 Feb 2025 19:01:18 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E5=8F=91=E7=A5=A8?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0=E6=A0=87=E7=AD=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../supplierinvoiceRequestMain/index.vue | 235 ++++++++++--------
.../supplierinvoiceRequestMain.data.ts | 18 ++
2 files changed, 155 insertions(+), 98 deletions(-)
diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue
index eed4c76b0..aa4c3e850 100644
--- a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue
+++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue
@@ -88,7 +88,7 @@
beforeTaxDiffAmount = 0,
taxAmountDiff = 0,
rebateTax = 0,
- claimAmount = 0,
+ claimAmount = 0
} = formModel
// 2、系统税额:每条数据的合同价格X可开票数量,计算结果取两位小数之后*税率的计算结果,再保留2位。所有子表数据再求和
if (formType == 'update') {
@@ -109,8 +109,8 @@
beforeTaxDiffAmount: beforeTaxAmount - amount, //未税差额:未税金额-系统未税金额
taxAmountDiff: totalTaxAmount - taxAmount, // 税额差异:税额-系统税额
totalTaxDiffAmount: beforeTaxDiffAmount + taxAmountDiff, // 价税合计差额=未税差额+税额差异
- rebateTax:Number(Number(discountAmount1*taxRate*0.01).toFixed(2)),
- rebateTotal:rebateTax+discountAmount1
+ rebateTax: Number(Number(discountAmount1 * taxRate * 0.01).toFixed(2)),
+ rebateTotal: rebateTax + discountAmount1
})
} else if (formType == 'create') {
// 新增
@@ -138,8 +138,8 @@
beforeTaxDiffAmount: beforeTaxAmount - amount, //未税差额:未税金额-系统未税金额
taxAmountDiff: totalTaxAmount - taxAmount, // 税额差异:税额-系统税额
totalTaxDiffAmount: beforeTaxDiffAmount + taxAmountDiff, // 价税合计差额=未税差额+税额差异
- rebateTax:Number(Number(discountAmount1*taxRate*0.01).toFixed(2)),
- rebateTotal:rebateTax+discountAmount1
+ rebateTax: Number(Number(discountAmount1 * taxRate * 0.01).toFixed(2)),
+ rebateTotal: rebateTax + discountAmount1
})
}
}
@@ -166,9 +166,11 @@
),
0
)
- }
- sumObject.invoiceAmountMain = (Number(sumObject.amount) -Number(formRef.value.formModel.claimAmount)).toFixed(2), // 发票总额:供应商维护未税金额-索赔总额
- formRef.value.setValues(sumObject)
+ }
+ ;(sumObject.invoiceAmountMain = (
+ Number(sumObject.amount) - Number(formRef.value.formModel.claimAmount)
+ ).toFixed(2)), // 发票总额:供应商维护未税金额-索赔总额
+ formRef.value.setValues(sumObject)
}
"
:apiUpdate="SupplierinvoiceRequestMainApi.updateSupplierinvoiceRequestMain"
@@ -202,7 +204,7 @@
}}
-
+
+ style="
+ border: 1px solid #dedede;
+ border-radius: 8px;
+ padding: 10px;
+ width: calc(100% - 32px);
+ display: flex;
+ "
+ >
-
-
@@ -359,15 +371,24 @@
>
- {{row['totalTaxDiffAmount']}} (含返利合计:{{ row['rebateTotal'] }})
+ {{ row['totalTaxDiffAmount']
+ }} (含返利合计:{{ row['rebateTotal'] }})
- {{row['beforeTaxDiffAmount']}} (含返利未税:{{ row['discountAmount1'] }})
+ {{ row['beforeTaxDiffAmount']
+ }} (含返利未税:{{ row['discountAmount1'] }})
- {{row['taxAmountDiff']}} (含返利税额:{{ row['rebateTax'] }})
+ {{ row['taxAmountDiff']
+ }} (含返利税额:{{ row['rebateTax'] }})
{{ row.differencePrice }}
@@ -501,24 +522,23 @@ const searchTableSuccessDetail = async (
// })
-
const detailData = ref()
-const detailOpenForm = (type, row)=>{
+const detailOpenForm = (type, row) => {
detailData.value = row
}
-const detailBasicFormOnChange = (field, cur) => {
- console.log('detailBasicFormOnChange',field, cur)
+const detailBasicFormOnChange = (field, cur) => {
+ console.log('detailBasicFormOnChange', field, cur)
if (field == 'invoicableQuantity') {
// 负数:默认默认开票数~0
// 正数:0~默认开票数
- if(detailData.value.maxInvoicableQuantity){
- if(detailData.value.maxInvoicableQuantity>0){
- if(cur<0||cur>detailData.value.maxInvoicableQuantity){
- message.error(t('ts.可开票数量范围是')+`:0~${detailData.value.maxInvoicableQuantity}`)
+ if (detailData.value.maxInvoicableQuantity) {
+ if (detailData.value.maxInvoicableQuantity > 0) {
+ if (cur < 0 || cur > detailData.value.maxInvoicableQuantity) {
+ message.error(t('ts.可开票数量范围是') + `:0~${detailData.value.maxInvoicableQuantity}`)
}
- }else{
- if(cur>0||cur 0 || cur < detailData.value.maxInvoicableQuantity) {
+ message.error(t('ts.可开票数量范围是') + `:${detailData.value.maxInvoicableQuantity}~0`)
}
}
}
@@ -526,18 +546,18 @@ const detailBasicFormOnChange = (field, cur) => {
}
const handleDetailSubmitForm = async (formType, data) => {
if (formType === 'update') {
- console.log('handleDetailSubmitForm',data)
- if(data.invoicableQuantity==0){
+ console.log('handleDetailSubmitForm', data)
+ if (data.invoicableQuantity == 0) {
message.error(t('ts.可开票数量不能为0'))
return
- }else if(data.maxInvoicableQuantity>0){
- if(data.invoicableQuantity<0||data.invoicableQuantity>data.maxInvoicableQuantity){
- message.error(t('ts.可开票数量范围是')+`:0~${data.maxInvoicableQuantity}`)
+ } else if (data.maxInvoicableQuantity > 0) {
+ if (data.invoicableQuantity < 0 || data.invoicableQuantity > data.maxInvoicableQuantity) {
+ message.error(t('ts.可开票数量范围是') + `:0~${data.maxInvoicableQuantity}`)
return
}
- }else{
- if(data.invoicableQuantity>0||data.invoicableQuantity 0 || data.invoicableQuantity < data.maxInvoicableQuantity) {
+ message.error(t('ts.可开票数量范围是') + `:${data.maxInvoicableQuantity}~0`)
return
}
}
@@ -550,22 +570,22 @@ const inputNumberChange = (field, index, row, val) => {
if (field == 'invoicableQuantity') {
// 负数:默认默认开票数~0
// 正数:0~默认开票数
- console.log('inputNumberChange',field, index, row, val)
- if(row.maxInvoicableQuantity>0){
- if(row.invoicableQuantity<0||row.invoicableQuantity>row.maxInvoicableQuantity){
- message.error(t('ts.可开票数量范围是')+`:0~${row.maxInvoicableQuantity}`)
+ console.log('inputNumberChange', field, index, row, val)
+ if (row.maxInvoicableQuantity > 0) {
+ if (row.invoicableQuantity < 0 || row.invoicableQuantity > row.maxInvoicableQuantity) {
+ message.error(t('ts.可开票数量范围是') + `:0~${row.maxInvoicableQuantity}`)
}
- }else{
- if(row.invoicableQuantity>0||row.invoicableQuantity 0 || row.invoicableQuantity < row.maxInvoicableQuantity) {
+ message.error(t('ts.可开票数量范围是') + `:${row.maxInvoicableQuantity}~0`)
}
}
handleAllocationPrice()
}
}
const onChange = (field, cur) => {
- console.log('onChange',field)
- if(field=='orderType'){
+ console.log('onChange', field)
+ if (field == 'orderType') {
tableData.value = []
}
}
@@ -614,8 +634,8 @@ const searchTableSuccess = (formField, searchField, val, searchFormRef, type, ro
handleAllocationPrice()
} else {
// 切换供应商代码
- console.log(11,val[0][searchField])
- console.log(11,searchFormRef.formModel.supplierCode)
+ console.log(11, val[0][searchField])
+ console.log(11, searchFormRef.formModel.supplierCode)
if (
formField == 'supplierCode' &&
val[0][searchField] != searchFormRef.formModel.supplierCode
@@ -636,16 +656,15 @@ const searchTableSuccess = (formField, searchField, val, searchFormRef, type, ro
})
}
// 模具分摊单价
-const handleAllocationPrice = async ()=>{
+const handleAllocationPrice = async () => {
let res = await SupplierinvoiceRequestDetailApi.handleAllocationPrice(tableData.value)
- tableData.value.forEach(item=>{
- let findItem = res.find(item1=>item1.id == item?.id)
- if(findItem){
+ tableData.value.forEach((item) => {
+ let findItem = res.find((item1) => item1.id == item?.id)
+ if (findItem) {
item['allocationPrice'] = findItem['allocationPrice']
}
})
- console.log('模具分摊单价',res)
-
+ console.log('模具分摊单价', res)
}
const Echo = []
@@ -797,7 +816,7 @@ const butttondata = (row, $index) => {
{
label: t('ts.打印'),
name: 'mian_print',
- hide: !(roleList.value.indexOf('financial_accounting') > -1 && row.status == 5),
+ hide: !(row.goldenTaxInvoiceNumber != null && row.goldenTaxInvoiceNumber != ''),
type: 'primary',
color: '',
link: true, // 文本展现按钮
@@ -929,7 +948,7 @@ const openForm = async (type: string, row?: any) => {
}
}
})
- await claimDetailsForUpdate(row.supplierCode,row.id)
+ await claimDetailsForUpdate(row.supplierCode, row.id)
} else {
// 新增
SupplierinvoiceRequestMain.allSchemas.formSchema.forEach((item) => {
@@ -939,8 +958,8 @@ const openForm = async (type: string, row?: any) => {
item.value = defaultSupplierCode.value
item.componentProps.isSearchList = true
item.componentProps.disabled = false
- claimDetailsList.value = [];
- claimDetails(item.value);
+ claimDetailsList.value = []
+ claimDetails(item.value)
}
// 订单类型
if (item.field == 'orderType') {
@@ -989,13 +1008,21 @@ const openForm = async (type: string, row?: any) => {
// 获取索赔明细
const claimDetailsList = ref([])
const claimDetails = async (supplierCode) => {
- claimDetailsList.value = await PurchaseClaimRequestDetailApi.getPurchaseClaimRequestDetailList(supplierCode)
- formRef.value.formRef.formModel.claimAmount = claimDetailsList.value.map(item => item.claimAmount).reduce((prev, item) => prev + item).toFixed(5)
- formRef.value.formRef.formModel.invoiceAmountMain = (Number(formRef.value.formRef.formModel.amount) -Number(formRef.value.formModel.claimAmount)).toFixed(2) // 发票总额:供应商维护未税金额-索赔总额
+ claimDetailsList.value = await PurchaseClaimRequestDetailApi.getPurchaseClaimRequestDetailList(
+ supplierCode
+ )
+ formRef.value.formRef.formModel.claimAmount = claimDetailsList.value
+ .map((item) => item.claimAmount)
+ .reduce((prev, item) => prev + item)
+ .toFixed(5)
+ formRef.value.formRef.formModel.invoiceAmountMain = (
+ Number(formRef.value.formRef.formModel.amount) - Number(formRef.value.formModel.claimAmount)
+ ).toFixed(2) // 发票总额:供应商维护未税金额-索赔总额
}
- // 编辑的时候获取索赔明细
-const claimDetailsForUpdate = async (supplierCode,id) => {
- claimDetailsList.value = await PurchaseClaimRequestDetailApi.getPurchaseClaimRequestDetailListForUpdate(supplierCode,id)
+// 编辑的时候获取索赔明细
+const claimDetailsForUpdate = async (supplierCode, id) => {
+ claimDetailsList.value =
+ await PurchaseClaimRequestDetailApi.getPurchaseClaimRequestDetailListForUpdate(supplierCode, id)
}
// 校验是否可以开票
const checkInvoicingCalendar = async () => {
@@ -1016,7 +1043,6 @@ const getDefaultSupplier = async () => {
console.log('defaultSupplierCode', defaultSupplierCode)
}
-
// 获取部门 用于详情 部门回显
const { wsCache } = useCache()
/** 详情操作 */
@@ -1029,7 +1055,7 @@ const detailAnnexTable = ref([
tableName: 'contract',
hiddenDelete: false,
showPreview: true,
- showDownload:true,
+ showDownload: true,
hiddenUpload: false,
fileSize: 20
},
@@ -1040,11 +1066,11 @@ const detailAnnexTable = ref([
hiddenDelete: false,
hiddenUpload: false,
showPreview: true,
- showDownload:true,
+ showDownload: true,
fileSize: 20,
- maxLength:1,
- limit:1,
- fileType:['pdf','ofd']
+ maxLength: 1,
+ limit: 1,
+ fileType: ['pdf', 'ofd']
},
{
label: t('ts.发货单附件'),
@@ -1245,7 +1271,7 @@ const submitFormFinance = async (formType, submitData) => {
} catch {
formFinanceRef.value.formLoading = false
}
-
+
// try {
// // 审批通过的二次确认
// await message.confirm(t('ts.是否审批通过所选中数据?'))
@@ -1455,7 +1481,7 @@ const sumFormDataHandle = async (
}
// 主子数据 提交
const submitForm = async (formType, submitData) => {
- console.log('submitForm',tableData.value)
+ console.log('submitForm', tableData.value)
let data = { ...submitData }
tableData.value.forEach((item) => {
item.differencePrice = Number(
@@ -1463,27 +1489,31 @@ const submitForm = async (formType, submitData) => {
)
})
let flagInvoicableQuantity = false
- tableData.value.forEach(item => {
+ tableData.value.forEach((item) => {
// 负数:默认默认开票数~0
// 正数:0~默认开票数
- if(item.invoicableQuantity==0){
+ if (item.invoicableQuantity == 0) {
flagInvoicableQuantity = true
- message.error(`${item.itemCode}`+t('ts.可开票数量不能为0'))
- }else if(item.maxInvoicableQuantity){
- if(item.maxInvoicableQuantity>0){
- if(item.invoicableQuantity<0||item.invoicableQuantity>item.maxInvoicableQuantity){
+ message.error(`${item.itemCode}` + t('ts.可开票数量不能为0'))
+ } else if (item.maxInvoicableQuantity) {
+ if (item.maxInvoicableQuantity > 0) {
+ if (item.invoicableQuantity < 0 || item.invoicableQuantity > item.maxInvoicableQuantity) {
flagInvoicableQuantity = true
- message.error(`${item.itemCode}`+t('ts.可开票数量范围是')+`:0~${item.maxInvoicableQuantity}`)
+ message.error(
+ `${item.itemCode}` + t('ts.可开票数量范围是') + `:0~${item.maxInvoicableQuantity}`
+ )
}
- }else{
- if(item.invoicableQuantity>0||item.invoicableQuantity 0 || item.invoicableQuantity < item.maxInvoicableQuantity) {
flagInvoicableQuantity = true
- message.error(`${item.itemCode}`+t('ts.可开票数量范围是')+`:${item.maxInvoicableQuantity}~0`)
+ message.error(
+ `${item.itemCode}` + t('ts.可开票数量范围是') + `:${item.maxInvoicableQuantity}~0`
+ )
}
}
}
- });
- if(flagInvoicableQuantity){
+ })
+ if (flagInvoicableQuantity) {
return
}
data.subList = tableData.value // 拼接子表数据参数
@@ -1592,24 +1622,33 @@ const handleSupplierdeliverRecordPrint = async (id) => {
window.open(documentSupplierdeliverRecordSrc.value + '&id=' + id)
}
-// 单据打印
-const documentSrc = ref(BASE_URL + '/jmreport/view/936875675614240768?token=' + getAccessToken())
-const handleDocumentPrint = async (id) => {
- window.open(documentSrc.value + '&id=' + id)
-}
-const srcPoint = ref(BASE_URL + '/jmreport/view/972723426543935488?token=' + getAccessToken())
+
+const srcPoint = ref(BASE_URL + '/jmreport/view/1055372875454808064?token=' + getAccessToken())
const handleSelectionPoint = async () => {
+ console.log(selectionRows.value)
let rows: any = []
+ let rows1: any = []
selectionRows.value.forEach((item) => {
- rows = [...rows, ...item.selectionRows.map((item1) => item1.id)]
+ item.selectionRows.forEach((cur) => {
+ if (cur.goldenTaxInvoiceNumber == null || cur.goldenTaxInvoiceNumber == '') {
+ // rows = [...rows, ...item.selectionRows.map((item1) => item1.id)]
+ rows.push(cur.id)
+ } else {
+ rows1.push(cur.id)
+ }
+ })
})
- if (rows.length == 0) {
- message.warning('至少选择一条数据!')
+ if (rows.length != 0&&rows1.length == 0) {
+ message.warning('所选数据中金税票号不能为空!')
return
}
- console.log('批量打印', rows.join(','))
- window.open(srcPoint.value + '&ids=' + rows.join(','))
+ window.open(srcPoint.value + '&ids=' + rows1.join(','))
+}
+
+// 单据打印
+const handleDocumentPrint = async (id) => {
+ window.open(srcPoint.value + '&ids=' + id)
}
const handlePrintAll = async (masterId) => {
diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts
index dd7e60b56..d807e9d2d 100644
--- a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts
+++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts
@@ -640,6 +640,8 @@ export const SupplierinvoiceRequestMain = useCrudSchemas(reactive(
{
label: '金税票号',
field: 'goldenTaxInvoiceNumber',
+ isTable:true,
+ isDetail:true,
table: {
width: 200,
},
@@ -1635,6 +1637,22 @@ export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive