fix: stampa fattura e ordine con riferimenti raggruppati

This commit is contained in:
valentina 2024-11-07 11:07:38 +01:00
parent 4d6e768844
commit 4e40f492d5
3 changed files with 25 additions and 34 deletions

View File

@ -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 <br>
preg_match_all("/(\r\n|\r|\n|<br\s*\/?>)/", (string) $text, $matches);
$count += count($matches[0]);
if ($small) {
$count *= 1.5;
} elseif ($count != 1) {
if ($small || $count != 1) {
$count /= 1.538461538;
}

View File

@ -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.'<b>Ordine n. '.$riga_ordine['numero_cliente'].' del '.Translator::dateToLocale($riga_ordine['data_cliente']).'</b><br>';
}
}
$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 .= '<b>'.$rif2[0].'</b>';
$r['descrizione'] = str_replace('\nRif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']);
$text .= '<b>'.$rif2[0].'</b><br>';
}
$text .= '<b>'.$key.'</b></td><td></td><td></td><td></td><td></td></tr><tr><td class="text-center" nowrap="nowrap" style="vertical-align: middle">';
@ -111,26 +109,23 @@ foreach ($righe as $riga) {
<td>
'.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.'
</td>
<td>'.nl2br((string) $r['descrizione']).'<br>';
} else {
echo $num.'
</td>
<td>'.nl2br((string) $r['descrizione']);
}
</td>
<td>'.nl2br((string) $r['descrizione']);
if ($riga->isArticolo()) {
echo '<small>'.$riga->codice.'</small>';
}
echo '<small><br>'.$riga->codice.'</small>';
$autofill->count($riga->codice, true);
}
if ($riga->isArticolo()) {
// Seriali
@ -252,7 +247,7 @@ echo '
if (!empty($record['note'])) {
echo '
<p class="small-bold text-muted">'.tr('Note', [], ['upper' => true]).':</p>
<p>'.nl2br((string) $record['note']).'</p>';
<p><small>'.nl2br((string) $record['note']).'</small></p>';
$autofill->count($record['note'], true);
}

View File

@ -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 '
<tr>
<td class="text-center" style="vertical-align: middle">';
@ -122,11 +118,11 @@ foreach ($righe as $riga) {
if (!empty($riga_ordine['numero_cliente']) && !empty($riga_ordine['data_cliente'])) {
$text = $text.'<b>Ordine n. '.$riga_ordine['numero_cliente'].' del '.Translator::dateToLocale($riga_ordine['data_cliente']).'</b><br>';
}
$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 .= '<b>'.$rif2[0].'</b>';
$r['descrizione'] = str_replace('\nRif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']);
$text .= '<b>'.$rif2[0].'</b><br>';
}
$text .= '<b>'.$key.'</b></td>';
@ -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 '
<td>'.$r['descrizione'];
} else {
$autofill->count($r['descrizione']);
echo $num.'
</td>';
if ($has_image) {
@ -282,6 +279,7 @@ foreach ($righe as $riga) {
echo '
<td></td>
<td></td>
<td></td>
<td></td>';
}
}