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':
|
2024-04-19 16:44:08 +02:00
|
|
|
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
|
|
|
|
$tipo->name = $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');
|
2024-04-18 17:44:05 +02:00
|
|
|
$tipo->setTranslation('title', post('descrizione'));
|
2019-07-08 12:24:59 +02:00
|
|
|
$tipo->save();
|
2017-08-04 16:28:16 +02:00
|
|
|
|
2023-08-04 14:54:28 +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');
|
2022-06-01 15:38:36 +02:00
|
|
|
|
|
|
|
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],
|
|
|
|
], [
|
2023-08-04 14:54:28 +02:00
|
|
|
'idfasciaoraria' => $key, 'idtipointervento' => $id_record,
|
2022-06-01 15:38:36 +02:00
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
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');
|
2024-03-07 15:20:23 +01:00
|
|
|
$calcola_km = post('calcola_km');
|
|
|
|
$tempo_standard = post('tempo_standard');
|
|
|
|
$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-06-26 14:30:26 +02:00
|
|
|
|
2024-03-07 15:20:23 +01:00
|
|
|
$tipo = Tipo::build($codice, $calcola_km, $tempo_standard, $costo_orario, $costo_km, $costo_diritto_chiamata, $costo_orario_tecnico, $costo_km_tecnico, $costo_diritto_chiamata_tecnico);
|
2024-04-19 16:44:08 +02:00
|
|
|
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
|
|
|
|
$tipo->name = $descrizione;
|
|
|
|
}
|
2024-03-22 15:52:24 +01:00
|
|
|
$id_record = $dbo->lastInsertedID();
|
2024-04-18 17:44:05 +02:00
|
|
|
$tipo->setTranslation('title', post('descrizione'));
|
2019-07-08 16:45:00 +02:00
|
|
|
$tipo->save();
|
|
|
|
|
|
|
|
// Fix per impostare i valori inziali a tutti i tecnici
|
|
|
|
$tipo->fixTecnici();
|
2017-08-04 16:28:16 +02:00
|
|
|
|
2023-09-15 18:06:15 +02:00
|
|
|
$fasce_orarie = $dbo->select('in_fasceorarie', '*', [], ['deleted_at' => null]);
|
2022-06-01 15:38:36 +02:00
|
|
|
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':
|
2023-04-18 16:55:37 +02:00
|
|
|
// Elimino le tariffe collegate ai vari tecnici
|
2024-02-28 16:28:53 +01:00
|
|
|
$query = 'DELETE FROM `in_tariffe` WHERE `idtipointervento`='.prepare($id_record);
|
2023-04-18 16:55:37 +02:00
|
|
|
$dbo->query($query);
|
|
|
|
|
|
|
|
// Elimino le tariffe collegate ai contratti
|
2024-02-28 16:28:53 +01:00
|
|
|
$query = 'DELETE FROM `co_contratti_tipiintervento` WHERE `idtipointervento`='.prepare($id_record);
|
2023-04-18 16:55:37 +02:00
|
|
|
$dbo->query($query);
|
|
|
|
|
2024-02-28 16:28:53 +01:00
|
|
|
$query = 'DELETE FROM `in_fasceorarie_tipiintervento` WHERE `idtipointervento`='.prepare($id_record);
|
2023-04-18 16:55:37 +02:00
|
|
|
$dbo->query($query);
|
|
|
|
|
2024-02-28 16:28:53 +01:00
|
|
|
$query = 'UPDATE `in_tipiintervento` SET `deleted_at`=NOW() WHERE `id`='.prepare($id_record);
|
2023-04-18 16:55:37 +02:00
|
|
|
$dbo->query($query);
|
|
|
|
|
|
|
|
flash()->info(tr('Tipo di intervento eliminato!'));
|
|
|
|
|
|
|
|
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');
|
2023-08-04 14:54:28 +02:00
|
|
|
$query = 'DELETE FROM in_righe_tipiinterventi WHERE id='.prepare($idriga);
|
2021-12-16 12:25:25 +01:00
|
|
|
$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
|
|
|
}
|