From 33a3a929e1fec370dd74e9a852fb1af6df7ec4a3 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Tue, 25 Feb 2025 10:50:03 +0700 Subject: [PATCH] refactor: waning young worker --- .../QuotationFormWorkerSelect.vue | 45 ++++++++++++++++++- src/stores/quotations/types.ts | 2 +- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/pages/05_quotation/QuotationFormWorkerSelect.vue b/src/pages/05_quotation/QuotationFormWorkerSelect.vue index 9520092a..a3010e53 100644 --- a/src/pages/05_quotation/QuotationFormWorkerSelect.vue +++ b/src/pages/05_quotation/QuotationFormWorkerSelect.vue @@ -177,7 +177,7 @@ function setDefaultFormEmployee() { namePrefix: '', nationality: '', gender: '', - dateOfBirth: new Date(), + dateOfBirth: null, attachment: [], }; @@ -261,6 +261,49 @@ async function getWorkerFromCriteria( } watch(() => state.search, getWorkerList); + +watch( + () => formDataEmployee.value.dateOfBirth, + () => { + const age = calculateAge(formDataEmployee.value.dateOfBirth, 'year'); + if (formDataEmployee.value.dateOfBirth && Number(age) < 15) { + dialog({ + color: 'warning', + icon: 'mdi-alert', + title: t('dialog.title.youngWorker15'), + cancelText: t('general.edit'), + persistent: true, + message: t('dialog.message.youngWorker15'), + + cancel: async () => { + formDataEmployee.value.dateOfBirth = null; + return; + }, + }); + } + + if ( + formDataEmployee.value.dateOfBirth && + Number(age) > 15 && + Number(age) <= 18 + ) { + dialog({ + color: 'warning', + icon: 'mdi-alert', + title: t('dialog.title.youngWorker18'), + cancelText: t('general.cancel'), + actionText: t('general.confirm'), + persistent: true, + message: t('dialog.message.youngWorker18'), + action: () => {}, + cancel: async () => { + formDataEmployee.value.dateOfBirth = null; + return; + }, + }); + } + }, +);