fix: stampa fattura e ordine con riferimenti raggruppati
This commit is contained in:
parent
4d6e768844
commit
4e40f492d5
|
@ -49,12 +49,10 @@ class Autofill
|
||||||
{
|
{
|
||||||
$count = ceil(strlen((string) $text) / $this->char_number);
|
$count = ceil(strlen((string) $text) / $this->char_number);
|
||||||
|
|
||||||
// Ricerca dei caratteri a capo
|
// Ricerca dei caratteri a capo e <br>
|
||||||
preg_match_all("/(\r\n|\r|\n)/", (string) $text, $matches);
|
preg_match_all("/(\r\n|\r|\n|<br\s*\/?>)/", (string) $text, $matches);
|
||||||
$count += count($matches[0]);
|
$count += count($matches[0]);
|
||||||
if ($small) {
|
if ($small || $count != 1) {
|
||||||
$count *= 1.5;
|
|
||||||
} elseif ($count != 1) {
|
|
||||||
$count /= 1.538461538;
|
$count /= 1.538461538;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,8 +77,6 @@ foreach ($righe as $riga) {
|
||||||
++$num;
|
++$num;
|
||||||
$r = $riga->toArray();
|
$r = $riga->toArray();
|
||||||
|
|
||||||
$autofill->count($r['descrizione']);
|
|
||||||
|
|
||||||
$v_iva[$r['desc_iva']] = sum($v_iva[$r['desc_iva']], $riga->iva);
|
$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);
|
$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>';
|
$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)) {
|
if (preg_match("/Rif\.(.*)/s", $r['descrizione'], $rif2)) {
|
||||||
$r['descrizione'] = str_replace('Rif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']);
|
$r['descrizione'] = str_replace('\nRif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']);
|
||||||
$text .= '<b>'.$rif2[0].'</b>';
|
$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">';
|
$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>
|
<td>
|
||||||
'.nl2br($text);
|
'.nl2br($text);
|
||||||
|
$autofill->count($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']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$source_type = $riga::class;
|
$source_type = $riga::class;
|
||||||
if (setting('Visualizza riferimento su ogni riga in stampa')) {
|
|
||||||
|
$autofill->count($r['descrizione']);
|
||||||
echo $num.'
|
echo $num.'
|
||||||
</td>
|
</td>
|
||||||
<td>'.nl2br((string) $r['descrizione']).'<br>';
|
<td>'.nl2br((string) $r['descrizione']);
|
||||||
} else {
|
|
||||||
echo $num.'
|
|
||||||
</td>
|
|
||||||
<td>'.nl2br((string) $r['descrizione']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($riga->isArticolo()) {
|
if ($riga->isArticolo()) {
|
||||||
echo '<small>'.$riga->codice.'</small>';
|
echo '<small><br>'.$riga->codice.'</small>';
|
||||||
}
|
$autofill->count($riga->codice, true);
|
||||||
|
}
|
||||||
|
|
||||||
if ($riga->isArticolo()) {
|
if ($riga->isArticolo()) {
|
||||||
// Seriali
|
// Seriali
|
||||||
|
@ -252,7 +247,7 @@ echo '
|
||||||
if (!empty($record['note'])) {
|
if (!empty($record['note'])) {
|
||||||
echo '
|
echo '
|
||||||
<p class="small-bold text-muted">'.tr('Note', [], ['upper' => true]).':</p>
|
<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);
|
$autofill->count($record['note'], true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,15 +54,13 @@ if ($has_image) {
|
||||||
|
|
||||||
if ($documento->direzione == 'uscita') {
|
if ($documento->direzione == 'uscita') {
|
||||||
$columns += 2;
|
$columns += 2;
|
||||||
$char_number = $options['pricing'] ? 26 : 63;
|
}
|
||||||
} else {
|
|
||||||
$char_number = $options['pricing'] ? 45 : 82;
|
|
||||||
}
|
|
||||||
$columns = $options['pricing'] ? $columns : $columns - 3;
|
$columns = $options['pricing'] ? $columns : $columns - 3;
|
||||||
|
|
||||||
// Creazione righe fantasma
|
// Creazione righe fantasma
|
||||||
$autofill = new Util\Autofill($columns);
|
$autofill = new Util\Autofill($columns);
|
||||||
$autofill->setRows(20, 10);
|
$autofill->setRows(30, 0, 34);
|
||||||
|
|
||||||
// Intestazione tabella per righe
|
// Intestazione tabella per righe
|
||||||
echo "
|
echo "
|
||||||
|
@ -107,8 +105,6 @@ foreach ($righe as $riga) {
|
||||||
++$num;
|
++$num;
|
||||||
$r = $riga->toArray();
|
$r = $riga->toArray();
|
||||||
|
|
||||||
$autofill->count($r['descrizione']);
|
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center" style="vertical-align: middle">';
|
<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'])) {
|
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>';
|
$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)) {
|
if (preg_match("/Rif\.(.*)/s", $r['descrizione'], $rif2)) {
|
||||||
$r['descrizione'] = str_replace('Rif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']);
|
$r['descrizione'] = str_replace('\nRif.'.strtolower($rif2[1] ?: ''), '', $r['descrizione']);
|
||||||
$text .= '<b>'.$rif2[0].'</b>';
|
$text .= '<b>'.$rif2[0].'</b><br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$text .= '<b>'.$key.'</b></td>';
|
$text .= '<b>'.$key.'</b></td>';
|
||||||
|
@ -151,7 +147,7 @@ foreach ($righe as $riga) {
|
||||||
'.nl2br($text);
|
'.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']);
|
$autofill->count($r['descrizione']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,6 +168,7 @@ foreach ($righe as $riga) {
|
||||||
echo '
|
echo '
|
||||||
<td>'.$r['descrizione'];
|
<td>'.$r['descrizione'];
|
||||||
} else {
|
} else {
|
||||||
|
$autofill->count($r['descrizione']);
|
||||||
echo $num.'
|
echo $num.'
|
||||||
</td>';
|
</td>';
|
||||||
if ($has_image) {
|
if ($has_image) {
|
||||||
|
@ -282,6 +279,7 @@ foreach ($righe as $riga) {
|
||||||
echo '
|
echo '
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
|
<td></td>
|
||||||
<td></td>';
|
<td></td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue