fix: split custom default 1

This commit is contained in:
puriphatt 2024-12-19 09:55:47 +07:00
parent 58885e6180
commit 61e11c0503

View file

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