2017-09-08 18:19:39 +02:00
< ? php
2017-09-21 10:28:35 +02:00
$replaces = [];
2017-09-08 18:19:39 +02:00
// Retrocompatibilità
$id_cliente = $id_cliente ? : $idcliente ;
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
if ( empty ( $id_sede ) || $id_sede == '-1' ) {
$queryc = 'SELECT * FROM an_anagrafiche WHERE idanagrafica=' . prepare ( $id_cliente );
} else {
2018-05-10 10:04:30 +02:00
$queryc = 'SELECT an_anagrafiche.*, an_sedi.*, if(an_sedi.codice_fiscale != "", an_sedi.codice_fiscale, an_anagrafiche.codice_fiscale) AS codice_fiscale, if(an_sedi.piva != "", an_sedi.piva, an_anagrafiche.piva) AS piva FROM an_sedi JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=an_sedi.idanagrafica WHERE an_sedi.idanagrafica=' . prepare ( $id_cliente ) . ' AND an_sedi.id=' . prepare ( $id_sede );
2017-09-08 18:19:39 +02:00
}
$rsc = $dbo -> fetchArray ( $queryc );
// Lettura dati aziendali
2018-03-29 00:51:25 +02:00
$rsf = $dbo -> fetchArray ( " SELECT *, (SELECT iban FROM co_banche WHERE id IN (SELECT idbanca FROM co_documenti WHERE id = " . prepare ( $id_record ) . " ) ) AS codiceiban, (SELECT nome FROM co_banche WHERE id IN (SELECT idbanca FROM co_documenti WHERE id = " . prepare ( $id_record ) . " ) ) AS appoggiobancario, (SELECT bic FROM co_banche WHERE id IN (SELECT idbanca FROM co_documenti WHERE id = " . prepare ( $id_record ) . " ) ) AS bic FROM an_anagrafiche WHERE idanagrafica = (SELECT valore FROM zz_settings WHERE nome='Azienda predefinita') " );
2017-09-08 18:19:39 +02:00
2017-09-12 11:49:39 +02:00
// Prefissi e contenuti del replace
2017-09-08 18:19:39 +02:00
$replace = [
'c_' => $rsc [ 0 ],
'f_' => $rsf [ 0 ],
];
2017-09-12 11:49:39 +02:00
// Rinominazione di particolari campi all'interno delle informazioni su anagrafica e azienda
2017-09-08 18:19:39 +02:00
$rename = [
'capitale_sociale' => 'capsoc' ,
'ragione_sociale' => 'ragionesociale' ,
'codice_fiscale' => 'codicefiscale' ,
];
$keys = [];
2017-09-12 11:49:39 +02:00
// Predisposizione delle informazioni delle anagrafiche per la sostituzione automatica
2017-09-08 18:19:39 +02:00
foreach ( $replace as $prefix => $values ) {
$values = ( array ) $values ;
2017-09-12 11:49:39 +02:00
// Rinominazione dei campi
2017-09-08 18:19:39 +02:00
foreach ( $rename as $key => $value ) {
$values [ $value ] = $values [ $key ];
unset ( $values [ $key ]);
}
2017-09-12 11:49:39 +02:00
// Eventuali estensioni dei contenuti
2017-09-08 18:19:39 +02:00
$citta = '' ;
2017-09-10 14:35:41 +02:00
if ( ! empty ( $values [ 'cap' ])) {
2017-09-08 18:19:39 +02:00
$citta .= $values [ 'cap' ];
}
2017-09-10 14:35:41 +02:00
if ( ! empty ( $values [ 'citta' ])) {
2017-09-08 18:19:39 +02:00
$citta .= ' ' . $values [ 'citta' ];
}
2017-09-10 14:35:41 +02:00
if ( ! empty ( $values [ 'provincia' ])) {
2017-09-08 18:19:39 +02:00
$citta .= ' (' . $values [ 'provincia' ] . ')' ;
}
$values [ 'citta_full' ] = $citta ;
2018-02-04 17:26:25 +01:00
$replace [ $prefix ] = $values ;
// Individuazione dei campi minimi
$keys = array_merge ( $keys , array_keys ( $values ));
}
$keys = array_unique ( $keys );
foreach ( $replace as $prefix => $values ) {
// Impostazione di default per le informazioni mancanti
foreach ( $keys as $key ) {
if ( ! isset ( $values [ $key ])) {
$values [ $key ] = '' ;
}
2017-09-08 18:19:39 +02:00
}
2018-02-04 17:26:25 +01:00
// Salvataggio dei campi come variabili PHP e aggiunta delle informazioni per la sostituzione automatica
2017-09-08 18:19:39 +02:00
foreach ( $values as $key => $value ) {
2018-02-04 17:26:25 +01:00
$ { $prefix . $key } = $value ;
2017-09-08 18:19:39 +02:00
$replaces [ $prefix . $key ] = $value ;
}
}
2017-09-21 10:18:08 +02:00
2018-02-22 11:25:18 +01:00
// Header di default
$header_file = DOCROOT . '/templates/base|custom|/header.php' ;
$original_file = str_replace ( '|custom|' , '' , $header_file );
$custom_file = str_replace ( '|custom|' , '/custom' , $header_file );
if ( file_exists ( $custom_file )) {
$header_file = $custom_file ;
} elseif ( file_exists ( $original_file )) {
$header_file = $original_file ;
}
$default_header = include $header_file ;
// Footer di default
$footer_file = DOCROOT . '/templates/base|custom|/footer.php' ;
$original_file = str_replace ( '|custom|' , '' , $footer_file );
$custom_file = str_replace ( '|custom|' , '/custom' , $footer_file );
if ( file_exists ( $custom_file )) {
$footer_file = $custom_file ;
} elseif ( file_exists ( $original_file )) {
$footer_file = $original_file ;
}
$default_footer = include $footer_file ;
// Logo di default
$logo_file = DOCROOT . '/templates/base|custom|/logo_azienda.jpg' ;
$original_file = str_replace ( '|custom|' , '' , $logo_file );
$custom_file = str_replace ( '|custom|' , '/custom' , $logo_file );
2018-02-25 11:06:14 +01:00
$default_logo = $original_file ;
2018-02-22 11:25:18 +01:00
if ( file_exists ( $custom_file )) {
2018-02-25 11:06:14 +01:00
$default_logo = $custom_file ;
2018-02-22 11:25:18 +01:00
}
2018-02-25 11:06:14 +01:00
// Logo specifico della stampa
$logo_file = DOCROOT . '/templates/' . Prints :: get ( $id_print )[ 'directory' ] . '|custom|/logo_azienda.jpg' ;
$original_file = str_replace ( '|custom|' , '' , $logo_file );
$custom_file = str_replace ( '|custom|' , '/custom' , $logo_file );
if ( file_exists ( $custom_file )) {
$logo = $custom_file ;
} elseif ( file_exists ( $original_file )) {
$logo = $original_file ;
} else {
$logo = $default_logo ;
}
2018-02-22 11:25:18 +01:00
2017-09-21 10:18:08 +02:00
// Valori aggiuntivi per la sostituzione
2017-09-21 10:28:35 +02:00
$replaces = array_merge ( $replaces , [
2018-02-22 11:25:18 +01:00
'default_header' => $default_header ,
'default_footer' => $default_footer ,
'default_logo' => $default_logo ,
2018-02-25 11:06:14 +01:00
'logo' => $logo ,
2017-09-21 10:18:08 +02:00
'docroot' => DOCROOT ,
'rootdir' => ROOTDIR ,
2017-09-22 15:16:56 +02:00
'directory' => Prints :: get ( $id_print )[ 'full_directory' ],
2017-09-21 10:18:08 +02:00
'footer' => ! empty ( $footer ) ? $footer : '' ,
'dicitura_fissa_fattura' => get_var ( 'Dicitura fissa fattura' ),
2017-09-21 10:28:35 +02:00
]);
2018-02-04 17:26:25 +01:00
unset ( $replace );