sig feedback counter

This commit is contained in:
ragu 2022-06-29 17:34:51 +02:00
parent 25a86e87e5
commit 8bcc46416c
5 changed files with 98 additions and 65 deletions

View file

@ -490,6 +490,24 @@ sub service_update(){
my $return={}; my $return={};
my $update = {}; my $update = {};
my $bike = $q->escapeHTML($q->param('bike')) || "";
my $bike_id = $bike;
$bike_id =~ s/S[1-9]X/SX/;
$bike_id = $1 if($bike_id =~ /(\d+)/);
my $pref = {
table => "contenttrans",
table_pos => "contenttranspos",
fetch => "one",
template_id => "218",#Mietjournal tpl_id
barcode => $bike_id,
ca_id => "$auth->{c_id}",
"ct.close_time" => "is::null",
int10 => "1",
int28 => "3",
};
my $ctpos = { c_id => 0 };
if($q->param('request') eq "service_done"){ if($q->param('request') eq "service_done"){
$c_id = $q->param('service_id') if($q->param('service_id')); $c_id = $q->param('service_id') if($q->param('service_id'));
$update = { $update = {
@ -507,6 +525,16 @@ sub service_update(){
$update->{int01} = 1 if($q->param('bike_broken')); $update->{int01} = 1 if($q->param('bike_broken'));
$update->{txt02} = $q->escapeHTML($q->param('message')) if($q->param('message')); $update->{txt02} = $q->escapeHTML($q->param('message')) if($q->param('message'));
#to update sig int28 counter
$ctpos = $dbt->collect_post($dbh,$pref) if($bike_id);
if($ctpos->{c_id} > 0){
my $update_pos = {
table => "contenttranspos",
mtime => "now()",
int28 => "2",
};
$dbt->update_record($dbh,$update_pos,$ctpos);
}
}elsif($q->param('request') eq "user_minianswer"){ }elsif($q->param('request') eq "user_minianswer"){
$update = { $update = {
table => "contentadrpos", table => "contentadrpos",
@ -530,6 +558,29 @@ sub service_update(){
$update->{int02} = $post_record->{int26} if($post_record->{int26}); $update->{int02} = $post_record->{int26} if($post_record->{int26});
$update->{txt10} = $dbt->{operator}->{$last_used_operator}->{oprefix}; $update->{txt10} = $dbt->{operator}->{$last_used_operator}->{oprefix};
} }
#to update sig int28 counter
$ctpos = $dbt->collect_post($dbh,$pref) if($bike_id);
if($ctpos->{c_id} > 0){
my $update_pos = {
table => "contenttranspos",
mtime => "now()",
int28 => "null",
};
$dbt->update_record($dbh,$update_pos,$ctpos);
#user_miniquest_count
my $user_miniquest_count = $auth->{int23} || 0;
if($user_miniquest_count <= 3){
$user_miniquest_count++;
my $update_op = {
table => "contentadr",
int23 => $user_miniquest_count,
atime => "now()",
};
my $rows = $dbt->update_record($dbh,$update_op,$auth);
}
}
} }
my $record = { c_id => $c_id }; my $record = { c_id => $c_id };
@ -1510,6 +1561,29 @@ sub booking_update(){
$booking_values->{lock_state} = "locking" if($booking->{int20} == 3); $booking_values->{lock_state} = "locking" if($booking->{int20} == 3);
$booking_values->{lock_state} = "unlocking" if($booking->{int20} == 4); $booking_values->{lock_state} = "unlocking" if($booking->{int20} == 4);
#keep in mind, it works on operator dependency
#only for project=Bayern and developer enabled
#redundant code in APIfunc sub rentals for sig user_miniquery
if($booking->{int10} == 1 && $dbt->{operator}->{$varenv{dbname}}->{project} eq "Bayern" && $auth->{int23} < 4){
$bw->log("user_miniquery via $varenv{dbname} user ID $auth->{c_id} exist count:",$auth->{int23},"");
$booking_values->{user_miniquery} = $dbt->evaluationsfragen($dbh);
#user_miniquest_count
my $user_miniquest_count = $auth->{int23} || 0;
if($user_miniquest_count <= 4){
$user_miniquest_count++;
my $update_op = {
table => "contentadr",
int23 => $user_miniquest_count,
atime => "now()",
};
$rows = $dbt->update_record($dbh,$update_op,$auth);
}
}#end mini_quest
#fetch tracking distance on Ilockit cloud by summary trip if(tracking && deviceId && available) #fetch tracking distance on Ilockit cloud by summary trip if(tracking && deviceId && available)
if($booking->{int25} == 1 && $booking->{int10} == 1){ if($booking->{int25} == 1 && $booking->{int10} == 1){
$bw->log("get co2saving",$booking->{c_id},""); $bw->log("get co2saving",$booking->{c_id},"");
@ -1657,7 +1731,7 @@ sub user_bikes_occupied(){
my $self = shift; my $self = shift;
my $q = shift; my $q = shift;
my $auth = shift; my $auth = shift;
my $station_lock_state = shift || ""; #my $station_lock_state = shift || "";
my $pref = { my $pref = {
table => "contenttrans", table => "contenttrans",
@ -1674,7 +1748,7 @@ sub user_bikes_occupied(){
#station_lock_stat enables a OR condition to view available as requested/occupied #station_lock_stat enables a OR condition to view available as requested/occupied
##selects also station_lock_state=locking bikes to view once miniquery ##selects also station_lock_state=locking bikes to view once miniquery
#true if not defined! it will only defined on booking_request, because there must be available #true if not defined! it will only defined on booking_request, because there must be available
$pref->{station_lock_state} = "3" if(!$station_lock_state); #$pref->{station_lock_state} = "3" if(!$station_lock_state);
my $record = $dbt->collect_post($dbh,$pref); my $record = $dbt->collect_post($dbh,$pref);
return $record; return $record;
}#end user_bikes_occupied }#end user_bikes_occupied
@ -1716,41 +1790,17 @@ sub rentals(){
} }
#sig update station_lock_state=locked to cancel once miniquery #sig update station_lock_state=locked to cancel once miniquery
elsif($record->{$id}->{int11} && $record->{$id}->{int11} == 3){ elsif($record->{$id}->{int11} && $record->{$id}->{int11} == 3){
#$return->{state} = "requested";#used once in App after sig rental-end push-notify
$return->{$id}->{rentalId} = "$record->{$id}->{txt11}"; $return->{$id}->{rentalId} = "$record->{$id}->{txt11}";
if($record->{$id}->{int28} && $record->{$id}->{int28} == 3){ if($record->{$id}->{int28}){
$return->{$id}->{state} = "returned";
#only for project=Bayern and developer enabled #only for project=Bayern and developer enabled
if($dbt->{operator}->{$varenv{dbname}}->{project} eq "Bayern" && $auth->{int23} < 4){ if($dbt->{operator}->{$varenv{dbname}}->{project} eq "Bayern" && $auth->{int23} < 4){
$bw->log("user_miniquery via $varenv{dbname} user ID $auth->{c_id} exist count:",$auth->{int23},""); $bw->log("user_miniquery via $varenv{dbname} user ID $auth->{c_id} exist count:",$auth->{int23},"");
$return->{$id}->{user_miniquery} = $dbt->evaluationsfragen($dbh); $return->{$id}->{user_miniquery} = $dbt->evaluationsfragen($dbh);
#user_miniquest_count
my $user_miniquest_count = $auth->{int23} || 0;
if($user_miniquest_count <= 4){
$user_miniquest_count++;
my $update_op = {
table => "contentadr",
int23 => $user_miniquest_count,
atime => "now()",
};
my $rows = $dbt->update_record($dbh,$update_op,$auth);
}
}#end mini_quest }#end mini_quest
$return->{$id}->{state} = "returned";#used once in App after sig rental-end push-notify
$return->{$id}->{rentalId} = "$record->{$id}->{txt11}";
my $update_pos = {
table => "contenttranspos",
int28 => "1",
c_id => "$id",
};
$dbt->update_record($dbh,$update_pos,$update_pos);
$bw->log("sig update int28 station_lock_state=locked to cancel once miniquery",$update_pos,"");
} }
} }
} }

View file

@ -210,7 +210,8 @@ elsif($q->param('request') eq "booking_request"){
#check count of occcupied/requested bikes #check count of occcupied/requested bikes
#"station_lock_state" disables a OR condition to view available as requested/occupied #"station_lock_state" disables a OR condition to view available as requested/occupied
my $record = $apif->user_bikes_occupied($q,$authraw,"station_lock_state"); #my $record = $apif->user_bikes_occupied($q,$authraw,"station_lock_state");
my $record = $apif->user_bikes_occupied($q,$authraw);
my $count=0; my $count=0;
my $still_requested = 0; my $still_requested = 0;
foreach my $id (keys(%$record)){ foreach my $id (keys(%$record)){
@ -308,7 +309,8 @@ elsif($q->param('request') eq "booking_request"){
#return list of occupied/requested bikes #return list of occupied/requested bikes
#"station_lock_state" disables a OR condition to view available as requested/occupied #"station_lock_state" disables a OR condition to view available as requested/occupied
$record = $apif->user_bikes_occupied($q,$authraw,"station_lock_state"); #$record = $apif->user_bikes_occupied($q,$authraw,"station_lock_state");
$record = $apif->user_bikes_occupied($q,$authraw);
$response->{bikes_occupied} = $apif->rentals($record,$authraw,"1");#returns JSON rental values $response->{bikes_occupied} = $apif->rentals($record,$authraw,"1");#returns JSON rental values
}#end still_requested }#end still_requested
@ -393,29 +395,6 @@ elsif($q->param('request') eq "booking_cancel" || $q->param('request') eq "booki
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book); ($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values}; $response = {%$response, %$booking_values};
} }
#keep in mind, it works on operator dependency
#only for project=Bayern and developer enabled
#redundant code in APIfunc sub rentals for sig user_miniquery
if($booking_values->{state} eq "available" && ($dbt->{operator}->{$varenv{dbname}}->{project} eq "Bayern" && $authraw->{int23} < 4)){
$bw->log("user_miniquery via $varenv{dbname} user ID $authraw->{c_id} exist count:",$authraw->{int23},"");
$response->{user_miniquery} = $dbt->evaluationsfragen($dbh);
#user_miniquest_count
my $user_miniquest_count = $authraw->{int23} || 0;
if($user_miniquest_count <= 4){
$user_miniquest_count++;
my $update_op = {
table => "contentadr",
int23 => $user_miniquest_count,
atime => "now()",
};
my $rows = $dbt->update_record($dbh,$update_op,$authraw);
}
}#end mini_quest
}#end occupied|available }#end occupied|available
my $record = $apif->user_bikes_occupied($q,$authraw); my $record = $apif->user_bikes_occupied($q,$authraw);
@ -716,7 +695,7 @@ elsif($q->param('request') eq "user_feedback" || $q->param('request') eq "user_m
my $back_id = ""; my $back_id = "";
my $rows=0; my $rows=0;
#if(!$back_id){#disabled because of every feedback have to be saved #if(!$back_id)#disabled because of every feedback have to be saved
if(1==1){ if(1==1){
#INSERT just dadaset #INSERT just dadaset
$back_id = $apif->service_insert($q,$authraw,$node_template,$crecord,$aowner); $back_id = $apif->service_insert($q,$authraw,$node_template,$crecord,$aowner);

View file

@ -117,7 +117,7 @@ sub sig_booking_update {
"event"=>"RENTAL_END", "event"=>"RENTAL_END",
"data"=>{ "data"=>{
"bikeId"=>"test16b5-0522-43da-ab66-477744a731a3", "bikeId"=>"test16b5-0522-43da-ab66-477744a731a3",
"lockStatus"=>"unlocked", "lockStatus"=>"locked",
"rentalId"=>"$rentalId", "rentalId"=>"$rentalId",
"reservationState"=>"", "reservationState"=>"",
"startTime"=>"2022-06-06T15:00:18.045Z", "startTime"=>"2022-06-06T15:00:18.045Z",
@ -190,7 +190,7 @@ sub sig_booking_update {
$q->param(-name=>'state',-value=>"available"); $q->param(-name=>'state',-value=>"available");
$q->param(-name=>'lock_state',-value=>"locked"); $q->param(-name=>'lock_state',-value=>"locked");
#addition state in context to get state=returned for miniquery #addition state in context to get state=returned for miniquery
$sig_book->{station_lock_state} = "3"; $sig_book->{station_lock_state} = "3";#set int28 to 3
} }
($rows, $booking_values) = $apif->booking_update($q,$varenv,$authraw,$aowner,$sig_book) if($authraw->{c_id}); ($rows, $booking_values) = $apif->booking_update($q,$varenv,$authraw,$aowner,$sig_book) if($authraw->{c_id});

View file

@ -625,9 +625,13 @@ sub collect_post(){
}elsif($key =~ /^(c_id|ca_id|ct_id|owner|barcode|int\d+)$/ && $value){ }elsif($key =~ /^(c_id|ca_id|ct_id|owner|barcode|int\d+)$/ && $value){
$cp_where .= " and cp.$key $op $value"; $cp_where .= " and cp.$key $op $value";
} }
}elsif($key eq "int10" && $value eq "('3','2')" && $fetch->{station_lock_state}){ #}elsif($key eq "int10" && $value eq "('3','2')" && $fetch->{station_lock_state}){
#selects also station_lock_state=locking bikes to view once miniquery #$cp_where .= " and (cp.$key $op $value OR cp.int28 = 3)";
$cp_where .= " and (cp.$key $op $value OR cp.int28 = 3)"; }elsif($key eq "int10" && $value eq "('3','2')"){
#selects also push event=RENTAL_END station_lock_state bikes to view miniquery
#that means in bikes_occupied context, that also rentals with int28>0
#keep in mind: OR!!!-)
$cp_where .= " and (cp.$key $op $value OR cp.int28 > 0)";
}elsif($key =~ /^(c_id|ca_id|ct_id|owner|barcode|int\d+)$/ && $value){ }elsif($key =~ /^(c_id|ca_id|ct_id|owner|barcode|int\d+)$/ && $value){
$cp_where .= " and cp.$key $op $value"; $cp_where .= " and cp.$key $op $value";
}elsif($fetch->{catch} && $key eq "template_id" && $value){ }elsif($fetch->{catch} && $key eq "template_id" && $value){

View file

@ -45,8 +45,8 @@ sub tpl(){
#my $api_test = "sharee_fr01"; my $bike="FR1538"; #my $api_test = "sharee_fr01"; my $bike="FR1538";
#my $api_test = "sharee_fr01"; my $bike="FR4781";#Tracking and BVB test #my $api_test = "sharee_fr01"; my $bike="FR4781";#Tracking and BVB test
#my $api_test = "sharee_kn"; my $bike="KN205"; #my $api_test = "sharee_kn"; my $bike="KN205";
#my $api_test = "sharee_wue"; my $bike="WUE5525"; my $api_test = "sharee_wue"; my $bike="WUE5525";
my $api_test = "sharee_sx"; my $bike="S3X1001"; #my $api_test = "sharee_sx"; my $bike="S3X1001";
#my $api_test = "sharee_ren"; my $bike="REN2"; #my $api_test = "sharee_ren"; my $bike="REN2";
print $q->div({-style=>'float:right;text-align:right;height:25px;padding:6px 15px;background-color:white'},$q->a({-style=>"background-color:#ffffff;color:#$bgcolor1;", -href=>"$varenv->{metahost}/src/scripts/tests/index.pl?sessionid=$coo\&api_test=$api_test\&bike=$bike", -target=>'_blank'}," [ tests --> $api_test ] "),"$users_sharee->{txt08}",$q->a({-style=>"color:#$bgcolor1;", -href=>"logout_sharee$session"},"logout")),"\n"; print $q->div({-style=>'float:right;text-align:right;height:25px;padding:6px 15px;background-color:white'},$q->a({-style=>"background-color:#ffffff;color:#$bgcolor1;", -href=>"$varenv->{metahost}/src/scripts/tests/index.pl?sessionid=$coo\&api_test=$api_test\&bike=$bike", -target=>'_blank'}," [ tests --> $api_test ] "),"$users_sharee->{txt08}",$q->a({-style=>"color:#$bgcolor1;", -href=>"logout_sharee$session"},"logout")),"\n";