Aggiornamento Riepilogo Interventi
This commit is contained in:
parent
79b61b34b1
commit
5cdee79a1e
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$somma_imponibile = sum($somma_imponibile);
|
||||||
|
$somma_sconto = sum($somma_sconto);
|
||||||
|
$somma_totale_imponibile = sum($somma_totale_imponibile);
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<th width="5%" style="border-right: 0"></th>
|
||||||
|
<th class="text-right" style="border-left: 0;">
|
||||||
|
<b>'.tr('Totale', [], ['upper' => true]).':</b>
|
||||||
|
</th>
|
||||||
|
<th class="text-right">'.moneyFormat($somma_imponibile, 2).'</th>
|
||||||
|
<th class="text-right">'.moneyFormat($somma_sconto, 2).'</th>
|
||||||
|
<th class="text-right">'.moneyFormat($somma_totale_imponibile, 2).'</th>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>';
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<table style="color:#aaa; font-size:10px;">
|
||||||
|
<tr>
|
||||||
|
<td align="left" style="width:97mm;">
|
||||||
|
'.tr('Stampato con OpenSTAManager il _DATE_', ['_DATE_' => date('d/m/Y')]).'
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" style="width:97mm;">
|
||||||
|
'.tr('Pagina _PAGE_ di _TOTAL_', [
|
||||||
|
'_PAGE_' => '{PAGENO}',
|
||||||
|
'_TOTAL_' => '{nb}',
|
||||||
|
]).'
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>';
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$date_start = $_SESSION['period_start'];
|
||||||
|
$date_end = $_SESSION['period_end'];
|
||||||
|
|
||||||
|
$module = Modules::get('Interventi');
|
||||||
|
$id_module = $module['id'];
|
||||||
|
|
||||||
|
$total = Util\Query::readQuery($module);
|
||||||
|
|
||||||
|
// Lettura parametri modulo
|
||||||
|
$module_query = $total['query'];
|
||||||
|
|
||||||
|
$search_filters = [];
|
||||||
|
|
||||||
|
if (is_array($_SESSION['module_'.$id_module])) {
|
||||||
|
foreach ($_SESSION['module_'.$id_module] as $field => $value) {
|
||||||
|
if (!empty($value) && starts_with($field, 'search_')) {
|
||||||
|
$field_name = str_replace('search_', '', $field);
|
||||||
|
$field_name = str_replace('__', ' ', $field_name);
|
||||||
|
$field_name = str_replace('-', ' ', $field_name);
|
||||||
|
array_push($search_filters, '`'.$field_name.'` LIKE "%'.$value.'%"');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($search_filters)) {
|
||||||
|
$module_query = str_replace('2=2', '2=2 AND ('.implode(' AND ', $search_filters).') ', $module_query);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filtri derivanti dai permessi (eventuali)
|
||||||
|
$module_query = Modules::replaceAdditionals($id_module, $module_query);
|
||||||
|
|
||||||
|
// Scadenze
|
||||||
|
$records = $dbo->fetchArray($module_query);
|
|
@ -1,17 +0,0 @@
|
||||||
<style>
|
|
||||||
<!--
|
|
||||||
.table_values td{
|
|
||||||
border: 1px solid #888;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table_values th{
|
|
||||||
background: #abbfcb;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
-->
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<page backcolor="#ffffff" backtop="65mm" backbottom="10mm" backleft="0mm" backright="0mm" footer="" style="font-size: $font_size$">
|
|
||||||
$body$
|
|
||||||
</page>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<page_header>
|
|
||||||
<table $body_table_params$>
|
|
||||||
<!-- Intestazione fornitore -->
|
|
||||||
<tr><td style="width:110mm; font-size:8pt; color:#555;">
|
|
||||||
<img src="$logo$" alt="Logo" border="0" /><br/>
|
|
||||||
$f_ragionesociale$
|
|
||||||
$f_indirizzo$
|
|
||||||
$f_citta_full$
|
|
||||||
$f_piva$
|
|
||||||
$f_codicefiscale$
|
|
||||||
$f_capsoc$
|
|
||||||
$f_telefono$
|
|
||||||
$f_sitoweb$
|
|
||||||
$f_email$
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<!-- Intestazione cliente -->
|
|
||||||
<td style="width:100mm; font-size:10pt">
|
|
||||||
Spett.le $c_ragionesociale$
|
|
||||||
$c_indirizzo$
|
|
||||||
$c_citta$
|
|
||||||
$c_piva$
|
|
||||||
</td></tr>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
<br/>
|
|
||||||
</page_header>
|
|
|
@ -1,398 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
|
||||||
|
|
||||||
$module = Modules::get('Interventi');
|
|
||||||
$id_module = $module['id'];
|
|
||||||
|
|
||||||
$total = Util\Query::readQuery($module);
|
|
||||||
|
|
||||||
// Lettura parametri modulo
|
|
||||||
$module_query = $total['query'];
|
|
||||||
|
|
||||||
$search_filters = [];
|
|
||||||
|
|
||||||
if (is_array($_SESSION['module_'.$id_module])) {
|
|
||||||
foreach ($_SESSION['module_'.$id_module] as $field => $value) {
|
|
||||||
if (!empty($value) && starts_with($field, 'search_')) {
|
|
||||||
$field_name = str_replace('search_', '', $field);
|
|
||||||
$field_name = str_replace('__', ' ', $field_name);
|
|
||||||
$field_name = str_replace('-', ' ', $field_name);
|
|
||||||
array_push($search_filters, '`'.$field_name.'` LIKE "%'.$value.'%"');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($search_filters)) {
|
|
||||||
$module_query = str_replace('2=2', '2=2 AND ('.implode(' AND ', $search_filters).') ', $module_query);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Filtri derivanti dai permessi (eventuali)
|
|
||||||
$module_query = Modules::replaceAdditionals($id_module, $module_query);
|
|
||||||
|
|
||||||
$interventi = $dbo->fetchArray($module_query);
|
|
||||||
|
|
||||||
// Se il cliente è uno solo carico la sua intestazione, altrimenti la lascio in bianco
|
|
||||||
$idcliente = $interventi[0]['idanagrafica'];
|
|
||||||
$singolo_cliente = true;
|
|
||||||
for ($i = 0; $i < sizeof($interventi) && $singolo_cliente; ++$i) {
|
|
||||||
if ($interventi[$i]['idanagrafica'] != $idcliente) {
|
|
||||||
$singolo_cliente = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$singolo_cliente) {
|
|
||||||
$idcliente = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// carica report html
|
|
||||||
$report = file_get_contents($docroot.'/templates/riepilogo_interventi/intervento.html');
|
|
||||||
$body = file_get_contents($docroot.'/templates/riepilogo_interventi/intervento_body.html');
|
|
||||||
|
|
||||||
if (!$singolo_cliente) {
|
|
||||||
$body = str_replace('Spett.le', '', $body);
|
|
||||||
}
|
|
||||||
|
|
||||||
include_once $docroot.'/templates/pdfgen_variables.php';
|
|
||||||
|
|
||||||
$totrows = sizeof($interventi);
|
|
||||||
$totale_km = 0.00;
|
|
||||||
$totale = 0.00;
|
|
||||||
$totale_calcolato = 0.00;
|
|
||||||
$info_intervento = [];
|
|
||||||
$ore = [];
|
|
||||||
$km = [];
|
|
||||||
$ntecnici = [];
|
|
||||||
$tecnici = [];
|
|
||||||
$costi_orari = [];
|
|
||||||
$costi_km = [];
|
|
||||||
$diritto_chiamata = [];
|
|
||||||
|
|
||||||
$costo_ore_cons = [];
|
|
||||||
$costo_km_cons = [];
|
|
||||||
$diritto_chiamata_cons = [];
|
|
||||||
|
|
||||||
$idinterventi = ['0'];
|
|
||||||
$costi_interventi = [];
|
|
||||||
|
|
||||||
foreach ($interventi as $intervento) {
|
|
||||||
// Lettura dati dei tecnici dell'intervento corrente
|
|
||||||
$sessioni = $dbo->fetchArray('SELECT *, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico FROM in_interventi_tecnici WHERE idintervento='.prepare($intervento['id']));
|
|
||||||
|
|
||||||
$riga_tecnici = "<table><tr><td style='border:0px solid transparent;' colspan='2'><div style='width:75mm;'></div></td></tr>\n";
|
|
||||||
|
|
||||||
foreach ($sessioni as $sessione) {
|
|
||||||
$riga_tecnici .= "<tr><td valign='top' style='border:0px solid transparent;' align='left' >\n".$sessione['nome_tecnico']."\n</td>\n";
|
|
||||||
$riga_tecnici .= "<td valign='bottom' style='border:0px solid transparent;' align='right'>\n".Translator::dateToLocale($sessione['orario_inizio']).' - '.Translator::timeToLocale($sessione['orario_inizio']).'-'.Translator::timeToLocale($sessione['orario_fine'])."\n";
|
|
||||||
$riga_tecnici .= "</td></tr>\n";
|
|
||||||
|
|
||||||
array_push($costi_orari, floatval($sessione['prezzo_ore_unitario']));
|
|
||||||
array_push($costi_km, floatval($sessione['prezzo_km_unitario']));
|
|
||||||
array_push($diritto_chiamata, floatval($sessione['prezzo_dirittochiamata']));
|
|
||||||
|
|
||||||
array_push($costo_ore_cons, floatval($sessione['prezzo_ore_consuntivo']));
|
|
||||||
array_push($costo_km_cons, floatval($sessione['prezzo_km_consuntivo']));
|
|
||||||
array_push($diritto_chiamata_cons, floatval($sessione['prezzo_dirittochiamata_consuntivo']));
|
|
||||||
array_push($km, floatval($sessione['km']));
|
|
||||||
$totale_km += floatval($sessione['km']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$riga_tecnici .= "</table>\n";
|
|
||||||
|
|
||||||
$line = '<span>Intervento <b>'.$intervento['Numero'].'</b> del <b>'.Translator::timestampToLocale($intervento['Data inizio'])."</b><br/><small style='color:#444;'>".nl2br($intervento['descrizione'])."</small></span><br/>\n";
|
|
||||||
|
|
||||||
// Se l'elenco non è di un singolo cliente stampo anche la sua ragione sociale
|
|
||||||
if (!$singolo_cliente) {
|
|
||||||
$line .= '<br/><span><small><b>Cliente:</b> '.$intervento['Ragione sociale']."</small></span>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
array_push($info_intervento, $line);
|
|
||||||
|
|
||||||
array_push($ntecnici, $n_tecnici);
|
|
||||||
array_push($tecnici, $riga_tecnici);
|
|
||||||
array_push($ore, get_ore_intervento($intervento['id']));
|
|
||||||
|
|
||||||
$totale_dirittochiamata += floatval($rs[$i]['prezzo_dirittochiamata']);
|
|
||||||
array_push($idinterventi, "'".$intervento['id']."'");
|
|
||||||
|
|
||||||
array_push($costi_interventi, get_costi_intervento($intervento['id']));
|
|
||||||
}
|
|
||||||
|
|
||||||
$body .= '<big><big><b>RIEPILOGO INTERVENTI DAL '.Translator::dateToLocale($_SESSION['period_start']).' al '.Translator::dateToLocale($_SESSION['period_end'])."</b></big></big><br/><br/>\n";
|
|
||||||
|
|
||||||
// Sostituisco i valori tra | | con il valore del campo del db
|
|
||||||
$body .= preg_replace('/|(.+?)|/', $interventi[0]['${1}'], $body);
|
|
||||||
|
|
||||||
if (sizeof($info_intervento) > 0) {
|
|
||||||
// Tabella con riepilogo interventi, km e ore
|
|
||||||
$body .= "<table class=\"table_values\" style=\"table-layout:fixed;\" border=\"0\">\n";
|
|
||||||
$body .= "<thead>\n";
|
|
||||||
$body .= "<tr><th align=\"left\" style=\"width:75mm;\">\n";
|
|
||||||
$body .= "<span>Interventi</span>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\" style=\"width:15mm;\">\n";
|
|
||||||
$body .= "<span>km</span>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\" style=\"width:15mm;\">\n";
|
|
||||||
$body .= "<span>Costo unitario al km</span>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\" style=\"width:15mm;\">\n";
|
|
||||||
$body .= "<span>Ore</span>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\" style=\"width:15mm;\">\n";
|
|
||||||
$body .= "<span>Costo medio unitario all’ora</span>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\" style=\"width:15mm;\">\n";
|
|
||||||
$body .= "<span>Diritto chiamata</span>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\" style=\"width:15mm;\">\n";
|
|
||||||
$body .= "<span>Subtotale</span>\n";
|
|
||||||
$body .= "</th></tr>\n";
|
|
||||||
$body .= "</thead>\n";
|
|
||||||
|
|
||||||
$body .= "<tbody>\n";
|
|
||||||
|
|
||||||
// Tabella con i dati
|
|
||||||
for ($i = 0; $i < sizeof($info_intervento); ++$i) {
|
|
||||||
$subtotale_consuntivo = $costi_interventi[$i]['totale_addebito'];
|
|
||||||
$totale_consuntivo += $costi_interventi[$i]['totale_addebito'];
|
|
||||||
//$subtotale_consuntivo = floatval($costo_ore_cons[$i] + $costo_km_cons[$i] + $diritto_chiamata_cons[$i]);
|
|
||||||
//$totale_consuntivo += $subtotale_consuntivo;
|
|
||||||
|
|
||||||
//$subtotale_calcolato = $costi_orari[$i] * $ore[$i] + $costi_km[$i] * $km[$i] + $diritto_chiamata[$i];
|
|
||||||
//$totale_calcolato += $subtotale_calcolato;
|
|
||||||
$subtotale_calcolato = $costi_interventi[$i]['totale_scontato'];
|
|
||||||
$totale_calcolato += $costi_interventi[$i]['totale_scontato'];
|
|
||||||
|
|
||||||
$costi_orari[$i] = ($costi_interventi[$i]['manodopera_addebito'] / $ore[$i]);
|
|
||||||
|
|
||||||
$body .= "<tr><td>\n";
|
|
||||||
$body .= '<div style="width:75mm;"><span>'.$info_intervento[$i].'<br/><span style="font-size:10px; color:#777;"><b>Tecnici:</b></span></span><br/><small>'.$tecnici[$i]."</small></div>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Totale km
|
|
||||||
$body .= '<td align="center" valign="top">';
|
|
||||||
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($km[$i])."</span></div>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Costo km
|
|
||||||
$body .= '<td align="center" valign="top">';
|
|
||||||
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($costi_km[$i])."</span></div>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Totale ore
|
|
||||||
$body .= '<td align="center" valign="top">';
|
|
||||||
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($ore[$i])."</span></div>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Costo ore
|
|
||||||
$body .= '<td align="center" valign="top">';
|
|
||||||
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($costi_orari[$i])."</span></div>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Diritto chiamata
|
|
||||||
$body .= '<td align="center" valign="top">';
|
|
||||||
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($diritto_chiamata[$i])."</span></div>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Subtot
|
|
||||||
$body .= '<td align="center" valign="top">';
|
|
||||||
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($subtotale_calcolato)."</span></div>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$body .= "<tr><td style='border:0px;' align=\"right\">\n";
|
|
||||||
$body .= "<b>Totale:</b>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Totale costo km
|
|
||||||
$body .= "<td align=\"center\">\n";
|
|
||||||
$body .= '<b>'.Translator::numberToLocale($totale_km)."</b>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
$body .= "<td></td>\n";
|
|
||||||
|
|
||||||
// Totale costo ore
|
|
||||||
$body .= "<td align=\"center\">\n";
|
|
||||||
$body .= '<b>'.Translator::numberToLocale(sum($ore))."</b>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
$body .= "<td></td>\n";
|
|
||||||
|
|
||||||
// Totale diritto chiamata
|
|
||||||
$body .= "<td align=\"center\">\n";
|
|
||||||
$body .= '<b>'.Translator::numberToLocale($totale_dirittochiamata)."</b>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
|
|
||||||
$body .= '<b>'.moneyFormat($totale_calcolato)."</b>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
|
|
||||||
// Riga dello sconto
|
|
||||||
$sconto = $totale_calcolato - $totale_consuntivo;
|
|
||||||
if ($sconto != 0) {
|
|
||||||
/*
|
|
||||||
$body .= "<tr><td style=\"border:0px;\" align=\"right\" colspan=\"6\">\n";
|
|
||||||
$body .= "<b>Arrotondamenti:</b>\n";
|
|
||||||
$body .= "</td><td align=\"center\">\n";
|
|
||||||
$body .= "<b>".moneyFormat( -$sconto)."</b>\n";
|
|
||||||
$body .= "</td></tr>\n\n";
|
|
||||||
*/
|
|
||||||
|
|
||||||
$body .= "<tr><td style=\"border:0px;\" align=\"right\" colspan=\"6\">\n";
|
|
||||||
$body .= "<b>Totale scontato:</b>\n";
|
|
||||||
$body .= "</td><td align=\"center\">\n";
|
|
||||||
$body .= '<b>'.moneyFormat($totale_calcolato - $sconto)."</b>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$totale_intervento_scontato = $totale_calcolato - $sconto;
|
|
||||||
$body .= "</tbody>\n";
|
|
||||||
$body .= "</table><br/>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Conteggio articoli utilizzati
|
|
||||||
$query = "SELECT *, (SELECT codice FROM in_interventi WHERE in_interventi.id = mg_articoli_interventi.idintervento ) AS codice, (SELECT percentuale FROM co_iva WHERE id=(SELECT idiva_vendita FROM mg_articoli WHERE id=idarticolo)) AS prciva_vendita, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=mg_articoli_interventi.idintervento GROUP BY idintervento HAVING idintervento=mg_articoli_interventi.idintervento) AS data_intervento, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING idintervento IN(".implode(',', $idinterventi).") AND NOT idarticolo='0' ORDER BY idarticolo ASC";
|
|
||||||
$rs2 = $dbo->fetchArray($query);
|
|
||||||
if (sizeof($rs2) > 0) {
|
|
||||||
$body .= "<table style=\"width:100%;\" class=\"table_values\" cellspacing=\"2\" cellpadding=\"5\" style=\"border-color:#aaa;\">\n";
|
|
||||||
$body .= "<thead>\n";
|
|
||||||
$body .= "<tr><th align='center' colspan='4'><b>Materiale utilizzato per gli interventi</b></th></tr>\n";
|
|
||||||
|
|
||||||
$body .= "<tr><th style=\"width:130mm;\">\n";
|
|
||||||
$body .= "<b>Articolo</b>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th style=\"width:10mm;\" align=\"center\">\n";
|
|
||||||
$body .= "<b>Q.tà</b>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th style=\"width:20mm;\" align=\"center\">\n";
|
|
||||||
$body .= "<b>Prezzo unitario</b>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th style=\"width:20mm;\" align=\"center\">\n";
|
|
||||||
$body .= "<b>Subtot</b>\n";
|
|
||||||
$body .= "</th></tr>\n";
|
|
||||||
$body .= "</thead>\n";
|
|
||||||
|
|
||||||
$totale_articoli = 0.00;
|
|
||||||
|
|
||||||
for ($i = 0; $i < sizeof($rs2); ++$i) {
|
|
||||||
// Articolo
|
|
||||||
$body .= "<tr><td class='first_cell'>\n";
|
|
||||||
$body .= '<span>'.nl2br($rs2[$i]['descrizione'])."</span>\n";
|
|
||||||
if ($rs2[$i]['codice'] != '' && $rs2[$i]['codice'] != 'Lotto: , SN: , Altro: ') {
|
|
||||||
$body .= '<br/><small>'.$rs2[$i]['codice']."</small>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$body .= '<br/><span><small style="color:#777;">Intervento '.$rs2[$i]['codice'].' del '.Translator::dateToLocale($rs2[$i]['data_intervento'])."</small></span>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Quantità
|
|
||||||
$qta = $rs2[$i]['sumqta'];
|
|
||||||
$body .= "<td class='table_cell' align='center'>\n";
|
|
||||||
$body .= '<span>'.$rs2[$i]['sumqta']."</span>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Prezzo unitario
|
|
||||||
$body .= "<td class='table_cell' align='center'>\n";
|
|
||||||
$netto = $rs2[$i]['prezzo_vendita'];
|
|
||||||
$netto = $netto + $netto / 100 * $rs2[$i]['prc_guadagno'];
|
|
||||||
$iva = $netto / 100 * $rs2[$i]['prciva_vendita'];
|
|
||||||
$body .= '<span>'.moneyFormat($netto)."</span>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Prezzo di vendita
|
|
||||||
$body .= "<td class='table_cell' align='center'>\n";
|
|
||||||
$body .= '<span><span>'.moneyFormat($netto * $qta)."</span></span>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$totale_articoli += $netto * $qta;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Totale spesa articoli
|
|
||||||
$body .= "<tr><td colspan=\"3\" align=\"right\">\n";
|
|
||||||
$body .= "<b>TOTALE MATERIALE UTILIZZATO:</b>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
|
|
||||||
$body .= '<b>'.moneyFormat($totale_articoli)."</b>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$body .= "</table><br/>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Conteggio spese aggiuntive
|
|
||||||
$query = 'SELECT *, (SELECT codice FROM in_interventi WHERE in_interventi.id = in_righe_interventi.idintervento ) AS codice, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=in_righe_interventi.idintervento GROUP BY idintervento HAVING idintervento=in_righe_interventi.idintervento ORDER BY orario_inizio) AS data_intervento FROM in_righe_interventi WHERE idintervento IN('.implode(',', $idinterventi).') ORDER BY id ASC';
|
|
||||||
$rs2 = $dbo->fetchArray($query);
|
|
||||||
|
|
||||||
if (sizeof($rs2) > 0) {
|
|
||||||
$body .= "<table style=\"width:100%;\" class=\"table_values\" cellspacing=\"2\" cellpadding=\"5\" style=\"border-color:#aaa;\">\n";
|
|
||||||
$body .= "<col width=\"335\"><col width=\"50\"><col width=\"142\"><col width=\"142\">\n";
|
|
||||||
|
|
||||||
$body .= "<thead>\n";
|
|
||||||
$body .= "<tr><th align='center' colspan='4'><b>Spese aggiuntive</b></th></tr>\n";
|
|
||||||
|
|
||||||
$body .= "<tr><th>\n";
|
|
||||||
$body .= "<b>Descrizione</b>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\">\n";
|
|
||||||
$body .= "<b>Q.tà</b>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\">\n";
|
|
||||||
$body .= "<b>Prezzo unitario</b>\n";
|
|
||||||
$body .= "</th>\n";
|
|
||||||
|
|
||||||
$body .= "<th align=\"center\">\n";
|
|
||||||
$body .= "<b>Subtot</b>\n";
|
|
||||||
$body .= "</th></tr>\n";
|
|
||||||
$body .= "</thead>\n";
|
|
||||||
|
|
||||||
$totale_spese = 0.00;
|
|
||||||
|
|
||||||
for ($i = 0; $i < sizeof($rs2); ++$i) {
|
|
||||||
// Articolo
|
|
||||||
$body .= "<tr><td class='first_cell'>\n";
|
|
||||||
$body .= '<span>'.$rs2[$i]['descrizione']."</span><br/>\n";
|
|
||||||
$body .= '<span><small style="color:#777;">Intervento '.$rs2[$i]['codice'].' del '.Translator::dateToLocale($rs2[$i]['data_intervento'])."</small></span>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Quantità
|
|
||||||
$qta = $rs2[$i]['qta'];
|
|
||||||
$body .= "<td class='table_cell' align='center'>\n";
|
|
||||||
$body .= '<span>'.Translator::numberToLocale($rs2[$i]['qta'])."</span>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Prezzo unitario
|
|
||||||
$body .= "<td class='table_cell' align='center'>\n";
|
|
||||||
$netto = $rs2[$i]['prezzo_vendita'];
|
|
||||||
$body .= '<span>'.moneyFormat($netto)."</span>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
// Prezzo di vendita
|
|
||||||
$body .= "<td class='table_cell' align='center'>\n";
|
|
||||||
$body .= '<span>'.moneyFormat($netto * $qta)."</span>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$totale_spese += $netto * $qta;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Totale spese aggiuntive
|
|
||||||
$body .= "<tr><td colspan=\"3\" align=\"right\">\n";
|
|
||||||
$body .= "<b>ALTRE SPESE:</b>\n";
|
|
||||||
$body .= "</td>\n";
|
|
||||||
|
|
||||||
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
|
|
||||||
$body .= '<b>'.moneyFormat($totale_spese)."</b>\n";
|
|
||||||
$body .= "</td></tr>\n";
|
|
||||||
$body .= "</table><br/>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Totale complessivo intervento
|
|
||||||
$body .= "<p align=\"right\">\n";
|
|
||||||
$body .= '<big><b>TOTALE INTERVENTI: '.moneyFormat($totale_intervento_scontato + $totale_articoli + $totale_spese)."</b></big>\n";
|
|
||||||
$body .= "</p>\n";
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
use Modules\Interventi\Intervento;
|
||||||
|
|
||||||
|
$intervento = Intervento::find($record['id']);
|
||||||
|
|
||||||
|
$imponibile = $intervento->imponibile;
|
||||||
|
$sconto = $intervento->sconto;
|
||||||
|
$totale_imponibile = $intervento->totale_imponibile;
|
||||||
|
|
||||||
|
$somma_imponibile[] = $imponibile;
|
||||||
|
$somma_sconto[] = $sconto;
|
||||||
|
$somma_totale_imponibile[] = $totale_imponibile;
|
||||||
|
|
||||||
|
// Informazioni intervento
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<p>'.tr('Intervento _NUM_ del _DATE_', [
|
||||||
|
'_NUM_' => $intervento['codice'],
|
||||||
|
'_DATE_' => dateFormat($record['Data inizio']),
|
||||||
|
]).'</p>
|
||||||
|
<small><b>'.tr('Cliente').':</b> '.$intervento->anagrafica->ragione_sociale.'</small>
|
||||||
|
</td>
|
||||||
|
<td class="text-right">'.moneyFormat($imponibile, 2).'</td>
|
||||||
|
<td class="text-right">'.moneyFormat($sconto, 2).'</td>
|
||||||
|
<td class="text-right">'.moneyFormat($totale_imponibile, 2).'</td>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
// Sessioni
|
||||||
|
$sessioni = $intervento->sessioni;
|
||||||
|
if (!empty($sessioni)) {
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td style="border-top: 0; border-bottom: 0;"></td>
|
||||||
|
<th style="background-color: #eee"><small>'.tr('Sessioni').'</small></th>
|
||||||
|
<th class="text-center" style="background-color: #eee"><small>'.tr('Data').'</small></th>
|
||||||
|
<th class="text-center" style="background-color: #eee"><small>'.tr('Inizio').'</small></th>
|
||||||
|
<th class="text-center" style="background-color: #eee"><small>'.tr('Fine').'</small></th>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
foreach ($sessioni as $sessione) {
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td style="border-top: 0; border-bottom: 0;"></td>
|
||||||
|
<td><small>'.$sessione->anagrafica->ragione_sociale.'</small></td>
|
||||||
|
<td class="text-center"><small>'.dateFormat($sessione->orario_inizio).'</small></td>
|
||||||
|
<td class="text-center"><small>'.timeFormat($sessione->orario_inizio).'</small></td>
|
||||||
|
<td class="text-center"><small>'.timeFormat($sessione->orario_fine).'</small></td>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Righe
|
||||||
|
$righe = $intervento->getRighe();
|
||||||
|
if (!$righe->isEmpty()) {
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td style="border-top: 0; border-bottom: 0;"></td>
|
||||||
|
<th style="background-color: #eee"><small>'.tr('Materiale utilizzato e spese aggiuntive').'</small></th>
|
||||||
|
<th class="text-center" style="background-color: #eee"><small>'.tr('Qta').'</small></th>
|
||||||
|
<th class="text-center" style="background-color: #eee"><small>'.tr('Prezzo unitario').'</small></th>
|
||||||
|
<th class="text-center" style="background-color: #eee"><small>'.tr('Imponibile').'</small></th>
|
||||||
|
</tr>';
|
||||||
|
|
||||||
|
foreach ($righe as $riga) {
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<td style="border-top: 0; border-bottom: 0;"></td>
|
||||||
|
<td><small>'.$riga->descrizione.'</small></td>
|
||||||
|
<td class="text-center"><small>'.$riga->qta.' '.$riga->um.'</small></td>
|
||||||
|
<td class="text-right"><small>'.moneyFormat($riga->prezzo_unitario_vendita).'</small></td>
|
||||||
|
<td class="text-right"><small>'.moneyFormat($riga->totale_imponibile).'</small></td>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<h4><b>'.tr('Riepilogo interventi dal _START_ al _END_', [
|
||||||
|
'_START_' => Translator::dateToLocale($date_start),
|
||||||
|
'_END_' => Translator::dateToLocale($date_end),
|
||||||
|
], ['upper' => true]).'</b></h4>
|
||||||
|
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">'.tr('Documento', [], ['upper' => true]).'</th>
|
||||||
|
<th class="text-center">'.tr('Imponibile', [], ['upper' => true]).'</th>
|
||||||
|
<th class="text-center">'.tr('Sconto', [], ['upper' => true]).'</th>
|
||||||
|
<th class="text-center">'.tr('Totale imponibile', [], ['upper' => true]).'</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>';
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$module_name = 'Scadenzario';
|
|
||||||
$date_start = $_SESSION['period_start'];
|
$date_start = $_SESSION['period_start'];
|
||||||
$date_end = $_SESSION['period_end'];
|
$date_end = $_SESSION['period_end'];
|
||||||
|
|
||||||
|
|
|
@ -21,3 +21,7 @@ echo '
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>';
|
<tbody>';
|
||||||
|
|
||||||
|
$somma_imponibile = [];
|
||||||
|
$somma_sconto = [];
|
||||||
|
$somma_totale_imponibile = [];
|
||||||
|
|
Loading…
Reference in New Issue