. */ if (!$is_last_page) { return; } $imponibile = 0; foreach ($v_totale as $key => $v) { $totale_scontato += $v; } $sconto = 0; foreach ($righe as $riga) { $sconto += floatval($riga->sconto); } $imponibile = $totale_scontato + $sconto; $rivalsa = 0; foreach ($righe as $riga) { $rivalsa += floatval($riga->rivalsainps); } $totale_imponibile = $totale_scontato + $rivalsa; $totale_iva = 0; foreach ($righe as $riga) { $aliquota = $database->fetchOne('SELECT percentuale FROM co_iva WHERE id = '.prepare($riga->idiva))['percentuale']; $totale_iva += $riga['iva'] + $riga['rivalsainps'] * $aliquota / 100; } $totale = $totale_iva + $totale_imponibile; $show_sconto = $sconto > 0; $volume = $documento->volume ?: $documento->volume_calcolato; $peso_lordo = $documento->peso ?: $documento->peso_calcolato; $width = round(100 / ($show_sconto ? 5 : 3), 2); $has_rivalsa = !empty($rivalsa); $has_ritenuta = !empty($record['ritenutaacconto']) || !empty($documento->totale_ritenuta_contributi); $has_split_payment = !empty($record['split_payment']); $has_sconto_finale = !empty($sconto_finale); $etichette = [ 'totale' => tr('Totale imponibile', [], ['upper' => true]), 'totale_parziale' => tr('Totale documento', [], ['upper' => true]), 'totale_finale' => tr('Netto a pagare', [], ['upper' => true]), ]; // SCADENZE | TOTALI // TABELLA PRINCIPALE echo " '; /* * Riga di riepilogo dei totali. * Se sconto: Imponibile | Sconto | Totale imponibile | Totale IVA | Totale * Altrimenti: Imponibile | Totale IVA | Totale */ if ($has_ritenuta || $show_sconto || $has_rivalsa) { echo " '; } else { echo " "; } if ($show_sconto) { echo " '; } if ($has_rivalsa) { echo " '; } else { echo " "; } echo " '; if ($has_ritenuta || $show_sconto || $has_rivalsa) { echo " '; } else { echo " "; } if ($show_sconto) { echo " '; } elseif (!$has_rivalsa) { echo " "; } /* * Riga di riepilogo della Rivalsa INPS. * Rivalsa INPS | Totale (+ Rivalsa INPS) */ if ($has_rivalsa) { $rs2 = $dbo->fetchArray('SELECT percentuale, descrizione FROM co_rivalse WHERE id IN (SELECT idrivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idrivalsainps!=0)'); foreach ($rs2 as $rs) { $descrizione .= '

'.$rs['descrizione'].'

'; } echo ' '; } elseif ($show_sconto) { echo ' '; } else { echo ' '; } $first_colspan = 3; $second_colspan = 2; if (empty($sconto)) { --$first_colspan; --$second_colspan; } echo ' '; if ($has_ritenuta || $show_sconto || $has_rivalsa || $has_split_payment || $has_sconto_finale) { echo ''; /* * Riga di riepilogo di Ritenuta d'acconto e Ritenuta contributi. * Ritenuta | Totale (+ Rivalsa INPS - Ritenuta) */ if ($has_ritenuta) { $rs2 = $dbo->fetchArray('SELECT percentuale FROM co_ritenutaacconto WHERE id=(SELECT idritenutaacconto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idritenutaacconto!=0 LIMIT 0,1)'); $first_colspan = 3; $second_colspan = 2; if (empty($sconto)) { --$first_colspan; --$second_colspan; } $contributi = tr('_DESCRIZIONE_: _PRC_%', [ '_DESCRIZIONE_' => $documento->ritenutaContributi->descrizione, '_PRC_' => Translator::numberToLocale($documento->ritenutaContributi->percentuale, 2), ]); $ritenuta_contributi_totale = abs($documento->totale_ritenuta_contributi); $acconto = tr('acconto: _PRC_%', [ '_PRC_' => Translator::numberToLocale($rs2[0]['percentuale'], 2), ]); $ritenuta_acconto_totale = abs($documento->ritenuta_acconto); if (!empty($ritenuta_acconto_totale) && !empty($ritenuta_contributi_totale)) { --$first_colspan; } echo ' '; if (!empty($ritenuta_acconto_totale)) { echo ' '; } if (!empty($ritenuta_contributi_totale)) { echo ' '; } echo ' '; echo ' '; if (!empty($ritenuta_acconto_totale)) { echo ' '; } if (!empty($ritenuta_contributi_totale)) { echo ' '; } $totale = $totale - ($ritenuta_acconto_totale + $ritenuta_contributi_totale); echo ' '; } /* * Riga di riepilogo per lo Split payment. * Totale IVA | Totale (+ Rivalsa INPS - Ritenuta - Totale IVA) */ if ($has_split_payment) { $first_colspan = 2; $second_colspan = 1; echo ' '; $totale = $totale - $totale_iva; echo ' '; } /* * Riga di riepilogo per lo sconto in fattura. * Sconto in | Totale (+ Rivalsa INPS - Ritenuta - Totale IVA [se split payment] - Sconto finale) */ if ($has_sconto_finale) { $first_colspan = 1; $second_colspan = 2; echo ' '; $totale = $totale - $sconto_finale; echo ' '; } echo '
"; // Tabella (scadenze + iva) echo " '; // Fine elenco scadenze // Separatore echo " "; // Tabella iva echo " '; // Fine tabelle iva echo '
  '; // Elenco scadenze $rs2 = $dbo->fetchArray('SELECT * FROM `co_scadenziario` WHERE `iddocumento`='.prepare($id_record).' ORDER BY `scadenza` ASC'); if (!empty($rs2)) { for ($i = 0; $i < sizeof($rs2); ++$i) { $pagamento = $dbo->fetchOne('SELECT `fe_modalita_pagamento_lang`.`title` as descrizione FROM `co_pagamenti` INNER JOIN `fe_modalita_pagamento` ON `fe_modalita_pagamento`.`codice` = `co_pagamenti`.`codice_modalita_pagamento_fe` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento_lang`.`id_record`=`fe_modalita_pagamento`.`codice` AND `fe_modalita_pagamento_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `co_pagamenti`.`id`='.$rs2[$i]['id_pagamento'])['descrizione']; echo ' '; } } echo '

".tr('Scadenze pagamenti', [], ['upper' => true]).'

'.Translator::dateToLocale($rs2[$i]['scadenza'])." ".(($rs2[$i]['pagato'] == $rs2[$i]['da_pagare']) ? 'PAGATO' : '')." ".moneyFormat($rs2[$i]['da_pagare'], $d_totali).' '.$pagamento.'
 "; if (!empty($v_iva)) { echo " '; foreach ($v_iva as $desc_iva => $tot_iva) { if (!empty($desc_iva)) { echo ' '; } } echo '

".tr('Aliquota IVA', [], ['upper' => true])."

".tr('Importo', [], ['upper' => true])."

".tr('Importo IVA', [], ['upper' => true]).'

'.$desc_iva." ".moneyFormat($v_totale[$desc_iva], $d_totali)." ".moneyFormat($v_iva[$desc_iva], $d_totali).'

$appoggiobancario$

'.tr('IBAN').'

$codiceiban$

'.tr('BIC').'

$bic$

'; } echo '
 
'; // Fine tabella (scadenze + iva) echo '
".tr('Imponibile', [], ['upper' => true]).'
".tr('Sconto', [], ['upper' => true])." ".tr('Totale scontato', [], ['upper' => true]).' ".tr('Cassa Previdenziale', [], ['upper' => true]).' ".(($show_sconto) ? $etichette['totale_parziale'] : $etichette['totale']).'
".moneyFormat($imponibile, $d_totali).'
".moneyFormat(abs($sconto), $d_totali)." ".moneyFormat($totale_scontato, $d_totali).' '.moneyFormat($rivalsa, 2).' '.$descrizione.' '.moneyFormat($totale_imponibile, $d_totali).'
'.moneyFormat($totale_imponibile, $d_totali).'
'.moneyFormat($totale_imponibile, $d_totali).'
'.tr('Totale IVA', [], ['upper' => true]).' '.(!$has_ritenuta && !$has_split_payment && !$has_sconto_finale ? $etichette['totale_finale'] : $etichette['totale_parziale']).'
'.moneyFormat($totale_iva, $d_totali).' '.moneyFormat($totale, $d_total); } else { echo ' '.moneyFormat($totale, $d_total).''; } echo '
'.tr('Ritenuta _ACCONTO_', [ '_ACCONTO_' => $acconto, ], ['upper' => true]).' '.tr('_CONTRIBUTI_', [ '_ACCONTO_' => $acconto, '_CONTRIBUTI_' => empty($documento->ritenutaContributi) ? null : $contributi, ], ['upper' => true]).' '.(!$has_split_payment && !$has_sconto_finale ? $etichette['totale_finale'] : $etichette['totale_parziale']).'
'.moneyFormat($ritenuta_acconto_totale, 2).' '.moneyFormat($ritenuta_contributi_totale, 2).' '.moneyFormat($totale, 2).'
'.tr('IVA a carico del destinatario', [], ['upper' => true]).' '.(!$has_sconto_finale ? $etichette['totale_finale'] : $etichette['totale_parziale']).'
'.moneyFormat($totale_iva, 2).' '.moneyFormat($totale, 2).'
'.tr('Sconto in fattura', [], ['upper' => true]).($documento->sconto_finale_percentuale ? ' ('.numberFormat($documento->sconto_finale_percentuale, 2).'%)' : '').' '.tr('Netto a pagare', [], ['upper' => true]).'
'.moneyFormat($sconto_finale, 2).' '.moneyFormat($totale, 2).'
'; if ($fattura_accompagnatoria) { // Informazioni aggiuntive echo '
'.tr('Peso lordo', [], ['upper' => true]).' '.tr('Volume', [], ['upper' => true]).' '.tr('Aspetto beni', [], ['upper' => true]).' '.tr('Colli', [], ['upper' => true]).' '.tr('Causale trasporto', [], ['upper' => true]).' '.tr('Porto', [], ['upper' => true]).'
'.(!empty($peso_lordo) ? Translator::numberToLocale($peso_lordo).' KG' : '').' '.(!empty($volume) ? Translator::numberToLocale($volume).' M3' : '').' $aspettobeni$   $n_colli$   $causalet$   $porto$  
'; // Firme echo '
'.tr('Tipo di spedizione', [], ['upper' => true]).' '.tr('Firma conducente', [], ['upper' => true]).' '.tr('Firma destinatario', [], ['upper' => true]).'
$spedizione$ $vettore$
'; } echo '
$dicitura_fissa_fattura$
'; if (empty($options['last-page-footer'])) { echo '$default_footer$'; }