From 22d71a40d2d5723dfec373d7e13eb11d9a0db26b Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Thu, 28 Jan 2021 20:24:32 +0100 Subject: [PATCH] Correzione #937 --- modules/fatture/src/Gestori/Scadenze.php | 11 +++++++++-- plugins/importFE/generate.php | 21 ++++++++++++++------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/modules/fatture/src/Gestori/Scadenze.php b/modules/fatture/src/Gestori/Scadenze.php index 0509f397b..3c52d586b 100644 --- a/modules/fatture/src/Gestori/Scadenze.php +++ b/modules/fatture/src/Gestori/Scadenze.php @@ -112,8 +112,15 @@ class Scadenze { $xml = XML::read($this->fattura->getXML()); - $pagamenti = $xml['FatturaElettronicaBody']['DatiPagamento']; - $pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti]; + $fattura_body = $xml['FatturaElettronicaBody']; + + // Gestione per fattura elettroniche senza pagamento definito + $pagamenti = []; + if (isset($fattura_body['DatiPagamento'])) { + $pagamenti = $fattura_body['DatiPagamento']; + $pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti]; + } + foreach ($pagamenti as $pagamento) { $rate = $pagamento['DettaglioPagamento']; $rate = isset($rate[0]) ? $rate : [$rate]; diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index c83262511..7cfb5adef 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -110,13 +110,20 @@ $citta = $sede['comune']; $provincia = $sede['provincia']; // Dati generali -$dati_generali = $fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']; +$fattura_body = $fattura_pa->getBody(); +$dati_generali = $fattura_body['DatiGenerali']['DatiGeneraliDocumento']; $tipo_documento = $database->fetchOne('SELECT CONCAT("(", codice, ") ", descrizione) AS descrizione FROM fe_tipi_documento WHERE codice = '.prepare($dati_generali['TipoDocumento']))['descrizione']; -$pagamenti = $fattura_pa->getBody()['DatiPagamento']; -$pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti]; -$metodi = $pagamenti[0]['DettaglioPagamento']; +// Gestione per fattura elettroniche senza pagamento definito +$pagamenti = []; +if (isset($fattura_body['DatiPagamento'])) { + $pagamenti = $fattura_body['DatiPagamento']; + $pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti]; +} + +// Individuazione metodo di pagamento di base +$metodi = isset($pagamenti[0]['DettaglioPagamento']) ? $pagamenti[0]['DettaglioPagamento'] : []; $metodi = isset($metodi[0]) ? $metodi : [$metodi]; $codice_modalita_pagamento = $metodi[0]['ModalitaPagamento']; @@ -164,9 +171,9 @@ if (!empty($pagamenti)) {

'.tr('Pagamento').'

'.tr('La fattura importata presenta _NUM_ rat_E_ di pagamento con le seguenti scadenze', [ - '_NUM_' => count($metodi), - '_E_' => ((count($metodi) > 1) ? 'e' : 'a'), - ]).':

+ '_NUM_' => count($metodi), + '_E_' => ((count($metodi) > 1) ? 'e' : 'a'), + ]).':

    '; foreach ($pagamenti as $pagamento) {