Compare commits

...

6 Commits

Author SHA1 Message Date
valentina ec2b704eb3 Fix stampa fattura 2024-09-04 17:35:32 +02:00
Luca bf7f4131de Fix grafici minori 2024-09-04 16:40:17 +02:00
valentina 3ab91923be Fix 2024-09-04 14:19:48 +02:00
valentina 24616fa7b3 Fix fattura accompagnatoria 2024-09-04 11:37:47 +02:00
valentina 8f9becdac1 Fix minore 2024-09-04 11:30:42 +02:00
valentina 9b7f4b4c3b Fix importazione anagrafica fattura di acquisto 2024-09-04 11:27:35 +02:00
7 changed files with 28 additions and 44 deletions

View File

@ -457,9 +457,10 @@ if (Auth::check()) {
<!-- Main Sidebar Container -->
<aside class="main-sidebar '.$theme.' elevation-4">
<a href="'.tr('https://www.openstamanager.com').'" class="brand-link" title="'.tr("Il gestionale open source per l'assistenza tecnica e la fatturazione").'" target="_blank">
<img src="'.$rootdir.'/assets/dist/img/logo_completo.png" alt="'.tr("Il gestionale open source per l'assistenza tecnica e la fatturazione").'" class="img-fluid">
<a href="'.tr('https://www.openstamanager.com').'" class="brand-link" title="'.tr("Il gestionale open source per l'assistenza tecnica e la fatturazione elettronica"). '" target="_blank">
<img src="'. $rootdir . '/assets/dist/img/logo_completo.png" class="brand-image" alt="'.tr("Il gestionale open source per l'assistenza tecnica e la fatturazione elettronica"). '">
<span class="brand-text font-weight-light">&nbsp;</span>
</a>
<!-- Sidebar -->

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../core.php';
// Schermata di caricamento delle informazioni
echo '
<button class="btn btn-lg btn-block" onclick="avviaControlli(this);">
<button class="btn btn-lg btn-block btn-primary" onclick="avviaControlli(this);">
<i class="fa fa-cog"></i> '.tr('Avvia controlli').'
</button>

View File

@ -213,9 +213,12 @@ class Fattura extends Document
$model->note = implode("\n", $notes);
if ($tipo_documento->getTranslation('title') == 'Fattura accompagnatoria di vendita') {
$model->idporto = database()->fetchOne('SELECT `id` FROM `dt_porto` WHERE `predefined` = 1')['id'];
$model->idcausalet = database()->fetchOne('SELECT `id` FROM `dt_causalet` WHERE `predefined` = 1')['id'];
$model->idspedizione = database()->fetchOne('SELECT `id` FROM `dt_spedizione` WHERE `predefined` = 1')['id'];
$porto = database()->fetchOne('SELECT `id` FROM `dt_porto` WHERE `predefined` = 1')['id'];
$model->idporto = $porto ?: '';
$causalet = database()->fetchOne('SELECT `id` FROM `dt_causalet` WHERE `predefined` = 1')['id'];
$model->idcausalet = $causalet ?: '';
$spedizione = database()->fetchOne('SELECT `id` FROM `dt_spedizione` WHERE `predefined` = 1')['id'];
$model->idspedizione = $spedizione ?: '';
}
$model->save();

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

@ -202,48 +202,27 @@ class FatturaElettronica
]));
}
public function findAnagrafica($type = 'Fornitore')
public function findAnagrafica()
{
$info = $this->getAnagrafe();
$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']);
$anagrafica = Anagrafica::where('piva', $info['partita_iva'])
->orWhere('codice_fiscale', $info['codice_fiscale']);
} elseif (!empty($info['codice_fiscale'])) {
$anagrafica->where('codice_fiscale', $info['codice_fiscale'])
->orWhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
$anagrafica = Anagrafica::where('codice_fiscale', $info['codice_fiscale']);
} elseif (!empty($info['partita_iva'])) {
$anagrafica->where('piva', $info['partita_iva'])
->orWhere('piva', 'like', '__'.$info['partita_iva']);
$anagrafica = Anagrafica::where('piva', '=', $info['partita_iva']);
}
$anagrafica = $anagrafica->get();
$anagrafica = $anagrafica->get()->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('Fornitore');
$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']);
}
}
return $anagrafica->first();
if ($is_fornitore || $is_cliente) {
return $anagrafica;
}
}
/**

View File

@ -18,6 +18,7 @@
*/
include_once __DIR__.'/../../core.php';
use Plugins\ImportFE\FatturaElettronica;
$directory = FatturaElettronica::getImportDirectory();
$filename = get('filename');

View File

@ -106,7 +106,7 @@ foreach ($righe as $riga) {
}
$r['descrizione'] = str_replace('Rif. '.strtolower((string) $key), '', $r['descrizione']);
preg_match("/Rif\.(.*)/s", $r['descrizione'], $rif2);
$r['descrizione'] = str_replace('Rif.'.strtolower($rif2[1]), '', $r['descrizione']);
$r['descrizione'] = str_replace('Rif.'.strtolower($rif2[1]?:''), '', $r['descrizione']);
if (!empty($rif2)) {
$text .= '<b>'.$rif2[0].'</b>';
}