In caso di NS verifico che non sia semplicemente un codice 00404 (Fattura duplicata)

This commit is contained in:
Luca 2022-06-27 23:50:15 +02:00
parent 43887488c5
commit ea199c2d2f
2 changed files with 25 additions and 1 deletions

View File

@ -22,6 +22,7 @@ include_once __DIR__.'/../../core.php';
use Carbon\Carbon; use Carbon\Carbon;
use Modules\Fatture\Fattura; use Modules\Fatture\Fattura;
use Plugins\ExportFE\Interaction; use Plugins\ExportFE\Interaction;
use Util\XML;
$services_enable = Interaction::isEnabled(); $services_enable = Interaction::isEnabled();
@ -36,16 +37,38 @@ if ($module->name == 'Fatture di vendita' && $services_enable) {
$documenti = Fattura::where('data', '>', $data_limite)->where('data', '>', $data_setting)->whereIn('codice_stato_fe', ['EC02','ERR','ERVAL','NS','GEN','QUEUE'])->get(); $documenti = Fattura::where('data', '>', $data_limite)->where('data', '>', $data_setting)->whereIn('codice_stato_fe', ['EC02','ERR','ERVAL','NS','GEN','QUEUE'])->get();
foreach ($documenti as $documento) { foreach ($documenti as $documento) {
$stato_fe = $database->fetchOne('SELECT descrizione, icon FROM fe_stati_documento WHERE codice = '.prepare($documento->codice_stato_fe)); $stato_fe = $database->fetchOne('SELECT descrizione, icon FROM fe_stati_documento WHERE codice = '.prepare($documento->codice_stato_fe));
if (in_array($documento->codice_stato_fe, $codici_scarto)) { if (in_array($documento->codice_stato_fe, $codici_scarto)) {
// In caso di NS verifico che non sia semplicemente un codice 00404 (Fattura duplicata)
if ($documento->codice_stato_fe == 'NS'){
$ricevuta_principale = $documento->getRicevutaPrincipale();
if (!empty($ricevuta_principale)) {
$contenuto_ricevuta = XML::readFile($ricevuta_principale->filepath);
$lista_errori = $contenuto_ricevuta['ListaErrori'];
if ($lista_errori) {
$lista_errori = $lista_errori[0] ? $lista_errori : [$lista_errori];
$errore = $lista_errori[0]['Errore'];
if ($errore['Codice'] == '00404'){
return;
}
}
}
}
$documenti_scarto[] = Modules::link('Fatture di vendita', $documento->id, tr('_ICON_ Fattura numero _NUM_ del _DATE_ : <b>_STATO_</b>', [ $documenti_scarto[] = Modules::link('Fatture di vendita', $documento->id, tr('_ICON_ Fattura numero _NUM_ del _DATE_ : <b>_STATO_</b>', [
'_ICON_' => '<i class="'.$stato_fe['icon'].'"></i>', '_ICON_' => '<i class="'.$stato_fe['icon'].'"></i>',
'_NUM_' => $documento->numero_esterno, '_NUM_' => $documento->numero_esterno,
'_DATE_' => dateFormat($documento->data), '_DATE_' => dateFormat($documento->data),
'_STATO_' => $stato_fe['descrizione'], '_STATO_' => $stato_fe['descrizione'],
])); ]));
} elseif (in_array($documento->codice_stato_fe, $codici_invio)) { } elseif (in_array($documento->codice_stato_fe, $codici_invio)) {
if ($documento->data <= $data_limite_invio) { if ($documento->data <= $data_limite_invio) {
$documenti_invio[] = Modules::link('Fatture di vendita', $documento->id, tr('_ICON_ Fattura numero _NUM_ del _DATE_ : <b>_STATO_</b>', [ $documenti_invio[] = Modules::link('Fatture di vendita', $documento->id, tr('_ICON_ Fattura numero _NUM_ del _DATE_ : <b>_STATO_</b>', [

View File

@ -49,6 +49,7 @@ if (!empty($fatture_generate_errore->count())) {
<ul>'; <ul>';
foreach ($fatture_generate_errore as $fattura_generata) { foreach ($fatture_generate_errore as $fattura_generata) {
// Codice stato fe
$descrizione = $fattura_generata['codice_stato_fe']; $descrizione = $fattura_generata['codice_stato_fe'];
$ricevuta_principale = $fattura_generata->getRicevutaPrincipale(); $ricevuta_principale = $fattura_generata->getRicevutaPrincipale();