. */ use Modules\Interventi\Intervento; include_once __DIR__.'/init.php'; $block_edit = !empty($note_accredito) || in_array($record['stato'], ['Emessa', 'Pagato', 'Parzialmente pagato']) || !$abilita_genera; $righe = $fattura->getRighe(); echo '
'; // Righe documento $num = 0; foreach ($righe as $riga) { ++$num; $extra = ''; $mancanti = 0; $delete = 'delete_riga'; // Individuazione dei seriali if ($riga->isArticolo() && !empty($riga->abilita_serial)) { $serials = $riga->serials; $mancanti = abs($riga->qta) - count($serials); if ($mancanti > 0) { $extra = 'class="warning"'; } else { $mancanti = 0; } } $extra_riga = ''; if (!$riga->isDescrizione()) { // Informazioni su CIG, CUP, ... if ($riga->hasOriginalComponent()) { $documento_originale = $riga->getOriginalComponent()->getDocument(); $num_item = $documento_originale['num_item']; $codice_cig = $documento_originale['codice_cig']; $codice_commessa = $documento_originale['codice_commessa']; $codice_cup = $documento_originale['codice_cup']; $id_documento_fe = $documento_originale['id_documento_fe']; } $descrizione_conto = $dbo->fetchOne('SELECT descrizione FROM co_pianodeiconti3 WHERE id = '.prepare($riga->id_conto))['descrizione']; $extra_riga = replace('_DESCRIZIONE_CONTO__ID_DOCUMENTO__NUMERO_RIGA__CODICE_COMMESSA__CODICE_CIG__CODICE_CUP__RITENUTA_ACCONTO__RITENUTA_CONTRIBUTI__RIVALSA_', [ '_RIVALSA_' => $riga->rivalsa_inps ? '
'.tr('Cassa previdenziale').': '.moneyFormat(abs($riga->rivalsa_inps)) : null, '_RITENUTA_ACCONTO_' => $riga->ritenuta_acconto ? '
Ritenuta acconto: '.moneyFormat(abs($riga->ritenuta_acconto)) : null, '_RITENUTA_CONTRIBUTI_' => $riga->ritenuta_contributi ? '
Ritenuta previdenziale: '.moneyFormat(abs($riga->ritenuta_contributi)) : null, '_DESCRIZIONE_CONTO_' => $descrizione_conto ?: ' '.tr('Conto mancante').'', '_ID_DOCUMENTO_' => $id_documento_fe ? ' - DOC: '.$id_documento_fe : null, '_NUMERO_RIGA_' => $num_item ? ', NRI: '.$num_item : null, '_CODICE_COMMESSA_' => $codice_commessa ? ', COM: '.$codice_commessa : null, '_CODICE_CIG_' => $codice_cig ? ', CIG: '.$codice_cig : null, '_CODICE_CUP_' => $codice_cup ? ', CUP: '.$codice_cup : null, ]); } echo ' '; if ($riga->isDescrizione()) { echo ' '; } else { // Quantità e unità di misura echo ' '; // Prezzi unitari if (empty($riga->prezzo_unitario_corrente) && $dir == 'entrata') { $price_danger = 'text-danger'; } else { $price_danger = ''; } echo ' '; // Iva echo ' '; // Importo echo ' '; } // Possibilità di rimuovere una riga solo se la fattura non è pagata echo ' '; } echo ' '; // Individuazione dei totali $imponibile = $fattura->imponibile; $sconto = -$fattura->sconto; $totale_imponibile = $fattura->totale_imponibile; $iva = $fattura->iva; $totale = $fattura->totale; $sconto_finale = $fattura->getScontoFinale(); $netto_a_pagare = $fattura->netto; $rivalsa_inps = $fattura->rivalsa_inps; $ritenuta_acconto = $fattura->ritenuta_acconto; $ritenuta_contributi = $fattura->totale_ritenuta_contributi; // IMPONIBILE echo ' '; // SCONTO if (!empty($sconto)) { echo ' '; // TOTALE IMPONIBILE echo ' '; } // RIVALSA INPS if (!empty($rivalsa_inps)) { echo ' '; } // IVA if (!empty($iva)) { echo ' '; } // TOTALE echo ' '; // RITENUTA D'ACCONTO if (!empty($ritenuta_acconto)) { echo ' '; } // RITENUTA PREVIDENZIALE if (!empty($ritenuta_contributi)) { echo ' '; } // SCONTO IN FATTURA if (!empty($sconto_finale)) { echo ' '; } // NETTO A PAGARE if ($totale != $netto_a_pagare) { echo ' '; } // Provvigione if(!empty($fattura->provvigione)) { echo ' '; echo ' '; } echo '
'; if (!$block_edit && sizeof($righe) > 0) { echo ' '; } echo ' '.tr('#').' '.tr('Descrizione').' '.tr('Q.tà').' '.tr('Prezzo unitario').' '.tr('Iva unitaria').' '.tr('Importo').'
'; if (!$block_edit) { echo ' '; } echo ' '.$num.' '; // Informazioni aggiuntive sulla destra echo ' '.$extra_riga; // Aggiunta dei riferimenti ai documenti if ($riga->hasOriginalComponent()) { echo '
'.reference($riga->getOriginalComponent()->getDocument(), tr('Origine')); } // Fix per righe da altre componenti degli Interventi elseif (!empty($riga->idintervento)) { echo '
'.reference(Intervento::find($riga->idintervento), tr('Origine')); } echo '
'; if ($riga->isArticolo()) { echo Modules::link('Articoli', $riga->idarticolo, $riga->codice.' - '.$riga->descrizione); } else { echo nl2br($riga->descrizione); } if ($riga->isArticolo() && !empty($riga->articolo->deleted_at)) { echo '
'.tr('Articolo eliminato', []).''; } if ($riga->isArticolo() && empty($riga->articolo->codice)) { echo '
'.tr('_DATO_ articolo mancante', [ '_DATO_' => 'Codice', ]).''; } if ($riga->isArticolo() && !empty($riga->abilita_serial)) { if (!empty($mancanti)) { echo '
'.tr('_NUM_ serial mancanti', [ '_NUM_' => $mancanti, ]).''; } if (!empty($serials)) { echo '
'.tr('SN').': '.implode(', ', $serials); } } if ($riga->isArticolo() && !empty($riga->articolo->barcode)) { echo '
'.$riga->articolo->barcode.''; } if (!empty($riga->note)) { echo '
'.nl2br($riga->note).''; } echo '
'.numberFormat($riga->qta, 'qta').' '.$riga->um.' '.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 '
'.moneyFormat($riga->iva_unitaria_scontata).'
'.$riga->aliquota->descrizione.' ('.$riga->aliquota->esigibilita.') '.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'
'.moneyFormat($riga->importo); //provvigione riga if (abs($riga->provvigione_unitaria) > 0) { $text = provvigioneInfo($riga); echo '
'.$text.''; } echo '
'; if ($dir == 'uscita'){ echo '
'; if ($riga->isArticolo() && !empty($riga->abilita_serial)) { echo ' '; } } else if ($record['stato'] != 'Pagato' && $record['stato'] != 'Emessa') { echo '
'; if ($riga->isArticolo() && !empty($riga->abilita_serial)) { echo ' '; } } if ($record['stato'] != 'Pagato' && $record['stato'] != 'Emessa') { if ($riga->id != $fattura->rigaBollo->id) { echo ' '; } echo '
'; } echo '
'.tr('Imponibile', [], ['upper' => true]).': '.moneyFormat($imponibile, 2).'
'.tr('Sconto/maggiorazione', [], ['upper' => true]).': '.moneyFormat($sconto, 2).'
'.tr('Totale imponibile', [], ['upper' => true]).': '.moneyFormat($totale_imponibile, 2).'
'; if ($dir == 'entrata') { $descrizione_rivalsa = $database->fetchOne('SELECT CONCAT_WS(\' - \', codice, descrizione) AS descrizione FROM fe_tipo_cassa WHERE codice = '.prepare(setting('Tipo Cassa Previdenziale'))); echo ' '; } echo ' '.tr('Cassa previdenziale', [], ['upper' => true]).' : '.moneyFormat($rivalsa_inps, 2).'
'.tr('Totale imponibile', [], ['upper' => true]).' : '.moneyFormat($totale_imponibile + $rivalsa_inps, 2).'
'; if ($records[0]['split_payment']) { echo ''.tr('Iva a carico del destinatario', [], ['upper' => true]).':'; } else { echo ''.tr('Iva', [], ['upper' => true]).':'; } echo ' '.moneyFormat($iva, 2).'
'.tr('Totale documento', [], ['upper' => true]).': '.moneyFormat($totale, 2).'
'.tr("Ritenuta d'acconto", [], ['upper' => true]).': '.moneyFormat($ritenuta_acconto, 2).'
'.tr('Ritenuta previdenziale', [], ['upper' => true]).': '.moneyFormat($ritenuta_contributi, 2).'
'.tr('Sconto in fattura', [], ['upper' => true]).': '.moneyFormat($sconto_finale, 2).'
'.tr('Netto a pagare', [], ['upper' => true]).': '.moneyFormat($netto_a_pagare, 2).'
'.tr('Provvigioni').': '.moneyFormat($fattura->provvigione).'
'.tr('Netto da provvigioni').': '.moneyFormat($fattura->totale_imponibile - $fattura->provvigione).'
'; if (!$block_edit && sizeof($righe) > 0) { echo '
'; } echo '
';