diff --git a/modules/interventi/api/delete.php b/modules/interventi/api/delete.php index 75c3116c6..f00e8837d 100644 --- a/modules/interventi/api/delete.php +++ b/modules/interventi/api/delete.php @@ -2,9 +2,15 @@ switch ($resource) { case 'sessioni_intervento': - $dbo->query('DELETE FROM in_interventi_tecnici WHERE idintervento = :id_intervento', [ - ':id_intervento' => $request['id_intervento'], - ]); + if ($user['gruppo'] == 'Tecnici') { + $query = 'DELETE FROM in_interventi_tecnici WHERE idintervento = :id_intervento AND `idtecnico` = :id_tecnico'; + $parameters = [ + ':id_intervento' => $request['id_intervento'], + ':id_tecnico' => $user['idanagrafica'], + ]; + + $dbo->query($query, $parameters); + } break; @@ -14,6 +20,7 @@ switch ($resource) { ]); // TODO: prevedere la modifica di quantità! + // TODO: prevedere causali break; } diff --git a/modules/interventi/api/retrieve.php b/modules/interventi/api/retrieve.php index 025365c4a..a8291748f 100644 --- a/modules/interventi/api/retrieve.php +++ b/modules/interventi/api/retrieve.php @@ -66,7 +66,7 @@ switch ($resource) { `in_interventi`.firma_nome, (SELECT GROUP_CONCAT( CONCAT(my_impianti.matricola, ' - ', my_impianti.nome) SEPARATOR ', ') FROM (my_impianti_interventi INNER JOIN my_impianti ON my_impianti_interventi.idimpianto=my_impianti.id) WHERE my_impianti_interventi.idintervento = `in_interventi`.`id`) AS `impianti`, (SELECT MAX(`orario_fine`) FROM `in_interventi_tecnici` WHERE `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id`) AS `data`, - (SELECT GROUP_CONCAT(ragione_sociale SEPARATOR ', ') FROM `in_interventi_tecnici` INNER JOIN `an_anagrafiche` ON `in_interventi_tecnici`.`idtecnico` = `an_anagrafiche`.`idanagrafica` WHERE `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id`) AS `tecnici`, + (SELECT GROUP_CONCAT(DISTINCT ragione_sociale SEPARATOR ', ') FROM `in_interventi_tecnici` INNER JOIN `an_anagrafiche` ON `in_interventi_tecnici`.`idtecnico` = `an_anagrafiche`.`idanagrafica` WHERE `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id`) AS `tecnici`, `in_statiintervento`.`colore` AS `bgcolor`, `in_statiintervento`.`descrizione` AS `stato`, `in_interventi`.`idtipointervento` AS `tipo` diff --git a/modules/interventi/modutil.php b/modules/interventi/modutil.php index dee6cda15..3d2c93d35 100644 --- a/modules/interventi/modutil.php +++ b/modules/interventi/modutil.php @@ -54,6 +54,12 @@ function add_tecnico($idintervento, $idtecnico, $inizio, $fine, $idcontratto = n { $dbo = Database::getConnection(); + // Controllo sull'identità del tecnico + $tecnico = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE an_anagrafiche.idanagrafica = ".prepare($idtecnico)." AND an_tipianagrafiche.descrizione = 'Tecnico'"); + if (empty($tecnico)) { + return false; + } + $rs = $dbo->fetchArray('SELECT idanagrafica, idsede, idtipointervento FROM in_interventi WHERE id='.prepare($idintervento)); $idanagrafica = $rs[0]['idanagrafica']; $idsede = $rs[0]['idsede']; @@ -154,6 +160,8 @@ function add_tecnico($idintervento, $idtecnico, $inizio, $fine, $idcontratto = n 'prezzo_km_consuntivo_tecnico' => 0, 'prezzo_dirittochiamata_tecnico' => $costo_dirittochiamata_tecnico, ]); + + return true; } function get_costi_intervento($id_intervento) diff --git a/modules/utenti/api/create.php b/modules/utenti/api/create.php index c3c8d4d3d..ea3b5b375 100644 --- a/modules/utenti/api/create.php +++ b/modules/utenti/api/create.php @@ -8,9 +8,12 @@ switch ($resource) { $token = Auth::getInstance()->getToken(); // Informazioni da restituire tramite l'API - $response['user'] = $dbo->fetchArray('SELECT `ragione_sociale`, `codice`, `piva`, `codice_fiscale`, `indirizzo`, `citta`, `provincia`, (SELECT `nome` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione, `telefono`, `fax`, `cellulare`, `an_anagrafiche`.`email` FROM `zz_users` LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica` WHERE `id` = '.prepare($user['id']))[0]; + $response['user'] = $dbo->fetchOne('SELECT `ragione_sociale`, `codice`, `piva`, `codice_fiscale`, `indirizzo`, `citta`, `provincia`, (SELECT `nome` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione, `telefono`, `fax`, `cellulare`, `an_anagrafiche`.`email` FROM `zz_users` LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica` WHERE `id` = :id', [ + ':id' => $user['id'], + ]); $response['token'] = $token; + $response['group'] = $user['gruppo']; $response['version'] = Update::getVersion(); } else {