1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

Fix importazione anagrafica fattura di acquisto

This commit is contained in:
valentina
2024-09-04 11:27:35 +02:00
parent 15c4edd9ed
commit 9b7f4b4c3b
2 changed files with 13 additions and 30 deletions

View File

@@ -24,21 +24,21 @@ use Plugins\ImportFE\Interaction;
if (!empty($id_record)) {
$files = Interaction::getFileList();
$record = $files[$id_record - 1];
$record = $files[$id_record - 1] ?? null;
$has_next = isset($files[$id_record]);
try {
$fattura_pa = FatturaElettronica::manage($record['name']);
$fattura_pa = FatturaElettronica::manage($record['name'] ?? '');
$anagrafica = $fattura_pa->findAnagrafica();
} catch (UnexpectedValueException) {
} catch (UnexpectedValueException $e) {
$imported = true;
} catch (Exception) {
} catch (Exception $e) {
$error = true;
}
// Rimozione .p7m dal nome del file (causa eventuale estrazione da ZIP)
$record['name'] = preg_replace('/(.+)\.p7m$/i', '{1}', $record['name']);
$record['name'] = preg_replace('/(.+)\.p7m$/i', '$1', $record['name'] ?? '');
if (empty($record)) {
flash()->warning(tr('Nessuna fattura da importare!'));

View File

@@ -206,44 +206,27 @@ class FatturaElettronica
{
$info = $this->getAnagrafe();
$anagrafica = Anagrafica::where('tipo', $type);
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
$anagrafica->where('piva', $info['partita_iva'])
$anagrafica = 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'])
$anagrafica = 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'])
$anagrafica = Anagrafica::where('piva', $info['partita_iva'])
->orWhere('piva', 'like', '__'.$info['partita_iva']);
}
$anagrafica = $anagrafica->get();
$anagrafica = $anagrafica->first();
// Se non trovo l'anagrafica tra i fornitori, provo a ricercarla anche tra i clienti
if (empty($anagrafica)) {
$type = 'Cliente';
$is_fornitore = $anagrafica->isTipo($type);
$is_cliente = $anagrafica->isTipo('Cliente');
$anagrafica = Anagrafica::where('tipo', $type);
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']);
}
if ($is_fornitore || $is_cliente) {
return $anagrafica->first();
}
return $anagrafica->first();
}
/**