Potenziamento ricerca corrispondenza tra anagrafiche in fase di importazione fattura di acquisto

This commit is contained in:
Luca 2022-11-24 21:34:14 +01:00
parent be9b0aef57
commit 2395970bad
2 changed files with 35 additions and 4 deletions

View File

@ -146,7 +146,7 @@ echo '
<h4> <h4>
'.$ragione_sociale.' '.$ragione_sociale.'
'.(empty($anagrafica) ? '<span class="badge badge-success">'.tr('Nuova anagrafica').'</span>' : '<small>'.Modules::link('Anagrafiche', $anagrafica->id, '', null, '')).'</small><br> '.(empty($anagrafica) ? '<span class="badge bg-orange">'.tr('Nuova anagrafica').'</span>' : '<small>'.Modules::link('Anagrafiche', $anagrafica->id, '', null, '').'</small>').'<br>
<small> <small>
'.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '').' '.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '').'

View File

@ -213,13 +213,44 @@ class FatturaElettronica
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) { if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
$anagrafica->where('piva', $info['partita_iva']) $anagrafica->where('piva', $info['partita_iva'])
->orWhere('codice_fiscale', $info['codice_fiscale']); ->orWhere('codice_fiscale', $info['codice_fiscale'])
->orWhere('piva', 'like', '__'.$info['partita_iva'])
->orwhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
} elseif (!empty($info['codice_fiscale'])) { } elseif (!empty($info['codice_fiscale'])) {
$anagrafica->where('codice_fiscale', $info['codice_fiscale']); $anagrafica->where('codice_fiscale', $info['codice_fiscale'])
->orWhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
} elseif (!empty($info['partita_iva'])) { } elseif (!empty($info['partita_iva'])) {
$anagrafica->where('piva', $info['partita_iva']); $anagrafica->where('piva', $info['partita_iva'])
->orWhere('piva', 'like', '__'.$info['partita_iva']);
} }
//Se non trovo l'anagrafica tra i fornitori, provo a ricercarla anche tra i clienti
if (empty($anagrafica->first())){
$type = 'Cliente';
$tipologia = TipoAnagrafica::where('descrizione', $type)->first();
$anagrafica = Anagrafica::whereHas('tipi', function ($query) use ($tipologia) {
$query->where('an_tipianagrafiche.idtipoanagrafica', '=', $tipologia->id);
});
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
$anagrafica->where('piva', $info['partita_iva'])
->orWhere('codice_fiscale', $info['codice_fiscale'])
->orWhere('piva', 'like', '__'.$info['partita_iva'])
->orwhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
} elseif (!empty($info['codice_fiscale'])) {
$anagrafica->where('codice_fiscale', $info['codice_fiscale'])
->orWhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
} elseif (!empty($info['partita_iva'])) {
$anagrafica->where('piva', $info['partita_iva'])
->orWhere('piva', 'like', '__'.$info['partita_iva']);
}
}
return $anagrafica->first(); return $anagrafica->first();
} }