From 9965cab299489af74ebae8fa982ff593aedcd0f9 Mon Sep 17 00:00:00 2001 From: valentina Date: Tue, 10 Dec 2024 17:23:43 +0100 Subject: [PATCH] fix: allineamento template stampe documenti --- src/Util/Autofill.php | 4 +- templates/contratti/body.php | 97 +++----------------------- templates/contratti/header.php | 117 ++++++++++++++++++++++++++++++++ templates/ddt/body.php | 8 ++- templates/ddt/header.php | 6 +- templates/ddt/init.php | 12 +++- templates/fatture/body.php | 7 +- templates/ordini/body.php | 7 +- templates/preventivi/body.php | 95 ++------------------------ templates/preventivi/header.php | 117 ++++++++++++++++++++++++++++++++ 10 files changed, 279 insertions(+), 191 deletions(-) create mode 100644 templates/contratti/header.php create mode 100644 templates/preventivi/header.php diff --git a/src/Util/Autofill.php b/src/Util/Autofill.php index 5e1419db4..89ae92121 100755 --- a/src/Util/Autofill.php +++ b/src/Util/Autofill.php @@ -30,8 +30,8 @@ class Autofill protected $space = 0; protected $current = 0; - protected $max_rows = 26; - protected $max_rows_first_page = 38; + protected $max_rows = 27; + protected $max_rows_first_page = 39; protected $max_additional = 0; public function __construct(protected $column_number, protected $char_number = 70) diff --git a/templates/contratti/body.php b/templates/contratti/body.php index 0fed85e96..1c974ef66 100755 --- a/templates/contratti/body.php +++ b/templates/contratti/body.php @@ -39,100 +39,20 @@ if ($has_image) { // Creazione righe fantasma $autofill = new Util\Autofill($columns); -$autofill->setRows(20, 10); +$autofill->setRows(23, 0, 38); + +// Conteggio righe destinazione diversa +$autofill->count($destinazione); // Elenco impianti $impianti = $dbo->fetchArray('SELECT nome, matricola FROM my_impianti WHERE id IN (SELECT my_impianti_contratti.idimpianto FROM my_impianti_contratti WHERE idcontratto = '.prepare($documento['id']).')'); -echo ' -
-
- CONTRATTO -
-
- - - - - - - - - '; -if (!empty($impianti)) { - $list = []; - foreach ($impianti as $impianto) { - $list[] = $impianto['nome']." (".$impianto['matricola'].')'; - } - - echo ' -
-

'.tr('Impianti', [], ['upper' => true]).'

-

'.implode(', ', $list).'

'; -} -echo ' -
-

'.tr('Nr. documento', [], ['upper' => true]).'

-

'.$documento['numero'].'

-
-

'.tr('Data documento', [], ['upper' => true]).'

-

'.Translator::dateToLocale($documento['data_bozza']).'

-
-

'.tr('Foglio', [], ['upper' => true]).'

-

{PAGENO}/{nb}

-
-
- -
- - - - - - - - - - - - - - '; - -if (!empty($destinazione)) { - echo ' - - - - '; -} -echo ' -
-

'.tr('Spett.le', [], ['upper' => true]).'

-

$c_ragionesociale$

-

$c_indirizzo$

-

$c_citta_full$

-
-

'.tr('Partita IVA', [], ['upper' => true]).'

-
- $c_piva$ -
-

'.tr('Codice fiscale', [], ['upper' => true]).'

-
- $c_codicefiscale$ -
-

'.tr('Destinazione diversa', [], ['upper' => true]).'

-
- '.$destinazione.' -
-
-'; - // Descrizione if (!empty($documento['descrizione'])) { echo '

'.nl2br((string) $documento['descrizione']).'


'; +$autofill->count($documento['descrizione']); } // Intestazione tabella per righe @@ -191,8 +111,6 @@ foreach ($righe as $riga) { ++$num; $r = $riga->toArray(); - $autofill->count($r['descrizione']); - echo ' @@ -234,12 +152,14 @@ foreach ($righe as $riga) { $text = $text.''; echo nl2br($text); + $autofill->count($text); } } $r['descrizione'] = str_replace('Rif. '.strtolower((string) $key), '', $r['descrizione']); } $source_type = $riga::class; + $autofill->count($r['descrizione']); if (!setting('Visualizza riferimento su ogni riga in stampa')) { echo $r['descrizione']; @@ -249,8 +169,7 @@ foreach ($righe as $riga) { if ($riga->isArticolo()) { echo nl2br('
'.$riga->codice.''); - } else { - echo '-'; + $autofill->count($riga->codice, true); } if ($riga->isArticolo()) { diff --git a/templates/contratti/header.php b/templates/contratti/header.php new file mode 100644 index 000000000..cb028b7db --- /dev/null +++ b/templates/contratti/header.php @@ -0,0 +1,117 @@ +. + */ + +if ($options['hide-header']) { + echo ' + +
+
+
+
+
+
'; +} else { + echo ' + + $default_header$'; +} + +echo ' +
+
+ CONTRATTO +
+
+ + + + + + + + '; +if (!empty($impianti)) { + $list = []; + foreach ($impianti as $impianto) { + $list[] = $impianto['nome']." (".$impianto['matricola'].')'; + } + + echo ' +
+

'.tr('Impianti', [], ['upper' => true]).'

+

'.implode(', ', $list).'

'; +} +echo ' +
+

'.tr('Nr. documento', [], ['upper' => true]).'

+

'.$documento['numero'].'

+
+

'.tr('Data documento', [], ['upper' => true]).'

+

'.Translator::dateToLocale($documento['data_bozza']).'

+
+

'.tr('Foglio', [], ['upper' => true]).'

+

{PAGENO}/{nb}

+
+
+ +
+ + + + + + + + + + + + + + '; + +if (!empty($destinazione)) { + echo ' + + + + '; +} +echo ' +
+

'.tr('Spett.le', [], ['upper' => true]).'

+

$c_ragionesociale$

+

$c_indirizzo$

+

$c_citta_full$

+
+

'.tr('Partita IVA', [], ['upper' => true]).'

+
+ $c_piva$ +
+

'.tr('Codice fiscale', [], ['upper' => true]).'

+
+ $c_codicefiscale$ +
+

'.tr('Destinazione diversa', [], ['upper' => true]).'

+
+ '.$destinazione.' +
+
+'; diff --git a/templates/ddt/body.php b/templates/ddt/body.php index 9c9a043e3..c15e830ab 100755 --- a/templates/ddt/body.php +++ b/templates/ddt/body.php @@ -24,8 +24,12 @@ $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); // Creazione righe fantasma $autofill = new Util\Autofill($options['pricing'] ? 6 : 3, 70); -$rows_per_page = ($documento['note'] || $options['pricing'] ? 19 : 27); -$autofill->setRows($rows_per_page, 0, 32); +$rows_per_page = ($documento['note'] || $options['pricing'] ? ($tipo_doc == 'Ddt in uscita' ? 20 : 22) : 27); +$autofill->setRows($rows_per_page, 0, $options['last-page-footer'] ? 34 : $rows_per_page); + +// Conteggio righe destinazione diversa +$autofill->count($destinazione); +$autofill->count($partenza); // Intestazione tabella per righe echo " diff --git a/templates/ddt/header.php b/templates/ddt/header.php index 4fe51454f..ccc146d7a 100755 --- a/templates/ddt/header.php +++ b/templates/ddt/header.php @@ -103,8 +103,9 @@ echo ' $c_codicefiscale$ - - + '; +if (!empty($partenza)) { + echo'

'.tr('Partenza merce', [], ['upper' => true]).'

@@ -113,6 +114,7 @@ echo '

'.$partenza.'

'; +} if (!empty($destinazione)) { echo ' diff --git a/templates/ddt/init.php b/templates/ddt/init.php index 687a5f430..d5c020000 100755 --- a/templates/ddt/init.php +++ b/templates/ddt/init.php @@ -52,7 +52,11 @@ if (empty($documento['numero_esterno'])) { // Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi) $destinazione = ''; if (!empty($documento['idsede_destinazione'])) { - $rsd = $dbo->fetchArray('SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica='.prepare($id_cliente).' AND id='.prepare($documento['idsede_destinazione'])); + if ($tipo_doc == 'Ddt in uscita') { + $rsd = $dbo->fetchArray('SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica='.prepare($documento['idanagrafica']).' AND id='.prepare($documento['idsede_destinazione'])); + }else{ + $rsd = $dbo->fetchArray('SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica='.prepare($id_azienda).' AND id='.prepare($documento['idsede_destinazione'])); + } if (!empty($rsd[0]['nomesede'])) { $destinazione .= $rsd[0]['nomesede'].'
'; @@ -89,7 +93,11 @@ if (!empty($documento['idsede_destinazione'])) { // Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi) $partenza = ''; if (!empty($documento['idsede_partenza'])) { - $rsd = $dbo->fetchArray('SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica='.prepare($documento['idanagrafica']).' AND id='.prepare($documento['idsede_partenza'])); + if ($tipo_doc != 'Ddt in uscita') { + $rsd = $dbo->fetchArray('SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica='.prepare($documento['idanagrafica']).' AND id='.prepare($documento['idsede_partenza'])); + }else{ + $rsd = $dbo->fetchArray('SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica='.prepare($id_azienda).' AND id='.prepare($documento['idsede_partenza'])); + } if (!empty($rsd[0]['nomesede'])) { $partenza .= $rsd[0]['nomesede'].'
'; diff --git a/templates/fatture/body.php b/templates/fatture/body.php index 5a19e9130..0058b28fa 100755 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -27,7 +27,7 @@ $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); // Creazione righe fantasma $autofill = new Util\Autofill(6, 70); -$rows_per_page = $rows_per_page ?: ($fattura_accompagnatoria ? 24 : 26); +$rows_per_page = ($fattura_accompagnatoria ? 24 : 26); $autofill->setRows($rows_per_page, 0); // Intestazione tabella per righe @@ -214,8 +214,10 @@ foreach ($righe as $riga) { } foreach ($v_iva as $desc_iva => $tot_iva) { - $autofill->count($desc_iva, true); + $autofill->count($desc_iva); } +$autofill->count($record['note']); +$autofill->next(); echo ' |autofill| @@ -253,7 +255,6 @@ if (!empty($record['note'])) { echo '

'.tr('Note', [], ['upper' => true]).':

'.nl2br((string) $record['note']).'

'; - $autofill->count($record['note'], true); } echo ' diff --git a/templates/ordini/body.php b/templates/ordini/body.php index 005fc867c..58bd390e4 100755 --- a/templates/ordini/body.php +++ b/templates/ordini/body.php @@ -60,7 +60,12 @@ $columns = $options['pricing'] ? $columns : $columns - 3; // Creazione righe fantasma $autofill = new Util\Autofill($columns); -$autofill->setRows(27, 0, 32); +$autofill->setRows(31, 0, 34); + +// Conteggio righe destinazione diversa +$autofill->count($destinazione); +$autofill->count($codice_destinatario); + // Intestazione tabella per righe echo " diff --git a/templates/preventivi/body.php b/templates/preventivi/body.php index 41f4e0bb3..cc2026649 100755 --- a/templates/preventivi/body.php +++ b/templates/preventivi/body.php @@ -68,88 +68,8 @@ if ($has_image) { $autofill = new Util\Autofill($columns); $autofill->setRows(22, 0, 36); -echo ' -
-
- PREVENTIVO -
-
- - - - - - - - - '; -if (!empty($impianti)) { - $list = []; - foreach ($impianti as $impianto) { - $list[] = $impianto['nome']." (".$impianto['matricola'].')'; - } - - echo ' -
-

'.tr('Impianti', [], ['upper' => true]).'

-

'.implode(', ', $list).'

'; -} -echo ' -
-

'.tr('Nr. documento', [], ['upper' => true]).'

-

'.$documento['numero'].'

-
-

'.tr('Data documento', [], ['upper' => true]).'

-

'.Translator::dateToLocale($documento['data_bozza']).'

-
-

'.tr('Foglio', [], ['upper' => true]).'

-

{PAGENO}/{nb}

-
-
-
- - - - - - - - - - - - - - '; - -if (!empty($destinazione)) { - echo ' - - - - '; -} -echo ' -
-

'.tr('Spett.le', [], ['upper' => true]).'

-

$c_ragionesociale$

-

$c_indirizzo$

-

$c_citta_full$

-
-

'.tr('Partita IVA', [], ['upper' => true]).'

-
- $c_piva$ -
-

'.tr('Codice fiscale', [], ['upper' => true]).'

-
- $c_codicefiscale$ -
-

'.tr('Destinazione diversa', [], ['upper' => true]).'

-
- '.$destinazione.' -
-
-'; +// Conteggio righe destinazione diversa +$autofill->count($destinazione); // Descrizione if (!empty($documento['descrizione'])) { @@ -215,7 +135,7 @@ foreach ($righe as $key => $riga) { $subtotale_gruppo += $riga->totale_imponibile; $iva_gruppo += $riga->iva; - $autofill->count($r['descrizione']); + $autofill->count($descrizione); echo ' @@ -278,7 +198,6 @@ foreach ($righe as $key => $riga) { echo '
'.$text.''; - $autofill->count($text, true); } @@ -316,9 +235,6 @@ foreach ($righe as $key => $riga) { echo ' '; - $autofill->next(); - - $next = $righe->flatten()[$num]; if ($has_gruppo && ($next->is_titolo || $next == null) && ($options['pricing'] || $options['show-only-total'])) { echo ' @@ -348,10 +264,9 @@ foreach ($righe as $key => $riga) { '; } - $autofill->next(); - $autofill->next(); - $autofill->next(); } + + $autofill->next(); } echo ' diff --git a/templates/preventivi/header.php b/templates/preventivi/header.php new file mode 100644 index 000000000..d1cb54898 --- /dev/null +++ b/templates/preventivi/header.php @@ -0,0 +1,117 @@ +. + */ + +if ($options['hide-header']) { + echo ' + +
+
+
+
+
+
'; +} else { + echo ' + + $default_header$'; +} + +echo ' +
+
+ PREVENTIVO +
+
+ + + + + + + + + '; +if (!empty($impianti)) { + $list = []; + foreach ($impianti as $impianto) { + $list[] = $impianto['nome']." (".$impianto['matricola'].')'; + } + + echo ' +
+

'.tr('Impianti', [], ['upper' => true]).'

+

'.implode(', ', $list).'

'; +} +echo ' +
+

'.tr('Nr. documento', [], ['upper' => true]).'

+

'.$documento['numero'].'

+
+

'.tr('Data documento', [], ['upper' => true]).'

+

'.Translator::dateToLocale($documento['data_bozza']).'

+
+

'.tr('Foglio', [], ['upper' => true]).'

+

{PAGENO}/{nb}

+
+
+
+ + + + + + + + + + + + + + '; + +if (!empty($destinazione)) { + echo ' + + + + '; +} +echo ' +
+

'.tr('Spett.le', [], ['upper' => true]).'

+

$c_ragionesociale$

+

$c_indirizzo$

+

$c_citta_full$

+
+

'.tr('Partita IVA', [], ['upper' => true]).'

+
+ $c_piva$ +
+

'.tr('Codice fiscale', [], ['upper' => true]).'

+
+ $c_codicefiscale$ +
+

'.tr('Destinazione diversa', [], ['upper' => true]).'

+
+ '.$destinazione.' +
+
+'; \ No newline at end of file