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
if (!empty($records[0]['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']));
if (!empty($record['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_', [
'_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)) {
echo '
@ -236,25 +236,25 @@ echo '
<table class="table">';
echo '
<tr>';
if (abs($records[0]['bollo']) > 0) {
if (abs($record['bollo']) > 0) {
echo '
<td width="85%">';
} else {
echo '
<td width="100%">';
}
if (!empty($records[0]['note'])) {
if (!empty($record['note'])) {
echo '
<p class="small-bold">'.tr('Note', [], ['upper' => true]).':</p>
<p>'.nl2br($records[0]['note']).'</p>';
<p>'.nl2br($record['note']).'</p>';
}
echo '
</td>';
if (abs($records[0]['bollo']) > 0) {
if (abs($record['bollo']) > 0) {
echo '
<td width="15%" align="right">';
}
if (abs($records[0]['bollo']) > 0) {
if (abs($record['bollo']) > 0) {
echo '
<table style="width: 20mm; font-size: 50%; text-align: center" class="table-bordered">
<tr>
@ -265,7 +265,7 @@ if (abs($records[0]['bollo']) > 0) {
</tr>
</table>';
}
if (abs($records[0]['bollo']) > 0) {
if (abs($record['bollo']) > 0) {
echo '
</td>';
}
@ -282,18 +282,18 @@ $iva = sum(array_column($righe, 'iva'));
$imponibile_scontato = sum($imponibile, -$sconto);
$totale_iva = sum($iva, $records[0]['iva_rivalsainps']);
$totale_iva = sum($iva, $record['iva_rivalsainps']);
$totale = sum([
$imponibile_scontato,
$records[0]['rivalsainps'],
$record['rivalsainps'],
$totale_iva,
]);
$netto_a_pagare = sum([
$totale,
$records[0]['bollo'],
-$records[0]['ritenutaacconto'],
$record['bollo'],
-$record['ritenutaacconto'],
]);
$imponibile = abs($imponibile);

View File

@ -5,7 +5,7 @@
echo "
<table class='table-bordered'>
<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)
echo "
@ -158,15 +158,15 @@ echo "
</tr>';
// Aggiunta della marca da bollo al totale
$totale = sum($totale, $records[0]['bollo']);
$totale = sum($totale, $record['bollo']);
// 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)');
$first_colspan = 3;
$second_colspan = 2;
if (abs($records[0]['bollo']) > 0) {
if (abs($record['bollo']) > 0) {
--$first_colspan;
}
if (empty($sconto)) {
@ -182,7 +182,7 @@ if (!empty($records[0]['rivalsainps'])) {
], ['upper' => true]).'
</th>';
if (abs($records[0]['bollo']) > 0) {
if (abs($record['bollo']) > 0) {
echo '
<th class="text-center small" colspan="1">
@ -199,14 +199,14 @@ if (!empty($records[0]['rivalsainps'])) {
<tr>
<td class="cell-padded text-center" colspan="'.$first_colspan.'">
'.Translator::numberToLocale($records[0]['rivalsainps']).' &euro;
'.Translator::numberToLocale($record['rivalsainps']).' &euro;
</td>';
if (abs($records[0]['bollo']) > 0) {
if (abs($record['bollo']) > 0) {
echo '
<td class="cell-padded text-center" colspan="1">
'.Translator::numberToLocale($records[0]['bollo']).' &euro;
'.Translator::numberToLocale($record['bollo']).' &euro;
</td>';
}
@ -219,12 +219,12 @@ if (!empty($records[0]['rivalsainps'])) {
}
// 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)');
$first_colspan = 3;
$second_colspan = 2;
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) {
if (empty($record['rivalsainps']) && abs($record['bollo']) > 0) {
--$first_colspan;
}
if (empty($sconto)) {
@ -240,7 +240,7 @@ if ($records[0]['ritenutaacconto'] != 0) {
], ['upper' => true]).'
</th>';
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) {
if (empty($record['rivalsainps']) && abs($record['bollo']) > 0) {
echo '
<th class="text-center small" colspan="1">
@ -256,26 +256,26 @@ if ($records[0]['ritenutaacconto'] != 0) {
<tr>
<td class="cell-padded text-center" colspan="'.$first_colspan.'">
'.Translator::numberToLocale($records[0]['ritenutaacconto']).' &euro;
'.Translator::numberToLocale($record['ritenutaacconto']).' &euro;
</td>';
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) {
if (empty($record['rivalsainps']) && abs($record['bollo']) > 0) {
echo '
<td class="cell-padded text-center" colspan="1">
'.Translator::numberToLocale($records[0]['bollo']).' &euro;
'.Translator::numberToLocale($record['bollo']).' &euro;
</td>';
}
echo '
<td class="cell-padded text-center" colspan="'.$second_colspan.'">
'.Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' &euro;
'.Translator::numberToLocale($totale - $record['ritenutaacconto']).' &euro;
</td>
</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;
$second_colspan = 2;
if (empty($sconto)) {
@ -295,11 +295,11 @@ if (empty($records[0]['ritenutaacconto']) && empty($records[0]['rivalsainps']) &
<tr>
<td class="cell-padded text-center" colspan="'.$first_colspan.'">
'.Translator::numberToLocale($records[0]['bollo']).' &euro;
'.Translator::numberToLocale($record['bollo']).' &euro;
</td>
<td class="cell-padded text-center" colspan="'.$second_colspan.'">
'.Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' &euro;
'.Translator::numberToLocale($totale - $record['ritenutaacconto']).' &euro;
</td>
</tr>';
}

View File

@ -3,7 +3,7 @@
include_once __DIR__.'/../../core.php';
// 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_tipidocumento WHERE id=idtipodocumento) AS tipo_doc,
(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 nome FROM co_banche WHERE id=idbanca) AS nome_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));
$records[0]['rivalsainps'] = floatval($records[0]['rivalsainps']);
$records[0]['ritenutaacconto'] = floatval($records[0]['ritenutaacconto']);
$records[0]['bollo'] = floatval($records[0]['bollo']);
$record['rivalsainps'] = floatval($record['rivalsainps']);
$record['ritenutaacconto'] = floatval($record['ritenutaacconto']);
$record['bollo'] = floatval($record['bollo']);
$nome_banca = $records[0]['nome_banca'];
$iban_banca = $records[0]['iban_banca'];
$bic_banca = $records[0]['bic_banca'];
$nome_banca = $record['nome_banca'];
$iban_banca = $record['iban_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_sede = $records[0]['idsede'];
$id_cliente = $record['idanagrafica'];
$id_sede = $record['idsede'];
$tipo_doc = $records[0]['tipo_doc'];
if ($records[0]['stato_doc'] != 'Bozza') {
$numero = !empty($records[0]['numero_esterno']) ? $records[0]['numero_esterno'] : $records[0]['numero'];
} else {
$tipo_doc = $record['tipo_doc'];
$numero = !empty($record['numero_esterno']) ? $record['numero_esterno'] : $record['numero'];
// Caso particolare per le fatture pro forma
if (empty($record['is_fiscale'])) {
$tipo_doc = tr('Fattura pro forma');
$numero = 'PRO-'.$records[0]['numero'];
}
// 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;
// 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 = '';
if (!empty($rsd[0]['nomesede'])) {
@ -73,15 +74,15 @@ $id_sede = 0;
$custom = [
'tipo_doc' => Stringy\Stringy::create($tipo_doc)->toUpperCase(),
'numero_doc' => $numero,
'data' => Translator::dateToLocale($records[0]['data']),
'pagamento' => $records[0]['tipo_pagamento'],
'data' => Translator::dateToLocale($record['data']),
'pagamento' => $record['tipo_pagamento'],
'c_destinazione' => $destinazione,
'aspettobeni' => $records[0]['aspettobeni'],
'causalet' => $records[0]['causalet'],
'porto' => $records[0]['porto'],
'n_colli' => !empty($records[0]['n_colli']) ? $records[0]['n_colli'] : '',
'spedizione' => $records[0]['spedizione'],
'vettore' => $records[0]['vettore'],
'aspettobeni' => $record['aspettobeni'],
'causalet' => $record['causalet'],
'porto' => $record['porto'],
'n_colli' => !empty($record['n_colli']) ? $record['n_colli'] : '',
'spedizione' => $record['spedizione'],
'vettore' => $record['vettore'],
'appoggiobancario' => $nome_banca,
'codiceiban' => $iban_banca,
'bic' => $bic_banca,