diff --git a/src/components/05_quotation/ProductItem.vue b/src/components/05_quotation/ProductItem.vue
index 3ca36321..aa48269a 100644
--- a/src/components/05_quotation/ProductItem.vue
+++ b/src/components/05_quotation/ProductItem.vue
@@ -13,6 +13,7 @@ import { useConfigStore } from 'stores/config';
const props = defineProps<{
readonly?: boolean;
agentPrice: boolean;
+ installmentInput?: boolean;
employeeRows?: {
foreignRefNo: string;
employeeName: string;
@@ -228,7 +229,20 @@ watch(
flat
bordered
hide-pagination
- :columns="columns"
+ :columns="
+ installmentInput
+ ? [
+ ...columns.slice(0, 1),
+ {
+ name: 'periodNo',
+ align: 'left',
+ label: 'quotation.periodNo',
+ field: (v) => v.product.code,
+ },
+ ...columns.slice(1),
+ ]
+ : columns
+ "
:rows="item.product"
class="full-width"
:no-data-label="$t('general.noDataTable')"
@@ -248,6 +262,19 @@ watch(
{{ props.rowIndex + 1 }}
+
+
+
{{ props.row.product.code }}
diff --git a/src/pages/05_quotation/QuotationForm.vue b/src/pages/05_quotation/QuotationForm.vue
index 54ca5ab4..07b5e36d 100644
--- a/src/pages/05_quotation/QuotationForm.vue
+++ b/src/pages/05_quotation/QuotationForm.vue
@@ -113,6 +113,7 @@ const { data: config } = storeToRefs(configStore);
const refSelectZoneEmployee = ref>();
const mrz = ref>>();
const toggleWorker = ref(true);
+const tempPaySplitCount = ref(0);
const currentQuotationId = ref(undefined);
const date = ref();
const preSelectedWorker = ref([]);
@@ -598,6 +599,7 @@ function convertToTable(nodes: Node[]) {
quotationFormData.value.paySplitCount = Math.max(
...list.map((v) => v.installmentNo || 0),
);
+ tempPaySplitCount.value = quotationFormData.value.paySplitCount;
list.forEach((v) => {
v.amount = Math.max(selectedWorker.value.length, 1);
@@ -1168,6 +1170,9 @@ const view = ref(View.Quotation);
[
value: 'Split',
label: t('quotation.type.installmentsCash'),
},
+ {
+ value: 'SplitCustom',
+ label: t('quotation.type.installmentsCustomCash'),
+ },
]);
const amount4Show = ref([]);
@@ -160,12 +165,8 @@ function calculateInstallments(param: {
watch(
() => payType.value,
(v) => {
- if (!payType.value) return;
- if (v === 'Split' || v === 'BillSplit') {
- if (paySplitCount.value === 0) paySplitCount.value = 1;
- } else {
- paySplitCount.value = 0;
- paySplit.value = [];
+ if (v === 'Split' && props.paySplitFixed) {
+ paySplitCount.value = props.paySplitFixed;
}
},
);
@@ -177,8 +178,9 @@ watch(
paySplitCount.value === 0 ||
!paySplitCount.value ||
!summaryPrice.value.finalPrice
- )
+ ) {
return;
+ }
calculateInstallments({ newCount: newCount || 0, oldCount: oldCount || 0 });
},
{ deep: true },
@@ -218,7 +220,7 @@ watch(
@@ -239,7 +241,7 @@ watch(
0
? paySplit.filter((value) => installmentNo?.includes(value.no))
: paySplit"
:key="period.no"
@@ -268,7 +270,7 @@ watch(
>
{{ `${$t('quotation.periodNo')} ${i + 1}` }}
+