From ea199c2d2ff3f265560759fb9c27d529c2907df7 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 27 Jun 2022 23:50:15 +0200 Subject: [PATCH] In caso di NS verifico che non sia semplicemente un codice 00404 (Fattura duplicata) --- modules/fatture/controller_before.php | 25 ++++++++++++++++++++++++- plugins/receiptFE/edit.php | 1 + 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/modules/fatture/controller_before.php b/modules/fatture/controller_before.php index 740368948..9580e7ed5 100644 --- a/modules/fatture/controller_before.php +++ b/modules/fatture/controller_before.php @@ -22,6 +22,7 @@ include_once __DIR__.'/../../core.php'; use Carbon\Carbon; use Modules\Fatture\Fattura; use Plugins\ExportFE\Interaction; +use Util\XML; $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(); - + foreach ($documenti as $documento) { + $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)) { + + // 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_ : _STATO_', [ '_ICON_' => '', '_NUM_' => $documento->numero_esterno, '_DATE_' => dateFormat($documento->data), '_STATO_' => $stato_fe['descrizione'], ])); + + } elseif (in_array($documento->codice_stato_fe, $codici_invio)) { if ($documento->data <= $data_limite_invio) { $documenti_invio[] = Modules::link('Fatture di vendita', $documento->id, tr('_ICON_ Fattura numero _NUM_ del _DATE_ : _STATO_', [ diff --git a/plugins/receiptFE/edit.php b/plugins/receiptFE/edit.php index 8ef4f4a2e..8611d7ed6 100755 --- a/plugins/receiptFE/edit.php +++ b/plugins/receiptFE/edit.php @@ -49,6 +49,7 @@ if (!empty($fatture_generate_errore->count())) {