. */ include_once __DIR__.'/../../core.php'; use Modules\Anagrafiche\Anagrafica; $name = filter('name'); $value = filter('value'); switch ($name) { case 'codice': $disponibile = Anagrafica::where([ ['codice', $value], ['idanagrafica', '<>', $id_record], ])->count() == 0; $message = $disponibile ? ' '.tr('Il codice anagrafica è disponibile.') : ' '.tr("Il codice anagrafica è già utilizzato in un'altra anagrafica."); $response = [ 'result' => $disponibile, 'message' => $message, ]; break; case 'codice_fiscale': $disponibile = Anagrafica::where([ ['codice_fiscale', $value], ['codice_fiscale', '<>', ''], ['idanagrafica', '<>', $id_record], ])->count() == 0; $message = $disponibile ? ' '.tr('Questo codice fiscale non è ancora stato utilizzato.') : ' '. tr("Il codice fiscale è già utilizzato in un'altra anagrafica."); // Validazione del Codice Fiscale // Se anagrafica non ancora definita OPPURE Se il codice fiscale è diverso dalla partita iva ma solo per anagrafiche Private e Aziende. if (empty($anagrafica) || ($anagrafica->tipo != 'Ente pubblico' && $value != $anagrafica->partita_iva)) { $check = Validate::isValidTaxCode($value); if (empty($check)) { $disponibile = false; $message .= '
'.tr('Il codice fiscale _COD_ non possiede un formato valido.', [ '_COD_' => $value, ]); } } // Se il codice fiscale è uguale alla partiva iva 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 _COD_ non possiede un formato valido.', [ '_COD_' => $partita_iva, ]); } if (isset($check['valid']) && empty($check['valid'])) { $disponibile = false; $errors[] = tr("Impossibile verificare l'origine della partita iva."); } } $response = [ 'result' => $disponibile, 'message' => $message, ]; break; case 'codice_intermediario': if (!empty($anagrafica)){ $value = trim($value); switch ($anagrafica->tipo) { case "Azienda": case "Privato": $valido = (strlen($value) === 7 ? true : false); break; case "Ente pubblico": $valido = (strlen($value) === 6 ? true : false); break; default: $valido = true; break; } } $message = $valido ? ' '.tr('Il codice intermediario è valido.') : ' '.tr("Il codice intermediario non sembra essere valido."); $response = [ 'result' => $valido, 'message' => $message, ]; break; case 'partita_iva': $disponibile = Anagrafica::where([ ['piva', $value], ['piva', '<>', ''], ['idanagrafica', '<>', $id_record], ])->count() == 0; $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; if (post('additional_param')) { $partita_iva = post('additional_param').$partita_iva; } $result = $disponibile; $check = Validate::isValidVatNumber($partita_iva); if (empty($check['valid-format'])) { $result = false; $errors[] = tr('La partita iva _COD_ non possiede un formato valido.', [ '_COD_' => $partita_iva, ]); } if (isset($check['valid']) && empty($check['valid'])) { $result = false; $errors[] = tr("Impossibile verificare l'origine della partita iva."); } $message .= '. '; if (!empty($errors)) { $message .= '
'.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':'; } $response = [ 'result' => $result, 'message' => $message, 'fields' => $check['fields'], ]; break; case 'email': $disponibile = Anagrafica::where([ ['email', $value], ['email', '<>', ''], ['idanagrafica', '<>', $id_record], ])->count() == 0; $result = $disponibile; $message = $disponibile ? ' '.tr('Questa email non è ancora stata utilizzata') : ' '.tr("L'email è già utilizzata in un'altra anagrafica"); $errors = []; $check = Validate::isValidEmail($value); if (empty($check['valid-format'])) { $result = false; $errors[] = tr("L'email _COD_ non possiede un formato valido.", [ '_COD_' => $value, ]); } if (isset($check['smtp-check']) && empty($check['smtp-check'])) { $result = false; $errors[] = tr("Impossibile verificare l'origine dell'email."); } $message .= '. '; if (!empty($errors)) { $message .= '
'.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':'; } $response = [ 'result' => $result, 'message' => $message, ]; break; }