diff --git a/modules/fasce_orarie/actions.php b/modules/fasce_orarie/actions.php index e4093c5bc..3ed74c566 100644 --- a/modules/fasce_orarie/actions.php +++ b/modules/fasce_orarie/actions.php @@ -56,15 +56,33 @@ switch (post('op')) { case 'add': $nome = post('nome'); + $ora_inizio = post('ora_inizio'); + $ora_fine = post('ora_fine'); if ($dbo->fetchNum('SELECT * FROM `in_fasceorarie` WHERE `nome`='.prepare($nome)) == 0) { $dbo->insert('in_fasceorarie', [ 'nome' => $nome, + 'ora_inizio' => $ora_inizio, + 'ora_fine' => $ora_fine, ]); $id_record = $dbo->lastInsertedID(); + $tipi_intervento = $dbo->select('in_tipiintervento', '*'); + foreach ($tipi_intervento as $tipo_intervento) { + $dbo->insert('in_fasceorarie_tipiintervento', [ + 'idfasciaoraria' => $id_record, + 'idtipointervento' => $tipo_intervento['idtipointervento'], + 'costo_orario' => $tipo_intervento['costo_orario'], + 'costo_km' => $tipo_intervento['costo_km'], + 'costo_diritto_chiamata' => $tipo_intervento['costo_diritto_chiamata'], + 'costo_orario_tecnico' => $tipo_intervento['costo_orario_tecnico'], + 'costo_km_tecnico' => $tipo_intervento['costo_km_tecnico'], + 'costo_diritto_chiamata_tecnico' => $tipo_intervento['costo_km_tecnico'], + ]); + } + if (isAjaxRequest()) { echo json_encode(['id' => $id_record, 'text' => $nome]); } @@ -81,28 +99,15 @@ switch (post('op')) { break; case 'delete': - $tipi_interventi = $dbo->fetchNum('SELECT idtipointervento FROM in_fasceorarie_tipiintervento WHERE idfasciaoraria='.prepare($id_record)); + $dbo->update('in_fasceorarie', [ + 'deleted_at' => date('Y-m-d H:i:s'), + ], ['id' => $id_record, 'can_delete' => 1]); - if (isset($id_record) && empty($tipi_interventi)) { - - $dbo->delete('in_fasceorarie', [ - 'id' => $id_record, - 'can_delete' => 1, - ]); + $dbo->delete('in_fasceorarie_tipiintervento', ['idfasciaoraria' => $id_record]); - flash()->info(tr('_TYPE_ eliminata con successo.', [ - '_TYPE_' => 'Fascia oraria', - ])); - - } else { - - flash()->error(tr('Sono presenti dei tipi interventi collegate a questa fascia oraria.')); - - # soft delete - /*$dbo->update('in_fasceorarie', [ - 'deleted_at' => date('Y-m-d H:i:s'), - ], ['id' => $id_record, 'can_delete' => 1]);*/ - } + flash()->info(tr('_TYPE_ eliminata con successo.', [ + '_TYPE_' => 'Fascia oraria', + ])); break; } diff --git a/modules/fasce_orarie/add.php b/modules/fasce_orarie/add.php index afb7a3023..5f179524f 100644 --- a/modules/fasce_orarie/add.php +++ b/modules/fasce_orarie/add.php @@ -24,9 +24,17 @@ include_once __DIR__.'/../../core.php';
-
+
{[ "type": "text", "label": "", "name": "nome", "required": 1 ]}
+ +
+ {[ "type": "time", "label": "", "name": "ora_inizio", "required": 1 ]} +
+ +
+ {[ "type": "time", "label": "", "name": "ora_fine", "required": 1 ]} +
diff --git a/modules/tipi_intervento/actions.php b/modules/tipi_intervento/actions.php index 15ce287c5..806117da2 100755 --- a/modules/tipi_intervento/actions.php +++ b/modules/tipi_intervento/actions.php @@ -26,16 +26,35 @@ switch (post('op')) { $tipo->descrizione = post('descrizione'); $tipo->calcola_km = post('calcola_km'); $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(); + $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 + ]); + } + + flash()->info(tr('Informazioni tipo intervento salvate correttamente!')); break; @@ -54,7 +73,6 @@ switch (post('op')) { $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 @@ -62,6 +80,20 @@ switch (post('op')) { $id_record = $tipo->id; + $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'), + ]); + } + flash()->info(tr('Nuovo tipo di intervento aggiunto!')); break; @@ -90,6 +122,9 @@ switch (post('op')) { $query = 'DELETE FROM co_contratti_tipiintervento WHERE idtipointervento='.prepare($id_record); $dbo->query($query); + $query = 'DELETE FROM in_fasceorarie_tipiintervento WHERE idtipointervento='.prepare($id_record); + $dbo->query($query); + $query = 'DELETE FROM in_tipiintervento WHERE idtipointervento='.prepare($id_record); $dbo->query($query); diff --git a/modules/tipi_intervento/ajax_addebiti_costi.php b/modules/tipi_intervento/ajax_addebiti_costi.php index 5d6b745d4..0a2a2b661 100644 --- a/modules/tipi_intervento/ajax_addebiti_costi.php +++ b/modules/tipi_intervento/ajax_addebiti_costi.php @@ -49,21 +49,21 @@ $fasce_orarie = $dbo->fetchArray("SELECT *, CONCAT (in_fasceorarie.nome, ' (', D '.$descrizione.' - {[ "type": "number", "name": "costo_ore['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_orario'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} + {[ "type": "number", "name": "fascia_ore['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_orario'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} - {[ "type": "number", "name": "costo_km['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_km'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} + {[ "type": "number", "name": "fascia_km['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_km'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} - {[ "type": "number", "name": "costo_diritto_chiamata['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_diritto_chiamata'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} + {[ "type": "number", "name": "fascia_diritto_chiamata['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_diritto_chiamata'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} - {[ "type": "number", "name": "costo_orario_tecnico['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_orario_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} + {[ "type": "number", "name": "fascia_orario_tecnico['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_orario_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} - {[ "type": "number", "name": "costo_km_tecnico['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_km_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} + {[ "type": "number", "name": "fascia_km_tecnico['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_km_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} - {[ "type": "number", "name": "costo_diritto_chiamata_tecnico['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_diritto_chiamata_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} + {[ "type": "number", "name": "fascia_diritto_chiamata_tecnico['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_diritto_chiamata_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "" ]} '; diff --git a/update/2_4_34.sql b/update/2_4_34.sql index 439e520ee..b30182513 100644 --- a/update/2_4_34.sql +++ b/update/2_4_34.sql @@ -38,4 +38,9 @@ ALTER TABLE `an_anagrafiche` ADD `provvigione_default` DECIMAL(12,6) NOT NULL AF ALTER TABLE `in_interventi` ADD `idagente` INT NOT NULL AFTER `idreferente`; -- Impostazione per controlli su stati FE -INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Data inizio controlli su stati FE', '01/01/2019', 'date', '1', 'Fatturazione elettronica', '23', NULL) \ No newline at end of file +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Data inizio controlli su stati FE', '01/01/2019', 'date', '1', 'Fatturazione elettronica', '23', NULL); + +-- Aggiunto campo deleted_at in in_fasceorarie +ALTER TABLE `in_fasceorarie` ADD `deleted_at` TIMESTAMP NULL AFTER `include_bank_holidays`; + +UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `in_fasceorarie` WHERE 1=1 AND deleted_at IS NULL HAVING 2=2' WHERE `zz_modules`.`name` = 'Fasce orarie'; \ No newline at end of file