From ef3f2bea661afb2230221cbf009bd02ebca7e02d Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 22 Aug 2025 07:30:49 +0800 Subject: [PATCH] E-Invoice - Fix a problem reported by Sin Yee on MSIC field format not exactly 5 digits in some cases --- .../address/forms/EInvoiceInfoFormComponent.vue | 10 +++++++--- .../ChangeCustomerCompanyDetailsFormComponent.vue | 10 +++++++--- .../general/forms/ValidationErrorComponent.vue | 6 +++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/resources/assets/vue/components/address/forms/EInvoiceInfoFormComponent.vue b/resources/assets/vue/components/address/forms/EInvoiceInfoFormComponent.vue index 1393865a..f39a141f 100644 --- a/resources/assets/vue/components/address/forms/EInvoiceInfoFormComponent.vue +++ b/resources/assets/vue/components/address/forms/EInvoiceInfoFormComponent.vue @@ -158,11 +158,15 @@ } function notZero(value) { - return value !== 0 && value !== '0' && value !== null && value !== undefined + return value !== 0 && value !== '0' && value !== null && value !== undefined; } function fiveDigits(value) { - return /^\d{5}$/.test(value) + return /^\d{5}$/.test(value); + } + + function allowZeroOrFiveDigits(value) { + return Number(value) === 0 || /^\d{5}$/.test(value); } export default { @@ -246,7 +250,7 @@ }, msic_code: companyType === 1 ? { notZero, fiveDigits - }: {}, + } : { allowZeroOrFiveDigits }, } } }, diff --git a/resources/assets/vue/components/companies/forms/ChangeCustomerCompanyDetailsFormComponent.vue b/resources/assets/vue/components/companies/forms/ChangeCustomerCompanyDetailsFormComponent.vue index 96d3abbe..f4997a34 100644 --- a/resources/assets/vue/components/companies/forms/ChangeCustomerCompanyDetailsFormComponent.vue +++ b/resources/assets/vue/components/companies/forms/ChangeCustomerCompanyDetailsFormComponent.vue @@ -118,11 +118,15 @@ } function notZero(value) { - return value !== 0 && value !== '0' && value !== null && value !== undefined + return value !== 0 && value !== '0' && value !== null && value !== undefined; } function fiveDigits(value) { - return /^\d{5}$/.test(value) + return /^\d{5}$/.test(value); + } + + function allowZeroOrFiveDigits(value) { + return Number(value) === 0 || /^\d{5}$/.test(value); } export default { @@ -181,7 +185,7 @@ : {}, msic_code: isEInvoiceEnabled && companyType === 1 ? { notZero, fiveDigits - }: {}, + }: { allowZeroOrFiveDigits }, address_id: {}, street_one: isEInvoiceEnabled ? { required } : {}, diff --git a/resources/assets/vue/components/general/forms/ValidationErrorComponent.vue b/resources/assets/vue/components/general/forms/ValidationErrorComponent.vue index 37223319..24538c48 100644 --- a/resources/assets/vue/components/general/forms/ValidationErrorComponent.vue +++ b/resources/assets/vue/components/general/forms/ValidationErrorComponent.vue @@ -10,6 +10,9 @@ {{ errorMessages[param] }} + + {{ errorMessages[param] }} + @@ -31,7 +34,8 @@ sameAs: 'this field must match the', maxValue: 'this value must not exceeds', alphaNum: 'this value must be alphanumeric', - fiveDigits: 'this value must be exactly 5 digits', //custom + fiveDigits: 'this value must be exactly 5 digits', + allowZeroOrFiveDigits: 'this value must be exactly 5 digits or 0', // notZero: 'this value cannot be zero', }, }