Aggiornamento delle stampe
Adeguamento alla nuova versione delle stampe di contratti e ordini.
This commit is contained in:
parent
4242f98213
commit
f663758c5f
|
@ -42,7 +42,7 @@ if (empty($idriga)) {
|
||||||
$um = $rsr[0]['um'];
|
$um = $rsr[0]['um'];
|
||||||
$idiva = $rsr[0]['idiva'];
|
$idiva = $rsr[0]['idiva'];
|
||||||
$prezzo = $rsr[0]['subtotale'] / $rsr[0]['qta'];
|
$prezzo = $rsr[0]['subtotale'] / $rsr[0]['qta'];
|
||||||
$sconto = $rsr[0]['sconto'];
|
$sconto = $rsr[0]['sconto_unitario'];
|
||||||
$tipo_sconto = $rsr[0]['tipo_sconto'];
|
$tipo_sconto = $rsr[0]['tipo_sconto'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,265 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$report_name = 'contratto_'.$idcontratto.'.pdf';
|
||||||
|
|
||||||
|
$autofill = [
|
||||||
|
'count' => 0, // Conteggio delle righe
|
||||||
|
'words' => 70, // Numero di parolo dopo cui contare una riga nuova
|
||||||
|
'rows' => 20, // Numero di righe massimo presente nella pagina
|
||||||
|
'additional' => 10, // Numero di righe massimo da aggiungere
|
||||||
|
'columns' => 4, // Numero di colonne della tabella
|
||||||
|
];
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<div class="text-center" style="height:5mm;">
|
||||||
|
<b>'.tr('Contratto N<sup>o</sup> _NUM_ del _DATE_', [
|
||||||
|
'_NUM_' => $records[0]['numero'],
|
||||||
|
'_DATE_' => Translator::dateToLocale($records[0]['data_bozza']),
|
||||||
|
], ['upper' => true]).'</b>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-5 col-xs-offset-1">
|
||||||
|
<table class="table" style="width:100%;margin-top:5mm;">
|
||||||
|
<tr>
|
||||||
|
<td colspan=2 class="border-full" style="height:16mm;">
|
||||||
|
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
|
||||||
|
<p>$c_ragionesociale$</p>
|
||||||
|
<p>$c_indirizzo$ $c_citta_full$</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="border-bottom border-left">
|
||||||
|
<p class="small-bold">'.tr('Partita IVA', [], ['upper' => true]).'</p>
|
||||||
|
</td>
|
||||||
|
<td class="border-right border-bottom text-right">
|
||||||
|
<small>$c_piva$</small>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="border-bottom border-left">
|
||||||
|
<p class="small-bold">'.tr('Codice fiscale', [], ['upper' => true]).'</p>
|
||||||
|
</td>
|
||||||
|
<td class="border-right border-bottom text-right">
|
||||||
|
<small>$c_codicefiscale$</small>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
// Descrizione
|
||||||
|
if (!empty($records[0]['descrizione'])) {
|
||||||
|
echo '
|
||||||
|
<p>'.nl2br($records[0]['descrizione']).'</p>
|
||||||
|
<br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$sconto = [];
|
||||||
|
$imponibile = [];
|
||||||
|
$iva = [];
|
||||||
|
|
||||||
|
// Intestazione tabella per righe
|
||||||
|
echo "
|
||||||
|
<table class='table table-striped table-bordered' id='contents'>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class='text-center' style='width:50%'>".tr('Descrizione', [], ['upper' => true])."</th>
|
||||||
|
<th class='text-center' style='width:10%'>".tr('Q.tà', [], ['upper' => true])."</th>
|
||||||
|
<th class='text-center' style='width:20%'>".tr('Prezzo unitario', [], ['upper' => true])."</th>
|
||||||
|
<th class='text-center' style='width:20%'>".tr('Imponibile', [], ['upper' => true]).'</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>';
|
||||||
|
|
||||||
|
// RIGHE PREVENTIVO CON ORDINAMENTO UNICO
|
||||||
|
$righe = $dbo->fetchArray('SELECT * FROM co_righe2_contratti WHERE idcontratto='.prepare($idcontratto).' ORDER BY `order`');
|
||||||
|
foreach ($righe as $r) {
|
||||||
|
$count = 0;
|
||||||
|
$count += ceil(strlen($r['descrizione']) / $autofill['words']);
|
||||||
|
$count += substr_count($r['descrizione'], PHP_EOL);
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
'.nl2br($r['descrizione']);
|
||||||
|
|
||||||
|
if (!empty($r['codice_articolo'])) {
|
||||||
|
echo '
|
||||||
|
<br><small>'.tr('COD. _COD_', [
|
||||||
|
'_COD_' => $r['codice_articolo'],
|
||||||
|
]).'</small>';
|
||||||
|
|
||||||
|
if ($count <= 1) {
|
||||||
|
$count += 0.4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</td>';
|
||||||
|
|
||||||
|
echo "
|
||||||
|
<td class='text-center'>
|
||||||
|
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' '.$r['um'].'
|
||||||
|
</td>';
|
||||||
|
|
||||||
|
if ($mostra_prezzi) {
|
||||||
|
// Prezzo unitario
|
||||||
|
echo "
|
||||||
|
<td class='text-right'>
|
||||||
|
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'], 2)).' €
|
||||||
|
</td>';
|
||||||
|
|
||||||
|
// Imponibile
|
||||||
|
echo "
|
||||||
|
<td class='text-right'>
|
||||||
|
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' €';
|
||||||
|
|
||||||
|
if ($r['sconto'] > 0) {
|
||||||
|
echo "
|
||||||
|
<br><small class='help-block'>- sconto ".Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €').'</small>';
|
||||||
|
|
||||||
|
if ($count <= 1) {
|
||||||
|
$count += 0.4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</td>';
|
||||||
|
} else {
|
||||||
|
echo '
|
||||||
|
<td class="text-center">-</td>
|
||||||
|
<td class="text-center">-</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
$autofill['count'] += $count;
|
||||||
|
|
||||||
|
$sconto[] = $r['sconto'];
|
||||||
|
$imponibile[] = $r['subtotale'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$sconto = sum($sconto);
|
||||||
|
$imponibile = sum($imponibile);
|
||||||
|
|
||||||
|
$totale = $imponibile - $sconto;
|
||||||
|
|
||||||
|
echo '
|
||||||
|
|autofill|
|
||||||
|
</tbody>';
|
||||||
|
|
||||||
|
// TOTALE COSTI FINALI
|
||||||
|
if ($mostra_prezzi) {
|
||||||
|
// Eventuale sconto incondizionato
|
||||||
|
if (!empty($sconto)) {
|
||||||
|
// Totale imponibile
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Imponibile', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th class="text-center">
|
||||||
|
<b>'.Translator::numberToLocale($imponibile, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Sconto', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th class="text-center">
|
||||||
|
<b>-'.Translator::numberToLocale($sconto, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// TOTALE
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Quotazione totale', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
<th class="text-center">
|
||||||
|
<b>'.Translator::numberToLocale($totale, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
echo'
|
||||||
|
</table>';
|
||||||
|
|
||||||
|
// CONDIZIONI GENERALI DI FORNITURA
|
||||||
|
|
||||||
|
// Lettura pagamenti
|
||||||
|
$rs = $dbo->fetchArray('SELECT * FROM co_pagamenti WHERE id = '.$records[0]['idpagamento']);
|
||||||
|
$pagamento = $rs[0]['descrizione'];
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<th colspan="2" class="text-center">
|
||||||
|
'.tr('Condizioni generali di fornitura', [], ['upper' => true]).'
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th style="width:25%">
|
||||||
|
'.tr('Pagamento', [], ['upper' => true]).'
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
'.$pagamento.'
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
'.tr('Validità offerta', [], ['upper' => true]).'
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
'.tr('_TOT_ giorni', [
|
||||||
|
'_TOT_' => $records[0]['validita'],
|
||||||
|
]).' giorni
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
'.tr('Validità contratto', [], ['upper' => true]).'
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
'.tr('dal _START_ al _END_', [
|
||||||
|
'_START_' => Translator::dateToLocale($records[0]['data_accettazione']),
|
||||||
|
'_END_' => Translator::dateToLocale($records[0]['data_conclusione']),
|
||||||
|
]).'
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
'.tr('Esclusioni', [], ['upper' => true]).'
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
'.nl2br($records[0]['esclusioni']).'
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>';
|
||||||
|
|
||||||
|
// Conclusione
|
||||||
|
echo '
|
||||||
|
<p class="text-center"><b>'.tr('Il tutto S.E. & O.').'</b></p>
|
||||||
|
<p class="text-center">'.tr("In attesa di un Vostro Cortese riscontro, colgo l'occasione per porgere Cordiali Saluti").'</p>';
|
|
@ -1,18 +0,0 @@
|
||||||
<style>
|
|
||||||
<!--
|
|
||||||
.table_values td{
|
|
||||||
border: 1px solid #888;
|
|
||||||
padding: 4px;
|
|
||||||
white-space: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table_values th{
|
|
||||||
background: #abbfcb;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
-->
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<page backcolor="#ffffff" backtop="45mm" backbottom="10mm" backleft="0mm" backright="0mm" footer="" style="font-size: $font_size$">
|
|
||||||
$body$
|
|
||||||
</page>
|
|
|
@ -1,23 +0,0 @@
|
||||||
<page_header>
|
|
||||||
<table $body_table_params$>
|
|
||||||
<!-- Intestazione fornitore -->
|
|
||||||
<tr><td style="width:110mm; font-size:8pt; color:#555;">
|
|
||||||
<img src="$docroot$/templates/riepilogo_contratti/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<!-- Intestazione cliente -->
|
|
||||||
<td style="width:100mm; font-size:8pt">
|
|
||||||
$f_ragionesociale$
|
|
||||||
$f_indirizzo$
|
|
||||||
$f_citta_full$
|
|
||||||
$f_piva$
|
|
||||||
$f_codicefiscale$
|
|
||||||
$f_capsoc$
|
|
||||||
$f_telefono$
|
|
||||||
$f_sitoweb$
|
|
||||||
$f_email$
|
|
||||||
</td></tr>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
<br/>
|
|
||||||
</page_header>
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<img src="'.__DIR__.'/logo_azienda.jpg" alt="Logo" border="0"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 text-right">
|
||||||
|
<p><b>$f_ragionesociale$</b></p>
|
||||||
|
<p>$f_indirizzo$ $f_citta_full$</p>
|
||||||
|
<p>'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$</p>
|
||||||
|
<p>'.(!empty($f_codicefiscale) ? tr('C.F.').': ' : '').'$f_codicefiscale$</p>
|
||||||
|
<p>'.(!empty($f_capsoc) ? tr('Cap.Soc.').': ' : '').'$f_capsoc$</p>
|
||||||
|
<p>'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$</p>
|
||||||
|
</div>
|
||||||
|
</div>';
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$module_name = 'Contratti';
|
||||||
|
|
||||||
|
// Lettura info fattura
|
||||||
|
$records = $dbo->fetchArray('SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=in_interventi.id LIMIT 0,1) AS data, co_contratti.descrizione AS `cdescrizione`, co_contratti.idanagrafica AS `idanagrafica`, co_contratti.costo_orario AS costo_orario , co_contratti.costo_km AS costo_km FROM co_contratti LEFT OUTER JOIN (co_righe_contratti LEFT OUTER JOIN in_interventi ON co_righe_contratti.idintervento=in_interventi.id) ON co_contratti.id=co_righe_contratti.idcontratto WHERE co_contratti.id='.prepare($idcontratto));
|
||||||
|
|
||||||
|
$id_cliente = $records[0]['idanagrafica'];
|
||||||
|
$id_sede = $records[0]['idsede'];
|
||||||
|
|
||||||
|
$mostra_prezzi = get_var('Stampa i prezzi sui contratti');
|
|
@ -1,192 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
|
||||||
|
|
||||||
// carica intervento
|
|
||||||
$idcontratto = save($_GET['idcontratto']);
|
|
||||||
|
|
||||||
$show_costi = get_var('Stampa i prezzi sui contratti');
|
|
||||||
|
|
||||||
// Lettura dati contratto e interventi
|
|
||||||
$q = "SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=in_interventi.id LIMIT 0,1) AS data, co_contratti.descrizione AS `cdescrizione`, co_contratti.idanagrafica AS `idanagrafica`, co_contratti.costo_orario AS costo_orario , co_contratti.costo_km AS costo_km FROM co_contratti LEFT OUTER JOIN (co_righe_contratti LEFT OUTER JOIN in_interventi ON co_righe_contratti.idintervento=in_interventi.id) ON co_contratti.id=co_righe_contratti.idcontratto WHERE co_contratti.id='".$idcontratto."' ORDER BY data DESC";
|
|
||||||
$rscontrattii = $dbo->fetchArray($q);
|
|
||||||
$idcliente = $rscontrattii[0]['idanagrafica'];
|
|
||||||
|
|
||||||
// carica report html
|
|
||||||
$report = file_get_contents($docroot.'/templates/contratti/contratto.html');
|
|
||||||
$body = file_get_contents($docroot.'/templates/contratti/contratto_body.html');
|
|
||||||
|
|
||||||
include_once $docroot.'/templates/pdfgen_variables.php';
|
|
||||||
|
|
||||||
$totrows = sizeof($rscontrattii);
|
|
||||||
$totale_km = 0;
|
|
||||||
$totale_ore = 0;
|
|
||||||
$totale = 0;
|
|
||||||
$contratti = [];
|
|
||||||
$ore = [];
|
|
||||||
$km = [];
|
|
||||||
$ntecnici = [];
|
|
||||||
$tecnici = [];
|
|
||||||
$costi_orari = [];
|
|
||||||
$costi_km = [];
|
|
||||||
$idinterventi = ['-1'];
|
|
||||||
|
|
||||||
// Sostituisco i valori tra | | con il valore del campo del db
|
|
||||||
$body .= preg_replace('/|(.+?)|/', $rscontrattii[0]['${1}'], $body);
|
|
||||||
|
|
||||||
// Lettura nome referenti collegati all'anagrafica
|
|
||||||
$query = 'SELECT * FROM an_referenti WHERE id = "'.$rscontrattii[0]['idreferente'].'"';
|
|
||||||
$rs = $dbo->fetchArray($query);
|
|
||||||
$nome_referente = $rs[0]['nome'];
|
|
||||||
|
|
||||||
// Tabella intestazione
|
|
||||||
$body .= "<table class='table_values' border='0' cellpadding='0'>\n";
|
|
||||||
|
|
||||||
$body .= "<tr><td align=\"left\" width='356' style='border:0px;'>\n";
|
|
||||||
$body .= " \n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
$body .= "<td align=\"left\" width='356' >\n";
|
|
||||||
|
|
||||||
if ($c_cap != '') {
|
|
||||||
$c_cap = $c_cap.' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($c_provincia != '') {
|
|
||||||
$c_provincia = ' ('.$c_provincia.')';
|
|
||||||
}
|
|
||||||
|
|
||||||
$body .= '<big style="line-height:5mm" >Spettabile<br/><b>'.$c_ragionesociale.'<br>'.$c_indirizzo.'<br>'.$c_cap.$c_citta.$c_provincia.'<br> P.Iva: '.$c_piva."</b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
$body .= "</tr>\n";
|
|
||||||
|
|
||||||
$body .= "<tr><td align=\"left\" colspan=\"2\" style='border:0px;'>\n";
|
|
||||||
$body .= '<big><b>'.$f_citta.', '.Translator::dateToLocale($rscontrattii[0]['data_bozza'])."</b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
$body .= "</tr>\n";
|
|
||||||
|
|
||||||
$body .= "<tr><td align=\"left\" colspan=\"2\" style='border:0px;'>\n";
|
|
||||||
$body .= '<big><b>OGGETTO: CONTRATTO N<sup>o</sup> '.$rscontrattii[0]['numero'].' DEL '.Translator::dateToLocale($rscontrattii[0]['data_bozza'])."</b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
$body .= "</tr>\n";
|
|
||||||
|
|
||||||
if ($nome_referente != '') {
|
|
||||||
$body .= "<tr><td align=\"left\" colspan=\"2\" >\n";
|
|
||||||
$body .= '<b><u>C.A.</u></b> '.$nome_referente."\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
$body .= "</tr>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$body .= "</table>\n";
|
|
||||||
|
|
||||||
/*
|
|
||||||
TABELLA COSTI
|
|
||||||
*/
|
|
||||||
$body .= "<table class='table_values' border='0' cellpadding='0'>\n";
|
|
||||||
$body .= "<col width='390'><col width='50'><col width='40'><col width='90'><col width='75'><col width='60'><col width='78'>\n";
|
|
||||||
$body .= "<thead>\n";
|
|
||||||
$body .= "<tr><th width='390'>Descrizione</th>\n";
|
|
||||||
$body .= "<th width='50' align='center'>Q.tà</th>\n";
|
|
||||||
$body .= "<th width='40' align='center'>u.m.</th>\n";
|
|
||||||
$body .= "<th width='90' align='center'>Costo unitario</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th width='75' align='center'>Imponibile</th></tr>\n";
|
|
||||||
$body .= "</thead>\n";
|
|
||||||
|
|
||||||
$body .= "<tbody>\n";
|
|
||||||
|
|
||||||
$rs = $dbo->fetchArray('SELECT * FROM co_righe2_contratti WHERE idcontratto="'.$idcontratto.'"');
|
|
||||||
$totale = 0;
|
|
||||||
|
|
||||||
for ($i = 0; $i < sizeof($rs); ++$i) {
|
|
||||||
// Descrizione
|
|
||||||
$body .= "<tr><td valign='top'>".nl2br($rs[$i]['descrizione'])."</td>\n";
|
|
||||||
|
|
||||||
// Q.tà
|
|
||||||
$body .= "<td align='center' valign='top'>".Translator::numberToLocale($rs[$i]['qta'], 2)."</td>\n";
|
|
||||||
|
|
||||||
// um
|
|
||||||
$body .= "<td align='center' valign='top'>".$rs[$i]['um']."</td>\n";
|
|
||||||
|
|
||||||
// Costo unitario
|
|
||||||
$body .= "<td align='center' valign='top'>".Translator::numberToLocale($rs[$i]['subtotale'] / $rs[$i]['qta'], 2)." €</td>\n";
|
|
||||||
|
|
||||||
// Subtotale
|
|
||||||
$body .= "<td align='center' valign='top'>".Translator::numberToLocale($rs[$i]['subtotale'], 2)." €</td>\n";
|
|
||||||
$body .= "</tr>\n";
|
|
||||||
|
|
||||||
$totale += $rs[$i]['subtotale'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Totale complessivo intervento
|
|
||||||
$body .= "<tr><td align=\"right\" colspan=\"4\">\n";
|
|
||||||
$body .= "<big><b>QUOTAZIONE TOTALE:</b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td align=\"right\" bgcolor=\"#cccccc\">\n";
|
|
||||||
$body .= '<big><b>'.Translator::numberToLocale($totale, 2)." €</b></big>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$body .= "</tbody>\n";
|
|
||||||
$body .= "</table><br/><br/>\n";
|
|
||||||
|
|
||||||
// CONDIZIONI GENERALI DI FORNITURA
|
|
||||||
|
|
||||||
// Lettura pagamenti
|
|
||||||
if ($rscontrattii[0]['idpagamento'] != '') {
|
|
||||||
$query = 'SELECT * FROM co_pagamenti WHERE id = '.$rscontrattii[0]['idpagamento'];
|
|
||||||
$rs = $dbo->fetchArray($query);
|
|
||||||
$pagamento = $rs[0]['descrizione'];
|
|
||||||
} else {
|
|
||||||
$pagamento = 'N.D.';
|
|
||||||
}
|
|
||||||
|
|
||||||
$rscontrattii[0]['idpagamento'];
|
|
||||||
|
|
||||||
$body .= "<table border=\"0\" cellpadding='0' cellspacing='10'>\n";
|
|
||||||
$body .= "<col width='200'><col width='510'>\n";
|
|
||||||
$body .= "<tr><td align=\"center\" valign=\"middle\" style=\"height:5mm;font-size:14pt;\" bgcolor=\"#dddddd\" colspan=\"2\">\n";
|
|
||||||
$body .= "<span><b>CONDIZIONI GENERALI DI FORNITURA</b></span><br/>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
// PAGAMENTI
|
|
||||||
$body .= "<tr><td>\n";
|
|
||||||
$body .= "<big><b><u>PAGAMENTI:</u></b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td>\n";
|
|
||||||
$body .= '<span><b>'.$pagamento."</b></span>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
// VALIDITA' OFFERTA
|
|
||||||
$body .= "<tr><td>\n";
|
|
||||||
$body .= "<big><b><u>VALIDITÀ OFFERTA:</u></b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td>\n";
|
|
||||||
$body .= '<span><b>'.$rscontrattii[0]['validita']." giorni</b></span>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
// VALIDITA' CONTRATTO
|
|
||||||
$body .= "<tr><td>\n";
|
|
||||||
$body .= "<big><b><u>VALIDITÀ CONTRATTO:</u></b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td>\n";
|
|
||||||
$body .= '<span><b>dal '.Translator::dateToLocale($rscontrattii[0]['data_accettazione']).' al '.Translator::dateToLocale($rscontrattii[0]['data_conclusione'])."</b></span>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
// ESCLUSIONI
|
|
||||||
$body .= "<tr><td>\n";
|
|
||||||
$body .= "<big><b><u>ESCLUSIONI:</u></b></big>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td>\n";
|
|
||||||
$body .= '<span><b>'.$rscontrattii[0]['esclusioni']."</b></span>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
$body .= "</table>\n";
|
|
||||||
$body .= "<br/><br/>\n";
|
|
||||||
|
|
||||||
$body .= "<span><b>Il tutto S.E. & O.</b></span><br/><br/>\n";
|
|
||||||
$body .= "<span>In attesa di un Vostro Cortese riscontro scritto, l’occasione mi è gradita per porgere Cordiali Saluti.</span>\n";
|
|
||||||
|
|
||||||
$report_name = 'contratto_'.$idcontratto.'.pdf';
|
|
|
@ -74,7 +74,7 @@ echo '
|
||||||
<td class="border-full" style="height:16mm;">
|
<td class="border-full" style="height:16mm;">
|
||||||
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
|
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
|
||||||
<p>$c_ragionesociale$</p>
|
<p>$c_ragionesociale$</p>
|
||||||
<p>$c_indirizzo$ $c_citta$</p>
|
<p>$c_indirizzo$ $c_citta_full$</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ if (!empty($records[0]['idsede'])) {
|
||||||
$custom = [
|
$custom = [
|
||||||
'tipo_doc' => strtoupper($tipo_doc),
|
'tipo_doc' => strtoupper($tipo_doc),
|
||||||
'numero_doc' => $numero,
|
'numero_doc' => $numero,
|
||||||
'data' => Translator::numberToLocale($records[0]['data']),
|
'data' => Translator::dateToLocale($records[0]['data']),
|
||||||
'pagamento' => $records[0]['tipo_pagamento'],
|
'pagamento' => $records[0]['tipo_pagamento'],
|
||||||
'c_destinazione' => $destinazione,
|
'c_destinazione' => $destinazione,
|
||||||
'aspettobeni' => $records[0]['aspettobeni'],
|
'aspettobeni' => $records[0]['aspettobeni'],
|
||||||
|
|
|
@ -78,7 +78,7 @@ echo '
|
||||||
<td colspan=2 class="border-full" style="height:16mm;">
|
<td colspan=2 class="border-full" style="height:16mm;">
|
||||||
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
|
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
|
||||||
<p>$c_ragionesociale$</p>
|
<p>$c_ragionesociale$</p>
|
||||||
<p>$c_indirizzo$ $c_citta$</p>
|
<p>$c_indirizzo$ $c_citta_full$</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,192 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$report_name = 'ordine_'.$numero_ord.'.pdf';
|
||||||
|
|
||||||
|
$autofill = [
|
||||||
|
'count' => 0, // Conteggio delle righe
|
||||||
|
'words' => 70, // Numero di parolo dopo cui contare una riga nuova
|
||||||
|
'rows' => 20, // Numero di righe massimo presente nella pagina
|
||||||
|
'additional' => 15, // Numero di righe massimo da aggiungere
|
||||||
|
'columns' => 5, // Numero di colonne della tabella
|
||||||
|
];
|
||||||
|
|
||||||
|
$sconto = [];
|
||||||
|
$imponibile = [];
|
||||||
|
$iva = [];
|
||||||
|
|
||||||
|
// Intestazione tabella per righe
|
||||||
|
echo "
|
||||||
|
<table class='table table-striped table-bordered' id='contents'>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class='text-center' style='width:50%'>".tr('Descrizione', [], ['upper' => true])."</th>
|
||||||
|
<th class='text-center' style='width:10%'>".tr('Q.tà', [], ['upper' => true])."</th>
|
||||||
|
<th class='text-center' style='width:15%'>".tr('Prezzo unitario', [], ['upper' => true])."</th>
|
||||||
|
<th class='text-center' style='width:15%'>".tr('Imponibile', [], ['upper' => true])."</th>
|
||||||
|
<th class='text-center' style='width:10%'>".tr('IVA', [], ['upper' => true]).' (%)</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>';
|
||||||
|
|
||||||
|
// RIGHE PREVENTIVO CON ORDINAMENTO UNICO
|
||||||
|
$righe = $dbo->fetchArray("SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),'') AS codice_articolo, (SELECT percentuale FROM co_iva WHERE id=idiva) AS perc_iva FROM `or_righe_ordini` WHERE idordine=".prepare($idordine).' ORDER BY `order`');
|
||||||
|
foreach ($righe as $r) {
|
||||||
|
$count = 0;
|
||||||
|
$count += ceil(strlen($r['descrizione']) / $autofill['words']);
|
||||||
|
$count += substr_count($r['descrizione'], PHP_EOL);
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
'.nl2br($r['descrizione']);
|
||||||
|
|
||||||
|
if (!empty($r['codice_articolo'])) {
|
||||||
|
echo '
|
||||||
|
<br><small>'.tr('COD. _COD_', [
|
||||||
|
'_COD_' => $r['codice_articolo'],
|
||||||
|
]).'</small>';
|
||||||
|
|
||||||
|
if ($count <= 1) {
|
||||||
|
$count += 0.4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</td>';
|
||||||
|
|
||||||
|
echo "
|
||||||
|
<td class='text-center'>
|
||||||
|
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' '.$r['um'].'
|
||||||
|
</td>';
|
||||||
|
|
||||||
|
if ($mostra_prezzi) {
|
||||||
|
// Prezzo unitario
|
||||||
|
echo "
|
||||||
|
<td class='text-right'>
|
||||||
|
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'], 2)).' €
|
||||||
|
</td>';
|
||||||
|
|
||||||
|
// Imponibile
|
||||||
|
echo "
|
||||||
|
<td class='text-right'>
|
||||||
|
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' €';
|
||||||
|
|
||||||
|
if ($r['sconto'] > 0) {
|
||||||
|
echo "
|
||||||
|
<br><small class='help-block'>- sconto ".Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €').'</small>';
|
||||||
|
|
||||||
|
if ($count <= 1) {
|
||||||
|
$count += 0.4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</td>';
|
||||||
|
} else {
|
||||||
|
echo '
|
||||||
|
<td class="text-center">-</td>
|
||||||
|
<td class="text-center">-</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Iva
|
||||||
|
echo '
|
||||||
|
<td class="text-center">
|
||||||
|
'.Translator::numberToLocale($r['perc_iva'], 2).'
|
||||||
|
</td>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
$autofill['count'] += $count;
|
||||||
|
|
||||||
|
$sconto[] = $r['sconto'];
|
||||||
|
$imponibile[] = $r['subtotale'];
|
||||||
|
$iva[] = $r['iva'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$sconto = sum($sconto);
|
||||||
|
$imponibile = sum($imponibile);
|
||||||
|
$iva = sum($iva);
|
||||||
|
|
||||||
|
$totale = $imponibile - $sconto;
|
||||||
|
|
||||||
|
echo '
|
||||||
|
|autofill|
|
||||||
|
</tbody>';
|
||||||
|
|
||||||
|
// TOTALE COSTI FINALI
|
||||||
|
if ($mostra_prezzi) {
|
||||||
|
// Totale imponibile
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Imponibile', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th colspan="2" class="text-center">
|
||||||
|
<b>'.Translator::numberToLocale($imponibile, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
// Eventuale sconto incondizionato
|
||||||
|
if (!empty($sconto)) {
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Sconto', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th colspan="2" class="text-center">
|
||||||
|
<b>-'.Translator::numberToLocale($sconto, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
// Imponibile scontato
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Imponibile scontato', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th colspan="2" class="text-center">
|
||||||
|
<b>'.Translator::numberToLocale($totale, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// IVA
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Totale IVA', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th colspan="2" class="text-center">
|
||||||
|
<b>'.Translator::numberToLocale($iva, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
$totale = sum($totale, $iva);
|
||||||
|
|
||||||
|
// TOTALE
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="text-right border-top">
|
||||||
|
<b>'.tr('Quotazione totale', [], ['upper' => true]).':</b>
|
||||||
|
</td>
|
||||||
|
<th colspan="2" class="text-center">
|
||||||
|
<b>'.Translator::numberToLocale($totale, 2).' €</b>
|
||||||
|
</th>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo'
|
||||||
|
</table>';
|
||||||
|
|
||||||
|
if (!empty($records[0]['note'])) {
|
||||||
|
echo '
|
||||||
|
<br>
|
||||||
|
<p class="small-bold">'.tr('Note', [], ['upper' => true]).':</p>
|
||||||
|
<p>'.nl2br($records[0]['note']).'</p>';
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<img src="'.__DIR__.'/logo_azienda.jpg" alt="Logo" border="0"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 text-right">
|
||||||
|
<p><b>$f_ragionesociale$</b></p>
|
||||||
|
<p>$f_indirizzo$ $f_citta_full$</p>
|
||||||
|
<p>'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$</p>
|
||||||
|
<p>'.(!empty($f_codicefiscale) ? tr('C.F.').': ' : '').'$f_codicefiscale$</p>
|
||||||
|
<p>'.(!empty($f_capsoc) ? tr('Cap.Soc.').': ' : '').'$f_capsoc$</p>
|
||||||
|
<p>'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="text-center" style="height:5mm;">
|
||||||
|
<b>$tipo_doc$</b>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<td class="border-full text-center">
|
||||||
|
<p class="small-bold">'.tr('Nr. documento', [], ['upper' => true]).'</p>
|
||||||
|
<p>$numero_doc$</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="border-right border-bottom border-top text-center">
|
||||||
|
<p class="small-bold">'.tr('Data documento', [], ['upper' => true]).'</p>
|
||||||
|
<p>$data$</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="border-right border-bottom border-top text-center">
|
||||||
|
<p class="small-bold">'.tr('Pagamanto', [], ['upper' => true]).'</p>
|
||||||
|
<p>$pagamento$</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="border-right border-bottom border-top center text-center">
|
||||||
|
<p class="small-bold">'.tr('Foglio', [], ['upper' => true]).'</p>
|
||||||
|
<p>{PAGENO}/{nb}</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>';
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$module_name = 'Preventivi';
|
||||||
|
|
||||||
|
// Lettura info fattura
|
||||||
|
$records = $dbo->fetchArray('SELECT *, (SELECT descrizione FROM or_tipiordine WHERE or_tipiordine.id=idtipoordine) AS tipo_doc, (SELECT descrizione FROM co_pagamenti WHERE id=idpagamento) AS tipo_pagamento FROM or_ordini WHERE id='.prepare($idordine));
|
||||||
|
|
||||||
|
$id_cliente = $records[0]['idanagrafica'];
|
||||||
|
$id_sede = $records[0]['idsede'];
|
||||||
|
|
||||||
|
$numero_ord = $records[0]['numero'];
|
||||||
|
$numero = !empty($records[0]['numero_esterno']) ?$records[0]['numero_esterno'] : $records[0]['numero'];
|
||||||
|
|
||||||
|
// Sostituzioni specifiche
|
||||||
|
$custom = [
|
||||||
|
'tipo_doc' => strtoupper($records[0]['tipo_doc']),
|
||||||
|
'numero_doc' => $numero,
|
||||||
|
'data' => Translator::dateToLocale($records[0]['data']),
|
||||||
|
'pagamento' => $records[0]['tipo_pagamento'],
|
||||||
|
];
|
||||||
|
|
||||||
|
$mostra_prezzi = get_var('Stampa i prezzi sugli ordini');
|
|
@ -1,22 +0,0 @@
|
||||||
<style>
|
|
||||||
<!--
|
|
||||||
.table_values td{
|
|
||||||
border: 1px solid #888;
|
|
||||||
padding: 4px;
|
|
||||||
white-space: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table_values th{
|
|
||||||
background: #cfe1ec;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.center{
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
-->
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<page backcolor="#ffffff" backtop="65mm" backbottom="50mm" backleft="0mm" backright="0mm" footer="" style="font-size: $font_size$">
|
|
||||||
$body$
|
|
||||||
</page>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<page_header>
|
|
||||||
<table $body_table_params$>
|
|
||||||
<!-- Intestazione fornitore -->
|
|
||||||
<tr><td style="width:105mm; font-size:8pt; color:#555;">
|
|
||||||
<img src="$docroot$/templates/ordini/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
|
||||||
$f_ragionesociale$
|
|
||||||
$f_indirizzo$
|
|
||||||
$f_citta_full$
|
|
||||||
$f_piva$
|
|
||||||
$f_codicefiscale$
|
|
||||||
$f_capsoc$
|
|
||||||
$f_telefono$
|
|
||||||
$f_sitoweb$
|
|
||||||
$f_email$
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<!-- Intestazione cliente -->
|
|
||||||
<td style="width:95mm; font-size:10pt">
|
|
||||||
Spett.le $c_ragionesociale$
|
|
||||||
$c_indirizzo$
|
|
||||||
$c_citta$
|
|
||||||
$c_piva$
|
|
||||||
</td></tr>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
<br/>
|
|
||||||
</page_header>
|
|
|
@ -1,307 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
|
||||||
|
|
||||||
$idordine = save($_GET['idordine']);
|
|
||||||
|
|
||||||
$show_costi = get_var('Stampa i prezzi sugli ordini');
|
|
||||||
|
|
||||||
// Lettura info ordine
|
|
||||||
$q = "SELECT *, (SELECT descrizione FROM or_tipiordine WHERE or_tipiordine.id=idtipoordine) AS tipo_doc, (SELECT descrizione FROM co_pagamenti WHERE id=idpagamento) AS tipo_pagamento FROM or_ordini WHERE id='".$idordine."'";
|
|
||||||
$rs = $dbo->fetchArray($q);
|
|
||||||
$numero_ord = $rs[0]['numero'];
|
|
||||||
$idcliente = $rs[0]['idanagrafica'];
|
|
||||||
(!empty($rs[0]['numero_esterno'])) ? $numero = $rs[0]['numero_esterno'] : $numero = $rs[0]['numero'];
|
|
||||||
|
|
||||||
// Lettura righe ordine
|
|
||||||
$q2 = "SELECT * FROM or_righe_ordini WHERE idordine='".$idordine."'";
|
|
||||||
$righe = $dbo->fetchArray($q2);
|
|
||||||
|
|
||||||
// carica report html
|
|
||||||
$report = file_get_contents($docroot.'/templates/ordini/ordine.html');
|
|
||||||
$body = file_get_contents($docroot.'/templates/ordini/ordine_body.html');
|
|
||||||
|
|
||||||
include_once $docroot.'/templates/pdfgen_variables.php';
|
|
||||||
|
|
||||||
// Dati generici fattura
|
|
||||||
$body .= "<table style='width:200mm;' class='table_values' border='0' cellspacing='1'>\n";
|
|
||||||
$body .= "<tr><td width='229' class='center'><b>".$rs[0]['tipo_doc']."</b><br/>n<sup>o</sup> $numero</td>\n";
|
|
||||||
$body .= "<td width='229' class='center'><b>Data:</b><br/>".Translator::dateToLocale($rs[0]['data'])."</td>\n";
|
|
||||||
$body .= "<td width='229' class='center'><b>Pagamento:</b><br/>".$rs[0]['tipo_pagamento']."</td></tr>\n";
|
|
||||||
$body .= "</table><br/><br/>\n";
|
|
||||||
|
|
||||||
// Intestazione tabella per righe
|
|
||||||
$body .= "<table class='table_values' border='0' cellspacing='1' style='table-layout:fixed;'>\n";
|
|
||||||
$body .= "<col width='300'><col width='50'><col width='40'><col width='90'><col width='75'><col width='60'><col width='78'>\n";
|
|
||||||
$body .= "<thead>\n";
|
|
||||||
$body .= "<tr><th width='300'>Descrizione</th>\n";
|
|
||||||
$body .= "<th width='50' align='center'>Q.tà</th>\n";
|
|
||||||
$body .= "<th width='40' align='center'>u.m.</th>\n";
|
|
||||||
$body .= "<th width='90' align='center'>Costo unitario</th>\n";
|
|
||||||
$body .= "<th width='60' align='center'>Iva</th>\n";
|
|
||||||
$body .= "<th width='75' align='center'>Imponibile</th></tr>\n";
|
|
||||||
$body .= "</thead>\n";
|
|
||||||
|
|
||||||
$body .= "<tbody>\n";
|
|
||||||
|
|
||||||
// Mostro le righe del ordine
|
|
||||||
$totale_ordine = 0.00;
|
|
||||||
$totale_imponibile = 0.00;
|
|
||||||
$totale_iva = 0.00;
|
|
||||||
$sconto = 0.00;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Articoli
|
|
||||||
*/
|
|
||||||
$q_art = "SELECT *, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `or_righe_ordini` JOIN mg_prodotti ON or_righe_ordini.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idordine, lotto HAVING idordine='$idordine' AND NOT idarticolo='0' ORDER BY idarticolo ASC";
|
|
||||||
$rs_art = $dbo->fetchArray($q_art);
|
|
||||||
$tot_art = sizeof($rs_art);
|
|
||||||
$imponibile_art = 0.0;
|
|
||||||
$iva_art = 0.0;
|
|
||||||
|
|
||||||
if ($tot_art > 0) {
|
|
||||||
$prec_art = '';
|
|
||||||
$riga_art = '';
|
|
||||||
|
|
||||||
for ($i = 0; $i < $tot_art; ++$i) {
|
|
||||||
if ($rs_art[$i]['idarticolo'] != $prec_art) {
|
|
||||||
$q_art = 0;
|
|
||||||
}
|
|
||||||
$body .= "<tr><td class='first_cell'>\n";
|
|
||||||
$body .= nl2br($rs_art[$i]['descrizione']);
|
|
||||||
if ($rs_art[$i]['codice'] != '') {
|
|
||||||
$body .= '<br/><small>'.$rs_art[$i]['codice']."</small>\n";
|
|
||||||
}
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= Translator::numberToLocale($rs_art[$i]['sumqta'], 2)."\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= $rs_art[$i]['um']."\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
if ($show_costi) {
|
|
||||||
$body .= Translator::numberToLocale($rs_art[$i]['subtotale'] / $rs_art[$i]['sumqta'], 2)." €\n";
|
|
||||||
} else {
|
|
||||||
$body .= '-';
|
|
||||||
}
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Iva
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$iva = $rs_art[$i]['iva'];
|
|
||||||
if ($show_costi) {
|
|
||||||
$body .= Translator::numberToLocale($iva, 2)." €\n";
|
|
||||||
} else {
|
|
||||||
$body .= '-';
|
|
||||||
}
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Imponibile
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
if ($show_costi) {
|
|
||||||
$body .= Translator::numberToLocale($rs_art[$i]['subtotale'], 2)." €\n";
|
|
||||||
|
|
||||||
if ($rs_art[$i]['sconto'] > 0) {
|
|
||||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rs_art[$i]['sconto'], 2)." €</small>\n";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$body .= '-';
|
|
||||||
}
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
$imponibile_art += $rs_art[$i]['subtotale'];
|
|
||||||
$iva_art += $iva;
|
|
||||||
$sconto += $rs_art[$i]['sconto'];
|
|
||||||
}
|
|
||||||
$imponibile_ordine += $imponibile_art;
|
|
||||||
$totale_iva += $iva_art;
|
|
||||||
$totale_ordine += $imponibile_art;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Righe generiche
|
|
||||||
*/
|
|
||||||
$q_gen = "SELECT * FROM `or_righe_ordini` WHERE idordine='$idordine' AND idarticolo=0";
|
|
||||||
$rs_gen = $dbo->fetchArray($q_gen);
|
|
||||||
$tot_gen = sizeof($rs_gen);
|
|
||||||
$imponibile_gen = 0.0;
|
|
||||||
$iva_gen = 0.0;
|
|
||||||
|
|
||||||
if ($tot_gen > 0) {
|
|
||||||
for ($i = 0; $i < $tot_gen; ++$i) {
|
|
||||||
$body .= "<tr><td class='first_cell'>\n";
|
|
||||||
$body .= nl2br($rs_gen[$i]['descrizione']);
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= Translator::numberToLocale($rs_gen[$i]['qta'], 2)."\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= $rs_gen[$i]['um']."\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
if ($show_costi) {
|
|
||||||
$body .= Translator::numberToLocale($rs_gen[$i]['subtotale'] / $rs_gen[$i]['qta'], 2)." €\n";
|
|
||||||
} else {
|
|
||||||
$body .= '-';
|
|
||||||
}
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Iva
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$iva = $rs_gen[$i]['iva'];
|
|
||||||
if ($show_costi) {
|
|
||||||
$body .= Translator::numberToLocale($iva, 2)." €\n";
|
|
||||||
} else {
|
|
||||||
$body .= '-';
|
|
||||||
}
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Imponibile
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
if ($show_costi) {
|
|
||||||
$body .= Translator::numberToLocale($rs_gen[$i]['subtotale'], 2)." €\n";
|
|
||||||
|
|
||||||
if ($rs_gen[$i]['sconto'] > 0) {
|
|
||||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rs_gen[$i]['sconto'], 2)." €</small>\n";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$body .= '-';
|
|
||||||
}
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
$imponibile_gen += $rs_gen[$i]['subtotale'];
|
|
||||||
$iva_gen += $iva;
|
|
||||||
$sconto += $rs_gen[$i]['sconto'];
|
|
||||||
}
|
|
||||||
$imponibile_ordine += $imponibile_gen;
|
|
||||||
$totale_iva += $iva_gen;
|
|
||||||
$totale_ordine += $imponibile_gen;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Totale imponibile
|
|
||||||
if ($show_costi) {
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Totale imponibile:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= Translator::numberToLocale($imponibile_ordine, 2).' €';
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
// Mostra sconto se c'è
|
|
||||||
if (abs($sconto) > 0) {
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Sconto:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Sconto
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= Translator::numberToLocale($sconto, 2).' €';
|
|
||||||
$body .= '</td>';
|
|
||||||
$body .= "</tr>\n";
|
|
||||||
|
|
||||||
// Totale scontato
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Totale scontato:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Sconto
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$totale_ordine = $imponibile_ordine - $sconto;
|
|
||||||
$body .= Translator::numberToLocale($totale_ordine, 2).' €';
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mostra INPS se c'è
|
|
||||||
if (abs($rs[0]['rivalsainps']) > 0) {
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Rivalsa INPS:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Rivalsa INPS
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= Translator::numberToLocale($rs[0]['rivalsainps'], 2).' €';
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$totale_ordine += $rs[0]['rivalsainps'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mostra iva se c'è
|
|
||||||
$totale_iva += $rs[0]['iva_rivalsainps'];
|
|
||||||
if (abs($totale_iva) > 0) {
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Iva:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Iva
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= Translator::numberToLocale($totale_iva, 2)." €\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$totale_ordine += $totale_iva;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Totale ordine
|
|
||||||
*/
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Totale ordine:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell_h center'>\n";
|
|
||||||
$body .= '<b>'.Translator::numberToLocale($totale_ordine, 2)." €</b>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$netto_a_pagare = $totale_ordine;
|
|
||||||
|
|
||||||
// Mostra marca da bollo se c'è
|
|
||||||
if (abs($rs[0]['bollo']) > 0) {
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Marca da bollo:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Marca da bollo
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$marca_da_bollo = str_replace(',', '.', $rs[0]['bollo']);
|
|
||||||
$body .= Translator::numberToLocale($marca_da_bollo, 2).' €';
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$netto_a_pagare += $marca_da_bollo;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mostra ritenuta d'acconto se c'è
|
|
||||||
if (abs($rs[0]['ritenutaacconto']) > 0) {
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= "<b>Ritenuta d'acconto:</b>";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Ritenuta d'acconto
|
|
||||||
$body .= "<td class='table_cell center'>\n";
|
|
||||||
$body .= Translator::numberToLocale($rs[0]['ritenutaacconto'], 2).' €';
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$netto_a_pagare -= $rs[0]['ritenutaacconto'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Netto a pagare (se diverso dal totale)
|
|
||||||
*/
|
|
||||||
if ($totale_ordine != $netto_a_pagare) {
|
|
||||||
$body .= "<tr><td class='first_cell' colspan='5' align='right'>\n";
|
|
||||||
$body .= '<b>Netto a pagare:</b>';
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td class='table_cell_h center'>\n";
|
|
||||||
$body .= '<b>'.Translator::numberToLocale($netto_a_pagare, 2)." €</b>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$body .= "</tbody>\n";
|
|
||||||
$body .= "</table>\n";
|
|
||||||
|
|
||||||
$body .= '<p>'.nl2br($rs[0]['note'])."</p>\n";
|
|
||||||
|
|
||||||
$report_name = 'Ordine_'.$numero_ord.'.pdf';
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'header-height' => 55,
|
||||||
|
];
|
|
@ -29,7 +29,7 @@ echo '
|
||||||
<td colspan=2 class="border-full" style="height:16mm;">
|
<td colspan=2 class="border-full" style="height:16mm;">
|
||||||
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
|
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
|
||||||
<p>$c_ragionesociale$</p>
|
<p>$c_ragionesociale$</p>
|
||||||
<p>$c_indirizzo$ $c_citta$</p>
|
<p>$c_indirizzo$ $c_citta_full$</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
@ -111,6 +111,7 @@ foreach ($righe as $r) {
|
||||||
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' '.$r['um'].'
|
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' '.$r['um'].'
|
||||||
</td>';
|
</td>';
|
||||||
|
|
||||||
|
if ($mostra_prezzi) {
|
||||||
// Prezzo unitario
|
// Prezzo unitario
|
||||||
echo "
|
echo "
|
||||||
<td class='text-right'>
|
<td class='text-right'>
|
||||||
|
@ -133,6 +134,11 @@ foreach ($righe as $r) {
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
</td>';
|
</td>';
|
||||||
|
} else {
|
||||||
|
echo '
|
||||||
|
<td class="text-center">-</td>
|
||||||
|
<td class="text-center">-</td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Iva
|
// Iva
|
||||||
echo '
|
echo '
|
||||||
|
@ -150,9 +156,9 @@ foreach ($righe as $r) {
|
||||||
|
|
||||||
$sconto = sum($sconto);
|
$sconto = sum($sconto);
|
||||||
$imponibile = sum($imponibile);
|
$imponibile = sum($imponibile);
|
||||||
|
$iva = sum($iva);
|
||||||
|
|
||||||
$totale = $imponibile - $sconto;
|
$totale = $imponibile - $sconto;
|
||||||
$iva = sum($iva);
|
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|autofill|
|
|autofill|
|
||||||
|
@ -212,7 +218,7 @@ if ($mostra_prezzi) {
|
||||||
|
|
||||||
$totale = sum($totale, $iva);
|
$totale = sum($totale, $iva);
|
||||||
|
|
||||||
// TOTALE INTERVENTO
|
// TOTALE
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" class="text-right border-top">
|
<td colspan="3" class="text-right border-top">
|
||||||
|
@ -230,13 +236,11 @@ echo'
|
||||||
// CONDIZIONI GENERALI DI FORNITURA
|
// CONDIZIONI GENERALI DI FORNITURA
|
||||||
|
|
||||||
// Lettura pagamenti
|
// Lettura pagamenti
|
||||||
$query = 'SELECT * FROM co_pagamenti WHERE id = '.$records[0]['idpagamento'];
|
$rs = $dbo->fetchArray('SELECT * FROM co_pagamenti WHERE id = '.$records[0]['idpagamento']);
|
||||||
$rs = $dbo->fetchArray($query);
|
|
||||||
$pagamento = $rs[0]['descrizione'];
|
$pagamento = $rs[0]['descrizione'];
|
||||||
|
|
||||||
// Lettura resa
|
// Lettura resa
|
||||||
$query = 'SELECT * FROM dt_porto WHERE id = '.$records[0]['idporto'];
|
$rs = $dbo->fetchArray('SELECT * FROM dt_porto WHERE id = '.$records[0]['idporto']);
|
||||||
$rs = $dbo->fetchArray($query);
|
|
||||||
$resa_materiale = $rs[0]['descrizione'];
|
$resa_materiale = $rs[0]['descrizione'];
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
|
Loading…
Reference in New Issue