'.tr('Descrizione').' |
'.tr('Q.tà').' |
'.tr('Prezzo unitario').' |
'.tr('Iva unitaria').' |
'.tr('Importo').' |
|
';
// Righe documento
$righe = $fattura->getRighe();
foreach ($righe as $riga) {
$r = $riga->toArray();
// Valori assoluti
$r['qta'] = abs($r['qta']);
$r['costo_unitario'] = abs($r['costo_unitario']);
$r['totale_imponibile'] = ($fattura->isNota() ? -$riga->totale_imponibile : $riga->totale_imponibile);
$r['sconto_unitario'] = abs($r['sconto_unitario']);
$r['sconto'] = abs($r['sconto']);
$r['iva'] = abs($r['iva']);
if (empty($r['is_descrizione'])) {
$r['descrizione_conto'] = $dbo->fetchOne('SELECT descrizione FROM co_pianodeiconti3 WHERE id = '.prepare($r['idconto']))['descrizione'];
}
$r['ritenuta_acconto'] = !empty($r['idritenutaacconto']) ? moneyFormat(abs($r['ritenutaacconto']), 2) : null;
$r['ritenuta_contributi'] = !empty($r['ritenuta_contributi']) ? moneyFormat(abs($r['ritenuta_contributi']), 2) : null;
$r['rivalsa'] = !empty($r['idrivalsainps']) ? moneyFormat(abs($r['rivalsainps']), 2) : null;
$extra = '';
$delete = 'delete_riga';
// Articoli
if ($riga->isArticolo()) {
$r['descrizione'] = (!empty($riga->articolo) ? $riga->articolo->codice.' - ' : '').$r['descrizione'];
$extra = '';
$mancanti = 0;
}
// Intervento
if (!empty($r['idintervento'])) {
$intervento = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM in_interventi WHERE id = '.prepare($r['idintervento']));
$r['num_item'] = $intervento['num_item'];
$r['codice_cig'] = $intervento['codice_cig'];
$r['codice_cup'] = $intervento['codice_cup'];
$r['id_documento_fe'] = $intervento['id_documento_fe'];
$delete = 'unlink_intervento';
}
// Preventivi
elseif (!empty($r['idpreventivo'])) {
$preventivo = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM co_preventivi WHERE id = '.prepare($r['idpreventivo']));
$r['num_item'] = $preventivo['num_item'];
$r['codice_cig'] = $preventivo['codice_cig'];
$r['codice_cup'] = $preventivo['codice_cup'];
$r['id_documento_fe'] = $preventivo['id_documento_fe'];
}
// Contratti
elseif (!empty($r['idcontratto'])) {
$contratto = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($r['idcontratto']));
$r['num_item'] = $contratto['num_item'];
$r['codice_cig'] = $contratto['codice_cig'];
$r['codice_cup'] = $contratto['codice_cup'];
$r['id_documento_fe'] = $contratto['id_documento_fe'];
}
// Ordini (IDDOCUMENTO,CIG,CUP)
elseif (!empty($r['idordine'])) {
$ordine = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM or_ordini WHERE id = '.prepare($r['idordine']));
$r['num_item'] = $ordine['num_item'];
$r['codice_cig'] = $ordine['codice_cig'];
$r['codice_cup'] = $ordine['codice_cup'];
$r['id_documento_fe'] = $ordine['id_documento_fe'];
}
// Individuazione dei seriali
if (!empty($r['abilita_serial'])) {
$serials = $riga->serials;
$mancanti = $r['qta'] - count($serials);
if ($mancanti > 0) {
$extra = 'class="warning"';
} else {
$mancanti = 0;
}
}
$extra_riga = '';
if (!$r['is_descrizione']) {
$extra_riga = tr('_DESCRIZIONE_CONTO__ID_DOCUMENTO__NUMERO_RIGA__CODICE_CIG__CODICE_CUP__RITENUTA_ACCONTO__RITENUTA_CONTRIBUTI__RIVALSA_', [
'_RIVALSA_' => $r['rivalsa'] ? '
Rivalsa: '.$r['rivalsa'] : null,
'_RITENUTA_ACCONTO_' => $r['ritenuta_acconto'] ? '
Ritenuta acconto: '.$r['ritenuta_acconto'] : null,
'_RITENUTA_CONTRIBUTI_' => $r['ritenuta_contributi'] ? '
Ritenuta contributi: '.$r['ritenuta_contributi'] : null,
'_DESCRIZIONE_CONTO_' => $r['descrizione_conto'] ?: null,
'_ID_DOCUMENTO_' => $r['id_documento_fe'] ? ' - DOC: '.$r['id_documento_fe'] : null,
'_NUMERO_RIGA_' => $r['num_item'] ? ', NRI: '.$r['num_item'] : null,
'_CODICE_CIG_' => $r['codice_cig'] ? ', CIG: '.$r['codice_cig'] : null,
'_CODICE_CUP_' => $r['codice_cup'] ? ', CUP: '.$r['codice_cup'] : null,
]);
}
echo '
'.Modules::link($riga->isArticolo() ? Modules::get('Articoli')['id'] : null, $riga->isArticolo() ? $r['idarticolo'] : null, $r['descrizione']).'
'.$extra_riga.'';
if (!empty($r['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 ($fattura->isNota() && !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($id_module, $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->isDescrizione()) {
echo '
|
|
|
| ';
} else {
// Quantità e unità di misura
echo '
'.numberFormat($riga->qta, 'qta').' '.$r['um'].'
| ';
// Prezzi unitari
echo '
'.moneyFormat($riga->prezzo_unitario_corrente);
if ($dir == 'entrata' && $riga->costo_unitario != 0) {
echo '
'.tr('Acquisto').': '.moneyFormat($riga->costo_unitario).'
';
}
if (abs($riga->sconto_unitario) > 0) {
$text = discountInfo($riga);
echo '
'.$text.'';
}
echo '
| ';
// Iva
echo '
'.moneyFormat($riga->iva_unitaria).'
'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'
| ';
// Importo
echo '
'.moneyFormat($riga->importo).'
| ';
}
// Possibilità di rimuovere una riga solo se la fattura non è pagata
echo '
';
if ($record['stato'] != 'Pagato' && $record['stato'] != 'Emessa' && $r['id'] != $fattura->rigaBollo->id) {
echo "
";
}
echo '
';
echo '
|
';
}
echo '
';
$imponibile = abs($fattura->imponibile);
$sconto = $fattura->sconto;
$totale_imponibile = abs($fattura->totale_imponibile);
$iva = abs($fattura->iva);
$totale = abs($fattura->totale);
$netto_a_pagare = abs($fattura->netto);
// IMPONIBILE
echo '
'.tr('Imponibile', [], ['upper' => true]).':
|
'.moneyFormat($imponibile, 2).'
|
|
';
// SCONTO
if (!empty($sconto)) {
echo '
'.tr('Sconto/maggiorazione', [], ['upper' => true]).':
|
'.moneyFormat($sconto, 2).'
|
|
';
// TOTALE IMPONIBILE
echo '
'.tr('Totale imponibile', [], ['upper' => true]).':
|
'.moneyFormat($totale_imponibile, 2).'
|
|
';
}
// RIVALSA INPS
if (!empty($fattura->rivalsa_inps)) {
echo '
';
if ($dir == 'entrata') {
echo '
';
}
echo '
'.tr('Rivalsa', [], ['upper' => true]).' :
|
'.moneyFormat($fattura->rivalsa_inps, 2).'
|
|
';
}
// IVA
if (!empty($iva)) {
echo '
';
if ($records[0]['split_payment']) {
echo ''.tr('Iva a carico del destinatario', [], ['upper' => true]).':';
} else {
echo ''.tr('Iva', [], ['upper' => true]).':';
}
echo '
|
'.moneyFormat($iva, 2).'
|
|
';
}
// TOTALE
echo '
'.tr('Totale', [], ['upper' => true]).':
|
'.moneyFormat($totale, 2).'
|
|
';
// RITENUTA D'ACCONTO
if (!empty($fattura->ritenuta_acconto)) {
echo '
'.tr("Ritenuta d'acconto", [], ['upper' => true]).':
|
'.moneyFormat(abs($fattura->ritenuta_acconto), 2).'
|
|
';
}
// RITENUTA CONTRIBUTI
if (!empty($fattura->totale_ritenuta_contributi)) {
echo '
'.tr('Ritenuta contributi', [], ['upper' => true]).':
|
'.moneyFormat(abs($fattura->totale_ritenuta_contributi), 2).'
|
|
';
}
// NETTO A PAGARE
if ($totale != $netto_a_pagare) {
echo '
'.tr('Netto a pagare', [], ['upper' => true]).':
|
'.moneyFormat($netto_a_pagare, 2).'
|
|
';
}
echo '
';
echo '
';