openstamanager/modules/tipi_intervento/actions.php

101 lines
4.1 KiB
PHP

<?php
use Modules\TipiIntervento\Tipo;
include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'update':
$tipo->descrizione = post('descrizione');
$tipo->tempo_standard = post('tempo_standard');
$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();
flash()->info(tr('Informazioni tipo intervento salvate correttamente!'));
break;
case 'add':
$codice = post('codice');
$descrizione = post('descrizione');
$tipo = Tipo::build($codice, $descrizione);
$tipo->tempo_standard = post('tempo_standard');
$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();
$id_record = $tipo->id;
flash()->info(tr('Nuovo tipo di intervento aggiunto!'));
break;
case 'delete':
// Permetto eliminazione tipo intervento solo se questo non è utilizzado da nessun'altra parte a gestionale
// UNION SELECT `in_tariffe`.`idtipointervento` FROM `in_tariffe` WHERE `in_tariffe`.`idtipointervento` = '.prepare($id_record).'
// UNION SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).'
$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)) {
// Elimino anche le tariffe collegate ai vari tecnici
$query = 'DELETE FROM in_tariffe WHERE idtipointervento='.prepare($id_record);
$dbo->query($query);
// Elimino anche le tariffe collegate ai contratti
$query = 'DELETE FROM co_contratti_tipiintervento WHERE idtipointervento='.prepare($id_record);
$dbo->query($query);
$query = 'DELETE FROM in_tipiintervento WHERE idtipointervento='.prepare($id_record);
$dbo->query($query);
flash()->info(tr('Tipo di intervento eliminato!'));
break;
}
// no break
case 'import':
$values = [
'costo_ore' => $record['costo_orario'],
'costo_km' => $record['costo_km'],
'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,
]);
break;
}