$(document).ready(function() { $("#save").hide(); }); '; $skip_link = $has_next ? ROOTDIR.'/editor.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'&id_record='.($id_record + 1).'&sequence='.get('sequence') : ROOTDIR.'/editor.php?id_module='.$id_module; if (empty($fattura_pa)) { if (!empty($error)) { echo '

'.tr("Errore durante l'apertura della fattura elettronica _NAME_", [ '_NAME_' => $record['name'], ]).'.

'; } elseif (!empty($imported)) { echo '

'.tr('La fattura elettrnica _NAME_ è già stata importata in passato', [ '_NAME_' => $record['name'], ]).'.

'; } echo '
'; if (!empty($imported)) { echo ' '; } echo '
'; return; } // Fornitore $fornitore = $fattura_pa->getAnagrafe(); $ragione_sociale = $fornitore['ragione_sociale'] ?: $fornitore['cognome'].' '.$fornitore['nome']; $codice_fiscale = $fornitore['codice_fiscale']; $partita_iva = $fornitore['partita_iva']; $sede = $fornitore['sede']; $cap = $sede['cap']; $citta = $sede['comune']; $provincia = $sede['provincia']; // Dati generali $dati_generali = $fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']; $tipo_documento = $database->fetchOne('SELECT CONCAT("(", codice, ") ", descrizione) AS descrizione FROM fe_tipi_documento WHERE codice = '.prepare($dati_generali['TipoDocumento']))['descrizione']; $pagamenti = $fattura_pa->getBody()['DatiPagamento']; $metodi = $pagamenti['DettaglioPagamento']; $metodi = isset($metodi[0]) ? $metodi : [$metodi]; $codice_modalita_pagamento = $metodi[0]['ModalitaPagamento']; echo '

'.$ragione_sociale.' '.(empty($anagrafica) ? ''.tr('Nuova anagrafica').'' : ''.Modules::link('Anagrafiche', $anagrafica->id, '', null, '')).'
'.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'
') : '').' '.(!empty($partita_iva) ? (tr('Partita IVA').': '.$partita_iva.'
') : '').' '.$cap.' '.$citta.' ('.$provincia.')

'.$dati_generali['Numero'].' '.tr('Visualizza').'
'.$tipo_documento.'
'.Translator::dateToLocale($dati_generali['Data']).'
'.$dati_generali['Divisa'].'

'; // Blocco DatiPagamento è valorizzato (opzionale) if (!empty($pagamenti)) { echo '

'.tr('Pagamento').'

'.tr('La fattura importata presenta _NUM_ rat_E_ di pagamento con le seguenti scadenze', [ '_NUM_' => count($metodi), '_E_' => ((count($metodi) > 1) ? 'e' : 'a'), ]).':

    '; // Scadenze di pagamento foreach ($metodi as $metodo) { $descrizione = !empty($metodo['ModalitaPagamento']) ? $database->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($metodo['ModalitaPagamento']))['descrizione'] : ''; $data = !empty($metodo['DataScadenzaPagamento']) ? Translator::dateToLocale($metodo['DataScadenzaPagamento']).' ' : ''; echo '
  1. '.$data.' '.moneyFormat($metodo['ImportoPagamento']).' ('.$descrizione.')
  2. '; } echo '
'; } echo '
'; // Tipo del documento $query = "SELECT id, CONCAT (descrizione, IF((codice_tipo_documento_fe IS NULL), '', CONCAT(' (', codice_tipo_documento_fe, ')' ) )) AS descrizione FROM co_tipidocumento WHERE dir = 'uscita'"; $query_tipo = $query.' AND codice_tipo_documento_fe = '.prepare($dati_generali['TipoDocumento']); if ($database->fetchNum($query_tipo)) { $query = $query_tipo; } echo '
{[ "type": "select", "label": "'.tr('Tipo fattura').'", "name": "id_tipo", "required": 1, "values": "query='.$query.'" ]}
'; // Sezionale echo '
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE is_fiscale = 1 AND id_module='.$id_module.' ORDER BY name", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]}
'; // Data di registrazione $data_registrazione = get('data_registrazione'); echo '
{[ "type": "date", "label": "'.tr('Data di registrazione').'", "name": "data_registrazione", "required": 1, "value": "'.($data_registrazione ?: $dati_generali['Data']).'", "max-date": "-now-", "min-date": "'.$dati_generali['Data'].'" ]}
'; if (!empty($anagrafica)) { $query = "SELECT co_documenti.id, CONCAT('Fattura num. ', co_documenti.numero_esterno, ' del ', DATE_FORMAT(co_documenti.data, '%d/%m/%Y')) AS descrizione FROM co_documenti INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento WHERE co_tipidocumento.dir = 'uscita' AND (co_documenti.data BETWEEN NOW() - INTERVAL 1 YEAR AND NOW()) AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione != 'Bozza') AND co_documenti.idanagrafica = ".prepare($anagrafica->id); // Riferimenti ad altre fatture if (in_array($dati_generali['TipoDocumento'], ['TD04', 'TD05'])) { echo '
{[ "type": "select", "label": "'.tr('Fattura collegata').'", "name": "ref_fattura", "required": 1, "values": "query='.$query.'" ]}
'; } elseif ($dati_generali['TipoDocumento'] == 'TD06') { $query .= "AND co_documenti.id_segment = (SELECT id FROM zz_segments WHERE name = 'Fatture pro-forma' AND id_module = ".prepare($id_module).')'; echo '
{[ "type": "select", "label": "'.tr('Fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]}
'; } } echo '
'; if (!empty($codice_modalita_pagamento)) { $_SESSION['superselect']['codice_modalita_pagamento_fe'] = $codice_modalita_pagamento; } // Pagamento echo '
{[ "type": "select", "label": "'.tr('Pagamento').'", "name": "pagamento", "required": 1, "ajax-source": "pagamenti" ]}
'; // Movimentazioni echo '
{[ "type": "checkbox", "label": "'.tr('Movimenta gli articoli').'", "name": "movimentazione", "value": 1 ]}
{[ "type": "checkbox", "label": "'.tr('Creazione automatica articoli').'", "name": "crea_articoli", "value": 0, "help": "'.tr("Nel caso di righe con tag CodiceArticolo, il gestionale procede alla creazione dell'articolo se la riga non risulta assegnata manualmente").'" ]}
'; // Righe $righe = $fattura_pa->getRighe(); if (!empty($righe)) { echo '

'.tr('Righe').'

'; foreach ($righe as $key => $riga) { $query = 'SELECT id, IF(codice IS NULL, descrizione, CONCAT(codice, " - ", descrizione)) AS descrizione FROM co_iva WHERE percentuale = '.prepare($riga['AliquotaIVA']); if (!empty($riga['Natura'])) { $query .= ' AND codice_natura_fe = '.prepare($riga['Natura']); } $query .= ' ORDER BY descrizione ASC'; // Visualizzazione codici articoli $codici = $riga['CodiceArticolo'] ?: []; $codici = !empty($codici) && !isset($codici[0]) ? [$codici] : $codici; $codici_articoli = []; foreach ($codici as $codice) { $codici_articoli[] = $codice['CodiceValore'].' ('.$codice['CodiceTipo'].')'; } // Individuazione articolo con codice relativo $codice_principale = $codici[0]['CodiceValore']; $id_articolo = $database->fetchOne('SELECT id FROM mg_articoli WHERE codice = '.prepare($codice_principale))['id']; echo ' '; } echo '
'.tr('Descrizione').' '.tr('Dati contabili').'* '.tr('Articolo').'
'.$riga['Descrizione'].'
'.(!empty($codici_articoli) ? ''.implode(', ', $codici_articoli).'
' : '').' '.tr('Q.tà: _QTA_ _UM_', [ '_QTA_' => Translator::numberToLocale($riga['Quantita']), '_UM_' => $riga['UnitaMisura'], ]).'
'.tr('Aliquota IVA: _VALUE_ _DESC_', [ '_VALUE_' => empty($riga['Natura']) ? numberFormat($riga['AliquotaIVA']).'%' : $riga['Natura'], '_DESC_' => $riga['RiferimentoNormativo'] ? ' - '.$riga['RiferimentoNormativo'] : '', ]).'
{[ "type": "select", "name": "iva['.$key.']", "values": "query='.str_replace('"', '\"', $query).'", "required": 1, "placeholder": "Aliquota iva" ]}
{[ "type": "select", "name": "conto['.$key.']", "ajax-source": "conti-acquisti", "required": 1, "placeholder": "Conto acquisti" ]}
{[ "type": "select", "name": "articoli['.$key.']", "ajax-source": "articoli", "icon-after": "add|'.Modules::get('Articoli')['id'].'|codice='.htmlentities($codice_principale).'&descrizione='.htmlentities($riga['Descrizione']).'", "value": "'.$id_articolo.'" ]}
'; echo ' '; } else { echo '

'.tr('Non ci sono righe nella fattura').'.

'; } echo '
'.tr('Salta fattura').'
';