fetchArray($q); echo ' '; if (!empty($rs)) { foreach ($rs as $r) { $extra = ''; // Articoli if (!empty($r['idarticolo'])) { $modulo = Modules::getModule('Articoli')['id']; $id = $r['idarticolo']; $r['descrizione'] = $r['codice'].' - '.$r['descrizione']; $delete = 'unlink_articolo'; $qserial = 'SELECT * FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idarticolo='.prepare($r['idarticolo']).' AND idgruppo='.prepare($r['idgruppo']); $rsserial = $dbo->fetchArray($qserial); $mancanti = 0; $serials = []; if (!empty($r['abilita_serial'])) { foreach ($rsserial as $seriali) { $seriali['serial'] = trim($seriali['serial']); if (!empty($seriali['serial'])) { $serials[] = $seriali['serial']; } else { ++$mancanti; } } } if ($mancanti > 0) { $extra = 'class="warning"'; } } // Preventivi elseif (!empty($r['idpreventivo'])) { $modulo = Modules::getModule('Preventivi')['id']; $id = $r['idpreventivo']; $delete = 'unlink_preventivo'; } // Contratti elseif (!empty($r['idcontratto'])) { $modulo = Modules::getModule('Contratti')['id']; $id = $r['idcontratto']; $delete = 'unlink_contratto'; } // Intervento elseif (!empty($r['idintervento'])) { $modulo = Modules::getModule('Interventi')['id']; $id = $r['idintervento']; $delete = 'unlink_intervento'; } // Righe generiche else { $modulo = 0; $id = 0; $delete = 'unlink_riga'; } echo ' '; echo ' '; echo ' '; // Unità di misura echo ' '; // Costo unitario echo ' '; // Iva echo ' '; // Imponibile echo ' '; // Possibilità di rimuovere una riga solo se la fattura non è pagata echo ' '; } } echo ' '; // Calcoli $imponibile = sum(array_column($rs, 'subtotale')); $sconto = sum(array_column($rs, 'sconto')); $iva = sum(array_column($rs, 'iva')); $imponibile_scontato = sum($imponibile, -$sconto); $totale_iva = sum($iva, $records[0]['iva_rivalsainps']); $totale = sum([ $imponibile_scontato, $records[0]['rivalsainps'], $totale_iva, ]); $netto_a_pagare = sum([ $totale, $marca_da_bollo, -$records[0]['ritenutaacconto'], ]); // IMPONIBILE echo ' '; // SCONTO if (abs($sconto) > 0) { echo ' '; // IMPONIBILE SCONTATO echo ' '; } // RIVALSA INPS if (abs($records[0]['rivalsainps']) > 0) { echo ' '; } // IVA if (abs($totale_iva) > 0) { echo ' '; } // TOTALE echo ' '; // Mostra marca da bollo se c'è if (abs($records[0]['bollo']) > 0) { echo ' '; } // RITENUTA D'ACCONTO if (abs($records[0]['ritenutaacconto']) > 0) { echo ' '; //$netto_a_pagare -= $records[0]['ritenutaacconto']; } // NETTO A PAGARE if ($totale != $netto_a_pagare) { echo ' '; } echo '
'._('Descrizione').' '._('Q.tà').' '._('U.m.').' '._('Costo unitario').' '._('Iva').' '._('Imponibile').'
'.Modules::link($modulo, $id, $r['descrizione']).' '.$r['descrizione_conto'].''; if (!empty($r['abilita_serial'])) { if (!empty($mancanti)) { echo '
'.str_replace('_NUM_', $mancanti, _('_NUM_ serial mancanti')).''; } if (!empty($serials)) { echo '
'._('SN').': '.implode(', ', $serials); } } else { if ($r['lotto'] != '') { echo '
'._('Lotto').': '.$r['lotto']; } if ($r['serial'] != '') { echo '
'._('SN').': '.$r['serial']; } if ($r['altro'] != '') { echo '
'.$r['altro']; } } // 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 = ($rso[0]['numero_esterno'] != '') ? $rso[0]['numero_esterno'] : $rso[0]['numero']; echo '
'.str_replace(['_NUM_', '_DATE_'], [$numero, Translator::dateToLocale($rso[0]['data'])], _('Rif. ordine _NUM_ del _DATE_')); } elseif (!empty($r['idddt'])) { $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt WHERE id='.prepare($r['idddt'])); $numero = ($rso[0]['numero_esterno'] != '') ? $rso[0]['numero_esterno'] : $rso[0]['numero']; echo '
'.str_replace(['_NUM_', '_DATE_'], [$numero, Translator::dateToLocale($rso[0]['data'])], _('Rif. ddt _NUM_ del _DATE_')); } elseif (!empty($r['idpreventivo'])) { $rso = $dbo->fetchArray('SELECT numero, data_bozza FROM co_preventivi WHERE id='.prepare($r['idpreventivo'])); echo '
'.str_replace(['_NUM_', '_DATE_'], [$rso[0]['numero'], Translator::dateToLocale($rso[0]['data_bozza'])], _('Rif. preventivo _NUM_ del _DATE_')); } echo '
'.Translator::numberToLocale($r['qta']).' '.$r['um'].' '.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €'; if ($r['sconto_unitario'] > 0) { echo '
- sconto '.Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €').''; } echo '
'.Translator::numberToLocale($r['iva']).' €
'.$r['desc_iva'].'
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' € '; if ($records[0]['stato'] != 'Pagato' && $records[0]['stato'] != 'Emessa' && !str_contains($r['descrizione'], 'SCONTO')) { echo "
"; if (!empty($r['idarticolo'])) { echo " "; } echo "
"; if (!empty($r['idarticolo']) && $r['abilita_serial'] && (empty($r['idddt']) || empty($r['idintervento']))) { echo " "; } echo "
"; } if (!str_contains($r['descrizione'], 'SCONTO')) { echo '
'; } echo '
'.strtoupper(_('Imponibile')).': '.Translator::numberToLocale($imponibile).' €
'.strtoupper(_('Sconto')).': '.Translator::numberToLocale($sconto).' €
'.strtoupper(_('Imponibile scontato')).': '.Translator::numberToLocale($imponibile_scontato).' €
'.strtoupper(_('Rivalsa INPS')).': '.Translator::numberToLocale($records[0]['rivalsainps']).' €
'.strtoupper(_('Iva')).': '.Translator::numberToLocale($totale_iva).' €
'.strtoupper(_('Totale')).': '.Translator::numberToLocale($totale).' €
'.strtoupper(_('Marca da bollo')).': '.Translator::numberToLocale($records[0]['bollo']).' €
'.strtoupper(_("Ritenuta d'acconto")).': '.Translator::numberToLocale($records[0]['ritenutaacconto']).' €
'.strtoupper(_('Netto a pagare')).': '.Translator::numberToLocale($netto_a_pagare).' €
'; echo ' ';