0, // Conteggio delle righe 'words' => 70, // Numero di parolo dopo cui contare una riga nuova 'rows' => $fattura_accompagnatoria ? 15 : 20, // Numero di righe massimo presente nella pagina 'additional' => $fattura_accompagnatoria ? 10 : 15, // Numero di righe massimo da aggiungere 'columns' => 5, // Numero di colonne della tabella ]; $v_iva = []; $v_totale = []; $sconto = []; $imponibile = []; $iva = []; // Intestazione tabella per righe echo "
".tr('Descrizione', [], ['upper' => true])." | ".tr('Q.tà', [], ['upper' => true])." | ".tr('Prezzo unitario', [], ['upper' => true])." | ".tr('Importo', [], ['upper' => true])." | ".tr('IVA', [], ['upper' => true]).' (%) |
---|---|---|---|---|
'.nl2br($r['descrizione']);
if (!empty($r['codice_articolo'])) {
echo '
'.tr('COD. _COD_', [ '_COD_' => $r['codice_articolo'], ]).''; if ($count <= 1) { $count += 0.4; } } // Aggiunta riferimento a ordine if (!empty($r['idordine'])) { $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM or_ordini WHERE id='.prepare($r['idordine'])); $numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero']; if (!empty($rso)) { $descrizione = tr('Rif. ordine num. _NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => Translator::dateToLocale($rso[0]['data']), ]); } } // Aggiunta riferimento a ddt elseif (!empty($r['idddt'])) { $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt WHERE id='.prepare($r['idddt'])); $numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero']; if (!empty($rso)) { $descrizione = tr('Rif. ddt num. _NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => Translator::dateToLocale($rso[0]['data']), ]); } } // Aggiunta riferimento al preventivo elseif (!empty($r['idpreventivo'])) { $rso = $dbo->fetchArray('SELECT numero, data_bozza FROM co_preventivi WHERE id='.prepare($r['idpreventivo'])); if (!empty($rso)) { $descrizione = tr('Rif. preventivo num. _NUM_ del _DATE_', [ '_NUM_' => $rso[0]['numero'], '_DATE_' => Translator::dateToLocale($rso[0]['data_bozza']), ]); } } // Aumento del conteggio if ((!empty($r['idordine']) || !empty($r['idddt']) || !empty($r['idpreventivo'])) && $count <= 1 && !empty($descrizione)) { echo ' '.$descrizione.''; $count += 0.4; } echo ' | ';
echo "
".Translator::numberToLocale($r['qta']).' '.$r['um'].' | '; // Prezzo unitario echo "
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
if ($r['sconto'] > 0) {
echo "
- ".tr('sconto _TOT_ _TYPE_', [ '_TOT_' => Translator::numberToLocale($r['sconto_unitario']), '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'), ]).''; if ($count <= 1) { $count += 0.4; } } echo ' | ';
// Imponibile
echo "
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
if ($r['sconto'] > 0) {
echo "
- ".tr('sconto _TOT_ _TYPE_', [ '_TOT_' => Translator::numberToLocale($r['sconto']), '_TYPE_' => '€', ]).''; if ($count <= 1) { $count += 0.4; } } echo ' | ';
// Iva
echo '
'.Translator::numberToLocale($r['perc_iva']).' |
".nl2br($testo).'
'; } } if (!empty($records[0]['note'])) { echo ''.tr('Note', [], ['upper' => true]).':
'.nl2br($records[0]['note']).'
'; } // Info per il footer $imponibile = sum($imponibile); $iva = sum($iva); $sconto = sum($sconto); $totale = $imponibile + $iva - $sconto;