fetchArray('SELECT *, round(sconto_unitario,'.setting('Cifre decimali per importi').') AS sconto_unitario, round(sconto,'.setting('Cifre decimali per importi').') AS sconto, round(subtotale,'.setting('Cifre decimali per importi').') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),"") AS codice, (SELECT descrizione FROM co_pianodeiconti3 WHERE co_pianodeiconti3.id=IF(co_righe_documenti.idconto = 0, (SELECT idconto FROM co_documenti WHERE iddocumento='.prepare($id_record).' LIMIT 1), co_righe_documenti.idconto)) AS descrizione_conto FROM `co_righe_documenti` WHERE iddocumento='.prepare($id_record).' ORDER BY `order`'); $righe = $fattura->getRighe(); echo ' '; foreach ($righe as $riga) { // Valori assoluti $riga['qta'] = abs($riga['qta']); $riga['prezzo_unitario_acquisto'] = abs($riga['prezzo_unitario_acquisto']); $riga['subtotale'] = abs($riga['subtotale']); $riga['sconto_unitario'] = abs($riga['sconto_unitario']); $riga['sconto'] = abs($riga['sconto']); $riga['iva'] = abs($riga['iva']); $extra = ''; $ref_modulo = null; $ref_id = null; // Preventivi if (!empty($riga['idpreventivo'])) { $delete = 'unlink_preventivo'; } // Contratti elseif (!empty($riga['idcontratto'])) { $delete = 'unlink_contratto'; } // Intervento elseif (!empty($riga['idintervento'])) { $delete = 'unlink_intervento'; } // Articoli elseif ($riga instanceof Articolo) { $ref_modulo = Modules::get('Articoli')['id']; $ref_id = $riga['idarticolo']; $riga['descrizione'] = (!empty($riga['codice']) ? $riga['codice'].' - ' : '').$riga['descrizione']; $delete = 'unlink_articolo'; $extra = ''; $mancanti = 0; } // Righe generiche else { $delete = 'unlink_riga'; } // Individuazione dei seriali if (!empty($riga['abilita_serial'])) { $serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_documento='.prepare($riga['id'])), 'serial'); $mancanti = $riga['qta'] - count($serials); if ($mancanti > 0) { $extra = 'class="warning"'; } else { $mancanti = 0; } } echo ' '; echo ' '; // Unità di misura echo ' '; // Prezzi unitari echo ' '; // Iva echo ' '; // Importo echo ' '; // Possibilità di rimuovere una riga solo se la fattura non è pagata echo ' '; } $sconto_globale = $fattura->scontoGlobale; if (!empty($sconto_globale)) { echo ' '; } echo ' '; $imponibile = abs($fattura->imponibile); $sconto = abs($fattura->sconto); $imponibile_scontato = abs($fattura->imponibile_scontato); $iva = abs($fattura->iva); $totale = abs($fattura->totale); $netto_a_pagare = abs($fattura->netto); $guadagno = $fattura->guadagno; // IMPONIBILE echo ' '; // SCONTO if (!empty($sconto)) { echo ' '; // IMPONIBILE SCONTATO echo ' '; } // RIVALSA INPS if (!empty($fattura->rivalsa_inps)) { echo ' '; } // IVA if (!empty($iva)) { echo ' '; } // TOTALE echo ' '; // Mostra marca da bollo se c'è if (!empty($fattura->bollo)) { echo ' '; } // RITENUTA D'ACCONTO if (!empty($fattura->ritenuta_acconto)) { echo ' '; } // NETTO A PAGARE if ($totale != $netto_a_pagare) { echo ' '; } // GUADAGNO TOTALE if ($guadagno < 0) { $guadagno_style = 'background-color: #FFC6C6; border: 3px solid red'; } else { $guadagno_style = ''; } echo ' '; echo '
'.tr('Descrizione').' '.tr('Q.tà').' '.tr('U.m.').' '.tr('Prezzo unitario').' '.tr('Iva').' '.tr('Importo').'
'.Modules::link($ref_modulo, $ref_id, $riga['descrizione']).' '.$riga['descrizione_conto'].''; if (!empty($riga['abilita_serial'])) { if (!empty($mancanti)) { echo '
'.tr('_NUM_ serial mancanti', [ '_NUM_' => $mancanti, ]).''; } if (!empty($serials)) { echo '
'.tr('SN').': '.implode(', ', $serials); } } // Aggiunta dei riferimenti ai documenti if (!empty($record['ref_documento'])) { $data = $dbo->fetchArray("SELECT IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM co_documenti WHERE id = ".prepare($record['ref_documento'])); $text = tr('Rif. fattura _NUM_ del _DATE_', [ '_NUM_' => $data[0]['numero'], '_DATE_' => Translator::dateToLocale($data[0]['data']), ]); echo '
'.Modules::link('Fatture di vendita', $record['ref_documento'], $text, $text); } $ref = doc_references($r, $dir, ['iddocumento']); if (!empty($ref)) { echo '
'.Modules::link($ref['module'], $ref['id'], $ref['description'], $ref['description']); } echo '
'; if (!$riga instanceof Descrizione) { echo ' '.Translator::numberToLocale($riga->qta, 'qta'); } echo ' '; if (!$riga instanceof Descrizione) { echo ' '.$riga['um']; } echo ' '; if (!$riga instanceof Descrizione) { echo ' '.Translator::numberToLocale($riga->prezzo_unitario_vendita).' €
'.tr('Acquisto').': '.Translator::numberToLocale($riga->prezzo_unitario_acquisto).' € '; if ($riga->sconto_unitario > 0) { echo '
'.tr('sconto _TOT_ _TYPE_', [ '_TOT_' => Translator::numberToLocale($riga->sconto_unitario), '_TYPE_' => ($riga->tipo_sconto == 'PRC' ? '%' : '€'), ]).''; } } echo '
'; if (!$riga instanceof Descrizione) { echo ' '.Translator::numberToLocale($riga->iva).' €
'.$riga->desc_iva.''; } echo '
'; if (!$riga instanceof Descrizione) { echo ' '.Translator::numberToLocale($riga->imponibile_scontato).' €
'.tr('Guadagno').': '.Translator::numberToLocale($riga->guadagno).' € '; } echo '
'; if ($record['stato'] != 'Pagato' && $record['stato'] != 'Emessa') { echo "
"; if ($riga instanceof Articolo) { echo " "; } echo "
"; if (empty($record['is_reversed']) && $riga instanceof Articolo && $riga['abilita_serial'] && (empty($riga['idddt']) || empty($riga['idintervento']))) { echo " "; } echo "
"; } echo '
'; echo '
'.$sconto_globale->descrizione.' '.Translator::numberToLocale(1, 'qta').' '.Translator::numberToLocale($sconto_globale->totale).' € '.Translator::numberToLocale($sconto_globale->iva).' € '.Translator::numberToLocale($sconto_globale->totale).' €
'.tr('Imponibile', [], ['upper' => true]).': '.Translator::numberToLocale($imponibile).' €
'.tr('Sconto', [], ['upper' => true]).': '.Translator::numberToLocale($sconto).' €
'.tr('Imponibile scontato', [], ['upper' => true]).': '.Translator::numberToLocale($imponibile_scontato).' €
'.tr('Rivalsa INPS', [], ['upper' => true]).': '.Translator::numberToLocale($fattura->rivalsa_inps).' €
'.tr('Iva', [], ['upper' => true]).': '.Translator::numberToLocale($iva).' €
'.tr('Totale', [], ['upper' => true]).': '.Translator::numberToLocale($totale).' €
'.tr('Marca da bollo', [], ['upper' => true]).': '.Translator::numberToLocale($fattura->bollo).' €
'.tr("Ritenuta d'acconto", [], ['upper' => true]).': '.Translator::numberToLocale($fattura->ritenuta_acconto).' €
'.tr('Netto a pagare', [], ['upper' => true]).': '.Translator::numberToLocale($netto_a_pagare).' €
'.tr('Guadagno', [], ['upper' => true]).': '.Translator::numberToLocale($guadagno).' €
'; echo ' ';