0, // Conteggio delle righe 'words' => 70, // Numero di parolo dopo cui contare una riga nuova 'rows' => 20, // Numero di righe massimo presente nella pagina 'additional' => 15, // Numero di righe massimo da aggiungere 'columns' => 6, // Numero di colonne della tabella ]; $v_iva = []; $v_totale = []; $sconto = 0; $imponibile = 0; $iva = 0; // Intestazione tabella per righe echo " '; // RIGHE FATTURA CON ORDINAMENTO UNICO $righe = $dbo->fetchArray("SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),'') AS codice_articolo, (SELECT percentuale FROM co_iva WHERE id=idiva) AS perc_iva FROM `co_righe_documenti` WHERE iddocumento=".prepare($iddocumento).' ORDER BY `order`'); foreach ($righe as $r) { $autofill['count'] += ceil(strlen($r['descrizione']) / $autofill['words']); $autofill['count'] += substr_count($r['descrizione'], PHP_EOL); echo ' '; echo " '; // Unità di miusura echo " '; // Costo unitario echo " '; // Imponibile echo " '; // Iva echo ' '; $imponibile += $r['subtotale']; $iva += $r['iva']; $sconto += $r['sconto']; $v_iva[$r['desc_iva']] += $r['iva']; $v_totale[$r['desc_iva']] += $r['subtotale'] - $r['sconto']; } echo ' |autofill|
".tr('Descrizione', [], ['upper' => true])." ".tr('Q.tà', [], ['upper' => true])." ".tr('Um', [], ['upper' => true])." ".tr('Costo 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'], ]).''; $autofill['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']; echo '
'.tr('Rif. ordine no_NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => Translator::dateToLocale($rso[0]['data']), ]).''; $autofill['count'] += 0.4; } // 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']; echo '
'.tr('Rif. ddt no_NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => Translator::dateToLocale($rso[0]['data']), ]).''; $autofill['count'] += 0.4; } echo '
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' ".nl2br(strtoupper($r['um'])).' ".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'], 2)).' € ".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' €'; if ($r['sconto'] > 0) { $autofill['count'] += 0.4; echo "
- sconto ".Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €').''; } echo '
'.Translator::numberToLocale($r['perc_iva'], 2).'
'; // Aggiungo diciture per condizioni iva particolari foreach ($v_iva as $key => $value) { $dicitura = $dbo->fetchArray('SELECT dicitura FROM co_iva WHERE descrizione = '.prepare($key)); if (!empty($dicitura[0]['dicitura'])) { $testo = $dicitura[0]['dicitura']; echo "

".nl2br($testo)."

"; } } if (!empty($records[0]['note'])) { echo '

'.tr('Note', [], ['upper' => true]).':

'.nl2br($records[0]['note']).'

'; } // Info per il footer $totale_iva = $iva; $imponibile_documento = $imponibile - $sconto; $totale_documento = $imponibile - $sconto + $totale_iva;