Fix modifica sessione interventi

This commit is contained in:
Matteo 2018-10-30 11:39:45 +01:00
parent 1c75527965
commit 8aa09075ad
3 changed files with 112 additions and 12 deletions

View File

@ -637,5 +637,106 @@ switch (post('op')) {
]));
}
break;
case 'edit_sessione':
$id_sessione = post('id_sessione');
// Lettura delle date di inizio e fine intervento
$orario_inizio = post('orario_inizio');
$orario_fine = post('orario_fine');
// Ricalcolo le ore lavorate
$ore = calcola_ore_intervento($orario_inizio, $orario_fine);
$km = post('km');
// Lettura tariffe in base al tipo di intervento ed al tecnico
$idtipointervento_tecnico = post('idtipointerventot');
$rs = $dbo->fetchArray('SELECT * FROM in_interventi_tecnici WHERE idtecnico='.prepare(post('idtecnico')).' AND idintervento='.prepare($id_record));
if ($idtipointervento_tecnico != $rs[0]['idtipointervento']) {
$rsc = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare(post('idtecnico')).' AND idtipointervento='.prepare($idtipointervento_tecnico));
if ($rsc[0]['costo_ore'] != 0 || $rsc[0]['costo_km'] != 0 || $rsc[0]['costo_dirittochiamata'] != 0 || $rsc[0]['costo_ore_tecnico'] != 0 || $rsc[0]['costo_km_tecnico'] != 0 || $rsc[0]['costo_dirittochiamata_tecnico'] != 0) {
$prezzo_ore_unitario = $rsc[0]['costo_ore'];
$prezzo_km_unitario = $rsc[0]['costo_km'];
$prezzo_dirittochiamata = $rsc[0]['costo_dirittochiamata'];
$prezzo_ore_unitario_tecnico = $rsc[0]['costo_ore_tecnico'];
$prezzo_km_unitario_tecnico = $rsc[0]['costo_km_tecnico'];
$prezzo_dirittochiamata_tecnico = $rsc[0]['costo_dirittochiamata_tecnico'];
}
// ...altrimenti se non c'è una tariffa per il tecnico leggo i costi globali
else {
$rsc = $dbo->fetchArray('SELECT * FROM in_tipiintervento WHERE idtipointervento='.prepare($idtipointervento_tecnico));
$prezzo_ore_unitario = $rsc[0]['costo_orario'];
$prezzo_km_unitario = $rsc[0]['costo_km'];
$prezzo_dirittochiamata = $rsc[0]['costo_diritto_chiamata'];
$prezzo_ore_unitario_tecnico = $rsc[0]['costo_orario_tecnico'];
$prezzo_km_unitario_tecnico = $rsc[0]['costo_km_tecnico'];
$prezzo_dirittochiamata_tecnico = $rsc[0]['costo_diritto_chiamata_tecnico'];
}
} else {
$prezzo_ore_unitario = $rs[0]['prezzo_ore_unitario'];
$prezzo_km_unitario = $rs[0]['prezzo_km_unitario'];
$prezzo_dirittochiamata = $rs[0]['prezzo_dirittochiamata'];
$prezzo_ore_unitario_tecnico = $rs[0]['prezzo_ore_unitario_tecnico'];
$prezzo_km_unitario_tecnico = $rs[0]['prezzo_km_unitario_tecnico'];
$prezzo_dirittochiamata_tecnico = $rs[0]['prezzo_dirittochiamata_tecnico'];
}
// Totali
$prezzo_ore_consuntivo = $prezzo_ore_unitario * $ore;
$prezzo_km_consuntivo = $prezzo_km_unitario * $km;
$prezzo_ore_consuntivo_tecnico = $prezzo_ore_unitario_tecnico * $ore;
$prezzo_km_consuntivo_tecnico = $prezzo_km_unitario_tecnico * $km;
// Sconti
$sconto_unitario = post('sconto');
$tipo_sconto = post('tipo_sconto');
$sconto = calcola_sconto([
'sconto' => $sconto_unitario,
'prezzo' => $prezzo_ore_consuntivo,
'tipo' => $tipo_sconto,
]);
$scontokm_unitario = post('sconto_km');
$tipo_scontokm = post('tipo_scontokm');
$scontokm = ($tipo_scontokm == 'PRC') ? ($prezzo_km_consuntivo * $scontokm_unitario) / 100 : $scontokm_unitario;
$dbo->update('in_interventi_tecnici', [
'idtipointervento' => $idtipointervento_tecnico,
'orario_inizio' => $orario_inizio,
'orario_fine' => $orario_fine,
'ore' => $ore,
'km' => $km,
'prezzo_ore_unitario' => $prezzo_ore_unitario,
'prezzo_km_unitario' => $prezzo_km_unitario,
'prezzo_dirittochiamata' => $prezzo_dirittochiamata,
'prezzo_ore_unitario_tecnico' => $prezzo_ore_unitario_tecnico,
'prezzo_km_unitario_tecnico' => $prezzo_km_unitario_tecnico,
'prezzo_dirittochiamata_tecnico' => $prezzo_dirittochiamata_tecnico,
'prezzo_ore_consuntivo' => $prezzo_ore_consuntivo,
'prezzo_km_consuntivo' => $prezzo_km_consuntivo,
'prezzo_ore_consuntivo_tecnico' => $prezzo_ore_consuntivo_tecnico,
'prezzo_km_consuntivo_tecnico' => $prezzo_km_consuntivo_tecnico,
'sconto' => $sconto,
'sconto_unitario' => $sconto_unitario,
'tipo_sconto' => $tipo_sconto,
'scontokm' => $scontokm,
'scontokm_unitario' => $scontokm_unitario,
'tipo_scontokm' => $tipo_scontokm,
], ['id' => $id_sessione]);
break;
}

View File

@ -243,8 +243,7 @@ if (!empty($rs2)) {
if (!$flag_completato) {
echo '
<!-- da ultimare -->
<button type="button" class="btn btn-sm btn-warning hide" onclick="launch_modal(\''.tr('Modifica sessione').'\', \''.$module->fileurl('manage_sessione.php').'?id_module='.$id_module.'&id_sessione='.$id.'\', 1);" title="'.tr('Modifica sessione').'"><i class="fa fa-edit"></i></button>
<button type="button" class="btn btn-sm btn-warning" onclick="launch_modal(\''.tr('Modifica sessione').'\', \''.$module->fileurl('manage_sessione.php').'?id_module='.$id_module.'&id_record='.$id_record.'&id_sessione='.$id.'\', 1);" title="'.tr('Modifica sessione').'"><i class="fa fa-edit"></i></button>
<button type="button" class="btn btn-sm btn-danger" id="delbtn_'.$id.'" onclick="elimina_sessione(\''.$id.'\', \''.$id_record.'\', \''.$idzona.'\');" title="Elimina riga" class="only_rw"><i class="fa fa-trash"></i></button>';
}

View File

@ -11,17 +11,13 @@ if ($user['gruppo'] == 'Tecnici') {
$sessione = $dbo->fetchOne('SELECT in_interventi_tecnici.*, an_anagrafiche.ragione_sociale, an_anagrafiche.deleted_at FROM in_interventi_tecnici INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica WHERE in_interventi_tecnici.id = '.prepare(get('id_sessione')));
if (empty($sessione)) {
$op = 'add_sessione';
$button = '<i class="fa fa-plus"></i> '.tr('Aggiungi');
} else {
$op = 'edit_sessione';
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
}
$op = 'edit_sessione';
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
echo '
<form id="add_form" action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
<form id="add_form" action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.get('id_record').'" method="post">
<input type="hidden" name="op" value="'.$op.'">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="id_sessione" value="'.$sessione['id'].'">';
// Tecnico
@ -31,11 +27,15 @@ echo '
// Orari
echo '
<div class="row">
<div class="col-md-6">
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Tipo attività').'", "name": "idtipointerventot", "value": "'.$sessione['idtipointervento'].'", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($sessione['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione" ]}
</div>
<div class="col-md-4">
{[ "type": "timestamp", "label": "'.tr('Inizio attività').'", "name": "orario_inizio", "required": 1, "value": "'.$sessione['orario_inizio'].'" ]}
</div>
<div class="col-md-6">
<div class="col-md-4">
{[ "type": "timestamp", "label": "'.tr('Fine attività').'", "name": "orario_fine", "required": 1, "value": "'.$sessione['orario_fine'].'" ]}
</div>
</div>';