Miglioramento gestione tecnici API

This commit is contained in:
Thomas Zilio 2018-08-31 17:33:33 +02:00
parent 35c6ad0865
commit 3ec71ec1a7
4 changed files with 23 additions and 5 deletions

View File

@ -2,9 +2,15 @@
switch ($resource) { switch ($resource) {
case 'sessioni_intervento': case 'sessioni_intervento':
$dbo->query('DELETE FROM in_interventi_tecnici WHERE idintervento = :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_intervento' => $request['id_intervento'],
]); ':id_tecnico' => $user['idanagrafica'],
];
$dbo->query($query, $parameters);
}
break; break;
@ -14,6 +20,7 @@ switch ($resource) {
]); ]);
// TODO: prevedere la modifica di quantità! // TODO: prevedere la modifica di quantità!
// TODO: prevedere causali
break; break;
} }

View File

@ -66,7 +66,7 @@ switch ($resource) {
`in_interventi`.firma_nome, `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 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 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`.`colore` AS `bgcolor`,
`in_statiintervento`.`descrizione` AS `stato`, `in_statiintervento`.`descrizione` AS `stato`,
`in_interventi`.`idtipointervento` AS `tipo` `in_interventi`.`idtipointervento` AS `tipo`

View File

@ -54,6 +54,12 @@ function add_tecnico($idintervento, $idtecnico, $inizio, $fine, $idcontratto = n
{ {
$dbo = Database::getConnection(); $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)); $rs = $dbo->fetchArray('SELECT idanagrafica, idsede, idtipointervento FROM in_interventi WHERE id='.prepare($idintervento));
$idanagrafica = $rs[0]['idanagrafica']; $idanagrafica = $rs[0]['idanagrafica'];
$idsede = $rs[0]['idsede']; $idsede = $rs[0]['idsede'];
@ -154,6 +160,8 @@ function add_tecnico($idintervento, $idtecnico, $inizio, $fine, $idcontratto = n
'prezzo_km_consuntivo_tecnico' => 0, 'prezzo_km_consuntivo_tecnico' => 0,
'prezzo_dirittochiamata_tecnico' => $costo_dirittochiamata_tecnico, 'prezzo_dirittochiamata_tecnico' => $costo_dirittochiamata_tecnico,
]); ]);
return true;
} }
function get_costi_intervento($id_intervento) function get_costi_intervento($id_intervento)

View File

@ -8,9 +8,12 @@ switch ($resource) {
$token = Auth::getInstance()->getToken(); $token = Auth::getInstance()->getToken();
// Informazioni da restituire tramite l'API // 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['token'] = $token;
$response['group'] = $user['gruppo'];
$response['version'] = Update::getVersion(); $response['version'] = Update::getVersion();
} else { } else {