From b249efca2a2372ad6503b4af1b7efddc973d1a93 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Mon, 11 Jan 2021 17:52:03 +0100 Subject: [PATCH] Fix validazione codice fiscale --- modules/anagrafiche/actions.php | 2 +- modules/anagrafiche/validation.php | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index ec793bb0a..277b9266b 100755 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -176,7 +176,7 @@ switch (post('op')) { } // Validazione del Codice Fiscale, solo per anagrafiche Private e Aziende, ignoro controllo se codice fiscale e settato uguale alla p.iva - if ($anagrafica->tipo != 'Ente pubblico' && !empty($anagrafica->codice_fiscale) && !empty($anagrafica->partita_iva) && $anagrafica->codice_fiscale != $anagrafica->partita_iva) { + if ($anagrafica->tipo != 'Ente pubblico' && !empty($anagrafica->codice_fiscale) && $anagrafica->codice_fiscale != $anagrafica->partita_iva) { $check_codice_fiscale = Validate::isValidTaxCode($codice_fiscale); if (empty($check_codice_fiscale)) { flash()->warning(tr('Attenzione: il codice fiscale _COD_ potrebbe non essere valido.', [ diff --git a/modules/anagrafiche/validation.php b/modules/anagrafiche/validation.php index 494807cea..f7abe9471 100755 --- a/modules/anagrafiche/validation.php +++ b/modules/anagrafiche/validation.php @@ -46,7 +46,7 @@ switch ($name) { ['idanagrafica', '<>', $id_record], ])->count() == 0; - $message = $disponibile ? tr('Il codice fiscale non è già inserito in una anagrafica') : tr("Il codice fiscale è già utilizzato in un'altra anagrafica"); + $message = $disponibile ? tr('Questo codice fiscale non è ancora stato utilizzato') : tr("Il codice fiscale è già utilizzato in un'altra anagrafica"); // Validazione del Codice Fiscale, solo per anagrafiche Private e Aziende, ignoro controllo se codice fiscale e settato uguale alla p.iva if (empty($anagrafica) || ($anagrafica->tipo != 'Ente pubblico' && $value != $anagrafica->partita_iva)) { @@ -55,6 +55,22 @@ switch ($name) { $message .= '. '.tr('Attenzione: il codice fiscale _COD_ potrebbe non essere valido', [ '_COD_' => $value, ]); + $disponibile = false; + } + } + + if($value == $anagrafica->partita_iva){ + $partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value; + $result = $disponibile; + $check = Validate::isValidVatNumber($partita_iva); + if (empty($check['valid-format'])) { + $disponibile = false; + $errors[] = tr('La partita iva inserita non possiede un formato valido'); + } + + if (isset($check['valid']) && empty($check['valid'])) { + $disponibile = false; + $errors[] = tr("Impossibile verificare l'origine della partita iva"); } } @@ -72,7 +88,7 @@ switch ($name) { ['idanagrafica', '<>', $id_record], ])->count() == 0; - $message = $disponibile ? tr('La partita iva non è già inserita in una anagrafica') : tr("La partita iva è già utilizzata in un'altra anagrafica"); + $message = $disponibile ? tr('Questa partita iva non è ancora stata utilizzata') : tr("La partita iva è già utilizzata in un'altra anagrafica"); $partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value; @@ -113,7 +129,7 @@ switch ($name) { ])->count() == 0; $result = $disponibile; - $message = $disponibile ? tr("L'email non è già inserita in una anagrafica") : tr("L'email è già utilizzata in un'altra anagrafica"); + $message = $disponibile ? tr("Questa email non è ancora stata utilizzata") : tr("L'email è già utilizzata in un'altra anagrafica"); $errors = []; $check = Validate::isValidEmail($value);