diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index 05f43aa0d..42de495e6 100644 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -107,7 +107,7 @@ if (!$is_cliente) {
- {[ "type": "text", "label": "", "name": "pec", "class": "email-mask", "placeholder":"pec@dominio.ext", "value": "$pec$", "icon-before": "" ]} + {[ "type": "text", "label": "", "name": "pec", "class": "email-mask", "placeholder":"pec@dominio.ext", "value": "$pec$", "icon-before": "", "validation": "email" ]}
@@ -173,7 +173,7 @@ if (!$is_cliente) {
- {[ "type": "text", "label": "", "name": "email", "class": "email-mask", "placeholder":"casella@dominio.ext", "value": "$email$", "icon-before": "" ]} + {[ "type": "text", "label": "", "name": "email", "class": "email-mask", "placeholder": "casella@dominio.ext", "value": "$email$", "icon-before": "", "validation": "email" ]}
diff --git a/modules/anagrafiche/validation.php b/modules/anagrafiche/validation.php index 905385607..994f97bb1 100644 --- a/modules/anagrafiche/validation.php +++ b/modules/anagrafiche/validation.php @@ -55,7 +55,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 altro articolo'); + $message = $disponibile ? tr('La partita iva non è già inserita in una anagrafica') : tr("La partita iva è già utilizzata in un'altra anagrafica"); $partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value; @@ -71,5 +71,38 @@ switch ($name) { 'message' => $message, ]; + break; + + case 'email': + $disponibile = Anagrafica::where([ + ['email', $value], + ['email', '<>', ''], + ['idanagrafica', '<>', $id_record], + ])->count() == 0; + + $message = $disponibile ? tr("L'email non è già inserita in una anagrafica") : tr("L'email è già utilizzata in un'altra anagrafica"); + + $result = $disponibile; + $check = Validate::isValidEmail($value); + if (is_bool($check)) { + $result = false; + $message .= '. '.tr("Attenzione: l'email inserita non possiede un formato valido"); + }else { + if(empty($check['format_valid'])){ + $result = false; + $message .= '. '.tr("Attenzione: l'email inserita non possiede un formato valido"); + } + + if(empty($check['smtp_check'])){ + $result = false; + $message .= '. '.tr("Attenzione: impossibile verificare l'origine dell'email"); + } + } + + $response = [ + 'result' => $result, + 'message' => $message, + ]; + break; } diff --git a/src/Validate.php b/src/Validate.php index 392a83bbb..e297f19dc 100644 --- a/src/Validate.php +++ b/src/Validate.php @@ -124,32 +124,17 @@ class Validate // Controllo attraverso apilayer if (Services::isEnabled()) { - $response = Services::request('get', 'check_email', [ + $response = Services::request('post', 'check_email', [ 'email' => $email, 'smtp' => $smtp, 'format' => 1, ]); $data = Services::responseBody($response); - /*se la riposta è null verificando il formato, il record mx o il server smtp imposto la relativa proprietà dell'oggetto a 0*/ - if ($data['format_valid'] == null) { - $data['format_valid'] = 0; - } - - if ($data['mx_found'] == null && $smtp) { - $data['mx_found'] = 0; - } - - if ($data['smtp_check'] == null && $smtp) { - $data['smtp_check'] = 0; - } - - $data['smtp'] = $smtp; - - return empty($data['format_valid']) ? false : $data; + return $data['result']; } - return true; + return null; } public static function isValidTaxCode($codice_fiscale)