This commit is contained in:
parent
00f9b5f4c4
commit
d53eb15a88
5 changed files with 254 additions and 140 deletions
|
|
@ -209,47 +209,7 @@ const selectedWorker = ref<
|
|||
}[];
|
||||
})[]
|
||||
>([]);
|
||||
const selectedWorkerItem = computed(() => {
|
||||
return [
|
||||
...selectedWorker.value.map((e) => ({
|
||||
foreignRefNo: e.employeePassport
|
||||
? e.employeePassport[0]?.number || '-'
|
||||
: '-',
|
||||
employeeName:
|
||||
locale.value === Lang.English
|
||||
? `${e.firstNameEN} ${e.lastNameEN}`
|
||||
: `${e.firstName || e.firstNameEN} ${e.lastName || e.lastNameEN}`,
|
||||
birthDate: dateFormatJS({ date: e.dateOfBirth }),
|
||||
gender: e.gender,
|
||||
age: calculateAge(e.dateOfBirth),
|
||||
nationality: optionStore.mapOption(e.nationality),
|
||||
documentExpireDate:
|
||||
e.employeePassport !== undefined &&
|
||||
e.employeePassport[0]?.expireDate !== undefined
|
||||
? dateFormatJS({ date: e.employeePassport[0]?.expireDate })
|
||||
: '-',
|
||||
imgUrl: e.selectedImage
|
||||
? `${API_BASE_URL}/employee/${e.id}/image/${e.selectedImage}`
|
||||
: '',
|
||||
status: e.status,
|
||||
})),
|
||||
|
||||
...newWorkerList.value.map((v: any) => ({
|
||||
foreignRefNo: v.passportNo || '-',
|
||||
employeeName:
|
||||
locale.value === Lang.English
|
||||
? `${v.firstNameEN} ${v.lastNameEN}`
|
||||
: `${v.firstName || v.firstNameEN} ${v.lastName || v.lastNameEN}`,
|
||||
birthDate: dateFormatJS({ date: v.dateOfBirth }),
|
||||
gender: v.gender,
|
||||
age: calculateAge(v.dateOfBirth),
|
||||
nationality: optionStore.mapOption(v.nationality),
|
||||
documentExpireDate: '-',
|
||||
imgUrl: '',
|
||||
status: 'CREATED',
|
||||
})),
|
||||
];
|
||||
});
|
||||
const selectedWorkerItem = ref([]);
|
||||
|
||||
const selectedInstallmentNo = ref<number[]>([]);
|
||||
const installmentAmount = ref<number>(0);
|
||||
|
|
@ -374,7 +334,39 @@ function assignProductServiceList() {
|
|||
|
||||
function assignSelectedWorker() {
|
||||
if (debitNoteData.value)
|
||||
selectedWorker.value = debitNoteData.value.worker.map((v) => v.employee);
|
||||
selectedWorkerItem.value = debitNoteData.value.worker.map((e) => {
|
||||
return {
|
||||
id: e.employee.id,
|
||||
foreignRefNo: e.employee.employeePassport
|
||||
? e.employee.employeePassport[0]?.number || '-'
|
||||
: '-',
|
||||
employeeName:
|
||||
locale.value === Lang.English
|
||||
? `${e.employee.firstNameEN} ${e.employee.lastNameEN}`
|
||||
: `${e.employee.firstName || e.employee.firstNameEN} ${e.employee.lastName || e.employee.lastNameEN}`,
|
||||
birthDate: dateFormatJS({ date: e.employee.dateOfBirth }),
|
||||
gender: e.employee.gender,
|
||||
age: calculateAge(e.employee.dateOfBirth),
|
||||
nationality: optionStore.mapOption(e.employee.nationality),
|
||||
documentExpireDate:
|
||||
e.employee.employeePassport !== undefined &&
|
||||
e.employee.employeePassport[0]?.expireDate !== undefined
|
||||
? dateFormatJS({ date: e.employee.employeePassport[0]?.expireDate })
|
||||
: '-',
|
||||
imgUrl: e.employee.selectedImage
|
||||
? `${API_BASE_URL}/employee/${e.id}/image/${e.employee.selectedImage}`
|
||||
: '',
|
||||
status: e.employee.status,
|
||||
workerNew: false,
|
||||
lastNameEN: e.employee.lastNameEN,
|
||||
lastName: e.employee.lastName,
|
||||
middleNameEN: e.employee.middleNameEN,
|
||||
middleName: e.employee.middleName,
|
||||
firstNameEN: e.employee.firstNameEN,
|
||||
firstName: e.employee.firstName,
|
||||
namePrefix: e.employee.namePrefix,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
async function assignFormData(id: string) {
|
||||
|
|
@ -540,8 +532,6 @@ function getPrice(
|
|||
) {
|
||||
if (filterHook) list = list.filter(filterHook);
|
||||
|
||||
console.log(list);
|
||||
|
||||
return list.reduce(
|
||||
(a, c) => {
|
||||
if (
|
||||
|
|
@ -815,15 +805,11 @@ async function submit() {
|
|||
|
||||
worker: JSON.parse(
|
||||
JSON.stringify([
|
||||
...selectedWorker.value.map((v) => {
|
||||
...selectedWorkerItem.value.map((v) => {
|
||||
{
|
||||
return v.id;
|
||||
}
|
||||
}),
|
||||
...newWorkerList.value.map((v) => {
|
||||
const { attachment, ...payload } = v;
|
||||
return pageState.mode === 'edit' ? payload.id : payload;
|
||||
}),
|
||||
]),
|
||||
),
|
||||
dueDate: currentFormData.value.dueDate,
|
||||
|
|
@ -902,7 +888,7 @@ function storeDataLocal() {
|
|||
dueDate: currentFormData.value.dueDate,
|
||||
},
|
||||
productServicelist: productService.value,
|
||||
selectedWorker: selectedWorker.value,
|
||||
selectedWorker: selectedWorkerItem.value,
|
||||
createdBy: getName(),
|
||||
},
|
||||
}),
|
||||
|
|
@ -927,6 +913,69 @@ function closeAble() {
|
|||
return window.opener !== null;
|
||||
}
|
||||
|
||||
function combineWorker(newWorker: any, oldWorker: any) {
|
||||
selectedWorkerItem.value = [
|
||||
...oldWorker.map((e) => ({
|
||||
id: e.id,
|
||||
foreignRefNo: e.employeePassport
|
||||
? e.employeePassport[0]?.number || '-'
|
||||
: '-',
|
||||
employeeName:
|
||||
locale.value === Lang.English
|
||||
? `${e.firstNameEN} ${e.lastNameEN}`
|
||||
: `${e.firstName || e.firstNameEN} ${e.lastName || e.lastNameEN}`,
|
||||
birthDate: dateFormatJS({ date: e.dateOfBirth }),
|
||||
gender: e.gender,
|
||||
age: calculateAge(e.dateOfBirth),
|
||||
nationality: optionStore.mapOption(e.nationality),
|
||||
documentExpireDate:
|
||||
e.employeePassport !== undefined &&
|
||||
e.employeePassport[0]?.expireDate !== undefined
|
||||
? dateFormatJS({ date: e.employeePassport[0]?.expireDate })
|
||||
: '-',
|
||||
imgUrl: e.selectedImage
|
||||
? `${API_BASE_URL}/employee/${e.id}/image/${e.selectedImage}`
|
||||
: '',
|
||||
status: e.status,
|
||||
workerNew: false,
|
||||
lastNameEN: e.lastNameEN,
|
||||
lastName: e.lastName,
|
||||
middleNameEN: e.middleNameEN,
|
||||
middleName: e.middleName,
|
||||
firstNameEN: e.firstNameEN,
|
||||
firstName: e.firstName,
|
||||
namePrefix: e.namePrefix,
|
||||
})),
|
||||
|
||||
...newWorker.map((v: any) => ({
|
||||
id: v.id,
|
||||
foreignRefNo: v.passportNo || '-',
|
||||
employeeName:
|
||||
locale.value === Lang.English
|
||||
? `${v.firstNameEN} ${v.lastNameEN}`
|
||||
: `${v.firstName || v.firstNameEN} ${v.lastName || v.lastNameEN}`,
|
||||
birthDate: dateFormatJS({ date: v.dateOfBirth }),
|
||||
gender: v.gender,
|
||||
age: calculateAge(v.dateOfBirth),
|
||||
nationality: optionStore.mapOption(v.nationality),
|
||||
documentExpireDate: '-',
|
||||
imgUrl: '',
|
||||
status: 'CREATED',
|
||||
|
||||
lastNameEN: v.lastNameEN,
|
||||
lastName: v.lastName,
|
||||
middleNameEN: v.middleNameEN,
|
||||
middleName: v.middleName,
|
||||
firstNameEN: v.firstNameEN,
|
||||
firstName: v.firstName,
|
||||
namePrefix: v.namePrefix,
|
||||
|
||||
dateOfBirth: v.dateOfBirth,
|
||||
workerNew: true,
|
||||
})),
|
||||
];
|
||||
}
|
||||
|
||||
watch(
|
||||
() => pageState.mode,
|
||||
() => toggleMode(pageState.mode),
|
||||
|
|
@ -1111,7 +1160,7 @@ async function submitAccepted() {
|
|||
"
|
||||
:row-worker="selectedWorkerItem"
|
||||
@add-worker="() => (pageState.employeeModal = true)"
|
||||
@delete="(i) => deleteItem(selectedWorker, i)"
|
||||
@delete="(i) => deleteItem(selectedWorkerItem, i)"
|
||||
/>
|
||||
|
||||
<!-- #TODO add openProductDialog at @add-product-->
|
||||
|
|
@ -1376,13 +1425,12 @@ async function submitAccepted() {
|
|||
<!-- add employee quotation -->
|
||||
|
||||
<QuotationFormWorkerSelect
|
||||
:preselect-worker="selectedWorker"
|
||||
:preselect-worker="selectedWorkerItem"
|
||||
:customerBranchId="quotationData?.customerBranchId"
|
||||
v-model:open="pageState.employeeModal"
|
||||
v-model:new-worker-list="newWorkerList"
|
||||
@success="
|
||||
(v) => {
|
||||
selectedWorker = v.worker;
|
||||
combineWorker(v.newWorker, v.worker);
|
||||
}
|
||||
"
|
||||
/>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue