From d0c401c848b623f2f3cf82c1a180ea07e19bc0d3 Mon Sep 17 00:00:00 2001 From: ragu Date: Tue, 4 Oct 2022 17:06:17 +0200 Subject: [PATCH] servicetool service_type fix --- copri4/main/src/Mod/APIfunc.pm | 4 +++- copri4/main/src/Mod/APIjsonserver.pm | 26 +++++++------------------- copri4/main/src/Tpl/BaseEdit.pm | 1 + copri4/main/src/Tpl/SubListe.pm | 3 ++- 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/copri4/main/src/Mod/APIfunc.pm b/copri4/main/src/Mod/APIfunc.pm index 069bf52..4da004e 100755 --- a/copri4/main/src/Mod/APIfunc.pm +++ b/copri4/main/src/Mod/APIfunc.pm @@ -816,7 +816,9 @@ sub service_work { $return->{$article}->{$key_change}->{time_over} = "$time_over"; $return->{$article}->{$key_change}->{service_type} = "$service_type"; $return->{$article}->{$key_change}->{work_val} = "$pos_record->{$id}->{$key}" if($key =~ /int/); - $return->{$article}->{$key_change}->{work_val} .= "$pos_record->{$id}->{$key}\n" if($key =~ /txt/); + #multiple entries breaks Aufgaben management and saving + #$return->{$article}->{$key_change}->{work_val} .= "$pos_record->{$id}->{$key}\n" if($key =~ /txt/); + $return->{$article}->{$key_change}->{work_val} = "$pos_record->{$id}->{$key}\n" if($key =~ /txt/); $return->{$article}->{$key_change}->{mtime} = "$pos_record->{$id}->{mtime}"; $return->{$article}->{$key_change}->{user_name} = "$u_name"; $return->{$article}->{$key_change}->{owner} = "$pos_record->{$id}->{owner}"; diff --git a/copri4/main/src/Mod/APIjsonserver.pm b/copri4/main/src/Mod/APIjsonserver.pm index f0950d4..3db9819 100755 --- a/copri4/main/src/Mod/APIjsonserver.pm +++ b/copri4/main/src/Mod/APIjsonserver.pm @@ -517,12 +517,13 @@ elsif($q->param('request') eq "bikes_all"){ my $service_state_debug = "\n"; my $pos_record = {}; my $response_work = {}; + my $node = {}; #shareetool if($aowner && $aowner eq "187"){ (my $xresponse, $pos_record, my $node_template, my $crecord) = $apif->service_select($q,$authraw,"",$interval); - ($response_work, my $node) = $apif->service_work($pos_record,$bikes_allraw,"",$node_template); + ($response_work, $node) = $apif->service_work($pos_record,$bikes_allraw,"",$node_template); #Pseudocode -- Calculate service_state: #if (state == "defekt") -> service_state=1-rot #else if (1 harte Wartung fällig und ( mind. 1 weiche Wartung fällig -oder- Aufgabe Text eingetragen )) -> service_state=2-Blau @@ -539,26 +540,13 @@ elsif($q->param('request') eq "bikes_all"){ $bikes_all->{$oprefix . $bid}->{service_state} = "0"; $bikes_allraw->{$bid}->{service_state_blue} = 0; $bikes_allraw->{$bid}->{service_state_green} = 0; - $bikes_allraw->{$bid}->{service_state_exist} = 0; - #print "bid:$bid|$bikes_allraw->{$bid}->{mtime}\n"; - - #shareetool disabled, needs also to much cpu-time - #if(ref($response_work->{$biselect}) ne "HASH" || $response_work->{$biselect}->{int01}->{c_id} !~ /\d/ && $aowner && $aowner eq "187"){ - # my $pos_record_bi = $apif->service_work_select($biselect,"",""); - # (my $response_work_bi, my $node) = $apif->service_work($pos_record_bi,$bikes_allraw); - # $response_work->{$biselect} = $response_work_bi->{$biselect}; - #print "Rad:$biselect " . Dumper($response_work->{$biselect}); - #} - - #2019-02-14, fixed if(ref($response_work->{$biselect}) eq "HASH" && $aowner && $aowner eq "187"){#shareetool - #print "$biselect: $response_work->{$biselect}->{mtime}\n"; - $bikes_allraw->{$bid}->{service_state_exist} = 1; foreach my $id (keys(%{$response_work->{$biselect}})){ - - #$bw->log("response_work:$biselect","|$id|$response_work->{$biselect}->{$id}->{mtime}|$response_work->{$biselect}->{$id}->{service_type}|$response_work->{$biselect}->{$id}->{time_over}|$response_work->{$biselect}->{$id}->{work_val}",""); + $bikes_all->{$oprefix . $bid}->{service_template} = $node->{template_id}; + + #$bw->log("response_work:$biselect|$id|$response_work->{$biselect}->{$id}->{mtime}|$response_work->{$biselect}->{$id}->{service_type}|$response_work->{$biselect}->{$id}->{time_over}|$response_work->{$biselect}->{$id}->{work_val}","",""); #time_over && (service_type || Aufgaben) if(($response_work->{$biselect}->{$id}->{time_over} == 1 && $response_work->{$biselect}->{$id}->{service_type} >= 1) || ($id eq "txt01" && $response_work->{$biselect}->{$id}->{work_val})){ @@ -577,7 +565,7 @@ elsif($q->param('request') eq "bikes_all"){ } }#end response_work service_state calc - if($bikes_allraw->{$bid}->{service_state_exist} == 1 && $bikes_all->{$oprefix . $bid}->{state} eq "defect"){ + if($bikes_all->{$oprefix . $bid}->{state} eq "defect"){ $bikes_all->{$oprefix . $bid}->{service_state} = "1"; $service_state_debug .= "$bid: service_state 1\n"; @@ -608,7 +596,7 @@ elsif($q->param('request') eq "bikes_all"){ #4 = "maintenance" $apif->bikestate_update($authraw,$bikes_allraw->{$bid}->{c_id},"4"); } - }elsif($bikes_allraw->{$bid}->{service_state_exist} == 1){ + }else{ #if($bikes_allraw->{$bid}->{txt10} && $bikes_allraw->{$bid}->{txt10} =~ /maintenance/) if($bikes_allraw->{$bid}->{int10} && $bikes_allraw->{$bid}->{int10} == 4){ $service_state_debug .= "$bid: 0\n"; diff --git a/copri4/main/src/Tpl/BaseEdit.pm b/copri4/main/src/Tpl/BaseEdit.pm index 50811e2..8f8a787 100755 --- a/copri4/main/src/Tpl/BaseEdit.pm +++ b/copri4/main/src/Tpl/BaseEdit.pm @@ -190,6 +190,7 @@ sub tpl(){ my $dbmtime = ""; my $dbowner = $ctrel->{owner} || $cttpos->{owner_end} || ""; my $dbmtime = $ctrel->{mtime} || $cttpos->{mtime} || ""; + $dbmtime = $ctrel->{change} if($node_meta->{tpl_id} == 198); $u_name = $dbt->sys_username($dbh,$dbowner); $dbmtime = $lb->time4de($dbmtime,"1") if($dbmtime); my $selsize="200px"; diff --git a/copri4/main/src/Tpl/SubListe.pm b/copri4/main/src/Tpl/SubListe.pm index b269df8..0bdffb4 100755 --- a/copri4/main/src/Tpl/SubListe.pm +++ b/copri4/main/src/Tpl/SubListe.pm @@ -199,6 +199,7 @@ EOF $db->users_up("col_sort","0",$users_dms->{owner}) if("$scol" ne "$users_dms->{col_sort}"); } + $scol = "change" if($node_meta->{template_id} == 198); #print Dumper($node_meta); my $hashfile = "$varenv{logdir}/$users_dms->{u_id}-$searchref->{table_pos}-searchhash"; @@ -390,7 +391,7 @@ EOF $tdclass = "tdint"; $tdstyle = "text-align:right;max-width:8em;$size px;"; } - $ct4rel->{$id}->{$key} = $lb->time4de($ct4rel->{$id}->{$key},"1") if($key =~ /time/); + $ct4rel->{$id}->{$key} = $lb->time4de($ct4rel->{$id}->{$key},"1") if($key =~ /time|change/); $ct4rel->{$id}->{$key} = $q->unescapeHTML($ct4rel->{$id}->{$key}) if($ct4rel->{$id}->{$key}); $ct4rel->{$id}->{$key} = $lb->newline($ct4rel->{$id}->{$key},"","") if($ct4rel->{$id}->{$key}); if($key eq "owner"){