Bugfix per le stampe
This commit is contained in:
parent
3302b27342
commit
dc03300461
10
pdfgen.php
10
pdfgen.php
|
@ -38,11 +38,17 @@ if (file_exists($docroot.'/templates/'.$ptype.'/init.php')) {
|
|||
include $docroot.'/templates/'.$ptype.'/init.php';
|
||||
}
|
||||
|
||||
// Individuazione delle variabili per la sostituzione
|
||||
include_once __DIR__.'/templates/info.php';
|
||||
|
||||
if (!empty($id_module)) {
|
||||
Permissions::addModule($id_module);
|
||||
}
|
||||
Permissions::check();
|
||||
|
||||
// Operazioni di sostituzione
|
||||
include $docroot.'/templates/pdfgen_variables.php';
|
||||
|
||||
// Generazione dei contenuti della stampa
|
||||
ob_start();
|
||||
if (file_exists($docroot.'/templates/'.$ptype.'/custom/body.php')) {
|
||||
|
@ -59,7 +65,7 @@ if (file_exists($docroot.'/templates/'.$ptype.'/init.php')) {
|
|||
for ($i = (floor($autofill['count']) % $autofill['rows']); $i < $autofill['additional']; ++$i) {
|
||||
$result .= '
|
||||
<tr>';
|
||||
for($c = 0; $c < $autofill['columns']; $c++){
|
||||
for ($c = 0; $c < $autofill['columns']; ++$c) {
|
||||
$result .= '
|
||||
<td> </td>';
|
||||
}
|
||||
|
@ -113,7 +119,7 @@ if (file_exists($docroot.'/templates/'.$ptype.'/init.php')) {
|
|||
}
|
||||
|
||||
// Operazioni di sostituzione
|
||||
include $docroot.'/templates/pdfgen_variables.php';
|
||||
include $docroot.'/templates/replace.php';
|
||||
|
||||
// Individuazione dellla configurazione
|
||||
$directory = dirname($filename);
|
||||
|
|
|
@ -10,6 +10,6 @@ return [
|
|||
'left' => 12,
|
||||
'right' => 12,
|
||||
],
|
||||
'header-height' => 30,
|
||||
'header-height' => 35,
|
||||
'footer-height' => 5,
|
||||
];
|
||||
|
|
|
@ -23,7 +23,8 @@ table {
|
|||
overflow: wrap
|
||||
}
|
||||
|
||||
table td {
|
||||
table td,
|
||||
table th {
|
||||
vertical-align: top;
|
||||
padding: 4px;
|
||||
}
|
||||
|
@ -83,19 +84,26 @@ table.table-striped tbody tr:nth-child(2n+1) td {
|
|||
}
|
||||
|
||||
#contents td {
|
||||
padding: 4px;
|
||||
white-space: normal;
|
||||
border-left: 1px solid #aaa;
|
||||
border-right: 1px solid #aaa;
|
||||
}
|
||||
|
||||
#contents th,
|
||||
table.border-full th {
|
||||
table.table-bordered th {
|
||||
background: #ddd;
|
||||
padding: 4px;
|
||||
font-size: 80%;
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
table.border-full th {
|
||||
|
||||
#contents th {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
table.table-bordered>th {
|
||||
font-size: 70%;
|
||||
}
|
||||
|
||||
#contents th,
|
||||
table.table-bordered,
|
||||
table.table-bordered td,
|
||||
table.table-bordered th {
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<td style="width:100mm; font-size:8pt">
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<img src="$docroot$/templates/contratti/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
|
||||
// TABELLA PRINCIPALE
|
||||
echo '
|
||||
<table class="border-full">';
|
||||
<table class="table-bordered">';
|
||||
|
||||
if ($mostra_prezzi) {
|
||||
// Riga 1
|
||||
echo "
|
||||
<tr>
|
||||
<td rowspan='7' class='border-full'>
|
||||
<td rowspan='7'>
|
||||
<p class='small-bold'>".strtoupper(tr('Note')).'</p>
|
||||
<p>'.nl2br($rs[0]['note'])."</p>
|
||||
</td>
|
||||
<td style='width:33mm;' class='border-bottom'>
|
||||
<td style='width:33mm;'>
|
||||
<p class='small-bold'>".strtoupper(tr('Totale imponibile')).'</p>
|
||||
</td>
|
||||
</tr>';
|
||||
|
@ -20,7 +20,7 @@ if ($mostra_prezzi) {
|
|||
// Dati riga 1
|
||||
echo "
|
||||
<tr>
|
||||
<td class='border-bottom cell-padded text-right'>
|
||||
<td class='cell-padded text-right'>
|
||||
".Translator::numberToLocale($imponibile_ddt, 2).' €
|
||||
</td>
|
||||
</tr>';
|
||||
|
@ -28,13 +28,13 @@ if ($mostra_prezzi) {
|
|||
// Riga 2
|
||||
echo "
|
||||
<tr>
|
||||
<td style='width:33mm;' class='border-bottom'>
|
||||
<td style='width:33mm;'>
|
||||
<p class='small-bold'>".strtoupper(tr('Totale imposte'))."</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='border-bottom cell-padded text-right'>
|
||||
<td class='cell-padded text-right'>
|
||||
".Translator::numberToLocale($totale_iva, 2).' €
|
||||
</td>
|
||||
</tr>';
|
||||
|
@ -42,13 +42,13 @@ if ($mostra_prezzi) {
|
|||
// Riga 3
|
||||
echo "
|
||||
<tr>
|
||||
<td class='border-bottom'>
|
||||
<td>
|
||||
<p class='small-bold'>".strtoupper(tr('Totale documento'))."</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='cell-padded text-right' style='border-bottom:none;'>
|
||||
<td class='cell-padded text-right'>
|
||||
".Translator::numberToLocale($totale_ddt, 2).' €
|
||||
</td>
|
||||
</tr>';
|
||||
|
@ -67,7 +67,7 @@ echo '
|
|||
</table>';
|
||||
|
||||
echo '
|
||||
<table class="border-full">
|
||||
<table class="table-bordered">
|
||||
<tr>
|
||||
<th class="border-bottom border-right" style="width:33%">
|
||||
'.strtoupper(tr('Aspetto beni')).'
|
||||
|
|
|
@ -8,11 +8,11 @@ echo '
|
|||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<p><b>$f_ragionesociale$</b></p>
|
||||
<p>$f_indirizzo$ $f_citta$</p>
|
||||
<p>$f_piva$</p>
|
||||
<p>$f_codicefiscale$</p>
|
||||
<p>$f_capsoc$</p>
|
||||
<p>$f_telefono$</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>
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ if (!empty($rs[0]['idsede'])) {
|
|||
}
|
||||
|
||||
// Sostituzioni specifiche
|
||||
$replaces = [
|
||||
$custom = [
|
||||
'tipo_doc' => strtoupper($tipo_doc),
|
||||
'numero_doc' => $numero,
|
||||
'data' => Translator::numberToLocale($rs[0]['data']),
|
||||
|
|
|
@ -29,7 +29,7 @@ echo "
|
|||
<th class='text-center' style='width:7%'>".strtoupper(tr('Um'))."</th>
|
||||
<th class='text-center' style='width:16%'>".strtoupper(tr('Costo unitario'))."</th>
|
||||
<th class='text-center' style='width:20%'>".strtoupper(tr('Importo'))."</th>
|
||||
<th class='text-center' style='width:7%'>".strtoupper(tr('IVA')).'</th>
|
||||
<th class='text-center' style='width:7%'>".strtoupper(tr('IVA')).' (%)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
@ -112,7 +112,7 @@ foreach ($righe as $r) {
|
|||
<td class='text-center'>";
|
||||
if ($r['perc_iva'] > 0) {
|
||||
echo '
|
||||
'.$r['perc_iva'].'%';
|
||||
'.$r['perc_iva'];
|
||||
}
|
||||
echo '
|
||||
</td>
|
||||
|
|
|
@ -8,9 +8,9 @@ echo '
|
|||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<p><b>$f_ragionesociale$</b></p>
|
||||
<p>$f_indirizzo$ $f_citta$</p>
|
||||
<p>$f_telefono$</p>
|
||||
<p>$f_piva$</p>
|
||||
<p>$f_indirizzo$ $f_citta_full$</p>
|
||||
<p>'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$</p>
|
||||
<p>'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -50,17 +50,23 @@ echo '
|
|||
<td colspan="2" style="height:10mm;padding-top:2mm;">
|
||||
<p class="small-bold">'.strtoupper(tr('Pagamento')).'</p>
|
||||
<p>$pagamento$</p>
|
||||
|
||||
<br>
|
||||
|
||||
<p class="small-bold">'.tr('IBAN').'</p>
|
||||
<p>$f_codiceiban$</p>
|
||||
</td>
|
||||
<td colspan="2" style="height:10mm;padding-top:2mm;">
|
||||
<p class="small-bold">'.strtoupper(tr('Banca di appoggio')).'</p>
|
||||
<p>$f_appoggiobancario$</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="height:10mm;padding-top:2mm;">
|
||||
<p class="small-bold">'.tr('IBAN').'</p>
|
||||
<p>$f_codiceiban$</p>
|
||||
</td>
|
||||
<td colspan="2" style="height:10mm;padding-top:2mm;">
|
||||
<p class="small-bold">'.tr('BIC').'</p>
|
||||
<p>$f_bic$</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -46,10 +46,10 @@ if (!empty($rs[0]['idsede'])) {
|
|||
}
|
||||
|
||||
// Sostituzioni specifiche
|
||||
$replaces = [
|
||||
$custom = [
|
||||
'tipo_doc' => strtoupper($tipo_doc),
|
||||
'numero_doc' => $numero,
|
||||
'data' => Translator::numberToLocale($rs[0]['data']),
|
||||
'data' => Translator::dateToLocale($rs[0]['data']),
|
||||
'pagamento' => $rs[0]['tipo_pagamento'],
|
||||
'c_destinazione' => $destinazione,
|
||||
];
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<img src="$docroot$/templates/fatture_accompagnatorie/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<style>
|
||||
<!--
|
||||
.table_values td{
|
||||
border: 1px solid #888;
|
||||
padding: 4px;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
|
||||
<page backcolor="#ffffff" backtop="40mm" backbottom="10mm" backleft="0mm" backright="0mm" footer="" style="font-size: $font_size$">
|
||||
$body$
|
||||
</page>
|
|
@ -0,0 +1,42 @@
|
|||
<page_header>
|
||||
<table $body_table_params$ border="0" style="height:35mm;" >
|
||||
<!-- Intestazione fornitore -->
|
||||
<tr><td style="width:100mm; font-size:8pt; color:#555;">
|
||||
|
||||
<img src="$docroot$/templates/interventi/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
||||
|
||||
</td>
|
||||
|
||||
<!-- Intestazione cliente -->
|
||||
<td style="width:93mm; font-size:10pt;text-align:right;">
|
||||
<!--Spett.le $c_ragionesociale$
|
||||
$c_indirizzo$
|
||||
$c_citta$
|
||||
$c_piva$-->
|
||||
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
$f_telefono$
|
||||
$f_sitoweb$
|
||||
$f_email$
|
||||
|
||||
|
||||
</td></tr>
|
||||
|
||||
</table>
|
||||
|
||||
</page_header>
|
||||
|
||||
|
||||
<!-- Footer -->
|
||||
<page_footer>
|
||||
<table>
|
||||
<tr><td style="font-size:7pt; color:#999;">
|
||||
Stampato con OpenSTAManager
|
||||
</td></tr>
|
||||
</table>
|
||||
</page_footer>
|
|
@ -0,0 +1,517 @@
|
|||
<?php
|
||||
$module_name = "Interventi";
|
||||
|
||||
include_once( $docroot."/modules/interventi/modutil.php" );
|
||||
$additional_where['Interventi'] = str_replace( "|idtecnico|", "'".$user_idanagrafica."'", $additional_where['Interventi'] );
|
||||
$additional_where['Interventi'] = str_replace( "|idanagrafica|", "'".$user_idanagrafica."'", $additional_where['Interventi'] );
|
||||
|
||||
|
||||
#############mostro o nascondo i costi dell'intervento..#################
|
||||
//true o false
|
||||
$visualizza_costi = get_var("Visualizza i costi sulle stampe degli interventi");
|
||||
########################################################################
|
||||
|
||||
//carica intervento
|
||||
//TIME_TO_SEC(TIMEDIFF(ora_al,ora_dal)) AS `totale_tempo`,
|
||||
$idintervento = save($_GET['idintervento']);
|
||||
$query = "SELECT *, (SELECT numero FROM co_contratti WHERE id=(SELECT idcontratto FROM co_righe_contratti WHERE idintervento=in_interventi.id)) AS numero_contratto, (SELECT numero FROM co_preventivi WHERE id=(SELECT idpreventivo FROM co_preventivi_interventi WHERE idintervento=in_interventi.id)) AS numero_preventivo, (SELECT SUM(prezzo_dirittochiamata) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_dirittochiamata`, (SELECT SUM(km) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km`, (SELECT SUM(prezzo_ore_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_ore_consuntivo`, (SELECT SUM(prezzo_km_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km_consuntivo`, in_interventi.descrizione AS `descrizione_intervento`, richiesta FROM in_interventi INNER JOIN in_tipiintervento ON in_interventi.idtipointervento=in_tipiintervento.idtipointervento WHERE id=\"$idintervento\" ".$additional_where['Interventi'];
|
||||
$records = $dbo->fetchArray( $query );
|
||||
$idcliente = $records[0]['idanagrafica'];
|
||||
$idsede = $records[0]['idsede'];
|
||||
$str_cash = 0.00;
|
||||
|
||||
//carica report html
|
||||
$report = file_get_contents ($docroot."/templates/in_in/intervento.html");
|
||||
$body = file_get_contents ($docroot."/templates/in_in/intervento_body.html");
|
||||
|
||||
include_once( __DIR__."/../pdfgen_variables.php" );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Dati intervento
|
||||
*/
|
||||
$body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
$body .= "<col width=\"167.5\"><col width=\"167.5\"><col width=\"167.5\"><col width=\"167.5\">\n";
|
||||
|
||||
$body .= "<tr>\n";
|
||||
$body .= "<td align=\"center\" colspan=\"4\" valign=\"middle\" style=\"height:5mm; font-size:14pt;\" bgcolor=\"#dddddd\"><b>RAPPORTO OPERAZIONI E INTERVENTI</b></td>\n";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
$body .= "<tr>\n";
|
||||
$body .= "<td align=\"center\">Intervento numero: <b>".$records[0]['idintervento']."</b></td>\n";
|
||||
$body .= "<td align=\"center\">Data: <b>".date( "d/m/Y", strtotime($records[0]['data_richiesta']) )."</b></td>\n";
|
||||
$body .= "<td align=\"center\">Preventivo N<sup>o</sup>: <b>".$records[0]['numero_preventivo']."</b></td>\n";
|
||||
$body .= "<td align=\"center\">Contratto N<sup>o</sup>: <b>".$records[0]['numero_contratto']."</b></td>\n";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
$body .= "</table>\n";
|
||||
|
||||
|
||||
|
||||
//dati cliente
|
||||
$body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
$body .= "<col width=\"543\"><col width=\"167\">\n";
|
||||
|
||||
//riga 1
|
||||
$body .= "<tr>\n";
|
||||
$body .= "<td align=\"left\">";
|
||||
$body .= "Cliente: <b>".$c_ragionesociale."</b>\n";
|
||||
$body .= "</td>";
|
||||
|
||||
//Codice fiscale
|
||||
$body .= "<td align=\"left\">";
|
||||
$body .= "P.iva: <b>".strtoupper($c_piva)."</b>\n";
|
||||
$body .= "</td>";
|
||||
|
||||
$body .= "</tr>\n";
|
||||
|
||||
//riga 2
|
||||
$body .= "<tr>\n";
|
||||
$body .= " <td colspan=\"2\">";
|
||||
$body .= " Via: <b>".$c_indirizzo."</b> - \n";
|
||||
$body .= " Cap: <b>".$c_cap."</b> - \n";
|
||||
$body .= " Comune: <b>".$c_citta." (".strtoupper ($c_provincia).")</b>\n";
|
||||
$body .= " </td>\n";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
$body .= "<tr>\n";
|
||||
$body .= " <td colspan=\"2\">";
|
||||
$body .= " Telefono: <b>".$c_telefono."</b>\n";
|
||||
if( $c_cellulare!='' ) $body .= " - Cellulare: <b>".$c_cellulare."</b>\n";
|
||||
$body .= " </td>\n";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
|
||||
//riga 3
|
||||
//Elenco impianti su cui è stato fatto l'intervento
|
||||
$rs2 = $dbo->fetchArray("SELECT *, (SELECT nome FROM my_impianti WHERE id=my_impianti_interventi.idimpianto) AS nome FROM my_impianti_interventi WHERE idintervento=\"".$idintervento."\"");
|
||||
$impianti = array();
|
||||
for( $j=0; $j<sizeof($rs2); $j++ ){
|
||||
if( $rs2[$j]['nome']!='' )
|
||||
array_push( $impianti, "<b>".$rs2[$j]['nome']."</b> <small style='color:#777;'>(".$rs2[$j]['idimpianto'].")</small>" );
|
||||
}
|
||||
|
||||
$body .= "<tr><td align=\"left\" colspan=\"4\">";
|
||||
$body .= "Impianti: ".implode( ', ', $impianti )."\n";
|
||||
$body .= "</td>";
|
||||
|
||||
$body .= "</tr>\n";
|
||||
$body .= "</table>\n";
|
||||
|
||||
|
||||
if ($records[0]['richiesta']!=""){
|
||||
//Richiesta
|
||||
$body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
$body .= "<col width=\"730\">\n";
|
||||
$body .= "<tr><td align=\"left\" valign=\"top\" style=\"border-top:0px solid #fff; border-bottom:0px solid #fff; font-size:8pt;\"><b>Richiesta:</b></td></tr>\n";
|
||||
$body .= "<tr><td valign=\"top\" align=\"left\" style=\"height:5mm;\">".str_replace( "\n", "<br/>", $records[0]['richiesta'] )."</td></tr>\n";
|
||||
}
|
||||
|
||||
if ($records[0]['descrizione_intervento']!=""){
|
||||
|
||||
//descrizione
|
||||
$body .= "<tr><td align=\"left\" valign=\"top\" style=\"border-top:0px solid #fff; border-bottom:0px solid #fff; font-size:8pt;\"><b>Descrizione:</b></td></tr>\n";
|
||||
$body .= "<tr><td valign=\"top\" align=\"left\" style=\"height:5mm;\">".str_replace( "\n", "<br/>", $records[0]['descrizione_intervento'] )."</td></tr>\n";
|
||||
|
||||
}
|
||||
|
||||
$body .= "</table>\n";
|
||||
|
||||
$body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
|
||||
|
||||
|
||||
//Conteggio prezzi
|
||||
$costo_orario = $records[0]['costo_orario'];
|
||||
$totale_ore_consuntivo = $records[0]['tot_ore_consuntivo'] - $records[0]['tot_dirittochiamata'];
|
||||
$totale_km_consuntivo = $records[0]['tot_km_consuntivo'];
|
||||
$totale_dirittochiamata = $records[0]['tot_dirittochiamata'];
|
||||
$totale_intervento = $totale_ore_consuntivo + $totale_km_consuntivo + $totale_dirittochiamata;
|
||||
|
||||
//visualizzo costi?
|
||||
if(( $totale_intervento != 0.00 ) and ($visualizza_costi==true)){
|
||||
$colspan = 2;
|
||||
//$body .= "<tr>\n";
|
||||
if( $totale_ore_consuntivo != 0 ){
|
||||
//$body .= "<td align=\"right\" >Costi ore lavorate: <b>".number_format( $totale_ore_consuntivo+$totale_dirittochiamata, 2, ",", "" )." €</b></td>\n";
|
||||
$colspan--;
|
||||
}
|
||||
|
||||
if( $totale_km_consuntivo != 0 ){
|
||||
//$body .= "<td align=\"right\">Costi km: <b>".number_format( $totale_km_consuntivo, 2, ",", "" )." €</b></td>\n";
|
||||
$colspan--;
|
||||
}
|
||||
|
||||
//$body .= "<td align=\"right\" colspan=\"".$colspan."\" bgcolor=\"#dddddd\"> Costi totali: <b>".number_format($totale_intervento, 2, ",", "." )." €</b></td></tr>\n";
|
||||
//$body .= "<br/><br/>\n";
|
||||
}
|
||||
|
||||
|
||||
$body .= "</table>\n";
|
||||
|
||||
|
||||
|
||||
//MATERIALE UTILIZZATO
|
||||
//Conteggio articoli utilizzati
|
||||
$query = "SELECT *, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, '' AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` GROUP BY idarticolo, idintervento HAVING idintervento=\"".$idintervento."\" AND NOT idarticolo='0' ORDER BY idarticolo ASC";
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
if( sizeof($rs2)>0 ){
|
||||
$body .= "<br/><table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
$body .= "<col width=\"100\"><col width=\"390\"><col width=\"50\"><col width=\"130\">\n";
|
||||
$body .= "<tr><td align=\"center\" colspan=\"4\" valign=\"middle\" style=\"font-size:11pt;\" bgcolor=\"#cccccc\"><b>MATERIALE UTILIZZATO</b></td></tr>\n";
|
||||
|
||||
$body .= "<tr><td style=\"font-size:8pt;\" align=\"center\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Codifica</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td style=\"font-size:8pt;\" align=\"center\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Descrizione</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td style=\"font-size:8pt;\" align=\"center\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Q.tà</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td style=\"font-size:8pt;\" align=\"center\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Prezzo unitario</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
|
||||
|
||||
$totale_articoli = 0.00;
|
||||
|
||||
for( $i=0; $i<sizeof($rs2); $i++ ){
|
||||
$body .= "<tr>\n";
|
||||
|
||||
|
||||
//Codifica
|
||||
$body .= "<td class='first_cell' valign='top'>\n";
|
||||
$body .= "<span>".$rs2[$i]['codice_art']."</span>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//Descrizione
|
||||
$body .= "<td class='first_cell' valign='top'>\n";
|
||||
$body .= "<span>".$rs2[$i]['descrizione']."</span>\n";
|
||||
if( $rs2[$i]['codice']!='' && $rs2[$i]['codice']!='Lotto: , SN: , Altro: ' ){ $body .= "<br/><small>".$rs2[$i]['codice']."</small>\n"; }
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//Quantità
|
||||
$qta = $rs2[$i]['sumqta'];
|
||||
$body .= "<td class='table_cell' align='center' valign='top'>\n";
|
||||
$body .= "<span>".$rs2[$i]['sumqta']."</span>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//Prezzo unitario
|
||||
$netto = $rs2[$i]['prezzo_vendita'];
|
||||
$netto = $netto + $netto/100*$rs2[$i]['prc_guadagno'];
|
||||
$iva = $netto/100*$rs2[$i]['prciva_vendita'];
|
||||
|
||||
|
||||
$body .= "<td class='table_cell' align='center' valign='top'>\n";
|
||||
|
||||
if ($visualizza_costi==true){
|
||||
$body .= "<span>".number_format( $netto, 2, ",", "" )." €</span>\n";
|
||||
}else{
|
||||
|
||||
$body .= "<span> - </span>\n";
|
||||
}
|
||||
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//Totale
|
||||
$totale_articoli += $netto*$qta;
|
||||
|
||||
$body .= "</tr>\n";
|
||||
}
|
||||
|
||||
|
||||
//TOTALE MATERIALE UTILIZZATO
|
||||
if ($visualizza_costi==true){
|
||||
//Totale spesa articoli
|
||||
$body .= "<tr><td colspan=\"2\" align=\"right\">\n";
|
||||
$body .= "<b>TOTALE MATERIALE UTILIZZATO:</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td align=\"center\" colspan=\"2\" bgcolor=\"#dddddd\">\n";
|
||||
$body .= "<b>".number_format( $totale_articoli, 2, ",", ".")." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
}
|
||||
|
||||
$body .= "</table>\n";
|
||||
}
|
||||
|
||||
//FINE MATERIALE UTILIZZATO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Conteggio SPESE AGGIUNTIVE
|
||||
$query = "SELECT * FROM in_righe_interventi WHERE idintervento='".$idintervento."' ORDER BY id ASC";
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
if( sizeof($rs2)>0 ){
|
||||
$body .= "<br/><table class=\"table_values\" cellspacing=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
$body .= "<col width=\"440\"><col width=\"50\"><col width=\"50\"><col width=\"130\">\n";
|
||||
$body .= "<tr><td align=\"center\" colspan=\"4\" valign=\"middle\" style=\"font-size:11pt;\" bgcolor=\"#cccccc\"><b>SPESE AGGIUNTIVE</b></td></tr>\n";
|
||||
|
||||
$body .= "<tr><td align=\"center\" style=\"font-size:8pt;\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Descrizione</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td style=\"font-size:8pt;\" align=\"center\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Q.tà</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td style=\"font-size:8pt;\" align=\"center\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Prezzo unitario</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td style=\"font-size:8pt;\" align=\"center\" bgcolor='#dedede'>\n";
|
||||
$body .= "<b>Subtot</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
|
||||
|
||||
$totale_righe = 0.00;
|
||||
|
||||
for( $i=0; $i<sizeof($rs2); $i++ ){
|
||||
//Articolo
|
||||
$body .= "<tr><td class='first_cell'>\n";
|
||||
$body .= "<span>".$rs2[$i]['descrizione']."</span>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//Quantità
|
||||
$body .= "<td class='table_cell' align='center'>\n";
|
||||
$body .= "<span>".number_format( $rs2[$i]['qta'], 2, ".", "" )."</span>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//Prezzo unitario
|
||||
$body .= "<td class='table_cell' align='center'>\n";
|
||||
$netto = $rs2[$i]['prezzo'];
|
||||
$iva = $rs2[$i]['prezzo'];
|
||||
if ($visualizza_costi==true){
|
||||
$body .= "<span>".number_format( $netto, 2, ",", "" )." €</span>\n";
|
||||
}else{
|
||||
$body .= "<span> - </span>\n";
|
||||
}
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//Subtot
|
||||
$body .= "<td class='table_cell' align='center'>\n";
|
||||
$subtot = $rs2[$i]['prezzo']*$rs2[$i]['qta'];
|
||||
if ($visualizza_costi==true){
|
||||
$body .= "<span><span>".number_format( $subtot, 2, ",", "" )."</span> €</span>\n";
|
||||
}else{
|
||||
$body .= "<span> - </span>\n";
|
||||
}
|
||||
$body .= "</td></tr>\n";
|
||||
$totale_righe += $subtot;
|
||||
}
|
||||
|
||||
|
||||
if ($visualizza_costi==true){
|
||||
//Totale spese aggiuntive
|
||||
$body .= "<tr><td colspan=\"3\" align=\"right\">\n";
|
||||
$body .= "<b>TOTALE SPESE AGGIUNTIVE:</b>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
|
||||
$body .= "<b>".number_format( $totale_righe, 2, ",", ".")." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
}
|
||||
|
||||
|
||||
$body .= "</table>\n";
|
||||
}
|
||||
|
||||
//FINE SPESE AGGIUNTIVE
|
||||
|
||||
//ORE TECNICI + FIRMA
|
||||
|
||||
|
||||
$body .= "<br/><table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
$body .= "<col width=\"180\"><col width=\"115\"><col width=\"50\"><col width=\"50\"><col width=\"255\">\n";
|
||||
$body .= "<tr><td align=\"center\" colspan=\"6\" valign=\"middle\" style=\"font-size:11pt;\" bgcolor=\"#cccccc\"><b>ORE TECNICI</b></td></tr>\n";
|
||||
|
||||
//INTESTAZIONE ELENCO TECNICI
|
||||
$body .= "<tr><td align=\"center\" style=\"font-size:8pt;\" bgcolor='#cccccc'>";
|
||||
$body .= "<b>Tecnico</b>";
|
||||
$body .= "</td>";
|
||||
|
||||
$body .= "<td align=\"center\" style=\"font-size:8pt;\" bgcolor='#cccccc'>";
|
||||
$body .= "<b>Data</b>";
|
||||
$body .= "</td>";
|
||||
|
||||
$body .= "<td align=\"center\" style=\"font-size:8pt;\" bgcolor='#cccccc'>";
|
||||
$body .= "<b>Dalle</b>";
|
||||
$body .= "</td>";
|
||||
|
||||
$body .= "<td align=\"center\" style=\"font-size:8pt;\" bgcolor='#cccccc'>";
|
||||
$body .= "<b>Alle</b>";
|
||||
$body .= "</td>";
|
||||
|
||||
$body .= "<td align=\"center\" valign=\"middle\" style=\"font-size:6pt;\" >";
|
||||
$body .= "I dati del ricevente verrano trattati in base al D.lgs n. 196/2003.";
|
||||
$body .= "</td></tr>";
|
||||
|
||||
|
||||
|
||||
// sessioni di lavoro dei tecnici
|
||||
$qt = "SELECT * FROM in_interventi INNER JOIN (in_interventi_tecnici INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico=an_anagrafiche.idanagrafica) ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.id='$idintervento' ORDER BY in_interventi_tecnici.orario_inizio ";
|
||||
$nt = $dbo->fetchNum( $qt );
|
||||
$rst = $dbo->fetchArray( $qt );
|
||||
|
||||
|
||||
for( $t=0; $t<$nt; $t++ ){
|
||||
|
||||
//nome tecnico
|
||||
$body .= "<tr><td style=\"height:5mm;\" align=\"left\">\n";
|
||||
$body .= "".$rst[$t]['ragione_sociale']."";
|
||||
$body .= "</td>";
|
||||
|
||||
//data
|
||||
$body .= "<td align=\"center\">";
|
||||
if ($rst[$t]['orario_inizio']!='00:00:00'){
|
||||
$body .= "".readDateTimePrint($rst[$t]['orario_inizio'], 'date')."";
|
||||
}else{
|
||||
$body .= " - ";
|
||||
}
|
||||
$body .= "</td>";
|
||||
|
||||
//ora inizio
|
||||
$body .= "<td align=\"center\">";
|
||||
if ($rst[$t]['orario_inizio']!='00:00:00'){
|
||||
$body .= "".readDateTimePrint($rst[$t]['orario_inizio'], 'time')."";
|
||||
}else{
|
||||
$body .= " - ";
|
||||
}
|
||||
$body .= "</td>";
|
||||
|
||||
//ora fine
|
||||
$body .= "<td align=\"center\">";
|
||||
if ($rst[$t]['orario_fine']!='00:00:00'){
|
||||
$body .= "".readDateTimePrint($rst[$t]['orario_fine'], 'time')."";
|
||||
}else{
|
||||
$body .= " - ";
|
||||
}
|
||||
$body .= "</td>";
|
||||
|
||||
if ($t==0){
|
||||
$body .= "<td align=\"center\" valign=\"middle\" rowspan=\"1\" style=\"font-size:8pt;\" >";
|
||||
$body .= "<b>Si dichiara che i lavori sono stati eseguiti<br/> ed i materiali installati.</b>";
|
||||
$body .= "</td>";
|
||||
}
|
||||
else{
|
||||
$body .= "<td style=\"border-bottom:0px;border-top:0px;\" >";
|
||||
$body .= "</td>";
|
||||
}
|
||||
$body .= "</tr>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//ore lavorate
|
||||
if( $visualizza_costi ){
|
||||
$q_interventi = "SELECT * FROM in_interventi_tecnici WHERE idintervento = '".$idintervento."' ";
|
||||
$rs2 = $dbo->fetchArray( $q_interventi );
|
||||
$n2 = sizeof($rs2);
|
||||
|
||||
for($i=0; $i<$n2; $i++){
|
||||
$tt = get_ore_intervento( $rs2[$i]['idintervento'] );
|
||||
$tt = floatval (round($tt,2));
|
||||
}
|
||||
|
||||
$body .= "<tr><td align=\"center\" colspan=\"1\">Ore lavorate:<br/><b>".number_format( $tt, 2, ',', '.' )."</b></td>\n";
|
||||
|
||||
|
||||
//costo orario
|
||||
$body .= "<td align=\"center\" colspan=\"1\">Costo orario:<br/><b>".number_format( ($totale_ore_consuntivo/$tt), 2, ",", "." )."</b>";
|
||||
|
||||
if ($totale_dirittochiamata!=0){
|
||||
|
||||
$body .= "<small><small > + ".number_format($totale_dirittochiamata, 2, ",", "." )." d.c.</small></small>";
|
||||
}
|
||||
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
||||
//costo totale manodopera
|
||||
$body .= "<td align=\"center\" colspan=\"2\">Manodopera:<br/><b>".number_format($totale_intervento, 2, ",", "." )."</b>";
|
||||
$body .= "</td>\n";
|
||||
}
|
||||
|
||||
else{
|
||||
$body .= "<tr><td colspan='4'></td>\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
// timbro e firma
|
||||
if ($records[0]['firma_file']!=""):
|
||||
$body .= "<td align=\"center\" rowspan=\"".($nt-$n2)."\" style=\"height:20mm; font-size:6pt;border-top:0px;\" valign=\"bottom\" >";
|
||||
$body .= " <img width='260' src=".$docroot."/files/interventi/".$records[0]['firma_file'].">\n";
|
||||
else:
|
||||
$body .= " <td align=\"center\" valign=\"bottom\" style=\"border:1px solid #888; height:30mm; font-size:8pt;\">";
|
||||
$body .= " <i>(Timbro e firma leggibile.)</i>";
|
||||
endif;
|
||||
$body .= "</td>";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//IMPONIBILE
|
||||
if( $visualizza_costi ){
|
||||
//Totale intervento
|
||||
$body .= "<tr><td colspan=\"4\" valign=\"middle\" align=\"right\">\n";
|
||||
$body .= "<big><b>IMPONIBILE:</b></big>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td align=\"center\" colspan=\"1\" bgcolor=\"#cccccc\">\n";
|
||||
$body .= "<b>".number_format( $totale_articoli + $totale_intervento + $totale_righe, 2, ",", ".")." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
|
||||
//Leggo iva da applicare
|
||||
$q = "SELECT * FROM co_iva INNER JOIN zz_impostazioni WHERE co_iva.id = zz_impostazioni.valore AND zz_impostazioni.nome = 'Iva predefinita' ";
|
||||
$records = $dbo->fetchArray($q);
|
||||
$percentuale_iva = $records[0]['percentuale'];
|
||||
|
||||
|
||||
|
||||
//IVA
|
||||
//Totale intervento
|
||||
$body .= "<tr><td colspan=\"4\" valign=\"middle\" align=\"right\">\n";
|
||||
$body .= "<big><b>IVA (".number_format($percentuale_iva,0)."%):</b></big>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td align=\"center\" colspan=\"1\" bgcolor=\"#cccccc\">\n";
|
||||
$body .= "<b>".number_format( (($totale_articoli + $totale_intervento + $totale_righe)/100*$percentuale_iva), 2, ",", ".")." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
|
||||
|
||||
//TOTALE INTERVENTO
|
||||
$body .= "<tr><td colspan=\"4\" valign=\"middle\" style=\"\" align=\"right\">\n";
|
||||
$body .= "<big><b>TOTALE INTERVENTO:</b></big>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td align=\"center\" colspan=\"1\" bgcolor=\"#cccccc\">\n";
|
||||
$body .= "<b>".number_format( (($totale_articoli + $totale_intervento + $totale_righe)/100*$percentuale_iva)+$totale_articoli + $totale_intervento + $totale_righe, 2, ",", ".")." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
}
|
||||
|
||||
$body .= "</table>";
|
||||
|
||||
|
||||
$report_name = "intervento_".$idintervento.".pdf";
|
||||
?>
|
|
@ -0,0 +1,113 @@
|
|||
<?php
|
||||
|
||||
// Valori aggiuntivi per la sostituzione
|
||||
$replaces = [
|
||||
'docroot' => DOCROOT,
|
||||
'rootdir' => ROOTDIR,
|
||||
'footer' => !empty($footer) ? $footer : '',
|
||||
'dicitura_fissa_fattura' => get_var('Dicitura fissa fattura'),
|
||||
'pagination' => '
|
||||
<table style="color:#aaa; font-size:10px;">
|
||||
<tr>
|
||||
<td align="left" style="width:97mm;">
|
||||
'.tr('Stampato con OpenSTAManager').'
|
||||
</td>
|
||||
|
||||
<td align="right" style="width:97mm;">
|
||||
'.str_replace(['_PAGE_', '_TOTAL_'], ['{PAGENO}', '{nb}'], tr('Pagina _PAGE_ di _TOTAL_')).'
|
||||
</td>
|
||||
</tr>
|
||||
</table>',
|
||||
];
|
||||
|
||||
// Retrocompatibilità
|
||||
$id_cliente = $id_cliente ?: $idcliente;
|
||||
|
||||
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
|
||||
if (empty($id_sede) || $id_sede == '-1') {
|
||||
$queryc = 'SELECT * FROM an_anagrafiche WHERE idanagrafica='.prepare($id_cliente);
|
||||
} else {
|
||||
$queryc = 'SELECT an_anagrafiche.*, an_sedi.* FROM an_sedi JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=an_sedi.idanagrafica WHERE an_sedi.idanagrafica='.prepare($id_cliente).' AND an_sedi.id='.prepare($id_sede);
|
||||
}
|
||||
$rsc = $dbo->fetchArray($queryc);
|
||||
|
||||
// Lettura dati aziendali
|
||||
$rsf = $dbo->fetchArray("SELECT * FROM an_anagrafiche WHERE idanagrafica = (SELECT valore FROM zz_settings WHERE nome='Azienda predefinita')");
|
||||
$id_azienda = $rsd[0]['id'];
|
||||
|
||||
$replace = [
|
||||
'c_' => $rsc[0],
|
||||
'f_' => $rsf[0],
|
||||
];
|
||||
|
||||
$rename = [
|
||||
'capitale_sociale' => 'capsoc',
|
||||
'ragione_sociale' => 'ragionesociale',
|
||||
'codice_fiscale' => 'codicefiscale',
|
||||
];
|
||||
|
||||
$keys = [];
|
||||
|
||||
foreach ($replace as $prefix => $values) {
|
||||
$values = (array) $values;
|
||||
if ($prefix == 'c_') {
|
||||
$keys = array_keys($values);
|
||||
}
|
||||
|
||||
// Azienda predefinita non impostata
|
||||
if (empty($values) && $prefix == 'f_') {
|
||||
$values = [];
|
||||
foreach ($keys as $key) {
|
||||
$values[$key] = '';
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($rename as $key => $value) {
|
||||
$values[$value] = $values[$key];
|
||||
unset($values[$key]);
|
||||
}
|
||||
|
||||
foreach ($values as $key => $value) {
|
||||
${$prefix.$key} = $value;
|
||||
}
|
||||
|
||||
$citta = '';
|
||||
|
||||
if ($values['cap'] != '') {
|
||||
$citta .= $values['cap'];
|
||||
}
|
||||
if ($values['citta'] != '') {
|
||||
$citta .= ' '.$values['citta'];
|
||||
}
|
||||
if ($values['provincia'] != '') {
|
||||
$citta .= ' ('.$values['provincia'].')';
|
||||
}
|
||||
|
||||
$values['citta_full'] = $citta;
|
||||
|
||||
/*
|
||||
if ($values['piva'] != $values['codicefiscale']) {
|
||||
$values['piva'] = !empty($values['piva']) ? 'P.Iva: '.$values['piva'] : '';
|
||||
$values['codicefiscale'] = !empty($values['codicefiscale']) ? 'C.F.: '.$values['codicefiscale'] : '';
|
||||
} else {
|
||||
$values['piva'] = !empty($values['piva']) ? 'P.Iva/C.F.: '.$values['piva'] : '';
|
||||
$values['codicefiscale'] = '';
|
||||
}
|
||||
|
||||
$values['capsoc'] = !empty($values['capsoc']) ? 'Cap.Soc.: '.$values['capsoc'] : '';
|
||||
$values['sitoweb'] = !empty($values['sitoweb']) ? 'Web: '.$values['sitoweb'] : '';
|
||||
$values['telefono'] = !empty($values['telefono']) ? 'Tel: '.$values['telefono'] : '';
|
||||
$values['fax'] = !empty($values['fax']) ? 'Fax: '.$values['fax'] : '';
|
||||
$values['cellulare'] = !empty($values['cellulare']) ? 'Cell: '.$values['cellulare'] : '';
|
||||
$values['email'] = !empty($values['email']) ? 'Email: '.$values['email'] : '';
|
||||
$values['codiceiban'] = !empty($values['codiceiban']) ? 'IBAN: '.$values['codiceiban'] : '';
|
||||
*/
|
||||
|
||||
if ($key == 'c_') {
|
||||
$keys = array_unique(array_merge($keys, array_keys($values)));
|
||||
}
|
||||
|
||||
foreach ($values as $key => $value) {
|
||||
$replaces[$prefix.$key] = $value;
|
||||
}
|
||||
}
|
|
@ -10,45 +10,86 @@ $report_name = 'intervento_'.$idintervento.'.pdf';
|
|||
Dati intervento
|
||||
*/
|
||||
echo '
|
||||
<table class="table_values" cellspacing="0" cellpadding="0" style="table-layout:fixed;">
|
||||
<col width="400"><col width="310">
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<th colspan="4" style="dont-size:14pt;" class="text-center">RAPPORTO OPERAZIONI E INTERVENTI</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="left">
|
||||
'.tr('Cliente').': <b>'.$c_codiceanagrafica.' '.$c_ragionesociale.'</b><br>
|
||||
'.tr('Indirizzo').': <b>'.$c_indirizzo.'-'.$c_cap.' '.$c_citta.' ('.strtoupper($c_provincia).')</b><br>
|
||||
<td class="text-center" style="width:40%">Intervento numero: <b>'.$records[0]['codice'].'</b></td>
|
||||
<td class="text-center" style="width:20%">Data: <b>'.Translator::dateToLocale($records[0]['data_richiesta']).'</b></td>
|
||||
<td class="text-center" style="width:20%">Preventivo N<sup>o</sup>: <b>'.$records[0]['numero_preventivo'].'</b></td>
|
||||
<td class="text-center" style="width:20%">Contratto N<sup>o</sup>: <b>'.$records[0]['numero_contratto'].'</b></td>
|
||||
</tr>';
|
||||
|
||||
// Dati cliente
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan=3>
|
||||
Cliente: <b>'.$c_ragionesociale.'</b>
|
||||
</td>';
|
||||
|
||||
//Codice fiscale
|
||||
echo '
|
||||
<td>
|
||||
P.iva: <b>'.strtoupper($c_piva).'</b>
|
||||
</td>
|
||||
<td align="left">
|
||||
'.tr('Referente').': <b>'.$referente.'</b>';
|
||||
if ($c_telefono != '') {
|
||||
</tr>';
|
||||
|
||||
//riga 2
|
||||
echo '
|
||||
<br>'.tr('Telefono azienda').': <b>'.$c_telefono.'</b>';
|
||||
}
|
||||
if ($c_email != '') {
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
Via: <b>'.$c_indirizzo.'</b> -
|
||||
Cap: <b>'.$c_cap.'</b> -
|
||||
Comune: <b>'.$c_citta.' ('.strtoupper($c_provincia).')</b>
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
echo '
|
||||
<br>'.tr('Email').': <b>'.$c_email.'</b>';
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
Telefono: <b>'.$c_telefono.'</b>';
|
||||
if (!empty($c_cellulare)) {
|
||||
echo' - Cellulare: <b>'.$c_cellulare.'</b>';
|
||||
}
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
//riga 3
|
||||
//Elenco impianti su cui è stato fatto l'intervento
|
||||
$rs2 = $dbo->fetchArray('SELECT *, (SELECT nome FROM my_impianti WHERE id=my_impianti_interventi.idimpianto) AS nome, (SELECT matricola FROM my_impianti WHERE id=my_impianti_interventi.idimpianto) AS matricola FROM my_impianti_interventi WHERE idintervento='.prepare($idintervento));
|
||||
$impianti = [];
|
||||
for ($j = 0; $j < sizeof($rs2); ++$j) {
|
||||
$impianti[] = '<b>'.$rs2[$j]['nome']."</b> <small style='color:#777;'>(".$rs2[$j]['matricola'].')</small>';
|
||||
}
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
Impianti: '.implode(', ', $impianti).'
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
if (!empty($records[0]['richiesta'])) {
|
||||
//Richiesta
|
||||
echo '
|
||||
<tr>
|
||||
<td align="left" colspan="2" valign="top"><b>'.tr('Richiesta').':</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="left" valign="top" style="height:5mm;">'.nl2br($records[0]['richiesta']).'</td>
|
||||
<td colspan="4" style="height:20mm;">
|
||||
<b>Richiesta:</b>
|
||||
<p>'.nl2br($records[0]['richiesta']).'</p>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
// Descrizione
|
||||
if ($records[0]['descrizione_intervento'] != '') {
|
||||
if (!empty($records[0]['descrizione_intervento'])) {
|
||||
//descrizione
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="2" align="left" valign="top"><b>'.tr('Descrizione').':</b></td>
|
||||
<td><b>Descrizione:</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" valign="top" align="left" style="height:5mm;">'.nl2br($records[0]['descrizione_intervento']).'</td>
|
||||
<td style="height:5mm;">'.nl2br($records[0]['descrizione_intervento']).'</td>
|
||||
</tr>';
|
||||
}
|
||||
echo '
|
||||
|
|
|
@ -7,12 +7,10 @@ echo '
|
|||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<p><b>$f_ragionesociale$</b></p>
|
||||
<p>$f_indirizzo$ $f_citta$</p>
|
||||
<p>$f_piva$</p>
|
||||
<p>$f_codicefiscale$</p>
|
||||
<p>$f_capsoc$</p>
|
||||
<p>$f_telefono$</p>
|
||||
<p>$f_sitoweb$</p>
|
||||
<p>$f_email$</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>';
|
||||
|
|
|
@ -7,24 +7,18 @@ include_once $docroot.'/modules/interventi/modutil.php';
|
|||
$module_name = 'Interventi';
|
||||
|
||||
// carica intervento
|
||||
$query = 'SELECT in_interventi.*, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idclientefinale) AS clientefinale, (SELECT numero FROM co_preventivi WHERE id=(SELECT idpreventivo FROM co_preventivi_interventi WHERE idintervento=in_interventi.id ORDER BY idpreventivo DESC LIMIT 0,1)) AS numero_preventivo, (SELECT SUM(prezzo_dirittochiamata) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_dirittochiamata`, (SELECT SUM(km) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km`, (SELECT SUM(ore*prezzo_ore_unitario) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_ore_consuntivo`, (SELECT SUM(prezzo_km_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km_consuntivo`, in_interventi.descrizione AS `descrizione_intervento`, richiesta FROM in_interventi INNER JOIN in_tipiintervento ON in_interventi.idtipointervento=in_tipiintervento.idtipointervento WHERE id='.prepare($idintervento).' '.Modules::getAdditionalsQuery('Interventi');
|
||||
$query = 'SELECT in_interventi.*, (SELECT numero FROM co_contratti WHERE id=(SELECT idcontratto FROM co_righe_contratti WHERE idintervento=in_interventi.id)) AS numero_contratto, (SELECT numero FROM co_preventivi WHERE id=(SELECT idpreventivo FROM co_preventivi_interventi WHERE idintervento=in_interventi.id ORDER BY idpreventivo DESC LIMIT 0,1)) AS numero_preventivo, (SELECT SUM(prezzo_dirittochiamata) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_dirittochiamata`, (SELECT SUM(km) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km`, (SELECT SUM(ore*prezzo_ore_unitario) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_ore_consuntivo`, (SELECT SUM(prezzo_km_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km_consuntivo`, in_interventi.descrizione AS `descrizione_intervento`, richiesta FROM in_interventi INNER JOIN in_tipiintervento ON in_interventi.idtipointervento=in_tipiintervento.idtipointervento WHERE id='.prepare($idintervento).' '.Modules::getAdditionalsQuery('Interventi');
|
||||
$records = $dbo->fetchArray($query);
|
||||
|
||||
$id_cliente = $records[0]['idanagrafica'];
|
||||
$id_sede = $records[0]['idsede'];
|
||||
|
||||
// Leggo il nome del referente se selezionato da menu a tendina
|
||||
if (!empty($records[0]['idreferente'])) {
|
||||
$rs2 = $dbo->fetchArray('SELECT * FROM an_referenti WHERE id='.prepare($records[0]['idreferente']));
|
||||
$referente = $rs2[0]['nome'];
|
||||
} else {
|
||||
$referente = $records[0]['referente'].' '.$records[0]['telefono_referente'];
|
||||
}
|
||||
|
||||
// Sostituzioni specifiche
|
||||
// Imposta numerointervento-data-numerocommessa su intestazione
|
||||
$replaces = [
|
||||
$custom = [
|
||||
'intervento_numero' => $records[0]['codice'],
|
||||
'intervento_data' => Translator::dateToLocale($records[0]['data_richiesta']),
|
||||
'commessa_numero' => !empty($records[0]['numero_preventivo']) ? $records[0]['codice'] : ' ',
|
||||
];
|
||||
|
||||
$visualizza_costi = get_var("Visualizza i costi sulle stampe degli interventi");
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
<style>
|
||||
.table_values {
|
||||
border-top: 1px solid #888;
|
||||
border-left: 1px solid #888;
|
||||
}
|
||||
|
||||
.table_values td {
|
||||
border-right: 1px solid #888;
|
||||
border-bottom: 1px solid #888;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.check {
|
||||
width: 10px;
|
||||
height: 14px;
|
||||
display: inline;
|
||||
background: transparent url($docroot$/templates/interventi/custom/check.png) center center no-repeat;
|
||||
margin-right: 6px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.checked {
|
||||
width: 10px;
|
||||
height: 14px;
|
||||
display: inline;
|
||||
background: transparent url($docroot$/templates/interventi/custom/checked.png) center center no-repeat;
|
||||
margin-right: 6px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin: 4px 0 2px 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 15pt;
|
||||
margin: 10px 0 2px 0;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<page backcolor="#ffffff" backtop="30mm" backbottom="3mm" backleft="0mm" backright="0mm" footer="" style="font-size: $font_size$">
|
||||
$body$
|
||||
</page>
|
||||
|
||||
<page_header>
|
||||
<table style="height:35mm;border:0px;">
|
||||
<tr>
|
||||
<td style="width:97mm;" align="left">
|
||||
<img src="$docroot$/templates/interventi/logo_azienda.jpg" alt="Logo" border="0" style="width:60mm;" />
|
||||
</td>
|
||||
|
||||
<td style="width:97mm; font-size:10pt;text-align:right;">
|
||||
<b>$f_ragionesociale$</b> $f_indirizzo$ $f_citta$ $f_piva$ $f_codicefiscale$ $f_capsoc$ $f_telefono$ $f_sitoweb$
|
||||
$f_email$
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</page_header>
|
|
@ -10,7 +10,7 @@
|
|||
<div style="padding:10px;">
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<img src="$docroot$/templates/ordini/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -1,138 +1,3 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Sostituisce a delle stringhe ($nome_stringa$) i valori delle anagrafiche.
|
||||
*/
|
||||
include_once __DIR__.'/../core.php';
|
||||
|
||||
// Valori aggiuntivi per la sostituzione
|
||||
$values = [
|
||||
'docroot' => DOCROOT,
|
||||
'rootdir' => ROOTDIR,
|
||||
'footer' => !empty($footer) ? $footer : '',
|
||||
'dicitura_fissa_fattura' => get_var('Dicitura fissa fattura'),
|
||||
'pagination' => '
|
||||
<table style="color:#aaa; font-size:10px;">
|
||||
<tr>
|
||||
<td align="left" style="width:97mm;">
|
||||
'.tr('Stampato con OpenSTAManager').'
|
||||
</td>
|
||||
|
||||
<td align="right" style="width:97mm;">
|
||||
'.str_replace(['_PAGE_', '_TOTAL_'], ['{PAGENO}', '{nb}'], tr('Pagina _PAGE_ di _TOTAL_')).'
|
||||
</td>
|
||||
</tr>
|
||||
</table>',
|
||||
];
|
||||
|
||||
$values = array_merge($values, (array) $replaces);
|
||||
|
||||
foreach ($values as $key => $value) {
|
||||
$values['$'.$key.'$'] = $value;
|
||||
unset($values[$key]);
|
||||
}
|
||||
|
||||
// Sostituisce alle variabili del template i valori
|
||||
$head = str_replace(array_keys($values), array_values($values), $head);
|
||||
$foot = str_replace(array_keys($values), array_values($values), $foot);
|
||||
$report = str_replace(array_keys($values), array_values($values), $report);
|
||||
|
||||
// Retrocompatibilità
|
||||
$id_cliente = $id_cliente ?: $idcliente;
|
||||
|
||||
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
|
||||
if (empty($id_sede) || $id_sede == '-1') {
|
||||
$queryc = 'SELECT * FROM an_anagrafiche WHERE idanagrafica='.prepare($id_cliente);
|
||||
} else {
|
||||
$queryc = 'SELECT an_anagrafiche.*, an_sedi.* FROM an_sedi JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=an_sedi.idanagrafica WHERE an_sedi.idanagrafica='.prepare($id_cliente).' AND an_sedi.id='.prepare($id_sede);
|
||||
}
|
||||
$rsc = $dbo->fetchArray($queryc);
|
||||
|
||||
// Lettura dati aziendali
|
||||
$rsf = $dbo->fetchArray("SELECT * FROM an_anagrafiche WHERE idanagrafica = (SELECT valore FROM zz_settings WHERE nome='Azienda predefinita')");
|
||||
$id_azienda = $rsd[0]['id'];
|
||||
|
||||
$replace = [
|
||||
'c_' => $rsc[0],
|
||||
'f_' => $rsf[0],
|
||||
];
|
||||
|
||||
$rename = [
|
||||
'capitale_sociale' => 'capsoc',
|
||||
'ragione_sociale' => 'ragionesociale',
|
||||
'codice' => 'codiceanagrafica',
|
||||
];
|
||||
|
||||
$keys = [];
|
||||
|
||||
foreach ($replace as $prefix => $values) {
|
||||
$values = (array) $values;
|
||||
if ($prefix == 'c_') {
|
||||
$keys = array_keys($values);
|
||||
}
|
||||
|
||||
// Azienda predefinita non impostata
|
||||
if (empty($values) && $prefix == 'f_') {
|
||||
$values = [];
|
||||
foreach ($keys as $key) {
|
||||
$values[$key] = '';
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($rename as $key => $value) {
|
||||
$values[$value] = $values[$key];
|
||||
unset($values[$key]);
|
||||
}
|
||||
|
||||
foreach ($values as $key => $value) {
|
||||
${$prefix.$key} = $value;
|
||||
}
|
||||
|
||||
$values['codice'] = !empty($values['codice']) ? $values['codice'].',' : '';
|
||||
$values['provincia'] = !empty($values['provincia']) ? '('.$values['provincia'].')' : '';
|
||||
|
||||
$citta = '';
|
||||
|
||||
if ($values['cap'] != '') {
|
||||
$citta .= $values['cap'];
|
||||
}
|
||||
if ($values['citta'] != '') {
|
||||
$citta .= ' '.$values['citta'];
|
||||
}
|
||||
if ($values['provincia'] != '') {
|
||||
$citta .= ' '.$values['provincia'];
|
||||
}
|
||||
//$citta .= '<br/>';
|
||||
|
||||
$values['citta'] = $citta;
|
||||
|
||||
if ($values['piva'] != $values['codicefiscale']) {
|
||||
$values['piva'] = !empty($values['piva']) ? 'P.Iva: '.$values['piva'] : '';
|
||||
$values['codicefiscale'] = !empty($values['codicefiscale']) ? 'C.F.: '.$values['codicefiscale'] : '';
|
||||
} else {
|
||||
$values['piva'] = !empty($values['piva']) ? 'P.Iva/C.F.: '.$values['piva'] : '';
|
||||
$values['codicefiscale'] = '';
|
||||
}
|
||||
|
||||
$values['capsoc'] = !empty($values['capsoc']) ? 'Cap.Soc.: '.$values['capsoc'] : '';
|
||||
$values['sitoweb'] = !empty($values['sitoweb']) ? 'Web: '.$values['sitoweb'] : '';
|
||||
$values['telefono'] = !empty($values['telefono']) ? 'Tel: '.$values['telefono'] : '';
|
||||
$values['fax'] = !empty($values['fax']) ? 'Fax: '.$values['fax'] : '';
|
||||
$values['cellulare'] = !empty($values['cellulare']) ? 'Cell: '.$values['cellulare'] : '';
|
||||
$values['email'] = !empty($values['email']) ? 'Email: '.$values['email'] : '';
|
||||
$values['codiceiban'] = !empty($values['codiceiban']) ? 'Cap.Soc.: '.$values['codiceiban'] : '';
|
||||
|
||||
if ($key == 'c_') {
|
||||
$keys = array_unique(array_merge($keys, array_keys($values)));
|
||||
}
|
||||
|
||||
foreach ($values as $key => $value) {
|
||||
$values['$'.$prefix.$key.'$'] = empty($value) ? $value : $value; // .'<br/>'
|
||||
unset($values[$key]);
|
||||
}
|
||||
|
||||
// Sostituisce alle variabili del template i valori
|
||||
$head = str_replace(array_keys($values), array_values($values), $head);
|
||||
$foot = str_replace(array_keys($values), array_values($values), $foot);
|
||||
$report = str_replace(array_keys($values), array_values($values), $report);
|
||||
}
|
||||
include_once __DIR__.'/info.php';
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<td style="width:45mm; font-size:8pt; color:#555;" style="font-size:8pt;text-align:left;color:#555;">
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<img src="$docroot$/templates/preventivi/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Sostituisce a delle stringhe ($nome_stringa$) i valori delle anagrafiche.
|
||||
*/
|
||||
$replaces = array_merge($replaces, (array) $custom);
|
||||
|
||||
foreach ($replaces as $key => $value) {
|
||||
$replaces['$'.$key.'$'] = $value;
|
||||
unset($replaces[$key]);
|
||||
}
|
||||
|
||||
// Sostituisce alle variabili del template i valori
|
||||
$head = str_replace(array_keys($replaces), array_values($replaces), $head);
|
||||
$foot = str_replace(array_keys($replaces), array_values($replaces), $foot);
|
||||
$report = str_replace(array_keys($replaces), array_values($replaces), $report);
|
|
@ -5,7 +5,7 @@
|
|||
<img src="$docroot$/templates/riepilogo_contratti/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<img src="$docroot$/templates/riepilogo_interventi/logo_azienda.jpg" alt="Logo" border="0" /><br/>
|
||||
$f_ragionesociale$
|
||||
$f_indirizzo$
|
||||
$f_citta$
|
||||
$f_citta_full$
|
||||
$f_piva$
|
||||
$f_codicefiscale$
|
||||
$f_capsoc$
|
||||
|
|
Loading…
Reference in New Issue