diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php index a15104deb..d6e316f84 100755 --- a/modules/fatture/modutil.php +++ b/modules/fatture/modutil.php @@ -111,9 +111,8 @@ function aggiungi_scadenza($iddocumento, $pagamento = '', $pagato = 0) $fattura = Fattura::find($iddocumento); - $ricalcola = true; if ($fattura->isFE()) { - $ricalcola = $fattura->registraScadenzeFE($pagato); + $scadenze_fe = $fattura->registraScadenzeFE($pagato); } // Lettura data di emissione fattura @@ -122,7 +121,7 @@ function aggiungi_scadenza($iddocumento, $pagamento = '', $pagato = 0) $data = $rs[0]['data']; $ritenutaacconto = $rs[0]['ritenutaacconto']; - if ($ricalcola) { + if (empty($scadenze_fe)) { $totale_da_pagare = 0.00; $totale_fattura = get_totale_fattura($iddocumento); @@ -198,9 +197,9 @@ function aggiungi_scadenza($iddocumento, $pagamento = '', $pagato = 0) if ($pagato) { $id_scadenza = $dbo->lastInsertedID(); $dbo->update('co_scadenziario', [ - 'pagato' => $da_pagare, - 'data_pagamento' => $data, - ], ['id' => $id_scadenza]); + 'pagato' => $da_pagare, + 'data_pagamento' => $data, + ], ['id' => $id_scadenza]); } } } diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 153e9ca99..777793069 100644 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -251,25 +251,27 @@ class Fattura extends Document $xml = \Util\XML::read($this->getXML()); - $scadenze = $xml['FatturaElettronicaBody']['DatiPagamento']['DettaglioPagamento']; - $scadenze = isset($scadenze[0]) ? $scadenze : [$scadenze]; + $pagamenti = $xml['FatturaElettronicaBody']['DatiPagamento']['DettaglioPagamento']; + if (!empty($pagamenti)) { + $scadenze = isset($pagamenti[0]) ? $pagamenti : [$pagamenti]; - foreach ($scadenze as $scadenza) { - $data = $scadenza['DataScadenzaPagamento']; - $importo = $scadenza['ImportoPagamento']; + foreach ($scadenze as $scadenza) { + $data = $scadenza['DataScadenzaPagamento']; + $importo = $scadenza['ImportoPagamento']; - $dbo->insert('co_scadenziario', [ - 'iddocumento' => $this->id, - 'data_emissione' => $this->data, - 'scadenza' => $data, - 'da_pagare' => $importo, - 'tipo' => 'fattura', - 'pagato' => $is_pagato ? $importo : 0, - 'data_pagamento' => $is_pagato ? $data : '', - ], ['id' => $id_scadenza]); + $dbo->insert('co_scadenziario', [ + 'iddocumento' => $this->id, + 'data_emissione' => $this->data, + 'scadenza' => $data, + 'da_pagare' => -$importo, + 'tipo' => 'fattura', + 'pagato' => $is_pagato ? $importo : 0, + 'data_pagamento' => $is_pagato ? $data : '', + ], ['id' => $id_scadenza]); + } } - return !empty($scadenze); + return !empty($pagamenti); } // Metodi statici diff --git a/plugins/importFE/actions.php b/plugins/importFE/actions.php index 164e238a1..98a96c995 100644 --- a/plugins/importFE/actions.php +++ b/plugins/importFE/actions.php @@ -71,7 +71,7 @@ switch (filter('op')) { ricalcola_costiagg_fattura($id_record, $idrivalsainps, $idritenutaacconto, $bollo); elimina_scadenza($id_record); elimina_movimento($id_record, 0); - aggiungi_scadenza($id_record, post('pagamento')); + aggiungi_scadenza($id_record); aggiungi_movimento($id_record, 'uscita'); $fattura_pa->delete();