From 4e40f492d5ed8be5870825bb03bf33d9385aad49 Mon Sep 17 00:00:00 2001 From: valentina Date: Thu, 7 Nov 2024 11:07:38 +0100 Subject: [PATCH] fix: stampa fattura e ordine con riferimenti raggruppati --- src/Util/Autofill.php | 8 +++----- templates/fatture/body.php | 31 +++++++++++++------------------ templates/ordini/body.php | 20 +++++++++----------- 3 files changed, 25 insertions(+), 34 deletions(-) diff --git a/src/Util/Autofill.php b/src/Util/Autofill.php index 92d9f8c88..db4162afb 100755 --- a/src/Util/Autofill.php +++ b/src/Util/Autofill.php @@ -49,12 +49,10 @@ class Autofill { $count = ceil(strlen((string) $text) / $this->char_number); - // Ricerca dei caratteri a capo - preg_match_all("/(\r\n|\r|\n)/", (string) $text, $matches); + // Ricerca dei caratteri a capo e
+ preg_match_all("/(\r\n|\r|\n|)/", (string) $text, $matches); $count += count($matches[0]); - if ($small) { - $count *= 1.5; - } elseif ($count != 1) { + if ($small || $count != 1) { $count /= 1.538461538; } diff --git a/templates/fatture/body.php b/templates/fatture/body.php index 1a358546d..020619066 100755 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -77,8 +77,6 @@ foreach ($righe as $riga) { ++$num; $r = $riga->toArray(); - $autofill->count($r['descrizione']); - $v_iva[$r['desc_iva']] = sum($v_iva[$r['desc_iva']], $riga->iva); $v_totale[$r['desc_iva']] = sum($v_totale[$r['desc_iva']], $riga->totale_imponibile); @@ -97,11 +95,11 @@ foreach ($righe as $riga) { $text = $text.'Ordine n. '.$riga_ordine['numero_cliente'].' del '.Translator::dateToLocale($riga_ordine['data_cliente']).'
'; } } - $r['descrizione'] = str_replace('Rif. '.strtolower((string) $key), '', $r['descrizione']); + $r['descrizione'] = str_replace("\nRif. ".strtolower((string) $key), '', $r['descrizione']); if (preg_match("/Rif\.(.*)/s", $r['descrizione'], $rif2)) { - $r['descrizione'] = str_replace('Rif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']); - $text .= ''.$rif2[0].''; + $r['descrizione'] = str_replace('\nRif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']); + $text .= ''.$rif2[0].'
'; } $text .= ''.$key.''; @@ -111,26 +109,23 @@ foreach ($righe as $riga) { '.nl2br($text); + $autofill->count($text); } } - $r['descrizione'] = preg_replace("/Rif\.(.*)/s", ' ', (string) $r['descrizione']); - $autofill->count($r['descrizione']); + $r['descrizione'] = preg_replace("/(\r\n|\r|\n)Rif\.(.*)/s", '', (string) $r['descrizione']); } $source_type = $riga::class; - if (setting('Visualizza riferimento su ogni riga in stampa')) { + + $autofill->count($r['descrizione']); echo $num.' - - '.nl2br((string) $r['descrizione']).'
'; - } else { - echo $num.' - - '.nl2br((string) $r['descrizione']); - } + + '.nl2br((string) $r['descrizione']); if ($riga->isArticolo()) { - echo ''.$riga->codice.''; - } + echo '
'.$riga->codice.'
'; + $autofill->count($riga->codice, true); + } if ($riga->isArticolo()) { // Seriali @@ -252,7 +247,7 @@ echo ' if (!empty($record['note'])) { echo '

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

-

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

'; +

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

'; $autofill->count($record['note'], true); } diff --git a/templates/ordini/body.php b/templates/ordini/body.php index 7422c3200..bca5f03f0 100755 --- a/templates/ordini/body.php +++ b/templates/ordini/body.php @@ -54,15 +54,13 @@ if ($has_image) { if ($documento->direzione == 'uscita') { $columns += 2; - $char_number = $options['pricing'] ? 26 : 63; -} else { - $char_number = $options['pricing'] ? 45 : 82; -} +} + $columns = $options['pricing'] ? $columns : $columns - 3; // Creazione righe fantasma $autofill = new Util\Autofill($columns); -$autofill->setRows(20, 10); +$autofill->setRows(30, 0, 34); // Intestazione tabella per righe echo " @@ -107,8 +105,6 @@ foreach ($righe as $riga) { ++$num; $r = $riga->toArray(); - $autofill->count($r['descrizione']); - echo ' '; @@ -122,11 +118,11 @@ foreach ($righe as $riga) { if (!empty($riga_ordine['numero_cliente']) && !empty($riga_ordine['data_cliente'])) { $text = $text.'Ordine n. '.$riga_ordine['numero_cliente'].' del '.Translator::dateToLocale($riga_ordine['data_cliente']).'
'; } - $r['descrizione'] = str_replace('Rif. '.strtolower((string) $key), '', $r['descrizione']); + $r['descrizione'] = str_replace("\nRif. ".strtolower((string) $key), '', $r['descrizione']); if (preg_match("/Rif\.(.*)/s", $r['descrizione'], $rif2)) { - $r['descrizione'] = str_replace('Rif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']); - $text .= ''.$rif2[0].''; + $r['descrizione'] = str_replace('\nRif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']); + $text .= ''.$rif2[0].'
'; } $text .= ''.$key.''; @@ -151,7 +147,7 @@ foreach ($righe as $riga) { '.nl2br($text); } } - $r['descrizione'] = preg_replace("/Rif\.(.*)/s", '', (string) $r['descrizione']); + $r['descrizione'] = preg_replace("/(\r\n|\r|\n)Rif\.(.*)/s", '', (string) $r['descrizione']); $autofill->count($r['descrizione']); } @@ -172,6 +168,7 @@ foreach ($righe as $riga) { echo ' '.$r['descrizione']; } else { + $autofill->count($r['descrizione']); echo $num.' '; if ($has_image) { @@ -282,6 +279,7 @@ foreach ($righe as $riga) { echo ' + '; } }