diff --git a/src/pages/05_quotation/QuotationForm.vue b/src/pages/05_quotation/QuotationForm.vue index 94375f0b..2f86fa7f 100644 --- a/src/pages/05_quotation/QuotationForm.vue +++ b/src/pages/05_quotation/QuotationForm.vue @@ -147,7 +147,7 @@ const refSelectZoneEmployee = ref>(); const mrz = ref>>(); const toggleWorker = ref(true); const tempTableProduct = ref([]); -const tempPaySplitCount = ref(1); +const tempPaySplitCount = ref(0); const tempPaySplit = ref< { no: number; amount: number; name?: string; invoice?: boolean }[] >([]); @@ -455,7 +455,7 @@ async function fetchQuotation() { const id = currentQuotationId.value || quotationFormData.value.id || ''; await quotationForm.assignFormData(id, quotationFormState.value.mode); - tempPaySplitCount.value = quotationFormData.value.paySplitCount || 1; + tempPaySplitCount.value = quotationFormData.value.paySplitCount || 0; tempPaySplit.value = JSON.parse( JSON.stringify(quotationFormData.value.paySplit), ); @@ -733,7 +733,7 @@ function triggerProductServiceDialog() { function handleChangePayType(type: PayCondition) { if ( type === 'Split' && - tempPaySplitCount.value && + tempPaySplitCount.value !== undefined && tempPaySplit.value && tempTableProduct.value ) { @@ -746,6 +746,11 @@ function handleChangePayType(type: PayCondition) { installmentNo: tempTableProduct.value[index].installmentNo || 0, })); } + + if (type === 'SplitCustom') { + quotationFormData.value.paySplitCount = 1; + quotationFormData.value.paySplit.push({ no: Number(1), amount: 0 }); + } } function handleUpdateProductTable( @@ -844,7 +849,7 @@ function toggleDeleteProduct(index: number) { // find split count tempPaySplitCount.value = Math.max( - ...productServiceList.value.map((v) => v.installmentNo || 1), + ...productServiceList.value.map((v) => v.installmentNo || 0), ); quotationFormData.value.paySplitCount = tempPaySplitCount.value; @@ -868,7 +873,7 @@ function convertToTable(nodes: Node[]) { const list = nodes.flatMap(_recursive).map((v) => v.value); quotationFormData.value.paySplitCount = Math.max( - ...list.map((v) => v.installmentNo || 1), + ...list.map((v) => v.installmentNo || 0), ); tempPaySplitCount.value = quotationFormData.value.paySplitCount; @@ -902,7 +907,7 @@ function convertToTable(nodes: Node[]) { })); } else { quotationFormData.value.paySplit = []; - quotationFormData.value.paySplitCount = 1; + quotationFormData.value.paySplitCount = 0; quotationFormData.value.payCondition = 'Full'; } @@ -2116,7 +2121,7 @@ watch( :date="v.date" :pay-type="quotationFormData.payCondition" :index="i" - :pay-split-count="quotationFormData.paySplitCount || 1" + :pay-split-count="quotationFormData.paySplitCount || 0" @view=" () => { selectedInstallmentNo = [v.invoice.installments[0].no];