'; // 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']; $descrizione_documento = database()->fetchOne('SELECT CONCAT("(", codice, ") ", descrizione) AS descrizione FROM fe_tipi_documento WHERE codice = '.prepare($dati_generali['TipoDocumento'])); echo '

'. $ragione_sociale.' '.((empty($idanagrafica = $dbo->fetchOne('SELECT idanagrafica FROM an_anagrafiche WHERE ( codice_fiscale = '.prepare($codice_fiscale).' AND codice_fiscale != \'\' ) OR ( piva = '.prepare($partita_iva).' AND piva != \'\' ) ')['idanagrafica'])) ? ''.tr('Nuova anagrafica').'' : ''.Modules::link('Anagrafiche', $idanagrafica, '', null, '')).''.'
'.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'
') : '').' '.(!empty($partita_iva) ? (tr('Partita IVA').': '.$partita_iva.'
') : '').' '.$cap.' '.$citta.' ('.$provincia.')

'.$dati_generali['Numero']; echo ' '.tr('Visualizza').' '; echo '
'.database()->fetchOne('SELECT CONCAT("(", codice, ") ", descrizione) AS descrizione FROM fe_tipi_documento WHERE codice = '.prepare($dati_generali['TipoDocumento']))['descrizione'].'
'.Translator::dateToLocale($dati_generali['Data']).'
'.$dati_generali['Divisa'].'

'; // 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\''; if (database()->fetchNum('SELECT id FROM co_tipidocumento WHERE codice_tipo_documento_fe = '.prepare($dati_generali['TipoDocumento']))) { $query .= ' AND codice_tipo_documento_fe = '.prepare($dati_generali['TipoDocumento']); } 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 id_module='.$id_module.' ORDER BY name", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]}
'; // Data ricezione echo '
{[ "type": "date", "label": "'.tr('Data di registrazione').'", "name": "data_registrazione", "required": 1, "value": "'.get('data_registrazione').'", "max-date": "-now-", "min-date": "'.$dati_generali['Data'].'", "readonly": "'.(intval(get('data_registrazione') != null)).'" ]}
'; // Riferimenti ad altre fatture if (in_array($dati_generali['TipoDocumento'], ['TD04', 'TD05'])) { $anagrafica = $fattura_pa->saveAnagrafica(); $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); echo '
{[ "type": "select", "label": "'.tr('Fattura collegata').'", "name": "ref_fattura", "required": 1, "values": "query='.$query.'" ]}
'; } elseif ($dati_generali['TipoDocumento'] == 'TD06') { $anagrafica = $fattura_pa->saveAnagrafica(); $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.id_segment = (SELECT id FROM zz_segments WHERE name = 'Fatture pro-forma' AND id_module = ".prepare($id_module).') AND co_documenti.idanagrafica = '.prepare($anagrafica->id); echo '
{[ "type": "select", "label": "'.tr('Fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]}
'; } echo '
'; // Blocco DatiPagamento è valorizzato (opzionale) $pagamenti = $fattura_pa->getBody()['DatiPagamento']; if (!empty($pagamenti)) { $metodi = $pagamenti['DettaglioPagamento']; $metodi = isset($metodi[0]) ? $metodi : [$metodi]; $codice_modalita_pagamento = $metodi[0]['ModalitaPagamento']; 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) { echo '
  1. '; //DataScadenzaPagamento è un nodo opzionale per il blocco DatiPagamento if (!empty($metodo['DataScadenzaPagamento'])) { echo Translator::dateToLocale($metodo['DataScadenzaPagamento']).' '; } $descrizione = !empty($metodo['ModalitaPagamento']) ? database()->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($metodo['ModalitaPagamento']))['descrizione'] : ''; echo Translator::numberToLocale($metodo['ImportoPagamento']).' € ('.$descrizione.')
  2. '; } 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 ]}
'; // 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'; /*Visualizzo codici articoli*/ $codici_articoli = ''; //caso di un solo codice articolo if (isset($riga['CodiceArticolo']) and empty($riga['CodiceArticolo'][0]['CodiceValore'])) { $riga['CodiceArticolo'][0]['CodiceValore'] = $riga['CodiceArticolo']['CodiceValore']; $riga['CodiceArticolo'][0]['CodiceTipo'] = $riga['CodiceArticolo']['CodiceTipo']; } foreach ($riga['CodiceArticolo'] as $key2 => $item) { foreach ($item as $key2 => $name) { if ($key2 == 'CodiceValore') { if (!empty($item['CodiceValore'])) { $codici_articoli .= ''.$item['CodiceValore'].' ('.$item['CodiceTipo'].')'; if (($item['CodiceValore'] != end($riga['CodiceArticolo'][(count($riga['CodiceArticolo']) - 1)])) and (is_array($riga['CodiceArticolo'][1]))) { $codici_articoli .= ', '; } } } } } /*###*/ echo ' '; } echo '
'.tr('Descrizione').' '.tr('Dati contabili').'* '.tr('Articolo').'
'.$riga['Descrizione'].'
'.(($codici_articoli != '') ? $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", "class": "", "icon-after": "add|'.Modules::get('Articoli')['id'].'|codice='.htmlentities($riga['CodiceArticolo'][0]['CodiceValore']).'&descrizione='.htmlentities($riga['Descrizione']).'" ]}
'; echo ' '; } else { echo '

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

'; } echo '
'; echo ' ';