diff --git a/copri4/main/src/Mod/APIfunc.pm b/copri4/main/src/Mod/APIfunc.pm
index e2f18e5..de7923b 100755
--- a/copri4/main/src/Mod/APIfunc.pm
+++ b/copri4/main/src/Mod/APIfunc.pm
@@ -579,7 +579,7 @@ sub service_update(){
my $auth_op = $dbt->fetch_record($dbh_operator,$adref);
my $user_miniquest_count = $auth_op->{int23} || 0;
- #if($user_miniquest_count <= 3){
+ if($user_miniquest_count <= 3){
$user_miniquest_count++;
my $update_op = {
table => "contentadr",
@@ -587,7 +587,7 @@ sub service_update(){
atime => "now()",
};
my $rows = $dbt->update_record($dbh_operator,$update_op,$auth_op);
- #}
+ }
}
}
@@ -1972,7 +1972,7 @@ sub bikes_available(){
$return->{$id}->{rental_description}->{reserve_timerange} = "15";
$return->{$id}->{rental_description}->{reserve_timerange} = "30" if($record->{$id}->{int11} == 3);#sig timeout time
$return->{$id}->{rental_description}->{rental_info}->{1} = ["Tracking","Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!"] if($record->{$id}->{int25});
- $return->{$id}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber AGB zugestimmt (als Demo sharee AGB)."] if($auth->{c_id} && ($auth->{c_id} == 1842 || $auth->{c_id} == 1843 || $auth->{c_id} == 5781 || $auth->{c_id} == 11765 || $auth->{c_id} == 38883));
+ #$return->{$id}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber AGB zugestimmt (als Demo sharee AGB)."] if($auth->{c_id} && ($auth->{c_id} == 1842 || $auth->{c_id} == 1843 || $auth->{c_id} == 5781 || $auth->{c_id} == 11765 || $auth->{c_id} == 38883));
my $i = 0;
foreach my $td (sort keys (%$td_template)){
@@ -2108,15 +2108,18 @@ sub stations_available(){
my $auth = shift || "";
my $record_pos = shift || {};
- #2022-07-12, int12 changed to bike type_id
- my $station_group = "";
- $station_group = $record_pos->{int29} if(ref($record_pos) eq "HASH" && $record_pos->{int29});
- my $aa_station = "";
+ #station_group and bike_group alias bike nodes.type_id
+ #my $station_group = "";
+ #$station_group = $record_pos->{int29} if(ref($record_pos) eq "HASH" && $record_pos->{int29});
+
+ #station_bike_node and bike_node alias bike nodes.main_id
+ my $station_bike_node = "";
+ $station_bike_node = $record_pos->{int21} if(ref($record_pos) eq "HASH" && $record_pos->{int21});
+
#take start station from pos
+ my $aa_station = "";
$aa_station = $record_pos->{int06} if(ref($record_pos) eq "HASH" && $record_pos->{int06} && $record_pos->{int42});
- #$bw->log("stations_available by station_group: $station_group",$record_pos,"");
-
my $authed = 0;
$authed = 1 if(ref($auth) eq "HASH" && $auth->{c_id});
my ($bike_group,$bike_node,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
@@ -2133,24 +2136,24 @@ sub stations_available(){
#group_id must have 6 numbers like 300103
my $pref_sql = "";
$pref_sql .= " and (";
- foreach(@{$bike_group}){
+ foreach(@{$bike_node}){
#on rental end select only stations which are defined
#A-A rental
- if($station_group && $_ =~ /(\d+)/ && $aa_station){
- my $group_id = $1;
- if($group_id == $station_group){
+ if($station_bike_node && $_ =~ /(\d+)/ && $aa_station){
+ my $node_id = $1;
+ if($node_id == $station_bike_node){
$pref_sql .= " ct.int04 = $aa_station OR";
}
#A-B rental
- }elsif($station_group && $_ =~ /(\d+)/){
- my $group_id = $1;
- if($group_id == $station_group){
- $pref_sql .= " ct.txt24 like '%$group_id%' OR";
+ }elsif($station_bike_node && $_ =~ /(\d+)/){
+ my $node_id = $1;
+ if($node_id == $station_bike_node){
+ $pref_sql .= " ct.txt24 like '%$node_id%' OR";
}
#without a rental
}elsif($_ =~ /(\d+)/){
- my $group_id = $1;
- $pref_sql .= " ct.txt24 like '%$group_id%' OR";
+ my $node_id = $1;
+ $pref_sql .= " ct.txt24 like '%$node_id%' OR";
}
}
$pref_sql =~ s/OR$//;
@@ -2158,7 +2161,7 @@ sub stations_available(){
$pref_sql = "" if($pref_sql !~ /\d/);
my $record = {};
- $record = $dbt->fetch_record($dbh,$pref,$pref_sql) if(ref($bike_group) eq "ARRAY" && @{$bike_group}[0]);
+ $record = $dbt->fetch_record($dbh,$pref,$pref_sql) if(ref($bike_node) eq "ARRAY" && @{$bike_node}[0]);
my $op_return = {};
foreach my $id (sort { $record->{$a}->{barcode} <=> $record->{$b}->{barcode} } keys (%$record)){
@@ -2171,11 +2174,11 @@ sub stations_available(){
#$return->{$id}->{description} = "$record->{$id}->{txt01}";
$return->{$id}->{description} = Encode::encode('utf-8', Encode::decode('iso-8859-1', $record->{$id}->{txt01}));
$return->{$id}->{state} = "$dbt->{copri_conf}->{bike_state}->{$record->{$id}->{int10}}";
+ $return->{$id}->{gps_radius} = "$record->{$id}->{int06}";
$return->{$id}->{station_group} = "";
- if($record->{$id}->{txt24}){
- $return->{$id}->{gps_radius} = "$record->{$id}->{int06}";
- $record->{$id}->{txt24} =~ s/(\d+)/$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$1/g;
- my @station_group = split(/\s/,$record->{$id}->{txt24});
+ if($record->{$id}->{txt25}){
+ $record->{$id}->{txt25} =~ s/(\d+)/$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$1/g;
+ my @station_group = split(/\s/,$record->{$id}->{txt25});
$return->{$id}->{station_group} = [@station_group];
}
@@ -2242,7 +2245,7 @@ sub stations_all(){
my $pref_sql = "";
$pref_sql .= " and (";
- foreach(@{$bike_group}){
+ foreach(@{$bike_node}){
if($_ =~ /(\d+)/){
$pref_sql .= " ct.txt24 like '%$1%' OR";
}
@@ -2271,7 +2274,7 @@ sub stations_all(){
}
$pref_sql =~ s/OR$//;
$pref_sql .= ")";
- $record = $dbt->fetch_record($dbh,$pref,$pref_sql) if(ref($bike_group) eq "ARRAY" && @{$bike_group}[0]);
+ $record = $dbt->fetch_record($dbh,$pref,$pref_sql) if(ref($bike_node) eq "ARRAY" && @{$bike_node}[0]);
}
}
@@ -2319,10 +2322,10 @@ sub stations_all(){
$return->{$id}->{bike_soll} = "$bike_soll" || "0";
$return->{$id}->{bike_ist} = "$bikes_on_station->{$id}->{bike_ist}" || "0";
$return->{$id}->{station_group} = "";
- if($record->{$id}->{txt24}){
- $return->{$id}->{gps_radius} = "$record->{$id}->{int06}";
- $record->{$id}->{txt24} =~ s/(\d+)/$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$1/g;
- my @station_group = split(/\s/,$record->{$id}->{txt24});
+ $return->{$id}->{gps_radius} = "$record->{$id}->{int06}";
+ if($record->{$id}->{txt25}){
+ $record->{$id}->{txt25} =~ s/(\d+)/$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$1/g;
+ my @station_group = split(/\s/,$record->{$id}->{txt25});
$return->{$id}->{station_group} = [@station_group];
}
$op_return->{$dbt->{operator}->{$varenv->{dbname}}->{oprefix} . $id} = $return->{$id};
diff --git a/copri4/main/src/Mod/APIsigclient.pm b/copri4/main/src/Mod/APIsigclient.pm
index ed18bd4..463693a 100755
--- a/copri4/main/src/Mod/APIsigclient.pm
+++ b/copri4/main/src/Mod/APIsigclient.pm
@@ -149,7 +149,8 @@ sub sig_available {
$return2copri->{$station}->{int06} = $1 if($response_out->{$station}->{gps_radius} =~ /(\d+)/);
$return2copri->{$station}->{txt01} = "$response_out->{$station}->{description}";
$return2copri->{$station}->{txt06} = "$response_out->{$station}->{gps}->{latitude},$response_out->{$station}->{gps}->{longitude}";
- $return2copri->{$station}->{txt24} = "300101";#type_id
+ $return2copri->{$station}->{txt24} = "300102";#node.main_id
+ $return2copri->{$station}->{txt25} = "300101";#node_type_id
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{station_state} }) {
if($response_out->{$station}->{state} eq $value){
$return2copri->{$station}->{int10} = $key;
@@ -217,7 +218,7 @@ sub sig_available {
$response_out->{$bike}->{rental_description}->{id} = "$tariff_content->{$tid}->{barcode}";
$response_out->{$bike}->{rental_description}->{reserve_timerange} = "30";
$response_out->{$bike}->{rental_description}->{rental_info}->{1} = ["Tracking","Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!"];#TODO if($resp->{gps_tracker_id});
- $response_out->{$bike}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber AGB zugestimmt (als Demo sharee AGB)."] if($ctadr->{c_id} && ($ctadr->{c_id} == 1842 || $ctadr->{c_id} == 1843 || $ctadr->{c_id} == 5781 || $ctadr->{c_id} == 11765 || $ctadr->{c_id} == 38883));
+ #$response_out->{$bike}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber AGB zugestimmt (als Demo sharee AGB)."] if($ctadr->{c_id} && ($ctadr->{c_id} == 1842 || $ctadr->{c_id} == 1843 || $ctadr->{c_id} == 5781 || $ctadr->{c_id} == 11765 || $ctadr->{c_id} == 38883));
my $i = 0;
foreach my $td (sort keys (%$td_template)){
diff --git a/copri4/main/src/Mod/APIvelo.pm b/copri4/main/src/Mod/APIvelo.pm
index 1b96c9c..7ead9ae 100755
--- a/copri4/main/src/Mod/APIvelo.pm
+++ b/copri4/main/src/Mod/APIvelo.pm
@@ -67,7 +67,6 @@ eval {
#- int28=station_lock_state (station lock velofactur)
#- int30=velofactur station ID
#- int31=velofactur slot ID
- #- txt25=velofactur last station message (error or success)
my $jrout = $json->pretty->encode({ fakturjson => $response_in });
print FILE "<=== JSON POST from velofactur:\n$jrout\n" if($debug);
@@ -105,7 +104,6 @@ eval {
$update_cc->{int27} = $1 if($response_in->{Fahrzeug}->{Id} && $response_in->{Fahrzeug}->{Id} =~ /(\d+)/);
$update_cc->{int30} = $1 if($response_in->{Station} && $response_in->{Station} =~ /(\d+)/);
$update_cc->{int31} = $1 if($response_in->{Slot} && $response_in->{Slot} =~ /(\d+)/);
- $update_cc->{txt25} = $response_in->{Status} if($response_in->{Status});
#velofactur false|true boeelan
#set bike_state to maintanance
diff --git a/copri4/main/src/Mod/Prelib.pm b/copri4/main/src/Mod/Prelib.pm
index 5f01146..fc083d9 100755
--- a/copri4/main/src/Mod/Prelib.pm
+++ b/copri4/main/src/Mod/Prelib.pm
@@ -172,6 +172,7 @@ sub save_contenttranspos {
fetch => "one",
template_id => "218",#Mietjournal tpl_id
start_time => ">::$end_time",
+ barcode => $ctpos->{barcode},
"ct.close_time" => "is::null",
};
diff --git a/copri4/main/src/Mod/Premain.pm b/copri4/main/src/Mod/Premain.pm
index b916a20..e31a7b6 100755
--- a/copri4/main/src/Mod/Premain.pm
+++ b/copri4/main/src/Mod/Premain.pm
@@ -539,9 +539,32 @@ print ATTR "next: $next\n" if($debug);
$valxx = $q->escapeHTML("@val");
$u_rows += $db->updater("$table","c_id",$c_id,$_,$valxx,$users_dms->{u_id});
}
- #txt24 bike_group/station_group multiple select
+ #txt24 bike_node/station_group and txt25 bike_group multiple select
elsif($tpl->{tpl_id} == 225 && $_ eq "txt24"){
my @val = $q->param($_);
+ my %station_filter_hash = ();
+ my @_valxx_filter = ();
+ my $node = { template_id => 205,#Leihrad_liste
+ parent_id => 200013,#Waren
+ fetch => "all",
+ keyfield => "main_id",
+ };
+ my $bike_nodes = {};
+ $bike_nodes = $dbt->fetch_rel4tpl4nd($dbh,$node);
+
+ foreach my $bike_node (@val){
+ foreach my $rid ( keys (%$bike_nodes)){
+ if($bike_node == $bike_nodes->{$rid}->{main_id} && $bike_nodes->{$rid}->{type_id}){
+ $station_filter_hash{$bike_nodes->{$rid}->{type_id}} = 1;
+ }
+ }
+ }
+
+ foreach my $type_id (keys (%station_filter_hash)){
+ push (@_valxx_filter, "$type_id");
+ }
+
+ $db->updater("$table","c_id",$c_id,"txt25","@_valxx_filter",$users_dms->{u_id});
$valxx = $q->escapeHTML("@val");
$u_rows += $db->updater("$table","c_id",$c_id,$_,$valxx,$users_dms->{u_id});
}
diff --git a/copri4/main/src/Mod/Shareework.pm b/copri4/main/src/Mod/Shareework.pm
index d858add..4505fe6 100755
--- a/copri4/main/src/Mod/Shareework.pm
+++ b/copri4/main/src/Mod/Shareework.pm
@@ -251,6 +251,7 @@ sub save_account(){
#txt15=Bonus- oder Antragsnummer (falls vorhanden)=15
#only check bonusnr and add operators dbname.
#bonustarif will be set after operator insert
+ #TODO, check bonusnr insert on sharee_kn Operator (Giese)
elsif($_ eq "txt15"){
#only done by App web iframe Anmelde-Registration formular
print FILE "Bonusnr request $_: $valxx\n" if($debug);
diff --git a/copri4/main/src/Tpl/BaseEdit.pm b/copri4/main/src/Tpl/BaseEdit.pm
index 88c9b99..26558f3 100755
--- a/copri4/main/src/Tpl/BaseEdit.pm
+++ b/copri4/main/src/Tpl/BaseEdit.pm
@@ -684,15 +684,18 @@ EOF
print $q->td({-class=>'content1_cms',-colspan=>'1'},$but->selector2("$key","50px;","$height",$ctrel->{$key},@_service_valxx));
}
elsif($key =~ /txt24/ && $node_meta->{tpl_id} == 225){ #Station on station_group (bikenode.main_ids)
- my %station_filter_hash = ();
+ #my %station_filter_hash = ();
+ #my @_valxx_filter = ("");
my @_valxx = ("");
foreach my $rid (sort { $bike_nodes->{$a}->{node_name} cmp $bike_nodes->{$b}->{node_name} } keys (%$bike_nodes)){
- #push (@_valxx, "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}");
- $station_filter_hash{$bike_nodes->{$rid}->{type_id}} = 1;
+ push (@_valxx, "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}");
+ #$station_filter_hash{$bike_nodes->{$rid}->{type_id}} = 1;
}
- foreach my $type_id (keys (%station_filter_hash)){
- push (@_valxx, "$type_id:$dbt->{copri_conf}->{type_id}->{$type_id} - $type_id");
- }
+ #foreach my $type_id (keys (%station_filter_hash)){
+ # push (@_valxx_filter, "$type_id");
+ #}
+ #type_id will be set on submit by selected values
+ #print $q->hidden(-name=>"txt25",-override=>1,-value=>"@_valxx_filter");
my $height = scalar(@_valxx);
print $q->Tr();
@@ -720,7 +723,6 @@ EOF
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector("$key","$selsize",$ctrel->{$key},@_valxx));
}
- #print $q->hidden(-name=>"$key",-override=>1,-value=>"null");#2021-06-02 select works without empty null
}
elsif($key =~ /txt/ && $size =~ /area$/){
my $h= 1;# if($size =~ /area(\d+)/);
diff --git a/copri4/main/src/Tpl/Liste3.pm b/copri4/main/src/Tpl/Liste3.pm
index bfa9886..135ea8f 100755
--- a/copri4/main/src/Tpl/Liste3.pm
+++ b/copri4/main/src/Tpl/Liste3.pm
@@ -589,16 +589,16 @@ sub tpl(){
}
print $q->td({-class=>'search_line'},$but->selector_class("s_$key","","",$s_val,@s_valxx)),"\n";
}elsif($size =~ /select/ && $key =~ /txt24/ && $tpl_id =~ /225/){#txt24=bike_group (for station filter)
- my %station_filter_hash = ();
+ #my %station_filter_hash = ();
my @s_valxx = ("");
foreach my $rid (sort { $bike_nodes->{$a}->{node_name} cmp $bike_nodes->{$b}->{node_name} } keys (%$bike_nodes)){
- #push (@s_valxx, "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}");
- $station_filter_hash{$bike_nodes->{$rid}->{type_id}} = 1;
+ push (@s_valxx, "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}");
+ #$station_filter_hash{$bike_nodes->{$rid}->{type_id}} = 1;
}
- foreach my $type_id (keys (%station_filter_hash)){
- push (@s_valxx, "$type_id:$dbt->{copri_conf}->{type_id}->{$type_id} - $type_id");
- }
+ #foreach my $type_id (keys (%station_filter_hash)){
+ # push (@s_valxx, "$type_id:$dbt->{copri_conf}->{type_id}->{$type_id} - $type_id");
+ #}
print $q->td({-class=>'search_line'},$but->selector_class("s_$key","","",$s_val,@s_valxx)),"\n";
}elsif($size =~ /select/ && $key =~ /int21|int22/ && $tpl_id == 228){#Bonusnummern
@@ -1033,14 +1033,11 @@ sub tpl(){
}
print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$flotten"),"\n";
}elsif($ct4rel->{$id}->{template_id} == 225 && $key eq "txt24"){
- my @station_filter = ($ct4rel->{$id}->{$key});
- @station_filter = split(/\s+/,$ct4rel->{$id}->{$key}) if($ct4rel->{$id}->{$key} =~ /\d\s+\d/);
- my $group_type = "";
- foreach (@station_filter){
- $group_type .= "$dbt->{copri_conf}->{type_id}->{$_} - $_
";
+ my $flotten = "";
+ foreach my $rid (sort { $bike_nodes->{$a}->{node_name} cmp $bike_nodes->{$b}->{node_name} } keys (%$bike_nodes)){
+ $flotten .= "$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}
" if($ct4rel->{$id}->{$key} =~ /$bike_nodes->{$rid}->{main_id}/);
}
- print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$group_type"),"\n";
-
+ print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$flotten"),"\n";
}elsif($ct4rel->{$id}->{template_id} == 228 && $key =~ /int21|int22/){
my $bonustarif = "";
foreach my $rid (sort { $tariff_all->{$a}->{barcode} <=> $tariff_all->{$b}->{barcode} } keys (%$tariff_all)){
diff --git a/copri4/main/src/scripts/velofaktur_client.pl b/copri4/main/src/scripts/velofaktur_client.pl
index bf62b30..67cb848 100755
--- a/copri4/main/src/scripts/velofaktur_client.pl
+++ b/copri4/main/src/scripts/velofaktur_client.pl
@@ -154,7 +154,6 @@ sub post_velo {
mtime => "now()",
owner => "$owner",
};
- $update_cc->{txt25} = $response_in->{status} if($response_in->{status});
$dbt->update_record($dbh,$update_cc,$record_cc) if($record_cc->{c_id});
$bw->log("update content velofactur response Status for bike $velo_id $record_cc->{barcode} $response_in->{status}",$update_cc,"");
}
@@ -177,7 +176,6 @@ sub post_velo {
$update_pos->{int27} = $velo_id if($velo_id);
$update_pos->{30} = $Station if($Station);
$update_pos->{31} = $Slot if($Slot);
- $update_pos->{txt25} = $response_in->{status} if($response_in->{status});
$dbt->update_record($dbh,$update_pos,$record_pos) if($record_pos->{c_id});
$bw->log("update contenttranspos velofactur response Status for bike $velo_id $record_pos->{barcode} $response_in->{status}",$update_pos,"");
}
diff --git a/copri4/shareeapp-operator/src/Lib/Mlogic.pm b/copri4/shareeapp-operator/src/Lib/Mlogic.pm
index 3503674..dd08661 100755
--- a/copri4/shareeapp-operator/src/Lib/Mlogic.pm
+++ b/copri4/shareeapp-operator/src/Lib/Mlogic.pm
@@ -42,9 +42,9 @@ sub tpl(){
if($users_sharee->{c_id} && $R::sharee_edit ne "delete_account2" && ($users_sharee->{c_id} eq $varenv->{superu_id} || $dbt->{copri_conf}->{stage} eq "test" || $users_sharee->{txt08} eq "sigo\@sharee.bike")){
my $coo = $q->cookie('domcookie') || $q->param('sessionid') || "";
- 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_kn"; my $bike="KN205";
+ my $api_test = "sharee_kn"; my $bike="KN205";
#my $api_test = "sharee_wue"; my $bike="WUE5525";
#my $api_test = "sharee_sx"; my $bike="S3X1001";
#my $api_test = "sharee_ren"; my $bike="REN2";