Fix stampa fatture pro forma

This commit is contained in:
Thomas Zilio 2018-09-27 16:19:25 +02:00
parent 8ab723cb1c
commit ec5c52a636
3 changed files with 58 additions and 57 deletions

View File

@ -100,8 +100,8 @@ foreach ($righe as $r) {
} }
// Aggiunta dei riferimenti ai documenti // Aggiunta dei riferimenti ai documenti
if (!empty($records[0]['ref_documento'])) { if (!empty($record['ref_documento'])) {
$data = $dbo->fetchArray("SELECT IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM co_documenti WHERE id = ".prepare($records[0]['ref_documento'])); $data = $dbo->fetchArray("SELECT IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM co_documenti WHERE id = ".prepare($record['ref_documento']));
$text = tr('Rif. fattura _NUM_ del _DATE_', [ $text = tr('Rif. fattura _NUM_ del _DATE_', [
'_NUM_' => $data[0]['numero'], '_NUM_' => $data[0]['numero'],
@ -116,7 +116,7 @@ foreach ($righe as $r) {
} }
} }
$ref = doc_references($r, $records[0]['dir'], ['iddocumento']); $ref = doc_references($r, $record['dir'], ['iddocumento']);
if (!empty($ref)) { if (!empty($ref)) {
echo ' echo '
@ -236,25 +236,25 @@ echo '
<table class="table">'; <table class="table">';
echo ' echo '
<tr>'; <tr>';
if (abs($records[0]['bollo']) > 0) { if (abs($record['bollo']) > 0) {
echo ' echo '
<td width="85%">'; <td width="85%">';
} else { } else {
echo ' echo '
<td width="100%">'; <td width="100%">';
} }
if (!empty($records[0]['note'])) { if (!empty($record['note'])) {
echo ' echo '
<p class="small-bold">'.tr('Note', [], ['upper' => true]).':</p> <p class="small-bold">'.tr('Note', [], ['upper' => true]).':</p>
<p>'.nl2br($records[0]['note']).'</p>'; <p>'.nl2br($record['note']).'</p>';
} }
echo ' echo '
</td>'; </td>';
if (abs($records[0]['bollo']) > 0) { if (abs($record['bollo']) > 0) {
echo ' echo '
<td width="15%" align="right">'; <td width="15%" align="right">';
} }
if (abs($records[0]['bollo']) > 0) { if (abs($record['bollo']) > 0) {
echo ' echo '
<table style="width: 20mm; font-size: 50%; text-align: center" class="table-bordered"> <table style="width: 20mm; font-size: 50%; text-align: center" class="table-bordered">
<tr> <tr>
@ -265,7 +265,7 @@ if (abs($records[0]['bollo']) > 0) {
</tr> </tr>
</table>'; </table>';
} }
if (abs($records[0]['bollo']) > 0) { if (abs($record['bollo']) > 0) {
echo ' echo '
</td>'; </td>';
} }
@ -282,18 +282,18 @@ $iva = sum(array_column($righe, 'iva'));
$imponibile_scontato = sum($imponibile, -$sconto); $imponibile_scontato = sum($imponibile, -$sconto);
$totale_iva = sum($iva, $records[0]['iva_rivalsainps']); $totale_iva = sum($iva, $record['iva_rivalsainps']);
$totale = sum([ $totale = sum([
$imponibile_scontato, $imponibile_scontato,
$records[0]['rivalsainps'], $record['rivalsainps'],
$totale_iva, $totale_iva,
]); ]);
$netto_a_pagare = sum([ $netto_a_pagare = sum([
$totale, $totale,
$records[0]['bollo'], $record['bollo'],
-$records[0]['ritenutaacconto'], -$record['ritenutaacconto'],
]); ]);
$imponibile = abs($imponibile); $imponibile = abs($imponibile);

View File

@ -5,7 +5,7 @@
echo " echo "
<table class='table-bordered'> <table class='table-bordered'>
<tr> <tr>
<td colspan=".(!empty($sconto) ? 5 : 3)." class='cell-padded' style='height:".($records[0]['ritenutaacconto'] != 0 ? 20 : 30)."mm'>"; <td colspan=".(!empty($sconto) ? 5 : 3)." class='cell-padded' style='height:".($record['ritenutaacconto'] != 0 ? 20 : 30)."mm'>";
// Tabella (scadenze + iva) // Tabella (scadenze + iva)
echo " echo "
@ -158,15 +158,15 @@ echo "
</tr>'; </tr>';
// Aggiunta della marca da bollo al totale // Aggiunta della marca da bollo al totale
$totale = sum($totale, $records[0]['bollo']); $totale = sum($totale, $record['bollo']);
// Rivalsa INPS // Rivalsa INPS
if (!empty($records[0]['rivalsainps'])) { if (!empty($record['rivalsainps'])) {
$rs2 = $dbo->fetchArray('SELECT percentuale FROM co_rivalsainps WHERE id=(SELECT idrivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idrivalsainps!=0 LIMIT 0,1)'); $rs2 = $dbo->fetchArray('SELECT percentuale FROM co_rivalsainps WHERE id=(SELECT idrivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idrivalsainps!=0 LIMIT 0,1)');
$first_colspan = 3; $first_colspan = 3;
$second_colspan = 2; $second_colspan = 2;
if (abs($records[0]['bollo']) > 0) { if (abs($record['bollo']) > 0) {
--$first_colspan; --$first_colspan;
} }
if (empty($sconto)) { if (empty($sconto)) {
@ -182,7 +182,7 @@ if (!empty($records[0]['rivalsainps'])) {
], ['upper' => true]).' ], ['upper' => true]).'
</th>'; </th>';
if (abs($records[0]['bollo']) > 0) { if (abs($record['bollo']) > 0) {
echo ' echo '
<th class="text-center small" colspan="1"> <th class="text-center small" colspan="1">
@ -199,14 +199,14 @@ if (!empty($records[0]['rivalsainps'])) {
<tr> <tr>
<td class="cell-padded text-center" colspan="'.$first_colspan.'"> <td class="cell-padded text-center" colspan="'.$first_colspan.'">
'.Translator::numberToLocale($records[0]['rivalsainps']).' &euro; '.Translator::numberToLocale($record['rivalsainps']).' &euro;
</td>'; </td>';
if (abs($records[0]['bollo']) > 0) { if (abs($record['bollo']) > 0) {
echo ' echo '
<td class="cell-padded text-center" colspan="1"> <td class="cell-padded text-center" colspan="1">
'.Translator::numberToLocale($records[0]['bollo']).' &euro; '.Translator::numberToLocale($record['bollo']).' &euro;
</td>'; </td>';
} }
@ -219,12 +219,12 @@ if (!empty($records[0]['rivalsainps'])) {
} }
// Ritenuta d'acconto // Ritenuta d'acconto
if ($records[0]['ritenutaacconto'] != 0) { if ($record['ritenutaacconto'] != 0) {
$rs2 = $dbo->fetchArray('SELECT percentuale FROM co_ritenutaacconto WHERE id=(SELECT idritenutaacconto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idritenutaacconto!=0 LIMIT 0,1)'); $rs2 = $dbo->fetchArray('SELECT percentuale FROM co_ritenutaacconto WHERE id=(SELECT idritenutaacconto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idritenutaacconto!=0 LIMIT 0,1)');
$first_colspan = 3; $first_colspan = 3;
$second_colspan = 2; $second_colspan = 2;
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) { if (empty($record['rivalsainps']) && abs($record['bollo']) > 0) {
--$first_colspan; --$first_colspan;
} }
if (empty($sconto)) { if (empty($sconto)) {
@ -240,7 +240,7 @@ if ($records[0]['ritenutaacconto'] != 0) {
], ['upper' => true]).' ], ['upper' => true]).'
</th>'; </th>';
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) { if (empty($record['rivalsainps']) && abs($record['bollo']) > 0) {
echo ' echo '
<th class="text-center small" colspan="1"> <th class="text-center small" colspan="1">
@ -256,26 +256,26 @@ if ($records[0]['ritenutaacconto'] != 0) {
<tr> <tr>
<td class="cell-padded text-center" colspan="'.$first_colspan.'"> <td class="cell-padded text-center" colspan="'.$first_colspan.'">
'.Translator::numberToLocale($records[0]['ritenutaacconto']).' &euro; '.Translator::numberToLocale($record['ritenutaacconto']).' &euro;
</td>'; </td>';
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) { if (empty($record['rivalsainps']) && abs($record['bollo']) > 0) {
echo ' echo '
<td class="cell-padded text-center" colspan="1"> <td class="cell-padded text-center" colspan="1">
'.Translator::numberToLocale($records[0]['bollo']).' &euro; '.Translator::numberToLocale($record['bollo']).' &euro;
</td>'; </td>';
} }
echo ' echo '
<td class="cell-padded text-center" colspan="'.$second_colspan.'"> <td class="cell-padded text-center" colspan="'.$second_colspan.'">
'.Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' &euro; '.Translator::numberToLocale($totale - $record['ritenutaacconto']).' &euro;
</td> </td>
</tr>'; </tr>';
} }
if (empty($records[0]['ritenutaacconto']) && empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) { if (empty($record['ritenutaacconto']) && empty($record['rivalsainps']) && abs($record['bollo']) > 0) {
$first_colspan = 3; $first_colspan = 3;
$second_colspan = 2; $second_colspan = 2;
if (empty($sconto)) { if (empty($sconto)) {
@ -295,11 +295,11 @@ if (empty($records[0]['ritenutaacconto']) && empty($records[0]['rivalsainps']) &
<tr> <tr>
<td class="cell-padded text-center" colspan="'.$first_colspan.'"> <td class="cell-padded text-center" colspan="'.$first_colspan.'">
'.Translator::numberToLocale($records[0]['bollo']).' &euro; '.Translator::numberToLocale($record['bollo']).' &euro;
</td> </td>
<td class="cell-padded text-center" colspan="'.$second_colspan.'"> <td class="cell-padded text-center" colspan="'.$second_colspan.'">
'.Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' &euro; '.Translator::numberToLocale($totale - $record['ritenutaacconto']).' &euro;
</td> </td>
</tr>'; </tr>';
} }

View File

@ -3,7 +3,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
// Lettura info fattura // Lettura info fattura
$records = $dbo->fetchArray('SELECT *, $record = $dbo->fetchOne('SELECT *,
(SELECT descrizione FROM co_statidocumento WHERE id=idstatodocumento) AS stato_doc, (SELECT descrizione FROM co_statidocumento WHERE id=idstatodocumento) AS stato_doc,
(SELECT descrizione FROM co_tipidocumento WHERE id=idtipodocumento) AS tipo_doc, (SELECT descrizione FROM co_tipidocumento WHERE id=idtipodocumento) AS tipo_doc,
(SELECT descrizione FROM co_pagamenti WHERE id=idpagamento) AS tipo_pagamento, (SELECT descrizione FROM co_pagamenti WHERE id=idpagamento) AS tipo_pagamento,
@ -16,36 +16,37 @@ $records = $dbo->fetchArray('SELECT *,
(SELECT id FROM co_banche WHERE id=idbanca) AS id_banca, (SELECT id FROM co_banche WHERE id=idbanca) AS id_banca,
(SELECT nome FROM co_banche WHERE id=idbanca) AS nome_banca, (SELECT nome FROM co_banche WHERE id=idbanca) AS nome_banca,
(SELECT iban FROM co_banche WHERE id=idbanca) AS iban_banca, (SELECT iban FROM co_banche WHERE id=idbanca) AS iban_banca,
(SELECT bic FROM co_banche WHERE id=idbanca) AS bic_banca (SELECT bic FROM co_banche WHERE id=idbanca) AS bic_banca,
(SELECT is_fiscale FROM zz_segments WHERE id = id_segment) AS is_fiscale
FROM co_documenti WHERE id='.prepare($id_record)); FROM co_documenti WHERE id='.prepare($id_record));
$records[0]['rivalsainps'] = floatval($records[0]['rivalsainps']); $record['rivalsainps'] = floatval($record['rivalsainps']);
$records[0]['ritenutaacconto'] = floatval($records[0]['ritenutaacconto']); $record['ritenutaacconto'] = floatval($record['ritenutaacconto']);
$records[0]['bollo'] = floatval($records[0]['bollo']); $record['bollo'] = floatval($record['bollo']);
$nome_banca = $records[0]['nome_banca']; $nome_banca = $record['nome_banca'];
$iban_banca = $records[0]['iban_banca']; $iban_banca = $record['iban_banca'];
$bic_banca = $records[0]['bic_banca']; $bic_banca = $record['bic_banca'];
$module_name = ($records[0]['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto'; $module_name = ($record['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
$id_cliente = $records[0]['idanagrafica']; $id_cliente = $record['idanagrafica'];
$id_sede = $records[0]['idsede']; $id_sede = $record['idsede'];
$tipo_doc = $records[0]['tipo_doc']; $tipo_doc = $record['tipo_doc'];
if ($records[0]['stato_doc'] != 'Bozza') { $numero = !empty($record['numero_esterno']) ? $record['numero_esterno'] : $record['numero'];
$numero = !empty($records[0]['numero_esterno']) ? $records[0]['numero_esterno'] : $records[0]['numero'];
} else { // Caso particolare per le fatture pro forma
if (empty($record['is_fiscale'])) {
$tipo_doc = tr('Fattura pro forma'); $tipo_doc = tr('Fattura pro forma');
$numero = 'PRO-'.$records[0]['numero'];
} }
// Fix per le fattura accompagnatorie // Fix per le fattura accompagnatorie
$fattura_accompagnatoria = ($records[0]['tipo_doc'] == 'Fattura accompagnatoria di vendita'); $fattura_accompagnatoria = ($record['tipo_doc'] == 'Fattura accompagnatoria di vendita');
$tipo_doc = ($fattura_accompagnatoria) ? 'Fattura accompagnatoria di vendita' : $tipo_doc; $tipo_doc = ($fattura_accompagnatoria) ? 'Fattura accompagnatoria di vendita' : $tipo_doc;
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi) // Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
$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 FROM an_sedi WHERE idanagrafica='.prepare($id_cliente).(!empty($records[0]['idsede']) ? ' AND id='.prepare($records[0]['idsede']) : '')); $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 FROM an_sedi WHERE idanagrafica='.prepare($id_cliente).(!empty($record['idsede']) ? ' AND id='.prepare($record['idsede']) : ''));
$destinazione = ''; $destinazione = '';
if (!empty($rsd[0]['nomesede'])) { if (!empty($rsd[0]['nomesede'])) {
@ -73,15 +74,15 @@ $id_sede = 0;
$custom = [ $custom = [
'tipo_doc' => Stringy\Stringy::create($tipo_doc)->toUpperCase(), 'tipo_doc' => Stringy\Stringy::create($tipo_doc)->toUpperCase(),
'numero_doc' => $numero, 'numero_doc' => $numero,
'data' => Translator::dateToLocale($records[0]['data']), 'data' => Translator::dateToLocale($record['data']),
'pagamento' => $records[0]['tipo_pagamento'], 'pagamento' => $record['tipo_pagamento'],
'c_destinazione' => $destinazione, 'c_destinazione' => $destinazione,
'aspettobeni' => $records[0]['aspettobeni'], 'aspettobeni' => $record['aspettobeni'],
'causalet' => $records[0]['causalet'], 'causalet' => $record['causalet'],
'porto' => $records[0]['porto'], 'porto' => $record['porto'],
'n_colli' => !empty($records[0]['n_colli']) ? $records[0]['n_colli'] : '', 'n_colli' => !empty($record['n_colli']) ? $record['n_colli'] : '',
'spedizione' => $records[0]['spedizione'], 'spedizione' => $record['spedizione'],
'vettore' => $records[0]['vettore'], 'vettore' => $record['vettore'],
'appoggiobancario' => $nome_banca, 'appoggiobancario' => $nome_banca,
'codiceiban' => $iban_banca, 'codiceiban' => $iban_banca,
'bic' => $bic_banca, 'bic' => $bic_banca,