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)