2018-07-09 12:57:55 +02:00
< ? php
2018-09-18 15:57:55 +02:00
include_once __DIR__ . '/init.php' ;
2018-07-09 12:57:55 +02:00
2018-11-30 16:10:15 +01:00
use Plugins\ExportFE\FatturaElettronica ;
2018-09-21 15:50:42 +02:00
if ( ! empty ( $fattura_pa )) {
2018-07-09 15:01:11 +02:00
$disabled = false ;
2018-09-21 15:50:42 +02:00
$generated = file_exists ( $upload_dir . '/' . $fattura_pa -> getFilename ());
2018-11-09 07:02:59 +01:00
2018-11-30 16:10:15 +01:00
// Ulteriore controllo sulla data generazione file
$rs_generated = $dbo -> fetchArray ( 'SELECT xml_generated_at FROM co_documenti WHERE id=' . prepare ( $id_record ));
if ( empty ( $rs_generated [ 0 ][ 'xml_generated_at' ])) {
2018-11-08 12:31:44 +01:00
$generated = false ;
}
2018-09-18 15:57:55 +02:00
} else {
2018-09-24 11:24:48 +02:00
echo '
< div class = " alert alert-warning " >
< i class = " fa fa-warning " ></ i >
< b > '.tr(' Attenzione ! ').' </ b > '.tr(' Per generare la fattura elettronica è necessario che sia in stato " Emessa " ').' .
</ div > ' ;
2018-07-09 15:01:11 +02:00
$disabled = true ;
2018-09-18 15:57:55 +02:00
$generated = false ;
2018-07-09 15:01:11 +02:00
}
2018-12-07 15:30:08 +01:00
// Campi obbligatori per il pagamento
$pagamento = $database -> fetchOne ( 'SELECT * FROM `co_pagamenti` WHERE `id` = ' . prepare ( $record [ 'idpagamento' ]));
$fields = [
'codice_modalita_pagamento_fe' => 'Codice di pagamento FE' ,
];
$missing = [];
foreach ( $fields as $key => $name ) {
if ( empty ( $pagamento [ $key ])) {
$missing [] = $name ;
}
}
if ( ! empty ( $missing ) && ! $generated ) {
echo '
< div class = " alert alert-warning " >
< p >< i class = " fa fa-warning " ></ i > ' . tr ( " Prima di procedere alla generazione della fattura elettronica completa i seguenti campi del tipo di pagamento: _FIELDS_ " , [
'_FIELDS_' => '<b>' . implode ( ', ' , $missing ) . '</b>' ,
]) . ' </ p >
</ div > ' ;
$disabled = true ;
}
2018-07-09 15:01:11 +02:00
// Campi obbligatori per l'anagrafica Azienda
2018-11-30 16:10:15 +01:00
$azienda = FatturaElettronica :: getAzienda ();
2018-07-09 15:01:11 +02:00
$fields = [
'piva' => 'Partita IVA' ,
// 'codice_fiscale' => 'Codice Fiscale',
'citta' => 'Città' ,
'indirizzo' => 'Indirizzo' ,
'cap' => 'C.A.P.' ,
2018-09-06 17:10:23 +02:00
'nazione' => 'Nazione' ,
2018-07-09 15:01:11 +02:00
];
$missing = [];
foreach ( $fields as $key => $name ) {
if ( empty ( $azienda [ $key ])) {
$missing [] = $name ;
}
}
if ( ! empty ( $missing )) {
echo '
< div class = " alert alert-warning " >
< p >< i class = " fa fa-warning " ></ i > '.tr("Prima di procedere alla generazione della fattura elettronica completa i seguenti campi dell' anagrafica Azienda : _FIELDS_ " , [
'_FIELDS_' => '<b>' . implode ( ', ' , $missing ) . '</b>' ,
]) . ' </ p >
< p > '.Modules::link(' Anagrafiche ', $azienda[' idanagrafica '], tr(' Vai alla scheda anagrafica '), null).' </ p >
</ div > ' ;
}
// Campi obbligatori per l'anagrafica Cliente
2018-11-30 16:10:15 +01:00
$cliente = FatturaElettronica :: getAnagrafica ( $record [ 'idanagrafica' ]);
2018-07-09 15:01:11 +02:00
$fields = [
// 'piva' => 'Partita IVA',
// 'codice_fiscale' => 'Codice Fiscale',
'citta' => 'Città' ,
'indirizzo' => 'Indirizzo' ,
'cap' => 'C.A.P.' ,
2018-09-06 17:10:23 +02:00
'nazione' => 'Nazione' ,
2018-07-09 15:01:11 +02:00
];
2018-11-30 16:10:15 +01:00
// 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' : '' ;
2018-11-12 13:27:09 +01:00
}
2018-11-12 13:14:41 +01:00
2018-07-09 15:01:11 +02:00
$missing = [];
foreach ( $fields as $key => $name ) {
2018-07-10 17:25:28 +02:00
if ( empty ( $cliente [ $key ])) {
2018-07-09 15:01:11 +02:00
$missing [] = $name ;
}
}
if ( ! empty ( $missing )) {
echo '
< div class = " alert alert-warning " >
< p >< i class = " fa fa-warning " ></ i > '.tr("Prima di procedere alla generazione della fattura elettronica completa i seguenti campi dell' anagrafica Cliente : _FIELDS_ " , [
'_FIELDS_' => '<b>' . implode ( ', ' , $missing ) . '</b>' ,
]) . ' </ p >
2018-07-18 15:20:10 +02:00
< p > '.Modules::link(' Anagrafiche ', $record[' idanagrafica '], tr(' Vai alla scheda anagrafica '), null).' </ p >
2018-07-09 15:01:11 +02:00
</ div > ' ;
}
2018-10-13 10:15:54 +02:00
echo '
< p > '.tr("Per effettuare la generazione dell' XML della fattura elettronica clicca sul pulsante _BTN_ " , [
2018-10-25 16:57:39 +02:00
'_BTN_' => '<b>Genera</b>' ,
2018-11-09 13:15:19 +01:00
]) . '. ' . tr ( 'Successivamente sarà possibile procedere alla visualizzazione e al download della fattura generata attraverso i pulsanti dedicati' ) . ' .</ p >
< p > '.tr("Tutti gli allegati inseriti all' interno della categoria \ " Fattura Elettronica \" saranno inclusi come allegati dell'XML " ) . ' .</ p >
< br > ' ;
2018-07-09 15:11:19 +02:00
2018-07-09 12:57:55 +02:00
echo '
2018-10-13 10:15:54 +02:00
< div class = " text-center " >
2018-11-08 13:11:50 +01:00
< form action = " " method = " post " role = " form " style = " display:inline-block " id = " form-xml " >
2018-10-13 10:15:54 +02:00
< input type = " hidden " name = " id_plugin " value = " '. $id_plugin .' " >
< input type = " hidden " name = " id_record " value = " '. $id_record .' " >
< input type = " hidden " name = " backto " value = " record-edit " >
< input type = " hidden " name = " op " value = " generate " >
2018-07-09 12:57:55 +02:00
2018-11-08 13:11:50 +01:00
< button id = " genera " type = " submit " class = " btn btn-primary btn-lg '.( $disabled ? 'disabled' : '').' " '.($disabled ? ' disabled ' : null).' >
2018-10-13 10:15:54 +02:00
< i class = " fa fa-file " ></ i > '.tr(' Genera ').'
</ button >
</ form > ' ;
echo '
< i class = " fa fa-arrow-right fa-fw text-muted " ></ i >
2018-12-07 15:30:08 +01:00
< a href = " '.ROOTDIR.'/plugins/exportFE/download.php?id_record='. $id_record .' " class = " btn btn-success btn-lg '.( $generated ? '' : 'disabled').' " target = " _blank " '.($generated ? ' ' : ' disabled ').' >
2018-10-13 10:15:54 +02:00
< i class = " fa fa-download " ></ i > '.tr(' Scarica ').'
</ a >
< i class = " fa fa-arrow-right fa-fw text-muted " ></ i > ' ;
echo '
2018-11-30 15:33:25 +01:00
< a href = " '.ROOTDIR.'/plugins/exportFE/view.php?id_record='. $id_record .' " class = " btn btn-info btn-lg '.( $generated ? '' : 'disabled').' " target = " _blank " '.($generated ? ' ' : ' disabled ').' >
2018-10-13 10:15:54 +02:00
< i class = " fa fa-eye " ></ i > '.tr(' Visualizza ').'
</ a >
2018-09-18 15:57:55 +02:00
2018-07-09 12:57:55 +02:00
</ div > ' ;
2018-11-08 13:11:50 +01:00
2018-11-30 16:10:15 +01:00
if ( $generated ) {
2018-11-08 13:11:50 +01:00
echo '
< script >
$ ( " #genera " ) . click ( function ( event ){
event . preventDefault ();
swal ({
2018-11-16 01:01:47 +01:00
title : " Sei sicuro di rigenerare la fattura? " ,
text : " Attenzione: sarà generato un nuovo progressivo invio. " ,
2018-11-08 13:11:50 +01:00
type : " warning " ,
showCancelButton : true ,
confirmButtonColor : " #30d64b " ,
cancelButtonColor : " #d33 " ,
confirmButtonText : " Genera "
}) . then (( result ) => {
if ( result ) {
$ ( " #form-xml " ) . submit ();
}
});
});
</ script > ' ;
}