2020
2121include_once __DIR__ .'/../../core.php ' ;
2222use Models \Module ;
23- use Models \User ;
2423
2524$ show_costi = true ;
2625// Limitazione delle azioni dei tecnici
6968 echo '
7069<div class="table-responsive">
7170 <table class="table table-striped table-hover table-sm">
72- <tr><th> ' ;
73-
74- if ($ sessione ['id_user ' ]) {
75- $ user = User::where ('idanagrafica ' , $ sessione ['idtecnico ' ])->orderByRaw ('CASE WHEN idgruppo = 2 THEN -1 ELSE idgruppo END ' )->first ();
76- echo '
77- <img class="attachment-img tip" src=" ' .$ user ->photo .'" title=" ' .$ user ->nome_completo .'"> ' ;
78- } else {
79- echo '
80- <i class="fa fa-user-circle-o attachment-img tip" title=" ' .$ sessione ['ragione_sociale ' ].'"></i> ' ;
81- }
82-
83- echo '
84- ' .$ sessione ['ragione_sociale ' ].' ' .(($ sessione ['anagrafica_deleted_at ' ]) ? '<small class="text-danger"><em>( ' .tr ('Eliminato ' ).')</em></small> ' : '' ).'</th>
85- <th width="15%"> ' .tr ('Orario inizio ' ).'</th>
86- <th width="15%"> ' .tr ('Orario fine ' ).'</th>
71+ <tr><th width="16%"> ' .tr ('Tecnico ' ).'</th>
72+ <th width="12%"> ' .tr ('Tipologia ' ).'</th>
73+ <th width="12%"> ' .tr ('Orario inizio ' ).'</th>
74+ <th width="12%"> ' .tr ('Orario fine ' ).'</th>
8775 <th width="2%"> </th>
8876 <th width="8%"> ' .tr ('Ore ' ).'</th>
8977 <th width="8%"> ' .tr ('Km ' ).'</th> ' ;
9684
9785 if (!$ is_bloccato ) {
9886 echo '
99- <th width="100 " class="text-center"> </th> ' ;
87+ <th width="10% " class="text-center"> </th> ' ;
10088 }
10189
10290 echo '
123111 $ ore = $ sessione ['ore ' ];
124112 $ km = $ sessione ['km ' ];
125113
126- // Tipologia
114+ // Tecnico e Tipologia
127115 echo '
128- <tr data-id=" ' .$ sessione ['id ' ].'">
116+ <tr data-id=" ' .$ sessione ['id ' ].'" data-idtecnico=" ' .$ sessione ['idtecnico ' ].'" data-idtipointervento=" ' .$ sessione ['idtipointervento ' ].'">
117+ <td>
118+ {[ "type": "select", "name": "tecnico_ ' .$ sessione ['id ' ].'", "value": " ' .$ sessione ['idtecnico ' ].'", "ajax-source": "tecnici", "class": "tecnico-sessione", "disabled": " ' .$ block_edit .'" ]}
119+ </td>
129120 <td>
130121 ' .$ sessione ['descrizione_tipo ' ].' ' .(($ sessione ['tipo_deleted_at ' ]) ? '<small class="text-danger"><em>( ' .tr ('Eliminato ' ).')</em></small> ' : '' );
131122
@@ -355,6 +346,17 @@ function calcolaConflittiTecnici() {
355346 data_inizio.data("DateTimePicker").date(e.date);
356347 }
357348 });
349+
350+ // Event handler per il cambio tecnico
351+ $(document).on("change", ".tecnico-sessione", function() {
352+ let riga = $(this).closest("tr");
353+ let id_sessione = riga.data("id");
354+ let id_tecnico = $(this).val();
355+ let id_tipo_intervento = riga.data("idtipointervento");
356+
357+ // Salva automaticamente con il nuovo tecnico
358+ aggiornaSessioneInline(id_sessione, id_tecnico);
359+ });
358360});
359361
360362/*
@@ -460,7 +462,7 @@ function caricaTecnici() {
460462 });
461463}
462464
463- function aggiornaSessioneInline(id) {
465+ function aggiornaSessioneInline(id, id_tecnico ) {
464466 var id_sessione = id;
465467 var data_inizio = $("#data_inizio_" + id_sessione).val();
466468 var data_fine = $("#data_fine_" + id_sessione).val();
@@ -470,22 +472,29 @@ function aggiornaSessioneInline(id) {
470472 var scontokm_unitario = $("#scontokm_unitario_" + id_sessione).val();
471473 var tipo_sconto_km =$("[id^=tipo_scontokm_unitario_" + id_sessione + "]").val()
472474
475+ var data = {
476+ id_module: globals.id_module,
477+ id_record: globals.id_record,
478+ op: "update_inline_sessione",
479+ id_sessione: id_sessione,
480+ data_inizio: data_inizio,
481+ data_fine: data_fine,
482+ km: km,
483+ sconto_unitario: sconto_unitario,
484+ tipo_sconto: tipo_sconto,
485+ scontokm_unitario: scontokm_unitario,
486+ tipo_sconto_km: tipo_sconto_km,
487+ };
488+
489+ // Aggiungi id_tecnico se fornito
490+ if (id_tecnico !== undefined) {
491+ data.id_tecnico = id_tecnico;
492+ }
493+
473494 $.ajax({
474495 url: globals.rootdir + "/actions.php",
475496 type: "POST",
476- data: {
477- id_module: globals.id_module,
478- id_record: globals.id_record,
479- op: "update_inline_sessione",
480- id_sessione: id_sessione,
481- data_inizio: data_inizio,
482- data_fine: data_fine,
483- km: km,
484- sconto_unitario: sconto_unitario,
485- tipo_sconto: tipo_sconto,
486- scontokm_unitario: scontokm_unitario,
487- tipo_sconto_km: tipo_sconto_km,
488- },
497+ data: data,
489498 success: function(response) {
490499 caricaTecnici();
491500 caricaCosti();
0 commit comments