fix: pay split count & pay split detail
This commit is contained in:
parent
1d4b101931
commit
8f99c5274e
1 changed files with 24 additions and 18 deletions
|
|
@ -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(0);
|
const tempPaySplitCount = ref(1);
|
||||||
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 || 0;
|
tempPaySplitCount.value = quotationFormData.value.paySplitCount || 1;
|
||||||
tempPaySplit.value = JSON.parse(
|
tempPaySplit.value = JSON.parse(
|
||||||
JSON.stringify(quotationFormData.value.paySplit),
|
JSON.stringify(quotationFormData.value.paySplit),
|
||||||
);
|
);
|
||||||
|
|
@ -843,7 +843,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 || 0),
|
...productServiceList.value.map((v) => v.installmentNo || 1),
|
||||||
);
|
);
|
||||||
quotationFormData.value.paySplitCount = tempPaySplitCount.value;
|
quotationFormData.value.paySplitCount = tempPaySplitCount.value;
|
||||||
|
|
||||||
|
|
@ -859,7 +859,6 @@ async function assignWorkerToSelectedWorker() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function convertToTable(nodes: Node[]) {
|
function convertToTable(nodes: Node[]) {
|
||||||
// TODO:
|
|
||||||
const _recursive = (v: Node): Node | Node[] => {
|
const _recursive = (v: Node): Node | Node[] => {
|
||||||
if (v.checked && v.children) return v.children.flatMap(_recursive);
|
if (v.checked && v.children) return v.children.flatMap(_recursive);
|
||||||
if (v.checked) return v;
|
if (v.checked) return v;
|
||||||
|
|
@ -868,7 +867,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 || 0),
|
...list.map((v) => v.installmentNo || 1),
|
||||||
);
|
);
|
||||||
tempPaySplitCount.value = quotationFormData.value.paySplitCount;
|
tempPaySplitCount.value = quotationFormData.value.paySplitCount;
|
||||||
|
|
||||||
|
|
@ -887,22 +886,29 @@ function convertToTable(nodes: Node[]) {
|
||||||
productServiceList.value = list;
|
productServiceList.value = list;
|
||||||
tempTableProduct.value = JSON.parse(JSON.stringify(list));
|
tempTableProduct.value = JSON.parse(JSON.stringify(list));
|
||||||
|
|
||||||
quotationFormData.value.paySplit = Array.apply(
|
if (nodes.length > 0) {
|
||||||
null,
|
quotationFormData.value.paySplit = Array.apply(
|
||||||
new Array(quotationFormData.value.paySplitCount),
|
null,
|
||||||
).map((_, i) => ({
|
new Array(quotationFormData.value.paySplitCount),
|
||||||
no: i + 1,
|
).map((_, i) => ({
|
||||||
amount: getPrice(list, (v) => {
|
no: i + 1,
|
||||||
return (
|
amount: getPrice(list, (v) => {
|
||||||
v.installmentNo === i + 1 ||
|
return (
|
||||||
(i + 1 === quotationFormData.value.paySplitCount && !v.installmentNo)
|
v.installmentNo === i + 1 ||
|
||||||
);
|
(i + 1 === quotationFormData.value.paySplitCount && !v.installmentNo)
|
||||||
}).finalPrice,
|
);
|
||||||
}));
|
}).finalPrice,
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
quotationFormData.value.paySplit = [];
|
||||||
|
quotationFormData.value.paySplitCount = 1;
|
||||||
|
quotationFormData.value.payCondition = 'Full';
|
||||||
|
}
|
||||||
|
|
||||||
tempPaySplit.value = JSON.parse(
|
tempPaySplit.value = JSON.parse(
|
||||||
JSON.stringify(quotationFormData.value.paySplit),
|
JSON.stringify(quotationFormData.value.paySplit),
|
||||||
);
|
);
|
||||||
|
tempPaySplitCount.value = quotationFormData.value.paySplitCount;
|
||||||
pageState.productServiceModal = false;
|
pageState.productServiceModal = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2109,7 +2115,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 || 0"
|
:pay-split-count="quotationFormData.paySplitCount || 1"
|
||||||
@view="
|
@view="
|
||||||
() => {
|
() => {
|
||||||
selectedInstallmentNo = [v.invoice.installments[0].no];
|
selectedInstallmentNo = [v.invoice.installments[0].no];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue