Validazione Partita IVA tramite Services
This commit is contained in:
parent
93f9e26826
commit
8d1f01e146
|
@ -135,7 +135,7 @@ switch (post('op')) {
|
|||
$partita_iva = is_numeric($partita_iva) ? $anagrafica->nazione->iso2.$partita_iva : $partita_iva;
|
||||
|
||||
$check_vat_number = Validate::isValidVatNumber($partita_iva);
|
||||
if (empty($check_vat_number)) {
|
||||
if (empty($check_vat_number['valid-format'])) {
|
||||
flash()->warning(tr('Attenzione: la partita IVA _IVA_ potrebbe non essere valida', [
|
||||
'_IVA_' => $partita_iva,
|
||||
]));
|
||||
|
|
|
@ -59,16 +59,31 @@ switch ($name) {
|
|||
|
||||
$partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value;
|
||||
|
||||
$result = $disponibile;
|
||||
$check = Validate::isValidVatNumber($partita_iva);
|
||||
if (empty($check)) {
|
||||
$message .= '. '.tr('Attenzione: la partita IVA _IVA_ potrebbe non essere valida', [
|
||||
'_IVA_' => $partita_iva,
|
||||
]);
|
||||
if (empty($check['valid-format'])) {
|
||||
$result = false;
|
||||
$errors[] = tr('La partita iva inserita non possiede un formato valido');
|
||||
}
|
||||
|
||||
if (empty($check['valid'])) {
|
||||
$result = false;
|
||||
$errors[] = tr("Impossibile verificare l'origine della partita iva");
|
||||
}
|
||||
|
||||
$message .= '. ';
|
||||
if (!empty($errors)) {
|
||||
$message .= tr('Attenzione').':<ul>';
|
||||
foreach ($errors as $error) {
|
||||
$message .= '<li>'.$error.'</li>';
|
||||
}
|
||||
$message .= '</ul>';
|
||||
}
|
||||
|
||||
$response = [
|
||||
'result' => $disponibile,
|
||||
'result' => $result,
|
||||
'message' => $message,
|
||||
'fields' => $check['fields'],
|
||||
];
|
||||
|
||||
break;
|
||||
|
@ -79,24 +94,29 @@ switch ($name) {
|
|||
['email', '<>', ''],
|
||||
['idanagrafica', '<>', $id_record],
|
||||
])->count() == 0;
|
||||
$result = $disponibile;
|
||||
|
||||
$message = $disponibile ? tr("L'email non è già inserita in una anagrafica") : tr("L'email è già utilizzata in un'altra anagrafica");
|
||||
|
||||
$result = $disponibile;
|
||||
$errors = [];
|
||||
$check = Validate::isValidEmail($value);
|
||||
if (is_bool($check)) {
|
||||
if (empty($check['valid-format'])) {
|
||||
$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");
|
||||
$errors[] = tr("L'email inserita non possiede un formato valido");
|
||||
}
|
||||
|
||||
if(empty($check['smtp_check'])){
|
||||
if (empty($check['smtp-check'])) {
|
||||
$result = false;
|
||||
$message .= '. '.tr("Attenzione: impossibile verificare l'origine dell'email");
|
||||
$errors[] = tr("Impossibile verificare l'origine dell'email");
|
||||
}
|
||||
|
||||
$message .= '. ';
|
||||
if (!empty($errors)) {
|
||||
$message .= tr('Attenzione').':<ul>';
|
||||
foreach ($errors as $error) {
|
||||
$message .= '<li>'.$error.'</li>';
|
||||
}
|
||||
$message .= '</ul>';
|
||||
}
|
||||
|
||||
$response = [
|
||||
|
|
|
@ -45,29 +45,20 @@ switch (post('op')) {
|
|||
// Validazione indirizzo email mittente
|
||||
$check_email = Validate::isValidEmail(post('from_address'));
|
||||
|
||||
// Se $check_email non è null e la riposta è negativa --> mostro il messaggio di avviso.
|
||||
if (!empty($check_email)) {
|
||||
// Controllo sulla validazione
|
||||
if (!empty($check_email['valid-format'])) {
|
||||
flash()->info(tr('Sintassi email verificata'));
|
||||
|
||||
if (is_object($check_email) && $check_email->smtp) {
|
||||
if ($check_email->smtp_check) {
|
||||
flash()->info(tr('SMTP email verificato'));
|
||||
} elseif (!$check_email->smtp_check) {
|
||||
flash()->warning(tr('SMTP email non verificato'));
|
||||
} else {
|
||||
flash()->error(tr("Attenzione: l'SMTP email _EMAIL_ sembra non essere valido", [
|
||||
'_EMAIL_' => $check_email->email,
|
||||
]));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
flash()->error(tr("Attenzione: l'indirizzo email _EMAIL_ sembra non essere valido", [
|
||||
'_EMAIL_' => $check_email->email,
|
||||
]));
|
||||
|
||||
if (is_object($check_email) && !empty($check_email->error->info)) {
|
||||
flash()->error($check_email->error->info);
|
||||
}
|
||||
|
||||
// Controllo sulla verifica
|
||||
if (!empty($check_email['smtp-check'])) {
|
||||
flash()->info(tr('SMTP email verificato'));
|
||||
} else {
|
||||
flash()->warning(tr('SMTP email non verificato'));
|
||||
}
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
|
|
|
@ -124,9 +124,7 @@ class HTMLWrapper implements WrapperInterface
|
|||
parent.removeClass("has-success").removeClass("has-error");
|
||||
icon.attr("class", "fa fa-question-circle");
|
||||
message.tooltipster("content", "'.tr('Validazione').'");
|
||||
}
|
||||
else{
|
||||
|
||||
} else {
|
||||
if(data.result) {
|
||||
icon.attr("class", "fa fa-check");
|
||||
parent.addClass("has-success").removeClass("has-error");
|
||||
|
@ -142,7 +140,8 @@ class HTMLWrapper implements WrapperInterface
|
|||
fields = data.fields;
|
||||
|
||||
Object.keys(fields).forEach(function(element) {
|
||||
$("[name=" + element + "]").val(fields[element]);
|
||||
var single_input = $("[name=" + element + "]");
|
||||
if (!single_input.val()) single_input.val(fields[element]);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -55,15 +55,15 @@ class Validate
|
|||
public static function isValidVatNumber($vat_number)
|
||||
{
|
||||
if (empty($vat_number)) {
|
||||
return true;
|
||||
$result['valid-format'] = true;
|
||||
}
|
||||
|
||||
// Controllo sulla sintassi
|
||||
if (starts_with($vat_number, 'IT') && !static::vatCheckIT($vat_number)) {
|
||||
return false;
|
||||
$result['valid-format'] = false;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
// Controllo con API europea ufficiale
|
||||
if (extension_loaded('soap')) {
|
||||
try {
|
||||
|
@ -77,64 +77,65 @@ class Validate
|
|||
} */
|
||||
|
||||
// Controllo attraverso apilayer
|
||||
$access_key = setting('apilayer API key for VAT number');
|
||||
if (!empty($access_key)) {
|
||||
if (!extension_loaded('curl')) {
|
||||
flash()->warning(tr('Estensione cURL non installata'));
|
||||
if (Services::isEnabled()) {
|
||||
$response = Services::request('post', 'check_iva', [
|
||||
'partita_iva' => $vat_number,
|
||||
]);
|
||||
$data = Services::responseBody($response);
|
||||
|
||||
return true;
|
||||
if (!empty($data['result'])) {
|
||||
$result['valid-format'] = $data['result']['format_valid'];
|
||||
$result['valid'] = $data['result']['valid'];
|
||||
|
||||
$fields = [];
|
||||
// Ragione sociale
|
||||
$fields['ragione_sociale'] = $data['result']['company_name'];
|
||||
|
||||
// Indirizzo
|
||||
$address = $data['result']['company_address'];
|
||||
$info = explode(PHP_EOL, $address);
|
||||
$fields['indirizzo'] = $info[0];
|
||||
|
||||
$info = explode(' ', $info[1]);
|
||||
$fields['cap'] = $info[0];
|
||||
$fields['citta'] = $info[1];
|
||||
$fields['provincia'] = $info[2];
|
||||
|
||||
$result['fields'] = $fields;
|
||||
}
|
||||
}
|
||||
|
||||
$ch = curl_init();
|
||||
|
||||
$qs = '&vat_number='.urlencode(strtoupper($vat_number));
|
||||
|
||||
$url = "http://apilayer.net/api/validate?access_key=$access_key".$qs;
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
$data = json_decode(curl_exec($ch));
|
||||
curl_close($ch);
|
||||
|
||||
/*se la riposta è null imposto la relativa proprietà dell'oggetto a 0*/
|
||||
if ($data->valid == null) {
|
||||
$data->valid = 0;
|
||||
}
|
||||
|
||||
return $data->valid;
|
||||
}
|
||||
|
||||
return true;
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Controlla se l'email inserita è valida.
|
||||
*
|
||||
* @param string $email
|
||||
* @param bool $smtp
|
||||
*
|
||||
* @return bool|object
|
||||
* @return array
|
||||
*/
|
||||
public static function isValidEmail($email, $smtp = 0)
|
||||
public static function isValidEmail($email)
|
||||
{
|
||||
$result = [];
|
||||
if (!v::email()->validate($email)) {
|
||||
return false;
|
||||
$result['valid-format'] = false;
|
||||
}
|
||||
|
||||
// Controllo attraverso apilayer
|
||||
if (Services::isEnabled()) {
|
||||
$response = Services::request('post', 'check_email', [
|
||||
'email' => $email,
|
||||
'smtp' => $smtp,
|
||||
'format' => 1,
|
||||
]);
|
||||
$data = Services::responseBody($response);
|
||||
|
||||
return $data['result'];
|
||||
if (!empty($data['result'])) {
|
||||
$result['valid-format'] = $data['result']['format_valid'];
|
||||
$result['smtp-check'] = $data['result']['smtp_check'];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function isValidTaxCode($codice_fiscale)
|
||||
|
|
Loading…
Reference in New Issue