'.$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'),
]).':
';
foreach ($pagamenti as $pagamento) {
$rate = $pagamento['DettaglioPagamento'];
$rate = isset($rate[0]) ? $rate : [$rate];
// Scadenze di pagamento
foreach ($rate as $rata) {
$descrizione = !empty($rata['ModalitaPagamento']) ? $database->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($rata['ModalitaPagamento']))['descrizione'] : '';
$data = !empty($rata['DataScadenzaPagamento']) ? FatturaElettronica::parseDate($rata['DataScadenzaPagamento']) : '';
echo '
'.dateFormat($data).'
'.moneyFormat($rata['ImportoPagamento']).'
('.$descrizione.')
';
}
}
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']);
$numero_tipo = $database->fetchNum($query_tipo);
if (!empty($numero_tipo)) {
$query = $query_tipo;
}
echo '
{[ "type": "select", "label": "'.tr('Tipo fattura').'", "name": "id_tipo", "required": 1, "values": "query='.$query.'", "value": "'.($numero_tipo == 1 ? $database->fetchOne($query_tipo)['id'] : '').'" ]}
';
// Sezionale
$id_segment = $is_autofattura ? setting('Sezionale per autofatture di acquisto') : $_SESSION['module_'.$id_module]['id_segment'];
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": "'.$id_segment.'" ]}
';
// Data di registrazione
$data_registrazione = get('data_registrazione');
$data_registrazione = new Carbon($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": 0, "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('Collega a fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]}
';
} elseif ($is_autofattura) {
$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 = 'entrata' AND
co_tipidocumento.codice_tipo_documento_fe IN('TD16', 'TD17', 'TD18', 'TD19', 'TD20', 'TD21') 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);
$autofattura_collegata = Fattura::where('progressivo_invio', '=', $fattura_pa->getHeader()['DatiTrasmissione']['ProgressivoInvio'])->first();
echo '
{[ "type": "select", "label": "'.tr('Autofattura collegata').'", "name": "autofattura", "values": "query='.$query.'", "value": "'.$autofattura_collegata->id.'" ]}
';
}
}
echo '
';
// Pagamento
$pagamento = Pagamento::where('codice_modalita_pagamento_fe', $codice_modalita_pagamento)->where('predefined', '1')->first();
echo '
'.tr('Visualizza tutte le modalità').'
{[ "type": "select", "label": "'.tr('Pagamento').'", "name": "pagamento", "required": 1, "ajax-source": "pagamenti", "select-options": '.json_encode(['codice_modalita_pagamento_fe' => $codice_modalita_pagamento]).', "value": "'.$pagamento->id.'" ]}
';
// Movimentazioni
echo '
{[ "type": "checkbox", "label": "'.tr('Movimenta gli articoli').'", "name": "movimentazione", "value": 1 ]}
{[ "type": "checkbox", "label": "'.tr('Creazione automatica articoli').'", "name": "flag_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").'" ]}
';
$ritenuta = $dati_generali['DatiRitenuta'];
if (!empty($ritenuta)) {
echo '
{[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": 0, "help": "'.tr('Attivare se la ritenuta è stata pagata dal fornitore').'" ]}
';
}
echo '
';
// Righe
if (setting('Aggiorna info di acquisto') == 'Non aggiornare') {
$update_info = 'update_not';
} elseif (setting('Aggiorna info di acquisto') == 'Aggiorna prezzo di listino') {
$update_info = 'update_price';
} else {
$update_info = 'update_all';
}
$righe = $fattura_pa->getRighe();
if (!empty($righe)) {
echo '
'.tr('Non ci sono righe nella fattura').'.
';
}
echo '