fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($idintervento_template).' ORDER BY codice DESC LIMIT 0,1'); if (!empty($rs[0]['codice'])) { $new_codice = Util\Generator::generate(setting('Formato codice intervento'), $rs[0]['codice']); } if (empty($new_codice)) { $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($idintervento_template).' ORDER BY codice DESC LIMIT 0,1'); $new_codice = Util\Generator::generate(setting('Formato codice intervento'), $rs[0]['codice']); } // Se ho passato l'idanagrafica, carico il tipo di intervento di default $idanagrafica = filter('idanagrafica'); $idsede = filter('idsede'); $idimpianto = null; $idzona = null; $idtipointervento = null; $idstatointervento = null; $richiesta = null; $impianti = []; // Come tecnico posso aprire attività solo a mio nome if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) { $idtecnico = $user['idanagrafica']; } else { $idtecnico = null; } if (!empty($idanagrafica)) { $rs = $dbo->fetchArray('SELECT idtipointervento_default, idzona FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); $idtipointervento = $rs[0]['idtipointervento_default']; $idzona = $rs[0]['idzona']; $idstatointervento = 'WIP'; $richiesta = filter('richiesta'); } // Calcolo orario di inizio e fine di default if (null !== filter('orario_inizio') && '00:00:00' != filter('orario_inizio')) { $orario_inizio = filter('orario_inizio'); $orario_fine = filter('orario_fine'); } else { $orario_inizio = date('H').':00'; $orario_fine = date('H', time() + 60 * 60).':00'; } // Se sto pianificando un contratto, leggo tutti i dati del contratto per predisporre l'aggiunta intervento $id_intervento = filter('id_intervento'); $idcontratto = filter('idcontratto'); $idcontratto_riga = (!empty($idcontratto)) ? filter('id_intervento'):filter('idcontratto_riga'); $idordineservizio = filter('idordineservizio'); if (!empty($idcontratto) && !empty($idordineservizio)) { $rs = $dbo->fetchArray('SELECT *, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = co_contratti.idanagrafica) AS idzona FROM co_contratti WHERE id='.prepare($idcontratto)); $idanagrafica = $rs[0]['idanagrafica']; $idzona = $rs[0]['idzona']; // Info riga pianificata $rs = $dbo->fetchArray('SELECT * FROM co_ordiniservizio WHERE idcontratto='.prepare($idcontratto).' AND id='.prepare($idordineservizio)); $data = $rs[0]['data_scadenza']; $idimpianto = $rs[0]['id']; // Seleziono "Ordine di servizio" come tipo intervento $rs = $dbo->fetchArray("SELECT idtipointervento FROM in_tipiintervento WHERE descrizione='Ordine di servizio'"); $idtipointervento = $rs[0]['idtipointervento']; // Spunto il tecnico di default assegnato all'impianto $rs = $dbo->fetchArray('SELECT idtecnico FROM my_impianti WHERE id='.prepare($idimpianto)); $idtecnico = $rs[0]['idtecnico'] ?: ''; } // Se sto pianificando un contratto, leggo tutti i dati del contratto per predisporre l'aggiunta intervento elseif (!empty($idcontratto) && !empty($idcontratto_riga)) { $rs = $dbo->fetchArray('SELECT *, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = co_contratti.idanagrafica) AS idzona FROM co_contratti WHERE id='.prepare($idcontratto)); $idanagrafica = $rs[0]['idanagrafica']; $idzona = $rs[0]['idzona']; // Info riga pianificata $rs = $dbo->fetchArray('SELECT *, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_promemoria.idtipointervento) AS tempo_standard FROM co_promemoria WHERE idcontratto='.prepare($idcontratto).' AND id='.prepare($idcontratto_riga)); $idtipointervento = $rs[0]['idtipointervento']; $data = (null !== filter('data')) ? filter('data') : $rs[0]['data_richiesta']; $richiesta = $rs[0]['richiesta']; $idsede = $rs[0]['idsede']; $idimpianti = $rs[0]['idimpianti']; // aumento orario inizio del tempo standard definito dalla tipologia dell'intervento (PRESO DAL PROMEMORIA) if (!empty($rs[0]['tempo_standard'])) { $orario_fine = date('H:i:s', strtotime($orario_inizio) + ((60 * 60) * $rs[0]['tempo_standard'])); } // se gli impianti non sono stati definiti nel promemoria, carico tutti gli impianti a contratto if (empty($idimpianti)) { $rs = $dbo->fetchArray('SELECT idimpianto FROM my_impianti_contratti WHERE idcontratto='.prepare($idcontratto)); $idimpianto = implode(',', array_column($rs, 'idimpianto')); } else { $idimpianto = $idimpianti; // Spunto il tecnico di default assegnato all'impianto $rs = $dbo->fetchArray('SELECT idtecnico FROM my_impianti WHERE id='.prepare($idimpianto)); $idtecnico = $rs[0]['idtecnico'] ?: ''; } // Seleziono "In programmazione" come stato $rs = $dbo->fetchArray("SELECT * FROM in_statiintervento WHERE idstatointervento='WIP'"); $idstatointervento = $rs[0]['idstatointervento']; } // Intervento senza sessioni elseif (!empty($id_intervento)) { // Info riga pianificata $rs = $dbo->fetchArray('SELECT *, (SELECT idcontratto FROM co_promemoria WHERE idintervento=in_interventi.id LIMIT 0,1) AS idcontratto, in_interventi.id_preventivo as idpreventivo, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = in_interventi.idtipointervento) AS tempo_standard FROM in_interventi WHERE id='.prepare($id_intervento)); $idtipointervento = $rs[0]['idtipointervento']; $data = (null !== filter('data')) ? filter('data') : $rs[0]['data_richiesta']; $data_richiesta = $rs[0]['data_richiesta']; $richiesta = $rs[0]['richiesta']; $idsede = $rs[0]['idsede']; $idanagrafica = $rs[0]['idanagrafica']; $idclientefinale = $rs[0]['idclientefinale']; $idstatointervento = $rs[0]['idstatointervento']; $idcontratto = $rs[0]['idcontratto']; $idpreventivo = $rs[0]['idpreventivo']; $idzona = $rs[0]['idzona']; // Aumento orario inizio del tempo standard definito dalla tipologia dell'intervento (PRESO DAL PROMEMORIA) if (!empty($rs[0]['tempo_standard'])) { $orario_fine = date('H:i:s', strtotime($orario_inizio) + ((60 * 60) * $rs[0]['tempo_standard'])); } $rs = $dbo->fetchArray('SELECT idimpianto FROM my_impianti_interventi WHERE idintervento='.prepare($id_intervento)); $idimpianto = implode(',', array_column($rs, 'idimpianto')); } if (empty($data)) { if (null !== filter('data')) { $data = filter('data'); } else { $data = date(formatter()->getDatePattern()); } } $_SESSION['superselect']['idanagrafica'] = $idanagrafica; $orario_inizio = $data.' '.$orario_inizio; $orario_fine = $data.' '.$orario_fine; ?>