Bugfix delle fatture

Risoluzione di alcune problematiche relative alle fatture nel caso i documenti di riferimento fossero stati rimossi in precedenza.
This commit is contained in:
Thomas Zilio 2017-09-13 19:02:36 +02:00
parent dc53fe1c65
commit 9cf2a1c3e7
2 changed files with 52 additions and 25 deletions

View File

@ -103,37 +103,45 @@ if (!empty($rs)) {
// Aggiunta riferimento a ordine // Aggiunta riferimento a ordine
if (!empty($r['idordine'])) { if (!empty($r['idordine'])) {
$rso = $dbo->fetchArray('SELECT numero, numero_esterno, data, dir FROM or_ordini JOIN or_tipiordine ON or_tipiordine.id = or_ordini.idtipoordine WHERE or_ordini.id='.prepare($r['idordine'])); $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data, dir FROM or_ordini JOIN or_tipiordine ON or_tipiordine.id = or_ordini.idtipoordine WHERE or_ordini.id='.prepare($r['idordine']));
$numero = ($rso[0]['numero_esterno'] != '') ? $rso[0]['numero_esterno'] : $rso[0]['numero'];
$ref = $rso[0]['dir'] == 'entrata' ? 'Ordini cliente' : 'Ordini fornitore'; $ref = $rso[0]['dir'] == 'entrata' ? 'Ordini cliente' : 'Ordini fornitore';
$ref_id = $r['idordine']; $ref_id = $r['idordine'];
if(!empty($rso)){
$numero = ($rso[0]['numero_esterno'] != '') ? $rso[0]['numero_esterno'] : $rso[0]['numero'];
$descrizione = tr('Rif. ordine _NUM_ del _DATE_', [ $descrizione = tr('Rif. ordine _NUM_ del _DATE_', [
'_NUM_' => $numero, '_NUM_' => $numero,
'_DATE_' => Translator::dateToLocale($rso[0]['data']), '_DATE_' => Translator::dateToLocale($rso[0]['data']),
]); ]);
}
} elseif (!empty($r['idddt'])) { } elseif (!empty($r['idddt'])) {
$rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='.prepare($r['idddt'])); $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='.prepare($r['idddt']));
$numero = ($rso[0]['numero_esterno'] != '') ? $rso[0]['numero_esterno'] : $rso[0]['numero'];
$ref = $rso[0]['dir'] == 'entrata' ? 'Ddt di vendita' : 'Ddt di acquisto'; $ref = $rso[0]['dir'] == 'entrata' ? 'Ddt di vendita' : 'Ddt di acquisto';
$ref_id = $r['idddt']; $ref_id = $r['idddt'];
if(!empty($rso)){
$numero = ($rso[0]['numero_esterno'] != '') ? $rso[0]['numero_esterno'] : $rso[0]['numero'];
$descrizione = tr('Rif. ddt _NUM_ del _DATE_', [ $descrizione = tr('Rif. ddt _NUM_ del _DATE_', [
'_NUM_' => $numero, '_NUM_' => $numero,
'_DATE_' => Translator::dateToLocale($rso[0]['data']), '_DATE_' => Translator::dateToLocale($rso[0]['data']),
]); ]);
}
} elseif (!empty($r['idpreventivo'])) { } elseif (!empty($r['idpreventivo'])) {
$rso = $dbo->fetchArray('SELECT numero, data_bozza FROM co_preventivi WHERE id='.prepare($r['idpreventivo'])); $rso = $dbo->fetchArray('SELECT numero, data_bozza FROM co_preventivi WHERE id='.prepare($r['idpreventivo']));
$ref = 'Preventivi'; $ref = 'Preventivi';
$ref_id = $r['idpreventivo']; $ref_id = $r['idpreventivo'];
if(!empty($rso)){
$descrizione = tr('Rif. preventivo _NUM_ del _DATE_', [ $descrizione = tr('Rif. preventivo _NUM_ del _DATE_', [
'_NUM_' => $rso[0]['numero'], '_NUM_' => $rso[0]['numero'],
'_DATE_' => Translator::dateToLocale($rso[0]['data_bozza']), '_DATE_' => Translator::dateToLocale($rso[0]['data_bozza']),
]); ]);
} }
}
if (!empty($descrizione)) { if (!empty($descrizione)) {
echo ' echo '

View File

@ -51,6 +51,10 @@ foreach ($righe as $r) {
<br><small>'.tr('COD. _COD_', [ <br><small>'.tr('COD. _COD_', [
'_COD_' => $r['codice_articolo'], '_COD_' => $r['codice_articolo'],
]).'</small>'; ]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
} }
// Aggiunta riferimento a ordine // Aggiunta riferimento a ordine
@ -58,11 +62,12 @@ foreach ($righe as $r) {
$rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM or_ordini WHERE id='.prepare($r['idordine'])); $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM or_ordini WHERE id='.prepare($r['idordine']));
$numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero']; $numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero'];
echo ' if (!empty($rso)) {
<br><small>'.tr('Rif. ordine n<sup>o</sup>_NUM_ del _DATE_', [ $descrizione = tr('Rif. ordine _NUM_ del _DATE_', [
'_NUM_' => $numero, '_NUM_' => $numero,
'_DATE_' => Translator::dateToLocale($rso[0]['data']), '_DATE_' => Translator::dateToLocale($rso[0]['data']),
]).'</small>'; ]);
}
} }
// Aggiunta riferimento a ddt // Aggiunta riferimento a ddt
@ -70,15 +75,29 @@ foreach ($righe as $r) {
$rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt WHERE id='.prepare($r['idddt'])); $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt WHERE id='.prepare($r['idddt']));
$numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero']; $numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero'];
echo ' if (!empty($rso)) {
<br><small>'.tr('Rif. ddt n<sup>o</sup>_NUM_ del _DATE_', [ $descrizione = tr('Rif. ddt _NUM_ del _DATE_', [
'_NUM_' => $numero, '_NUM_' => $numero,
'_DATE_' => Translator::dateToLocale($rso[0]['data']), '_DATE_' => Translator::dateToLocale($rso[0]['data']),
]).'</small>'; ]);
}
}
// Aggiunta riferimento al preventivo
elseif (!empty($r['idpreventivo'])) {
$rso = $dbo->fetchArray('SELECT numero, data_bozza FROM co_preventivi WHERE id='.prepare($r['idpreventivo']));
if (!empty($rso)) {
$descrizione = tr('Rif. preventivo _NUM_ del _DATE_', [
'_NUM_' => $rso[0]['numero'],
'_DATE_' => Translator::dateToLocale($rso[0]['data_bozza']),
]);
}
} }
// Aumento del conteggio // Aumento del conteggio
if ((!empty($r['codice_articolo']) || !empty($r['idordine']) || !empty($r['idddt'])) && $count <= 1) { if ((!empty($r['idordine']) || !empty($r['idddt']) || !empty($r['idpreventivo'])) && $count <= 1 && !empty($descrizione)) {
echo '<br><small>'.$descrizione.'</small>';
$count += 0.4; $count += 0.4;
} }