".strtoupper(tr('Descrizione'))." ".strtoupper(tr('Q.TÀ'))." ".strtoupper(tr('Um'))." ".strtoupper(tr('Costo unitario'))." ".strtoupper(tr('Importo'))." ".strtoupper(tr('IVA')).' '; // 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`'); $tot_righe = sizeof($righe); foreach ($righe as $i => $riga) { $n_rows += ceil(strlen($riga['descrizione']) / $words4row); $n_rows += substr_count($riga['descrizione'], PHP_EOL); echo " ".nl2br($riga['descrizione']); if (!empty($riga['codice_articolo'])) { echo '
'.str_replace('_COD_', $riga['codice_articolo'], tr('COD. _COD_')).''; $n_rows += 0.4; } // Aggiunta riferimento a ordine if (!empty($riga['idordine'])) { $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM or_ordini WHERE id='.prepare($riga['idordine'])); $numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero']; echo '
'.str_replace(['_NUM_', '_DATE_'], [$numero, Translator::dateToLocale($rso[0]['data'])], tr('Rif. ordine no_NUM_ del _DATE_')).''; $n_rows += 0.4; } // Aggiunta riferimento a ddt elseif (!empty($riga['idddt'])) { $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt WHERE id='.prepare($riga['idddt'])); $numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero']; echo '
'.str_replace(['_NUM_', '_DATE_'], [$numero, Translator::dateToLocale($rso[0]['data'])], tr('Rif. ddt no_NUM_ del _DATE_')).''; $n_rows += 0.4; } echo ' '; echo " ".(empty($riga['qta']) ? '' : Translator::numberToLocale($riga['qta'], 2)).' '; // Unità di miusura echo " ".nl2br(strtoupper($riga['um'])).' '; // Costo unitario echo " ".(empty($riga['qta']) || empty($riga['subtotale']) ? '' : Translator::numberToLocale($riga['subtotale'] / $riga['qta'], 2)).' € '; // Imponibile echo " ".(empty($riga['subtotale']) ? '' : Translator::numberToLocale($riga['subtotale'], 2)).' €'; if ($riga['sconto'] > 0) { $n_rows += 0.4; echo "
- sconto ".Translator::numberToLocale($riga['sconto_unitario']).($riga['tipo_sconto'] == 'PRC' ? '%' : ' €').''; } echo ' '; // Iva echo " "; if (!empty($riga['idiva'])) { echo ' '.intval($riga['perc_iva']).'%'; } echo ' '; $imponibile += $riga['subtotale']; $iva += $riga['iva']; $sconto += $riga['sconto']; $v_iva[$riga['desc_iva']] += $riga['iva']; $v_totale[$riga['desc_iva']] += $riga['subtotale'] - $riga['sconto']; } $imponibile_documento += $imponibile; $totale_iva += $iva; $totale_documento += $imponibile; // Aggiungo diciture per condizioni iva particolari if (!empty($v_iva)) { $elenco = [ 'Reverse charge ex art. 17, comma 6, DPR 633/72' => tr('Operazione soggetta a reverse charge ex art. 17, comma 6, DPR 633/72'), 'Esente ex art. 74' => tr('Senza addebito iva ex art. 74 comma 8-9 del DPR 633/72'), ]; $keys = array_keys($v_iva); // Controllo se è stata applicata questa tipologia di iva foreach ($elenco as $e => $testo) { if (in_array($e, $keys)) { $n_rows += strlen($testo) / $words4row; $n_rows += substr_count($riga['descrizione'], PHP_EOL); echo " ".nl2br($testo)." "; } } } // % 20 -> < 19 righe for ($i = (floor($n_rows) % 20); $i < 15; ++$i) { echo '   '; } echo ' '; $imponibile_documento -= $sconto; $totale_documento = $totale_documento - $sconto + $totale_iva; if (!empty($rs[0]['note'])) { echo '

'.strtoupper(tr('Note')).':

'.$rs[0]['note'].'

'; }