. */ include_once __DIR__.'/../../core.php'; use Carbon\Carbon; use Modules\Fatture\Fattura; use Plugins\ExportFE\Interaction; use Util\XML; $services_enable = Interaction::isEnabled(); if ($module->name == 'Fatture di vendita' && $services_enable) { $documenti_scarto = []; $documenti_invio = []; $codici_scarto = ['EC02','ERR','ERVAL','NS']; $codici_invio = ['GEN','QUEUE']; $data_limite = (new Carbon())->subMonths(6); $data_limite_invio = (new Carbon())->subDays(10); $data_setting = Carbon::createFromFormat('d/m/Y', setting('Data inizio controlli su stati FE'))->format('Y-m-d'); $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_', [ '_ICON_' => '', '_NUM_' => $documento->numero_esterno, '_DATE_' => dateFormat($documento->data), '_STATO_' => $stato_fe['descrizione'], ])); } } } //Controllo giĆ  presente sul plugin Ricevute FE if (sizeof($documenti_scarto) > 0) { echo '
'.tr("ATTENZIONE: le seguenti fatture riscontrano problemi").':
'; } if (sizeof($documenti_invio) > 0) { echo '
'.tr("Le seguenti fatture sono in attesa di essere inviate").':
'; } }