2017-08-04 16:28:16 +02:00
< ? php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager : il software gestionale open source per l ' assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright ( C ) DevCode s . r . l .
2020-09-07 15:04:06 +02:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
2017-08-04 16:28:16 +02:00
2019-07-08 12:24:59 +02:00
use Modules\TipiIntervento\Tipo ;
2019-07-08 12:25:51 +02:00
2017-08-04 16:28:16 +02:00
include_once __DIR__ . '/../../core.php' ;
switch ( post ( 'op' )) {
case 'update' :
2019-07-08 12:24:59 +02:00
$tipo -> descrizione = post ( 'descrizione' );
2021-11-02 09:42:40 +01:00
$tipo -> calcola_km = post ( 'calcola_km' );
2019-07-08 16:45:00 +02:00
$tipo -> tempo_standard = post ( 'tempo_standard' );
2019-07-08 12:24:59 +02:00
$tipo -> costo_orario = post ( 'costo_orario' );
$tipo -> costo_km = post ( 'costo_km' );
$tipo -> costo_diritto_chiamata = post ( 'costo_diritto_chiamata' );
$tipo -> costo_orario_tecnico = post ( 'costo_orario_tecnico' );
$tipo -> costo_km_tecnico = post ( 'costo_km_tecnico' );
$tipo -> costo_diritto_chiamata_tecnico = post ( 'costo_diritto_chiamata_tecnico' );
$tipo -> save ();
2017-08-04 16:28:16 +02:00
2022-06-01 15:38:36 +02:00
$fasce_ore = ( array ) post ( 'fascia_ore' );
$fascia_km = ( array ) post ( 'fascia_km' );
$fascia_diritto_chiamata = ( array ) post ( 'fascia_diritto_chiamata' );
$fascia_orario_tecnico = ( array ) post ( 'fascia_orario_tecnico' );
$fascia_km_tecnico = ( array ) post ( 'fascia_km_tecnico' );
$fascia_diritto_chiamata_tecnico = ( array ) post ( 'fascia_diritto_chiamata_tecnico' );
foreach ( $fasce_ore as $key => $fascia_ore ) {
$dbo -> update ( 'in_fasceorarie_tipiintervento' , [
'costo_orario' => $fascia_ore ,
'costo_km' => $fascia_km [ $key ],
'costo_diritto_chiamata' => $fascia_diritto_chiamata [ $key ],
'costo_orario_tecnico' => $fascia_orario_tecnico [ $key ],
'costo_km_tecnico' => $fascia_km_tecnico [ $key ],
'costo_diritto_chiamata_tecnico' => $fascia_diritto_chiamata_tecnico [ $key ],
], [
'idfasciaoraria' => $key , 'idtipointervento' => $id_record
]);
}
2018-07-19 17:29:21 +02:00
flash () -> info ( tr ( 'Informazioni tipo intervento salvate correttamente!' ));
2017-08-04 16:28:16 +02:00
break ;
case 'add' :
2019-07-08 16:45:00 +02:00
$codice = post ( 'codice' );
2017-08-04 16:28:16 +02:00
$descrizione = post ( 'descrizione' );
2018-06-26 14:30:26 +02:00
2019-07-08 16:45:00 +02:00
$tipo = Tipo :: build ( $codice , $descrizione );
$tipo -> tempo_standard = post ( 'tempo_standard' );
2022-02-07 14:19:09 +01:00
$tipo -> calcola_km = post ( 'calcola_km' );
2019-07-08 16:45:00 +02:00
$tipo -> costo_orario = post ( 'costo_orario' );
$tipo -> costo_km = post ( 'costo_km' );
$tipo -> costo_diritto_chiamata = post ( 'costo_diritto_chiamata' );
$tipo -> costo_orario_tecnico = post ( 'costo_orario_tecnico' );
$tipo -> costo_km_tecnico = post ( 'costo_km_tecnico' );
$tipo -> costo_diritto_chiamata_tecnico = post ( 'costo_diritto_chiamata_tecnico' );
$tipo -> save ();
// Fix per impostare i valori inziali a tutti i tecnici
$tipo -> fixTecnici ();
2017-08-04 16:28:16 +02:00
2019-07-08 12:24:59 +02:00
$id_record = $tipo -> id ;
2017-08-04 16:28:16 +02:00
2022-06-01 15:38:36 +02:00
$fasce_orarie = $dbo -> select ( 'in_fasceorarie' , '*' , [ 'deleted_at' => null ]);
foreach ( $fasce_orarie as $fascia_oraria ) {
$dbo -> insert ( 'in_fasceorarie_tipiintervento' , [
'idfasciaoraria' => $fascia_oraria [ 'id' ],
'idtipointervento' => $id_record ,
'costo_orario' => post ( 'costo_orario' ),
'costo_km' => post ( 'costo_km' ),
'costo_diritto_chiamata' => post ( 'costo_diritto_chiamata' ),
'costo_orario_tecnico' => post ( 'costo_orario_tecnico' ),
'costo_km_tecnico' => post ( 'costo_km_tecnico' ),
'costo_diritto_chiamata_tecnico' => post ( 'costo_diritto_chiamata_tecnico' ),
]);
}
2018-07-19 17:29:21 +02:00
flash () -> info ( tr ( 'Nuovo tipo di intervento aggiunto!' ));
2017-08-04 16:28:16 +02:00
break ;
case 'delete' :
2019-11-14 17:27:33 +01:00
// Permetto eliminazione tipo intervento solo se questo non è utilizzado da nessun'altra parte a gestionale
2020-01-14 17:20:19 +01:00
// UNION SELECT `in_tariffe`.`idtipointervento` FROM `in_tariffe` WHERE `in_tariffe`.`idtipointervento` = '.prepare($id_record).'
2020-01-23 11:48:45 +01:00
// UNION SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).'
2019-11-14 17:27:33 +01:00
$elementi = $dbo -> fetchArray ( 'SELECT `in_interventi`.`idtipointervento` FROM `in_interventi` WHERE `in_interventi`.`idtipointervento` = ' . prepare ( $id_record ) . '
UNION
SELECT `an_anagrafiche` . `idtipointervento_default` AS `idtipointervento` FROM `an_anagrafiche` WHERE `an_anagrafiche` . `idtipointervento_default` = '.prepare($id_record).'
UNION
SELECT `co_preventivi` . `idtipointervento` FROM `co_preventivi` WHERE `co_preventivi` . `idtipointervento` = '.prepare($id_record).'
UNION
SELECT `co_promemoria` . `idtipointervento` FROM `co_promemoria` WHERE `co_promemoria` . `idtipointervento` = '.prepare($id_record).'
UNION
SELECT `in_interventi_tecnici` . `idtipointervento` FROM `in_interventi_tecnici` WHERE `in_interventi_tecnici` . `idtipointervento` = '.prepare($id_record).'
ORDER BY `idtipointervento` ' );
if ( empty ( $elementi )) {
2020-01-14 22:30:46 +01:00
// Elimino anche le tariffe collegate ai vari tecnici
2019-11-14 17:27:33 +01:00
$query = 'DELETE FROM in_tariffe WHERE idtipointervento=' . prepare ( $id_record );
$dbo -> query ( $query );
2020-01-23 11:48:45 +01:00
// Elimino anche le tariffe collegate ai contratti
$query = 'DELETE FROM co_contratti_tipiintervento WHERE idtipointervento=' . prepare ( $id_record );
$dbo -> query ( $query );
2022-06-01 15:38:36 +02:00
$query = 'DELETE FROM in_fasceorarie_tipiintervento WHERE idtipointervento=' . prepare ( $id_record );
$dbo -> query ( $query );
2020-01-14 17:20:19 +01:00
$query = 'DELETE FROM in_tipiintervento WHERE idtipointervento=' . prepare ( $id_record );
$dbo -> query ( $query );
2019-11-14 17:27:33 +01:00
flash () -> info ( tr ( 'Tipo di intervento eliminato!' ));
break ;
}
2019-07-08 12:24:59 +02:00
2019-11-15 15:11:20 +01:00
// no break
2019-07-08 12:24:59 +02:00
case 'import' :
$values = [
'costo_ore' => $record [ 'costo_orario' ],
2019-07-08 12:25:51 +02:00
'costo_km' => $record [ 'costo_km' ],
2019-07-08 12:24:59 +02:00
'costo_dirittochiamata' => $record [ 'costo_diritto_chiamata' ],
'costo_ore_tecnico' => $record [ 'costo_orario_tecnico' ],
'costo_km_tecnico' => $record [ 'costo_km_tecnico' ],
'costo_dirittochiamata_tecnico' => $record [ 'costo_diritto_chiamata_tecnico' ],
];
$dbo -> update ( 'in_tariffe' , $values , [
'idtipointervento' => $id_record ,
]);
2021-12-16 12:25:25 +01:00
break ;
case 'addriga' :
2023-04-12 17:56:15 +02:00
$id_iva = post ( 'idiva' );
2021-12-16 12:25:25 +01:00
$descrizione = post ( 'descrizione' );
$qta = post ( 'qta' );
$um = post ( 'um' );
$id_tipointervento = post ( 'id_tipointervento' );
$prezzo_acquisto = post ( 'prezzo_acquisto' );
$prezzo_vendita = post ( 'prezzo_vendita' );
$subtotale = $qta * $prezzo_vendita ;
2023-04-12 17:56:15 +02:00
$query = 'INSERT INTO in_righe_tipiinterventi(id_tipointervento, prezzo_acquisto, prezzo_vendita, descrizione, qta, um, subtotale, idiva) VALUES (' . prepare ( $id_tipointervento ) . ', ' . prepare ( $prezzo_acquisto ) . ', ' . prepare ( $prezzo_vendita ) . ', ' . prepare ( $descrizione ) . ', ' . prepare ( $qta ) . ', ' . prepare ( $um ) . ', ' . prepare ( $subtotale ) . ', ' . prepare ( $id_iva ) . ')' ;
2021-12-16 12:25:25 +01:00
$dbo -> query ( $query );
flash () -> info ( tr ( 'Riga aggiunta!' ));
break ;
case 'editriga' :
2023-04-12 17:56:15 +02:00
$id_iva = post ( 'idiva' );
2021-12-16 12:25:25 +01:00
$descrizione = post ( 'descrizione' );
$qta = post ( 'qta' );
$um = post ( 'um' );
$idriga = post ( 'idriga' );
$id_tipointervento = post ( 'id_tipointervento' );
$prezzo_acquisto = post ( 'prezzo_acquisto' );
$prezzo_vendita = post ( 'prezzo_vendita' );
$subtotale = $qta * $prezzo_vendita ;
$query = 'UPDATE in_righe_tipiinterventi SET' .
' descrizione=' . prepare ( $descrizione ) . ',' .
' qta=' . prepare ( $qta ) . ',' .
2023-04-12 17:56:15 +02:00
' idiva=' . prepare ( $id_iva ) . ',' .
2021-12-16 12:25:25 +01:00
' um=' . prepare ( $um ) . ',' .
' id_tipointervento=' . prepare ( $id_tipointervento ) . ',' .
' prezzo_acquisto=' . prepare ( $prezzo_acquisto ) . ',' .
' prezzo_vendita=' . prepare ( $prezzo_vendita ) . ',' .
' subtotale=' . $subtotale .
' WHERE id=' . prepare ( $idriga );
$dbo -> query ( $query );
flash () -> info ( tr ( 'Riga modificata!' ));
break ;
case 'delriga' :
$idriga = post ( 'idriga' );
$query = " DELETE FROM in_righe_tipiinterventi WHERE id= " . prepare ( $idriga );
$dbo -> query ( $query );
flash () -> info ( tr ( 'Riga eliminata!' ));
2019-07-08 12:24:59 +02:00
break ;
2017-08-04 16:28:16 +02:00
}