invoice management fix

This commit is contained in:
Rainer Gümpelein 2022-01-26 15:52:25 +01:00
parent 83da7fe92b
commit dc2b4f7086
5 changed files with 44 additions and 64 deletions

View file

@ -710,21 +710,21 @@ sub service_work {
#breaks JSON hash. don't do it
#$return->{$article}->{template_id} = "$pos_record->{$id}->{template_id}";
$bw->log("$article --> service_work template used:",$template_group->{$pos_record->{$id}->{template_id}}->{tpl_id},"");
if($template_group->{$pos_record->{$id}->{template_id}}){
@tpl_order = split /,/,$template_group->{$pos_record->{$id}->{template_id}}->{tpl_order};
$node->{template_id} = "$pos_record->{$id}->{template_id}";
#$bw->log("service_work ($id) template used ($node->{template_id})",$template_group->{$pos_record->{$id}->{template_id}}->{tpl_order},"");
foreach (@tpl_order){
my ($key,$val,$size,$interval,$service_type) = split /=/,$_;
$service_type = 0 if(!looks_like_number($service_type));
my $erledigt = 0;
$erledigt = 1 if(!$history && $pos_record->{$id}->{$key} !~ /::erledigt::/);
$erledigt = 1 if($history && $pos_record->{$id}->{$key} =~ /::erledigt::/);
$erledigt = 1 if(!$history && $pos_record->{$id}->{txt01} && $pos_record->{$id}->{txt01} !~ /::erledigt::/);
$erledigt = 1 if($history && $pos_record->{$id}->{txt01} && $pos_record->{$id}->{txt01} =~ /::erledigt::/);
if((($key =~ /int/ && looks_like_number($pos_record->{$id}->{$key})) || ($key eq "txt01" && $pos_record->{$id}->{$key} && $pos_record->{$id}->{$key} ne "NaN" && $erledigt))){
$tpl_keyseen .= "$key|";
$bw->log("if((($key =~ /int/ && looks_like_number($pos_record->{$id}->{$key})) || ($key eq \"txt01\" && $pos_record->{$id}->{$key} && $pos_record->{$id}->{$key} ne \"NaN\"))){",$tpl_keyseen,"");
$bw->log("$pos_record->{$id}->{barcode} --> if((($key =~ /int/ && looks_like_number($pos_record->{$id}->{$key})) || ($key eq \"txt01\" && $pos_record->{$id}->{$key} && $pos_record->{$id}->{$key} ne \"NaN\"))){",$tpl_keyseen,"");
my $u_name = $users_map->{$pos_record->{$id}->{owner}}->{txt01} || $channel_map->{$pos_record->{$id}->{owner}} || $pos_record->{$id}->{owner};
my $dt2 = DateTime::Format::Pg->parse_datetime($pos_record->{$id}->{mtime});
my $time_over = "0";
@ -760,7 +760,7 @@ sub service_work {
#set init values
#$bw->log("set service init values by @tpl_order","","");
if(!$history && scalar(@tpl_order) > 1){
$bw->log("tpl_keyseen",$tpl_keyseen,"");
#$bw->log("tpl_keyseen",$tpl_keyseen,"");
$tpl_keyseen =~ s/\|$//;
foreach (@tpl_order){
my ($key,$val,$size,$interval,$service_type) = split /=/,$_;
@ -775,7 +775,7 @@ sub service_work {
$return->{$article}->{$key}->{service_type} = "$service_type";
$return->{$article}->{$key}->{work_val} = "1" if($key =~ /int/);
$return->{$article}->{$key}->{work_val} = "::erledigt::" if($key =~ /txt/);
$return->{$article}->{$key}->{mtime} = "2021-09-01 00:00";
$return->{$article}->{$key}->{mtime} = "2022-01-18 00:00";
$return->{$article}->{$key}->{user_name} = "init";
$return->{$article}->{$key}->{owner} = "188";

View file

@ -829,6 +829,7 @@ elsif($q->param('request') eq "service_work"){
$bike_id = $1 if($q->param('bike') =~ /(\d+)/);
$response->{uri_operator} = "$varenv{wwwhost}";
my $node = {};
my $response_work = {};
my $history = 0;
$history = $q->param('history') if(looks_like_number($q->param('history')));
if(ref($auth) eq "HASH" && $auth->{authcookie}){
@ -837,7 +838,7 @@ elsif($q->param('request') eq "service_work"){
(my $xresponse, my $pos_record, my $node_template, my $crecord) = $apif->service_select($q,$authraw,"",$history);
#$bw->log("service_work bike_id $bike_id pos_record",$pos_record,"");
(my $response_work, $node) = $apif->service_work($pos_record,$bikes_allraw,$history,$node_template);
($response_work, $node) = $apif->service_work($pos_record,$bikes_allraw,$history,$node_template);
$bw->log("service_work bike_id $bike_id response_work",$response_work,"");
if(ref($response_work) ne "HASH"){#if fails
$response->{response_state} = "Failure 4010: no service found";
@ -851,7 +852,7 @@ elsif($q->param('request') eq "service_work"){
my ($bikes_all,$bikes_allraw,$bikes_on_station) = $apif->bikes_all($q,\%varenv,$authraw,"");
my $bike = $q->param('bike');
(my $xresponse, my $pos_record, my $node_template, my $crecord) = $apif->service_select($q,$authraw,"",$history);
(my $response_work, $node) = $apif->service_work($pos_record,$bikes_allraw,$history,$node_template);
($response_work, $node) = $apif->service_work($pos_record,$bikes_allraw,$history,$node_template);
if(ref($response_work) ne "HASH"){#if fails
$response->{response_state} = "Failure 4011: no service found";
}
@ -864,7 +865,7 @@ elsif($q->param('request') eq "service_work"){
my ($bikes_all,$bikes_allraw,$bikes_on_station) = $apif->bikes_all($q,\%varenv,$authraw,"");
my ($stations_all,$stations_allraw) = $apif->stations_all($q,\%varenv,$bikes_on_station,$authraw);
(my $xresponse, my $pos_record, my $node_template, my $crecord) = $apif->service_select($q,$authraw,"",$history);
(my $response_work, $node) = $apif->service_work($pos_record,$stations_allraw,$history,$node_template);
($response_work, $node) = $apif->service_work($pos_record,$stations_allraw,$history,$node_template);
if(ref($response_work) ne "HASH"){#if fails
$response->{response_state} = "Failure 4013: no service found";
}
@ -878,7 +879,7 @@ elsif($q->param('request') eq "service_work"){
my ($stations_all,$stations_allraw) = $apif->stations_all($q,\%varenv,$bikes_on_station,$authraw);
my $station = $q->param('station');
(my $xresponse, my $pos_record, my $node_template, my $crecord) = $apif->service_select($q,$authraw,"",$history);
(my $response_work, $node) = $apif->service_work($pos_record,$stations_allraw,$history,$node_template);
($response_work, $node) = $apif->service_work($pos_record,$stations_allraw,$history,$node_template);
if(ref($response_work) ne "HASH"){#if fails
$response->{response_state} = "Failure 4014: no service found";
}
@ -886,7 +887,7 @@ elsif($q->param('request') eq "service_work"){
foreach my $key (keys %$response_work){
$op_response_work->{$oprefix . $key} = $response_work->{$key};
}
$response = { %$response, %$response_work, %$auth };
$response = { %$response, %$op_response_work, %$auth };
}else{
$response->{response_state} = "Failure 3002: no bike OR station ID defined";
}