Miglioramenti modulo Fasce orarie

This commit is contained in:
MatteoPistorello 2022-06-01 15:38:36 +02:00
parent 1a09d73dda
commit 075f6bccfd
5 changed files with 84 additions and 31 deletions

View File

@ -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_tipiintervento', ['idfasciaoraria' => $id_record]);
$dbo->delete('in_fasceorarie', [
'id' => $id_record,
'can_delete' => 1,
]);
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;
}

View File

@ -24,9 +24,17 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-12">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1 ]}
</div>
<div class="col-md-3">
{[ "type": "time", "label": "<?php echo tr('Ora inizio'); ?>", "name": "ora_inizio", "required": 1 ]}
</div>
<div class="col-md-3">
{[ "type": "time", "label": "<?php echo tr('Ora fine'); ?>", "name": "ora_fine", "required": 1 ]}
</div>
</div>
<!-- PULSANTI -->

View File

@ -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);

View File

@ -49,21 +49,21 @@ $fasce_orarie = $dbo->fetchArray("SELECT *, CONCAT (in_fasceorarie.nome, ' (', D
<td class="text-left">'.$descrizione.'</td>
<td class="text-right">
{[ "type": "number", "name": "costo_ore['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_orario'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]} </td>
{[ "type": "number", "name": "fascia_ore['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_orario'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]} </td>
<td class="text-right">
{[ "type": "number", "name": "costo_km['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_km'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
{[ "type": "number", "name": "fascia_km['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_km'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
</td>
<td class="text-right">
{[ "type": "number", "name": "costo_diritto_chiamata['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_diritto_chiamata'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
{[ "type": "number", "name": "fascia_diritto_chiamata['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_diritto_chiamata'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
</td>
<td class="text-right">
{[ "type": "number", "name": "costo_orario_tecnico['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_orario_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
{[ "type": "number", "name": "fascia_orario_tecnico['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_orario_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
</td>
<td class="text-right">
{[ "type": "number", "name": "costo_km_tecnico['.$fascia_oraria[$i]['idtipointervento'].']", "value": "'.number_format($fascia_oraria['costo_km_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
{[ "type": "number", "name": "fascia_km_tecnico['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_km_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
</td>
<td class="text-right">
{[ "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": "<i class=\'fa fa-euro\'></i>" ]}
{[ "type": "number", "name": "fascia_diritto_chiamata_tecnico['.$fascia_oraria['idfasciaoraria'].']", "value": "'.number_format($fascia_oraria['costo_diritto_chiamata_tecnico'], 2, ',', '.').'", "decimals": "2", "icon-after": "<i class=\'fa fa-euro\'></i>" ]}
</td>
</tr>';

View File

@ -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)
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';