From 66b7996c861e4949dad5838f0c668bf129b587dd Mon Sep 17 00:00:00 2001 From: sparkyx Date: Tue, 30 Dec 2025 15:49:23 +0100 Subject: [PATCH] Improve check VAT Number --- include/XMLDocument/error_message.class.php | 4 ++-- include/XMLDocument/invoiceubl21.class.php | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/XMLDocument/error_message.class.php b/include/XMLDocument/error_message.class.php index 72f80b71f..b257b8d73 100644 --- a/include/XMLDocument/error_message.class.php +++ b/include/XMLDocument/error_message.class.php @@ -85,7 +85,7 @@ class Error_Message , 'MY_NAME' => _("Nom de la société") , 'MY_STREET' => _("Adresse de la société") , 'MY_CITY' => _("Ville") - , 'MY_TVA' => _("Numéro de TVA") + , 'MY_TVA' => _("Numéro de TVA, vide ou invalide, il doit commencer par les 2 lettres du code pays") , 'SIREN'=> 'SIREN' // , 'SIRET'=> 'SIRET' ); @@ -95,7 +95,7 @@ class Error_Message , 'postalzone' => _("Code postal") , 'city' => _("Ville") , 'country'=>_("Code pays") - , 'customer_vat_id' => _("Numéro de TVA") + , 'customer_vat_id' => _("Numéro de TVA, vide ou invalide, il doit commencer par les 2 lettres du code pays") , 'endpoint_id' => _('Identifiant PEPPOL') // here 9925:BE.... ); diff --git a/include/XMLDocument/invoiceubl21.class.php b/include/XMLDocument/invoiceubl21.class.php index 998ddeb76..9abd51928 100644 --- a/include/XMLDocument/invoiceubl21.class.php +++ b/include/XMLDocument/invoiceubl21.class.php @@ -137,6 +137,10 @@ class InvoiceUBL21 extends XMLInvoice { } } + if ( isset ($company['MY_TVA']) && preg_match('/([a-z][A-Z]){2}/',$company['MY_TVA']) == false ) + { + $a_error[]="MY_TVA"; + } return $a_error; } /** @@ -164,13 +168,18 @@ class InvoiceUBL21 extends XMLInvoice { list($scheme_id,$peppol)=explode(":", $this->data['customer'][$value]); if (preg_replace('/[0-9]/', '', $scheme_id) != "") { - $a_error[]=ATTR_DEF_PEPPOLID; + $a_error[]='endpoint_id'; }elseif(\noalyss_trim($peppol) =="") { - $a_error[]=ATTR_DEF_PEPPOLID; + $a_error[]='endpoint_id'; } } + if ( $this->data['customer']["customer_vat_id"] != "" && preg_match('/([a-z][A-Z]){2}/',$this->data['customer']["customer_vat_id"] ) == false) + { + $a_error[]='customer_vat_id'; + + } return $a_error; }