From d2a2b2a8c6f0ee7981b303deeef5eb162364dd58 Mon Sep 17 00:00:00 2001 From: Vivek Sharma Date: Sat, 8 Feb 2020 12:59:08 +0530 Subject: [PATCH] [Fixed: issue #2384 has been resolved.] --- .../Customer/src/Rules/VatValidator.php | 19 +++++++++++++++++-- .../Webkul/Shop/src/Resources/lang/en/app.php | 1 + .../account/address/create.blade.php | 4 +++- .../customers/account/address/edit.blade.php | 4 +++- .../account/address/create.blade.php | 4 +++- .../customers/account/address/edit.blade.php | 4 +++- 6 files changed, 30 insertions(+), 6 deletions(-) diff --git a/packages/Webkul/Customer/src/Rules/VatValidator.php b/packages/Webkul/Customer/src/Rules/VatValidator.php index 5e68ddb21..12e4370fa 100644 --- a/packages/Webkul/Customer/src/Rules/VatValidator.php +++ b/packages/Webkul/Customer/src/Rules/VatValidator.php @@ -22,6 +22,7 @@ class VatValidator */ protected static $pattern_expression = array( 'AT' => 'U[A-Z\d]{8}', + 'AE' => '\d{15}', 'BE' => '(0\d{9}|\d{10})', 'BG' => '\d{9,10}', 'CY' => '\d{8}[A-Z]', @@ -50,6 +51,7 @@ class VatValidator 'SE' => '\d{12}', 'SI' => '\d{8}', 'SK' => '\d{10}', + 'JP' => '\d{12}|\d{13}', ); /** @@ -61,14 +63,14 @@ class VatValidator */ public function validate(string $vatNumber): bool { - $country = request()->input('country'); $vatNumber = $this->vatCleaner($vatNumber); + list($country, $number) = $this->splitVat($vatNumber); if (! isset(self::$pattern_expression[$country])) { return false; } - return preg_match('/^' . self::$pattern_expression[$country] . '$/', $vatNumber) > 0; + return preg_match('/^' . self::$pattern_expression[$country] . '$/', $number) > 0; } /** @@ -81,4 +83,17 @@ class VatValidator $vatNumber_no_spaces = trim($vatNumber); return strtoupper($vatNumber_no_spaces); } + + /** + * @param string $vatNumber + * + * @return array + */ + private function splitVat(string $vatNumber): array + { + return [ + substr($vatNumber, 0, 2), + substr($vatNumber, 2), + ]; + } } diff --git a/packages/Webkul/Shop/src/Resources/lang/en/app.php b/packages/Webkul/Shop/src/Resources/lang/en/app.php index dc8cd1a12..76bfbdbaf 100755 --- a/packages/Webkul/Shop/src/Resources/lang/en/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/en/app.php @@ -227,6 +227,7 @@ return [ 'first_name' => 'First name', 'last_name' => 'Last name', 'vat_id' => 'Vat id', + 'vat_help_note' => '[Note: Use Country Code with VAT Id. Eg. INV01234567891]', 'title' => 'Add Address', 'street-address' => 'Street Address', 'country' => 'Country', diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php index bf321cfe5..82a649047 100755 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php @@ -45,7 +45,9 @@
- + @{{ errors.first('vat_id') }} diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php index 98dba6269..1a42f2476 100755 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php @@ -46,7 +46,9 @@
- + @{{ errors.first('vat_id') }} diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php index ab6ac63d4..c87d3edca 100644 --- a/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php @@ -39,7 +39,9 @@
- + @{{ errors.first('vat_id') }}
diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/edit.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/edit.blade.php index 02a5ceeb3..8be94aeef 100644 --- a/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/edit.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/edit.blade.php @@ -43,7 +43,9 @@
- + @{{ errors.first('vat_id') }}