From b564b13ef303972b89789e3c959060ea14f9c10b Mon Sep 17 00:00:00 2001 From: loviuz Date: Tue, 13 Jun 2023 14:47:19 +0200 Subject: [PATCH] Completamento validazione partita iva per nazione --- modules/anagrafiche/add.php | 25 +++++++++++++++++++------ modules/anagrafiche/validation.php | 4 ++++ src/HTMLBuilder/Wrapper/HTMLWrapper.php | 1 + 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/modules/anagrafiche/add.php b/modules/anagrafiche/add.php index ecda9fa50..70e01ea7b 100755 --- a/modules/anagrafiche/add.php +++ b/modules/anagrafiche/add.php @@ -17,8 +17,12 @@ * along with this program. If not, see . */ +use Modules\Anagrafiche\Nazione; + include_once __DIR__.'/../../core.php'; +$id_nazione_italia = Nazione::where('nome', 'Italia')->first()->id; + if (get('tipoanagrafica') != '') { $rs = $dbo->fetchArray('SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='.prepare(get('tipoanagrafica'))); $idtipoanagrafica = $rs[0]['idtipoanagrafica']; @@ -62,7 +66,7 @@ echo '
- {[ "type": "text", "label": "'.tr('Partita IVA').'", "maxlength": 16, "name": "piva", "class": "text-center alphanumeric-mask", "validation": "partita_iva"]} + {[ "type": "text", "label": "'.tr('Partita IVA').'", "maxlength": 16, "name": "piva", "id": "piva_add", "class": "text-center alphanumeric-mask", "validation": "partita_iva"]}
@@ -95,7 +99,7 @@ echo '
- {[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "id": "id_nazione_add", "values": "query=SELECT id AS id, CONCAT_WS(\' - \', iso2, nome) AS descrizione FROM an_nazioni ORDER BY CASE WHEN iso2=\'IT\' THEN -1 ELSE iso2 END" ]} + {[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "id": "id_nazione_add", "values": "query=SELECT id AS id, CONCAT_WS(\' - \', iso2, nome) AS descrizione, iso2 FROM an_nazioni ORDER BY CASE WHEN iso2=\'IT\' THEN -1 ELSE iso2 END", "value": "'.$id_nazione_italia.'" ]}
@@ -167,10 +171,19 @@ echo ' }); id_nazione.change(function() { - if ((id_nazione.getData().descrizione === 'IT - Italia') || (id_nazione.getData().descrizione === 'SM - San Marino')) { - input("codice_destinatario").enable(); - }else{ - input("codice_destinatario").disable(); + if (id_nazione.get() !== null) { + if ((id_nazione.getData().iso2 === 'IT') || (id_nazione.getData().iso2 === 'SM')) { + input("codice_destinatario").enable(); + }else{ + input("codice_destinatario").disable(); + } + + // Aggiunta nazione come parametro aggiuntivo per la validazione partita iva + $("#piva_add").data("additional", $(this).selectData().iso2); } }); + + $(document).ready( function(){ + id_nazione.trigger('change'); + }); diff --git a/modules/anagrafiche/validation.php b/modules/anagrafiche/validation.php index aa71db025..5d025247c 100755 --- a/modules/anagrafiche/validation.php +++ b/modules/anagrafiche/validation.php @@ -92,6 +92,10 @@ switch ($name) { $partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value; + if (post('additional_param')) { + $partita_iva = post('additional_param').$partita_iva; + } + $result = $disponibile; $check = Validate::isValidVatNumber($partita_iva); if (empty($check['valid-format'])) { diff --git a/src/HTMLBuilder/Wrapper/HTMLWrapper.php b/src/HTMLBuilder/Wrapper/HTMLWrapper.php index 253c4bf7c..d4efe446c 100755 --- a/src/HTMLBuilder/Wrapper/HTMLWrapper.php +++ b/src/HTMLBuilder/Wrapper/HTMLWrapper.php @@ -143,6 +143,7 @@ class HTMLWrapper implements WrapperInterface name: "'.$name.'", value: value, op: "validate", + additional_param: input.data("additional") }, success: function(data) { data = JSON.parse(data);