Bugfix per le stampe

This commit is contained in:
Thomas Zilio 2017-09-08 18:19:39 +02:00
parent 3302b27342
commit dc03300461
29 changed files with 848 additions and 289 deletions

View File

@ -38,11 +38,17 @@ if (file_exists($docroot.'/templates/'.$ptype.'/init.php')) {
include $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)) { if (!empty($id_module)) {
Permissions::addModule($id_module); Permissions::addModule($id_module);
} }
Permissions::check(); Permissions::check();
// Operazioni di sostituzione
include $docroot.'/templates/pdfgen_variables.php';
// Generazione dei contenuti della stampa // Generazione dei contenuti della stampa
ob_start(); ob_start();
if (file_exists($docroot.'/templates/'.$ptype.'/custom/body.php')) { if (file_exists($docroot.'/templates/'.$ptype.'/custom/body.php')) {
@ -52,14 +58,14 @@ if (file_exists($docroot.'/templates/'.$ptype.'/init.php')) {
} }
$report = ob_get_clean(); $report = ob_get_clean();
if(!empty($autofill)){ if (!empty($autofill)) {
$result = ''; $result = '';
// max($autofill['additional']) = $autofill['rows'] - 1 // max($autofill['additional']) = $autofill['rows'] - 1
for ($i = (floor($autofill['count']) % $autofill['rows']); $i < $autofill['additional']; ++$i) { for ($i = (floor($autofill['count']) % $autofill['rows']); $i < $autofill['additional']; ++$i) {
$result .= ' $result .= '
<tr>'; <tr>';
for($c = 0; $c < $autofill['columns']; $c++){ for ($c = 0; $c < $autofill['columns']; ++$c) {
$result .= ' $result .= '
<td>&nbsp;</td>'; <td>&nbsp;</td>';
} }
@ -113,7 +119,7 @@ if (file_exists($docroot.'/templates/'.$ptype.'/init.php')) {
} }
// Operazioni di sostituzione // Operazioni di sostituzione
include $docroot.'/templates/pdfgen_variables.php'; include $docroot.'/templates/replace.php';
// Individuazione dellla configurazione // Individuazione dellla configurazione
$directory = dirname($filename); $directory = dirname($filename);

View File

@ -10,6 +10,6 @@ return [
'left' => 12, 'left' => 12,
'right' => 12, 'right' => 12,
], ],
'header-height' => 30, 'header-height' => 35,
'footer-height' => 5, 'footer-height' => 5,
]; ];

View File

@ -23,7 +23,8 @@ table {
overflow: wrap overflow: wrap
} }
table td { table td,
table th {
vertical-align: top; vertical-align: top;
padding: 4px; padding: 4px;
} }
@ -78,24 +79,31 @@ table.table-striped tbody tr:nth-child(2n+1) td {
padding: 4px; padding: 4px;
} }
#contents{ #contents {
border: 1px solid #aaa; border: 1px solid #aaa;
} }
#contents td { #contents td {
padding: 4px;
white-space: normal;
border-left: 1px solid #aaa; border-left: 1px solid #aaa;
border-right: 1px solid #aaa; border-right: 1px solid #aaa;
} }
#contents th, #contents th,
table.border-full th { table.table-bordered th {
background: #ddd; 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%; font-size: 70%;
} }
#contents th,
table.table-bordered,
table.table-bordered td,
table.table-bordered th {
border: 1px solid #aaa;
}

View File

@ -9,7 +9,7 @@
<td style="width:100mm; font-size:8pt"> <td style="width:100mm; font-size:8pt">
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -5,7 +5,7 @@
<img src="$docroot$/templates/contratti/logo_azienda.jpg" alt="Logo" border="0" /><br/> <img src="$docroot$/templates/contratti/logo_azienda.jpg" alt="Logo" border="0" /><br/>
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -2,17 +2,17 @@
// TABELLA PRINCIPALE // TABELLA PRINCIPALE
echo ' echo '
<table class="border-full">'; <table class="table-bordered">';
if ($mostra_prezzi) { if ($mostra_prezzi) {
// Riga 1 // Riga 1
echo " echo "
<tr> <tr>
<td rowspan='7' class='border-full'> <td rowspan='7'>
<p class='small-bold'>".strtoupper(tr('Note')).'</p> <p class='small-bold'>".strtoupper(tr('Note')).'</p>
<p>'.nl2br($rs[0]['note'])."</p> <p>'.nl2br($rs[0]['note'])."</p>
</td> </td>
<td style='width:33mm;' class='border-bottom'> <td style='width:33mm;'>
<p class='small-bold'>".strtoupper(tr('Totale imponibile')).'</p> <p class='small-bold'>".strtoupper(tr('Totale imponibile')).'</p>
</td> </td>
</tr>'; </tr>';
@ -20,7 +20,7 @@ if ($mostra_prezzi) {
// Dati riga 1 // Dati riga 1
echo " echo "
<tr> <tr>
<td class='border-bottom cell-padded text-right'> <td class='cell-padded text-right'>
".Translator::numberToLocale($imponibile_ddt, 2).' &euro; ".Translator::numberToLocale($imponibile_ddt, 2).' &euro;
</td> </td>
</tr>'; </tr>';
@ -28,13 +28,13 @@ if ($mostra_prezzi) {
// Riga 2 // Riga 2
echo " echo "
<tr> <tr>
<td style='width:33mm;' class='border-bottom'> <td style='width:33mm;'>
<p class='small-bold'>".strtoupper(tr('Totale imposte'))."</p> <p class='small-bold'>".strtoupper(tr('Totale imposte'))."</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class='border-bottom cell-padded text-right'> <td class='cell-padded text-right'>
".Translator::numberToLocale($totale_iva, 2).' &euro; ".Translator::numberToLocale($totale_iva, 2).' &euro;
</td> </td>
</tr>'; </tr>';
@ -42,13 +42,13 @@ if ($mostra_prezzi) {
// Riga 3 // Riga 3
echo " echo "
<tr> <tr>
<td class='border-bottom'> <td>
<p class='small-bold'>".strtoupper(tr('Totale documento'))."</p> <p class='small-bold'>".strtoupper(tr('Totale documento'))."</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class='cell-padded text-right' style='border-bottom:none;'> <td class='cell-padded text-right'>
".Translator::numberToLocale($totale_ddt, 2).' &euro; ".Translator::numberToLocale($totale_ddt, 2).' &euro;
</td> </td>
</tr>'; </tr>';
@ -67,7 +67,7 @@ echo '
</table>'; </table>';
echo ' echo '
<table class="border-full"> <table class="table-bordered">
<tr> <tr>
<th class="border-bottom border-right" style="width:33%"> <th class="border-bottom border-right" style="width:33%">
'.strtoupper(tr('Aspetto beni')).' '.strtoupper(tr('Aspetto beni')).'

View File

@ -8,11 +8,11 @@ echo '
</div> </div>
<div class="col-xs-6 text-right"> <div class="col-xs-6 text-right">
<p><b>$f_ragionesociale$</b></p> <p><b>$f_ragionesociale$</b></p>
<p>$f_indirizzo$ $f_citta$</p> <p>$f_indirizzo$ $f_citta_full$</p>
<p>$f_piva$</p> <p>'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$</p>
<p>$f_codicefiscale$</p> <p>'.(!empty($f_codicefiscale) ? tr('C.F.').': ' : '').'$f_codicefiscale$</p>
<p>$f_capsoc$</p> <p>'.(!empty($f_capsoc) ? tr('Cap.Soc.').': ' : '').'$f_capsoc$</p>
<p>$f_telefono$</p> <p>'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$</p>
</div> </div>
</div> </div>

View File

@ -41,7 +41,7 @@ if (!empty($rs[0]['idsede'])) {
} }
// Sostituzioni specifiche // Sostituzioni specifiche
$replaces = [ $custom = [
'tipo_doc' => strtoupper($tipo_doc), 'tipo_doc' => strtoupper($tipo_doc),
'numero_doc' => $numero, 'numero_doc' => $numero,
'data' => Translator::numberToLocale($rs[0]['data']), 'data' => Translator::numberToLocale($rs[0]['data']),

View File

@ -29,7 +29,7 @@ echo "
<th class='text-center' style='width:7%'>".strtoupper(tr('Um'))."</th> <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:16%'>".strtoupper(tr('Costo unitario'))."</th>
<th class='text-center' style='width:20%'>".strtoupper(tr('Importo'))."</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> </tr>
</thead> </thead>
@ -112,7 +112,7 @@ foreach ($righe as $r) {
<td class='text-center'>"; <td class='text-center'>";
if ($r['perc_iva'] > 0) { if ($r['perc_iva'] > 0) {
echo ' echo '
'.$r['perc_iva'].'%'; '.$r['perc_iva'];
} }
echo ' echo '
</td> </td>

View File

@ -8,9 +8,9 @@ echo '
</div> </div>
<div class="col-xs-6 text-right"> <div class="col-xs-6 text-right">
<p><b>$f_ragionesociale$</b></p> <p><b>$f_ragionesociale$</b></p>
<p>$f_indirizzo$ $f_citta$</p> <p>$f_indirizzo$ $f_citta_full$</p>
<p>$f_telefono$</p> <p>'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$</p>
<p>$f_piva$</p> <p>'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$</p>
</div> </div>
</div> </div>
@ -50,17 +50,23 @@ echo '
<td colspan="2" style="height:10mm;padding-top:2mm;"> <td colspan="2" style="height:10mm;padding-top:2mm;">
<p class="small-bold">'.strtoupper(tr('Pagamento')).'</p> <p class="small-bold">'.strtoupper(tr('Pagamento')).'</p>
<p>$pagamento$</p> <p>$pagamento$</p>
<br>
<p class="small-bold">'.tr('IBAN').'</p>
<p>$f_codiceiban$</p>
</td> </td>
<td colspan="2" style="height:10mm;padding-top:2mm;"> <td colspan="2" style="height:10mm;padding-top:2mm;">
<p class="small-bold">'.strtoupper(tr('Banca di appoggio')).'</p> <p class="small-bold">'.strtoupper(tr('Banca di appoggio')).'</p>
<p>$f_appoggiobancario$</p> <p>$f_appoggiobancario$</p>
</td> </td>
</tr> </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> </table>
</div> </div>

View File

@ -46,10 +46,10 @@ if (!empty($rs[0]['idsede'])) {
} }
// Sostituzioni specifiche // Sostituzioni specifiche
$replaces = [ $custom = [
'tipo_doc' => strtoupper($tipo_doc), 'tipo_doc' => strtoupper($tipo_doc),
'numero_doc' => $numero, 'numero_doc' => $numero,
'data' => Translator::numberToLocale($rs[0]['data']), 'data' => Translator::dateToLocale($rs[0]['data']),
'pagamento' => $rs[0]['tipo_pagamento'], 'pagamento' => $rs[0]['tipo_pagamento'],
'c_destinazione' => $destinazione, 'c_destinazione' => $destinazione,
]; ];

View File

@ -5,7 +5,7 @@
<img src="$docroot$/templates/fatture_accompagnatorie/logo_azienda.jpg" alt="Logo" border="0" /><br/> <img src="$docroot$/templates/fatture_accompagnatorie/logo_azienda.jpg" alt="Logo" border="0" /><br/>
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -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>

View File

@ -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>

View File

@ -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, ",", "" )." &euro;</b></td>\n";
$colspan--;
}
if( $totale_km_consuntivo != 0 ){
//$body .= "<td align=\"right\">Costi km: <b>".number_format( $totale_km_consuntivo, 2, ",", "" )." &euro;</b></td>\n";
$colspan--;
}
//$body .= "<td align=\"right\" colspan=\"".$colspan."\" bgcolor=\"#dddddd\"> Costi totali: <b>".number_format($totale_intervento, 2, ",", "." )." &euro;</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&agrave;</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, ",", "" )." &euro;</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, ",", ".")." &euro;</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&agrave;</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, ",", "" )." &euro;</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> &euro;</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, ",", ".")." &euro;</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, ",", ".")." &euro;</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, ",", ".")." &euro;</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, ",", ".")." &euro;</b>\n";
$body .= "</td></tr>\n";
}
$body .= "</table>";
$report_name = "intervento_".$idintervento.".pdf";
?>

113
templates/info.php Normal file
View File

@ -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;
}
}

View File

@ -10,45 +10,86 @@ $report_name = 'intervento_'.$idintervento.'.pdf';
Dati intervento Dati intervento
*/ */
echo ' echo '
<table class="table_values" cellspacing="0" cellpadding="0" style="table-layout:fixed;"> <table class="table table-bordered">
<col width="400"><col width="310"> <tr>
<th colspan="4" style="dont-size:14pt;" class="text-center">RAPPORTO OPERAZIONI E INTERVENTI</th>
</tr>
<tr> <tr>
<td align="left"> <td class="text-center" style="width:40%">Intervento numero: <b>'.$records[0]['codice'].'</b></td>
'.tr('Cliente').': <b>'.$c_codiceanagrafica.' '.$c_ragionesociale.'</b><br> <td class="text-center" style="width:20%">Data: <b>'.Translator::dateToLocale($records[0]['data_richiesta']).'</b></td>
'.tr('Indirizzo').': <b>'.$c_indirizzo.'-'.$c_cap.' '.$c_citta.' ('.strtoupper($c_provincia).')</b><br> <td class="text-center" style="width:20%">Preventivo N<sup>o</sup>: <b>'.$records[0]['numero_preventivo'].'</b></td>
</td> <td class="text-center" style="width:20%">Contratto N<sup>o</sup>: <b>'.$records[0]['numero_contratto'].'</b></td>
<td align="left">
'.tr('Referente').': <b>'.$referente.'</b>';
if ($c_telefono != '') {
echo '
<br>'.tr('Telefono azienda').': <b>'.$c_telefono.'</b>';
}
if ($c_email != '') {
echo '
<br>'.tr('Email').': <b>'.$c_email.'</b>';
}
echo '
</td>
</tr>'; </tr>';
// Richiesta // Dati cliente
echo ' echo '
<tr> <tr>
<td align="left" colspan="2" valign="top"><b>'.tr('Richiesta').':</b></td> <td colspan=3>
</tr> Cliente: <b>'.$c_ragionesociale.'</b>
<tr> </td>';
<td colspan="2" align="left" valign="top" style="height:5mm;">'.nl2br($records[0]['richiesta']).'</td>
//Codice fiscale
echo '
<td>
P.iva: <b>'.strtoupper($c_piva).'</b>
</td>
</tr>'; </tr>';
// Descrizione //riga 2
if ($records[0]['descrizione_intervento'] != '') { echo '
<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 '
<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 ' echo '
<tr> <tr>
<td colspan="2" align="left" valign="top"><b>'.tr('Descrizione').':</b></td> <td colspan="4" style="height:20mm;">
<b>Richiesta:</b>
<p>'.nl2br($records[0]['richiesta']).'</p>
</td>
</tr>';
}
if (!empty($records[0]['descrizione_intervento'])) {
//descrizione
echo '
<tr>
<td><b>Descrizione:</b></td>
</tr> </tr>
<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>'; </tr>';
} }
echo ' echo '

View File

@ -7,12 +7,10 @@ echo '
</div> </div>
<div class="col-xs-6 text-right"> <div class="col-xs-6 text-right">
<p><b>$f_ragionesociale$</b></p> <p><b>$f_ragionesociale$</b></p>
<p>$f_indirizzo$ $f_citta$</p> <p>$f_indirizzo$ $f_citta_full$</p>
<p>$f_piva$</p> <p>'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$</p>
<p>$f_codicefiscale$</p> <p>'.(!empty($f_codicefiscale) ? tr('C.F.').': ' : '').'$f_codicefiscale$</p>
<p>$f_capsoc$</p> <p>'.(!empty($f_capsoc) ? tr('Cap.Soc.').': ' : '').'$f_capsoc$</p>
<p>$f_telefono$</p> <p>'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$</p>
<p>$f_sitoweb$</p>
<p>$f_email$</p>
</div> </div>
</div>'; </div>';

View File

@ -7,24 +7,18 @@ include_once $docroot.'/modules/interventi/modutil.php';
$module_name = 'Interventi'; $module_name = 'Interventi';
// carica intervento // 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); $records = $dbo->fetchArray($query);
$id_cliente = $records[0]['idanagrafica']; $id_cliente = $records[0]['idanagrafica'];
$id_sede = $records[0]['idsede']; $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 // Sostituzioni specifiche
// Imposta numerointervento-data-numerocommessa su intestazione // Imposta numerointervento-data-numerocommessa su intestazione
$replaces = [ $custom = [
'intervento_numero' => $records[0]['codice'], 'intervento_numero' => $records[0]['codice'],
'intervento_data' => Translator::dateToLocale($records[0]['data_richiesta']), 'intervento_data' => Translator::dateToLocale($records[0]['data_richiesta']),
'commessa_numero' => !empty($records[0]['numero_preventivo']) ? $records[0]['codice'] : '&nbsp;', 'commessa_numero' => !empty($records[0]['numero_preventivo']) ? $records[0]['codice'] : '&nbsp;',
]; ];
$visualizza_costi = get_var("Visualizza i costi sulle stampe degli interventi");

View File

@ -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>

View File

@ -10,7 +10,7 @@
<div style="padding:10px;"> <div style="padding:10px;">
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -5,7 +5,7 @@
<img src="$docroot$/templates/ordini/logo_azienda.jpg" alt="Logo" border="0" /><br/> <img src="$docroot$/templates/ordini/logo_azienda.jpg" alt="Logo" border="0" /><br/>
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -1,138 +1,3 @@
<?php <?php
/** include_once __DIR__.'/info.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);
}

View File

@ -8,7 +8,7 @@
<td style="width:45mm; font-size:8pt; color:#555;" style="font-size:8pt;text-align:left;color:#555;"> <td style="width:45mm; font-size:8pt; color:#555;" style="font-size:8pt;text-align:left;color:#555;">
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -5,7 +5,7 @@
<img src="$docroot$/templates/preventivi/logo_azienda.jpg" alt="Logo" border="0" /><br/> <img src="$docroot$/templates/preventivi/logo_azienda.jpg" alt="Logo" border="0" /><br/>
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

16
templates/replace.php Normal file
View File

@ -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);

View File

@ -5,7 +5,7 @@
<img src="$docroot$/templates/riepilogo_contratti/logo_azienda.jpg" alt="Logo" border="0" /><br/> <img src="$docroot$/templates/riepilogo_contratti/logo_azienda.jpg" alt="Logo" border="0" /><br/>
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -5,7 +5,7 @@
<img src="$docroot$/templates/riepilogo_interventi/logo_azienda.jpg" alt="Logo" border="0" /><br/> <img src="$docroot$/templates/riepilogo_interventi/logo_azienda.jpg" alt="Logo" border="0" /><br/>
$f_ragionesociale$ $f_ragionesociale$
$f_indirizzo$ $f_indirizzo$
$f_citta$ $f_citta_full$
$f_piva$ $f_piva$
$f_codicefiscale$ $f_codicefiscale$
$f_capsoc$ $f_capsoc$

View File

@ -910,4 +910,4 @@ UPDATE `or_righe_ordini` SET `abilita_serial` = 1 WHERE `idarticolo` IN (SELECT
-- Rimozione sconto/rincaro per i preventivi -- Rimozione sconto/rincaro per i preventivi
UPDATE `co_righe_preventivi` SET `sconto_unitario` = `prc_guadagno`, `tipo_sconto` = 'PRC', `sconto` = `prc_guadagno` * `qta` WHERE `prc_guadagno` != 0; UPDATE `co_righe_preventivi` SET `sconto_unitario` = `prc_guadagno`, `tipo_sconto` = 'PRC', `sconto` = `prc_guadagno` * `qta` WHERE `prc_guadagno` != 0;
ALTER TABLE `co_righe_preventivi ` DROP `prc_guadagno `; ALTER TABLE `co_righe_preventivi` DROP `prc_guadagno `;