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