servicetool service_type fix

This commit is contained in:
ragu 2022-10-04 17:06:17 +02:00
parent f65e88b302
commit d0c401c848
4 changed files with 13 additions and 21 deletions

View file

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