Replica fix da branch 2.4

Replica fix da branch 2.4 per le stampe: risolve i problemi indirizzati da #141 e ottimizza la gestione futura.
This commit is contained in:
Thomas Zilio 2018-02-09 14:00:41 +01:00
parent ec97471c2e
commit 00a5924cba
2 changed files with 24 additions and 24 deletions

View File

@ -33,19 +33,7 @@ $keys = [];
// Predisposizione delle informazioni delle anagrafiche per la sostituzione automatica // Predisposizione delle informazioni delle anagrafiche per la sostituzione automatica
foreach ($replace as $prefix => $values) { foreach ($replace as $prefix => $values) {
// Individuazione dei campi minimi
$values = (array) $values; $values = (array) $values;
if ($prefix == 'c_') {
$keys = array_keys($values);
}
// Se l'azienda predefinita non è impostata
if (empty($values) && $prefix == 'f_') {
$values = [];
foreach ($keys as $key) {
$values[$key] = '';
}
}
// Rinominazione dei campi // Rinominazione dei campi
foreach ($rename as $key => $value) { foreach ($rename as $key => $value) {
@ -53,11 +41,6 @@ foreach ($replace as $prefix => $values) {
unset($values[$key]); unset($values[$key]);
} }
// Salvataggio dei campi come variabili PHP
foreach ($values as $key => $value) {
${$prefix.$key} = $value;
}
// Eventuali estensioni dei contenuti // Eventuali estensioni dei contenuti
$citta = ''; $citta = '';
if (!empty($values['cap'])) { if (!empty($values['cap'])) {
@ -72,23 +55,37 @@ foreach ($replace as $prefix => $values) {
$values['citta_full'] = $citta; $values['citta_full'] = $citta;
// Completamento dei campi minimi $replace[$prefix] = $values;
if ($key == 'c_') {
$keys = array_unique(array_merge($keys, array_keys($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] = '';
}
} }
// Aggiunta delle informazioni per la sostituzione automatica // Salvataggio dei campi come variabili PHP e aggiunta delle informazioni per la sostituzione automatica
foreach ($values as $key => $value) { foreach ($values as $key => $value) {
${$prefix.$key} = $value;
$replaces[$prefix.$key] = $value; $replaces[$prefix.$key] = $value;
} }
} }
// Valori aggiuntivi per la sostituzione // Valori aggiuntivi per la sostituzione
$replaces = array_merge($replaces, [ $replaces = array_merge($replaces, [
'default_header' => include DOCROOT.'/templates/base/header.php',
'default_footer' => include DOCROOT.'/templates/base/footer.php',
'docroot' => DOCROOT, 'docroot' => DOCROOT,
'rootdir' => ROOTDIR, 'rootdir' => ROOTDIR,
'footer' => !empty($footer) ? $footer : '', 'footer' => !empty($footer) ? $footer : '',
'dicitura_fissa_fattura' => get_var('Dicitura fissa fattura'), 'dicitura_fissa_fattura' => get_var('Dicitura fissa fattura'),
'default_header' => include DOCROOT.'/templates/base/header.php',
'default_footer' => include DOCROOT.'/templates/base/footer.php',
]); ]);
unset($replace);

View File

@ -3,7 +3,10 @@
include_once __DIR__.'/info.php'; include_once __DIR__.'/info.php';
// Retrocompatibilità con le stampe gestite da HTML2PDF // Retrocompatibilità con le stampe gestite da HTML2PDF
$replaces['pagination'] = str_replace(['{PAGENO}', '{nb}'], ['[[page_cu]]', '[[page_nb]]'], $replaces['pagination']); $replaces['default_header'] = str_replace(['{PAGENO}', '{nb}'], ['[[page_cu]]', '[[page_nb]]'], $replaces['default_header']);
$replaces['footer'] = str_replace(['{PAGENO}', '{nb}'], ['[[page_cu]]', '[[page_nb]]'], $replaces['footer']);
$replaces['default_footer'] = str_replace(['{PAGENO}', '{nb}'], ['[[page_cu]]', '[[page_nb]]'], $replaces['default_footer']);
$prefixes = [ $prefixes = [
'c_', 'c_',