codice_stato_fe) || in_array($fattura->codice_stato_fe, ['GEN', 'NS', 'EC02']); if (!empty($fattura_pa)) { $disabled = false; $generated = $fattura_pa->isGenerated(); } else { echo '
'.tr('Attenzione').': '.tr('Per generare la fattura elettronica è necessario che sia in stato "Emessa"').'.
'; $disabled = true; $generated = false; } // Natura obbligatoria per iva con esenzione $iva = $database->fetchOne('SELECT * FROM `co_iva` WHERE `id` IN (SELECT idiva FROM co_righe_documenti WHERE iddocumento = '.prepare($id_record).') AND esente = 1'); $fields = [ 'codice_natura_fe' => 'Natura IVA', ]; if (!empty($iva)) { $missing = []; foreach ($fields as $key => $name) { if (empty($iva[$key])) { $missing[] = $name; } } } if (!empty($missing) && !$generated) { echo '

'.tr('Prima di procedere alla generazione della fattura elettronica completa i seguenti campi per IVA: _FIELDS_', [ '_FIELDS_' => ''.implode(', ', $missing).'', ]).'

'; //$disabled = true; } // Campi obbligatori per il pagamento $pagamento = $database->fetchOne('SELECT * FROM `co_pagamenti` WHERE `id` = '.prepare($record['idpagamento'])); $fields = [ 'codice_modalita_pagamento_fe' => 'Codice modalità pagamento FE', ]; $missing = []; foreach ($fields as $key => $name) { if (empty($pagamento[$key])) { $missing[] = $name; } } if (!empty($missing) && !$generated) { echo '

'.tr('Prima di procedere alla generazione della fattura elettronica completa i seguenti campi per il Pagamento: _FIELDS_', [ '_FIELDS_' => ''.implode(', ', $missing).'', ]).'

'; $disabled = true; } // Campi obbligatori per l'anagrafica Azienda $azienda = FatturaElettronica::getAzienda(); $fields = [ 'piva' => 'Partita IVA', // 'codice_fiscale' => 'Codice Fiscale', 'citta' => 'Città', 'indirizzo' => 'Indirizzo', 'cap' => 'C.A.P.', 'nazione' => 'Nazione', ]; $missing = []; foreach ($fields as $key => $name) { if (empty($azienda[$key])) { $missing[] = $name; } } if (!empty($missing)) { echo '

'.tr("Prima di procedere alla generazione della fattura elettronica completa i seguenti campi dell'anagrafica Azienda: _FIELDS_", [ '_FIELDS_' => ''.implode(', ', $missing).'', ]).'

'.Modules::link('Anagrafiche', $azienda['idanagrafica'], tr('Vai alla scheda anagrafica'), null).'

'; } // Campi obbligatori per l'anagrafica Cliente $cliente = Anagrafica::find($record['idanagrafica']); $fields = [ // 'piva' => 'Partita IVA', // 'codice_fiscale' => 'Codice Fiscale', 'citta' => 'Città', 'indirizzo' => 'Indirizzo', 'cap' => 'C.A.P.', 'nazione' => 'Nazione', ]; // se privato/pa o azienda if ($cliente['tipo'] == 'Privato' or $cliente['tipo'] == 'Ente pubblico') { // se privato/pa chiedo obbligatoriamente codice fiscale $fields['codice_fiscale'] = 'Codice Fiscale'; // se pa chiedo codice unico ufficio ($cliente['tipo'] == 'Ente pubblico' && empty($cliente['codice_destinatario'])) ? $fields['codice_destinatario'] = 'Codice unico ufficio' : ''; } else { // se azienda chiedo partita iva $fields['piva'] = 'Partita IVA'; // se italiana e non ho impostato ne il codice destinatario ne indirizzo PEC chiedo la compilazione di almeno uno dei due (empty($cliente['codice_destinatario']) and empty($cliente['pec']) && intval($cliente['nazione'] == 'IT')) ? $fields['codice_destinatario'] = 'Codice destinatario o indirizzo PEC' : ''; } $missing = []; foreach ($fields as $key => $name) { if (empty($cliente[$key])) { $missing[] = $name; } } if (!empty($missing)) { echo '

'.tr("Prima di procedere alla generazione della fattura elettronica completa i seguenti campi dell'anagrafica Cliente: _FIELDS_", [ '_FIELDS_' => ''.implode(', ', $missing).'', ]).'

'.Modules::link('Anagrafiche', $record['idanagrafica'], tr('Vai alla scheda anagrafica'), null).'

'; } echo '

'.tr("Per effettuare la generazione dell'XML della fattura elettronica clicca sul pulsante _BTN_", [ '_BTN_' => 'Genera', ]).'. '.tr('Successivamente sarà possibile procedere alla visualizzazione e al download della fattura generata attraverso i pulsanti dedicati').'.

'.tr("Tutti gli allegati inseriti all'interno della categoria \"Allegati Fattura Elettronica\" saranno inclusi nell'XML").'.


'; echo '
'; $file = $generated ? Models\Upload::where('filename', $fattura_pa->getFilename())->where('id_record', $id_record)->first() : null; echo ' '.tr('Visualizza').' '; // Scelgo quando posso inviarla $send = Interaction::isEnabled() && $generated && in_array($record['codice_stato_fe'], ['GEN', 'ERVAL']); echo ' '.tr('Scarica').' '; echo '

'; // Messaggio esito invio if (!empty($record['codice_stato_fe'])) { if ($record['codice_stato_fe'] == 'GEN') { echo '
'.tr("La fattura è stata generata ed è pronta per l'invio").'.
'; } else { $stato_fe = database()->fetchOne('SELECT codice, descrizione, icon FROM fe_stati_documento WHERE codice='.prepare($record['codice_stato_fe'])); if (in_array($stato_fe['codice'], ['EC01', 'RC'])) { $class = 'success'; } elseif (in_array($stato_fe['codice'], ['ERVAL', 'GEN', 'MC', 'WAIT'])) { $class = 'warning'; } else { $class = 'danger'; } echo '
'.$stato_fe['codice'].' - '.$stato_fe['descrizione'].' '.(!empty($record['descrizione_ricevuta_fe']) ? '
NOTE:
'.$record['descrizione_ricevuta_fe'] : '').'
'.Translator::timestampToLocale($record['data_stato_fe']).'
'; } } echo ' '; echo '
'; echo ' ';