From 5f18f7b65ed575a77f08b8db525ebe607e23fc7d Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Wed, 8 Jul 2020 10:40:04 +0200 Subject: [PATCH] Aggiornamento visualizzazione Ricevute FE --- modules/fatture/init.php | 4 +- modules/fatture/src/Fattura.php | 14 +++++++ plugins/exportFE/edit.php | 67 ++++++++++++++++++++++++------ plugins/receiptFE/src/Ricevuta.php | 23 ++++++---- src/Models/Upload.php | 10 +++++ 5 files changed, 96 insertions(+), 22 deletions(-) diff --git a/modules/fatture/init.php b/modules/fatture/init.php index c166d0d24..b72fea3e1 100755 --- a/modules/fatture/init.php +++ b/modules/fatture/init.php @@ -1,5 +1,7 @@ find($id_record); + $fattura = Fattura::with('tipo', 'stato')->find($id_record); $is_fiscale = false; if (!empty($fattura)) { diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 8cf629969..c014557da 100755 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -410,6 +410,20 @@ class Fattura extends Document return file_get_contents($file->filepath); } + /** + * Restituisce le ricevute della fattura elettronica relativa al documento. + * + * @return iterable + */ + public function getRicevute() + { + $nome = 'Ricevuta'; + + return $this->uploads()->filter(function ($item) use ($nome) { + return false !== strstr($item->name, $nome); + })->sortBy('created_at'); + } + /** * Controlla se la fattura di acquisto è elettronica. * diff --git a/plugins/exportFE/edit.php b/plugins/exportFE/edit.php index 8cc80b236..50ec6da5b 100755 --- a/plugins/exportFE/edit.php +++ b/plugins/exportFE/edit.php @@ -97,15 +97,17 @@ echo ' '; + +'; echo '

'; // Messaggio esito invio +$ultima_ricevuta = $fattura->getRicevute()->last(); if (!empty($record['codice_stato_fe'])) { if ($record['codice_stato_fe'] == 'GEN') { echo ' -
'.tr("La fattura è stata generata ed è pronta per l'invio").'.
+
'.tr("La fattura è stata generata ed è pronta per l'invio").'.
'; } else { $stato_fe = database()->fetchOne('SELECT codice, descrizione, icon FROM fe_stati_documento WHERE codice='.prepare($record['codice_stato_fe'])); @@ -119,20 +121,59 @@ if (!empty($record['codice_stato_fe'])) { } echo ' -
- - '.$stato_fe['codice'].' - '.$stato_fe['descrizione'].' '.(!empty($record['descrizione_ricevuta_fe']) ? '
NOTE: '.$record['descrizione_ricevuta_fe'] : '').' -
- '.Translator::timestampToLocale($record['data_stato_fe']).' -
- - '; +
+
+ '.Translator::timestampToLocale($record['data_stato_fe']).''; + + if (!empty($ultima_ricevuta)) { + echo ' + + '.tr('Visualizza ricevuta').' + '; + } + + echo ' +
+ + + '.$stato_fe['codice'].' - '.$stato_fe['descrizione'].' '.(!empty($record['descrizione_ricevuta_fe']) ? '
'.tr('Note', [], ['upper' => true]).': '.$record['descrizione_ricevuta_fe'] : '').' +
'; + + // Lettura della ricevuta + if (!empty($ultima_ricevuta) && $stato_fe['codice'] == 'NS') { + $contenuto_ricevuta = \Util\XML::readFile($ultima_ricevuta->filepath); + $lista_errori = $contenuto_ricevuta['ListaErrori']; + + if (!empty($lista_errori)) { + echo ' +

'.tr('Elenco degli errori').'

+ + + + + + + + '; + + $lista_errori = $lista_errori[0] ? $lista_errori : [$lista_errori]; + foreach ($lista_errori as $errore) { + $errore = $errore['Errore']; + echo ' + + + + '; + } + + echo ' + +
'.tr('Codice').''.tr('Descrizione').'
'.$errore['Codice'].''.$errore['Descrizione'].'
'; + } + } } } -echo ' -
'; - echo '