Correzioni minori per Fattura elettronica

This commit is contained in:
Dasc3er 2020-12-04 17:40:25 +01:00
parent 5d776ffa15
commit d18d4cb310
3 changed files with 24 additions and 15 deletions

View File

@ -112,9 +112,11 @@ class Scadenze
{
$xml = XML::read($this->fattura->getXML());
$pagamenti = $xml['FatturaElettronicaBody']['DatiPagamento']['DettaglioPagamento'];
if (!empty($pagamenti)) {
$rate = isset($pagamenti[0]) ? $pagamenti : [$pagamenti];
$pagamenti = $xml['FatturaElettronicaBody']['DatiPagamento'];
$pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti];
foreach ($pagamenti as $pagamento) {
$rate = $pagamento['DettaglioPagamento'];
$rate = isset($rate[0]) ? $rate : [$rate];
foreach ($rate as $rata) {
$scadenza = !empty($rata['DataScadenzaPagamento']) ? FatturaElettronicaImport::parseDate($rata['DataScadenzaPagamento']) : $this->fattura->data;

View File

@ -115,7 +115,8 @@ $dati_generali = $fattura_pa->getBody()['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'];
$metodi = $pagamenti['DettaglioPagamento'];
$pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti];
$metodi = $pagamenti[0]['DettaglioPagamento'];
$metodi = isset($metodi[0]) ? $metodi : [$metodi];
$codice_modalita_pagamento = $metodi[0]['ModalitaPagamento'];
@ -163,22 +164,27 @@ if (!empty($pagamenti)) {
<h4>'.tr('Pagamento').'</h4>
<p>'.tr('La fattura importata presenta _NUM_ rat_E_ di pagamento con le seguenti scadenze', [
'_NUM_' => count($metodi),
'_E_' => ((count($metodi) > 1) ? 'e' : 'a'),
]).':</p>
'_NUM_' => count($metodi),
'_E_' => ((count($metodi) > 1) ? 'e' : 'a'),
]).':</p>
<ol>';
// Scadenze di pagamento
foreach ($metodi as $metodo) {
$descrizione = !empty($metodo['ModalitaPagamento']) ? $database->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($metodo['ModalitaPagamento']))['descrizione'] : '';
$data = !empty($metodo['DataScadenzaPagamento']) ? FatturaElettronica::parseDate($metodo['DataScadenzaPagamento']) : '';
foreach ($pagamenti as $pagamento) {
$rate = $pagamento['DettaglioPagamento'];
$rate = isset($rate[0]) ? $rate : [$rate];
echo '
// Scadenze di pagamento
foreach ($rate as $rata) {
$descrizione = !empty($rata['ModalitaPagamento']) ? $database->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($rata['ModalitaPagamento']))['descrizione'] : '';
$data = !empty($rata['DataScadenzaPagamento']) ? FatturaElettronica::parseDate($rata['DataScadenzaPagamento']) : '';
echo '
<li>
'.dateFormat($data).'
'.moneyFormat($metodo['ImportoPagamento']).'
'.moneyFormat($rata['ImportoPagamento']).'
('.$descrizione.')
</li>';
}
}
echo '

View File

@ -86,14 +86,15 @@ class FatturaOrdinaria extends FatturaElettronica
// Aggiunta degli arrotondamenti IVA come righe indipendenti
$riepolighi = $this->getBody()['DatiBeniServizi']['DatiRiepilogo'];
foreach ($riepolighi as $riepilogo) {
if (!empty($riepilogo['Arrotondamento'])) {
$valore = floatval($riepilogo['Arrotondamento']);
if (!empty($valore)) {
$descrizione = tr('Arrotondamento IVA _VALUE_', [
'_VALUE_' => empty($riepilogo['Natura']) ? numberFormat($riepilogo['AliquotaIVA']).'%' : $riepilogo['Natura'],
]);
$result[] = [
'Descrizione' => $descrizione,
'PrezzoUnitario' => $riepilogo['Arrotondamento'],
'PrezzoUnitario' => $valore,
'Quantita' => 1,
'AliquotaIVA' => $riepilogo['AliquotaIVA'],
'Natura' => $riepilogo['Natura'],