fetchArray($queryc);
for ($i = 0; $i < sizeof($rsc); ++$i) {
$colori[$rsc[$i]['idstatointervento']] = $rsc[$i]['colore'];
$stati[$rsc[$i]['idstatointervento']] = $rsc[$i]['descrizione'];
}
// Contenitore per i totali interventi per stato
$totale_x_stato = [];
// Interventi collegati
$q = 'SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento = in_interventi.id) AS data, (SELECT costo_orario FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS costo_ore_unitario, (SELECT costo_km FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS costo_km_unitario, (SELECT SUM(costo_diritto_chiamata) FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS dirittochiamata, (SELECT SUM(km) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS 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` FROM co_righe_contratti INNER JOIN in_interventi ON co_righe_contratti.idintervento=in_interventi.id WHERE co_righe_contratti.idcontratto='.prepare($id_record).' ORDER BY data DESC';
$rscontratti = $dbo->fetchArray($q);
$totale_ore = 0.0;
$totale_km = 0.0;
$totale = 0;
$interventi = [];
$ore = [];
$km = [];
$ntecnici = [];
$tecnici = [];
$costi_orari = [];
$costi_km = [];
$idinterventi = [];
$tot_ore_consuntivo = [];
$tot_km_consuntivo = [];
$tot_diritto_chiamata = [];
if (!empty($rscontratti)) {
foreach ($rscontratti as $r) {
$totale_ore = 0;
$totale_km = 0;
$totale_diritto_chiamata = 0;
// Lettura numero tecnici collegati all'intervento
$query = 'SELECT an_anagrafiche.idanagrafica, prezzo_ore_consuntivo, prezzo_km_consuntivo, prezzo_ore_unitario, prezzo_km_unitario, prezzo_dirittochiamata, ragione_sociale, orario_inizio, orario_fine, in_interventi_tecnici.km FROM in_interventi_tecnici LEFT OUTER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico=an_anagrafiche.idanagrafica WHERE idintervento='.prepare($r['id']);
$rst = $dbo->fetchArray($query);
$n_tecnici = sizeof($rst);
$tecnici_full = '';
$t = 0;
for ($j = 0; $j < $n_tecnici; ++$j) {
$t1 = datediff('n', $rst[$j]['orario_inizio'], $rst[$j]['orario_fine']);
$orario = '';
if (floatval($t1) > 0) {
$orario .= date('d/m/Y H:i', strtotime($rst[$j]['orario_inizio'])).' - '.date('d/m/Y H:i', strtotime($rst[$j]['orario_fine']));
}
$tecnici_full .= $rst[$j]['ragione_sociale'].' ('.$orario.')
'.Translator::numberToLocale($t1 / 60).'h x '.Translator::numberToLocale($rst[$j]['prezzo_ore_unitario']).' €/h
'.Translator::numberToLocale($rst[$j]['km']).'km x '.Translator::numberToLocale($rst[$j]['prezzo_km_unitario']).' km/h
'.Translator::numberToLocale($rst[$j]['prezzo_dirittochiamata']).'€ d.c.
';
// Conteggio ore totali
$t += $t1 / 60;
$totale_ore += $rst[$j]['prezzo_ore_consuntivo'];
$totale_km += $rst[$j]['prezzo_km_consuntivo'];
$totale_diritto_chiamata += $rst[$j]['prezzo_dirittochiamata'];
}
$totale_ore_impiegate += $t;
$desc = nl2br($r['descrizione']);
$line = Modules::link('Interventi', $r['id'], tr('Intervento _NUM_ del _DATE_', [
'_NUM_' => $r['codice'],
'_DATE_' => Translator::dateToLocale($r['data']),
])).'
'.$desc;
// Inutilizzati
$contratti[] = $line;
$tot_ore_consuntivo[] = $totale_ore;
$tot_dirittochiamata[] = $totale_diritto_chiamata;
$idinterventi[] = "'".$rscontrattii[0]['idintervento']."'";
$ntecnici[] = $n_tecnici;
// Utilizzati
$tot_km_consuntivo[] = $totale_km;
$tecnici[] = $tecnici_full;
$interventi[] = $line;
}
}
// Tabella con riepilogo interventi e ore
if (!empty($rscontratti)) {
echo '