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) {