. */ include_once __DIR__.'/../../core.php'; use Models\User; $show_costi = true; // Limitazione delle azioni dei tecnici if ($user['gruppo'] == 'Tecnici') { $show_costi = !empty($user['idanagrafica']) && setting('Mostra i prezzi al tecnico'); } // Stato dell'intervento $rss = $dbo->fetchArray('SELECT is_completato AS flag_completato FROM in_statiintervento WHERE idstatointervento = (SELECT idstatointervento FROM in_interventi WHERE id='.prepare($id_record).')'); $is_completato = $rss[0]['flag_completato']; // Sessioni dell'intervento $query = 'SELECT in_interventi_tecnici.*, (in_interventi_tecnici.prezzo_ore_unitario * in_interventi_tecnici.ore - in_interventi_tecnici.sconto) AS prezzo_ore_consuntivo, (in_interventi_tecnici.prezzo_km_unitario * in_interventi_tecnici.km - in_interventi_tecnici.scontokm) AS prezzo_km_consuntivo, (in_interventi_tecnici.prezzo_ore_unitario_tecnico * in_interventi_tecnici.ore) AS prezzo_ore_consuntivo, (in_interventi_tecnici.prezzo_km_unitario_tecnico * in_interventi_tecnici.km) AS prezzo_km_consuntivo, an_anagrafiche.ragione_sociale, an_anagrafiche.deleted_at AS anagrafica_deleted_at, in_tipiintervento.deleted_at AS tipo_deleted_at, in_tipiintervento.descrizione AS descrizione_tipo, in_interventi_tecnici.tipo_scontokm AS tipo_sconto_km, user.id AS id_user FROM in_interventi_tecnici INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica LEFT JOIN (SELECT zz_users.idanagrafica, zz_users.id FROM zz_users GROUP BY zz_users.idanagrafica) AS user ON user.idanagrafica = an_anagrafiche.idanagrafica INNER JOIN in_tipiintervento ON in_interventi_tecnici.idtipointervento = in_tipiintervento.idtipointervento WHERE in_interventi_tecnici.idintervento='.prepare($id_record).' ORDER BY ragione_sociale ASC, in_interventi_tecnici.orario_inizio ASC, in_interventi_tecnici.id ASC'; $sessioni = $dbo->fetchArray($query); $prev_tecnico = ''; if (!empty($sessioni)) { foreach ($sessioni as $key => $sessione) { // Intestazione tecnico if ($prev_tecnico != $sessione['ragione_sociale']) { $prev_tecnico = $sessione['ragione_sociale']; echo '
'; if ($sessione['id_user']) { $user = User::where('idanagrafica', $sessione['idtecnico'])->orderByRaw('CASE WHEN idgruppo = 2 THEN -1 ELSE idgruppo END')->first(); echo ' '; } else { echo ' '; } echo ' '.$sessione['ragione_sociale'].' '.(($sessione['anagrafica_deleted_at']) ? '('.tr('Eliminato').')' : '').' | '.tr('Orario inizio').' | '.tr('Orario fine').' | '.tr('Ore').' | '.tr('Km').' | '; if ($show_costi) { echo ''.tr('Sconto ore').' | '.tr('Sconto km').' | '; } if (!$is_completato) { echo ''; } echo ' |
---|---|---|---|---|---|---|---|
'.$sessione['descrizione_tipo'].' '.(($sessione['tipo_deleted_at']) ? '('.tr('Eliminato').')' : '').' | '; // Orario di inizio echo ''.Translator::timestampToLocale($sessione['orario_inizio']).' | '; // Orario di fine echo ''.Translator::timestampToLocale($sessione['orario_fine']).' | '; // ORE echo ''.($ore <= 0 ? '' : '').' '.numberFormat($ore, 'qta').' | '; // KM echo ''.numberFormat($km, 'qta').' | '; // Sconto ore if ($show_costi) { echo ''.tr('_TOT_ _TYPE_', [ '_TOT_' => Translator::numberToLocale($sessione['sconto_unitario']), '_TYPE_' => ($sessione['tipo_sconto'] == 'PRC' ? '%' : currency()), ]).' | '; } // Sconto km if ($show_costi) { echo ''.tr('_TOT_ _TYPE_', [ '_TOT_' => Translator::numberToLocale($sessione['scontokm_unitario']), '_TYPE_' => ($sessione['tipo_sconto_km'] == 'PRC' ? '%' : currency()), ]).' | '; } // Pulsante per la sessione if (!$is_completato) { echo ''; } echo ' |