vehicle_type_id for station filter and aa-journay

This commit is contained in:
ragu 2022-07-12 19:59:44 +02:00
parent c2238c9932
commit 3ea4b37b78
13 changed files with 162 additions and 374 deletions

View file

@ -674,7 +674,7 @@ text-align:left;
border: 0px solid gray;
margin: 0;
padding: 40px 5px 5px 0px;
min-width: 1150px;
min-width: 1250px;
}
div#Content4cal {

View file

@ -850,8 +850,8 @@ sub fetch_bike_tariff {
$bike_id = $1 if($bike_id =~ /(\d+)/);
my $main_ids = "";
my ($bike_group,$user_group,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,"");
$main_ids = join(",",@{$bike_group});
my ($bike_group,$bike_node,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,"");
$main_ids = join(",",@{$bike_node});
$main_ids =~ s/[a-z_]+//ig;
my $ct_bike = {};
my $pref_cc = {
@ -918,7 +918,7 @@ sub fetch_bike_tariff {
}
}
$bw->log("booking_request fetch_bike_tariff result ---> bike $ct_bike->{barcode} matching by bike_group: @{$bike_group} main_ids:$main_ids | user_group:@{$user_group} | Tarif selected: $tariff_nr",$tariff_content->{$tariff_nr},"");
$bw->log("booking_request fetch_bike_tariff result ---> bike $ct_bike->{barcode} matching by bike_node: @{$bike_node} main_ids:$main_ids | bike_group by type_id:@{$bike_group} | Tarif selected: $tariff_nr",$tariff_content->{$tariff_nr},"");
return ($ct_bike,$tariff_content->{$tariff_nr});
}
@ -977,6 +977,16 @@ sub booking_request(){
if($rentable_check == 2){
#to get if station only for A-A journay
my $pref_station = {
table => "content",
fetch => "one",
template_id => "225",
int04 => $ct_bike->{int04},
};
my $ct_station = {};
$ct_station = $dbt->fetch_record($dbh,$pref_station) if($ct_bike->{int04});
#get invoice
$ctt = $dbt->fetch_record($dbh,$pref);
if(!$ctt->{c_id}){
@ -990,7 +1000,7 @@ sub booking_request(){
if($ctt->{c_id}){
#2 = "requested"
$pos_id = $dbt->insert_pos($dbh,$ctt->{c_id},$ct_bike,$auth,$ct_tariff,$now_dt,$bike,"2",$owner,$sig_book);
$pos_id = $dbt->insert_pos($dbh,$ctt->{c_id},$ct_bike,$ct_station,$auth,$ct_tariff,$now_dt,$bike,"2",$owner,$sig_book);
$bw->log("booking_request insert_pos:",$pos_id,"");
if($pos_id){
@ -1117,7 +1127,8 @@ sub booking_update(){
barcode => $bike_id,
};
my $record_cc = $dbt->fetch_record($dbh,$pref_cc) if($q->param('bike'));
my $record_cc = {};
$record_cc = $dbt->fetch_record($dbh,$pref_cc) if($q->param('bike'));
$bw->log("booking_update bike to state $bike $state ($state_key) $lock_state, auth $auth->{c_id}, bike:",$bike,"");
@ -1503,10 +1514,10 @@ sub booking_update(){
#int30=Station Id
#int31=Slot Id
#int27=velofactur bike Id
if($record_cc->{int11} && $record_cc->{int11} >=3 && $record_cc->{int30} && $record_cc->{int31} && $record_cc->{int27}){
$bw->log("unlock station lock with: '$record_cc->{int30}' '$record_cc->{int31}' '$record_cc->{int27}' 'Freigeben' '$record_pos->{c_id}'","","");
#if($record_cc->{int11} && $record_cc->{int11} >=3 && $record_cc->{int30} && $record_cc->{int31} && $record_cc->{int27}){
# $bw->log("unlock station lock with: '$record_cc->{int30}' '$record_cc->{int31}' '$record_cc->{int27}' 'Freigeben' '$record_pos->{c_id}'","","");
#system(`$varenv{basedir}/src/scripts/velofaktur_client.pl $varenv{syshost} post_velo "$record_cc->{int30}" "$record_cc->{int31}" "$record_cc->{int27}" "Freigeben" "$record_pos->{c_id}"`);
}
#}
$lock_value = 2;
$update_cc->{int20} = "$lock_value";
$update_pos->{int20} = "$lock_value";
@ -1591,6 +1602,12 @@ sub booking_update(){
}
}#end mini_quest
#TODO, return akku capacity level for user question
#set e-bike attribut on DMS editor nad not by main_id
#if($booking->{int10} == 1 && $record_cc->{main_id} == 300102){
if($booking->{int10} == 1 && $record_cc->{energy_id} == 1){
$booking_values->{akku_levelquery} = "5";
}
#fetch tracking distance on Ilockit cloud by summary trip if(tracking && deviceId && available)
if($booking->{int25} == 1 && $booking->{int10} == 1){
@ -1609,7 +1626,7 @@ sub booking_update(){
}
my $co2saving = "";
$booking->{int26} = 10 if(!$booking->{int26} && ($auth->{c_id} == 1842 || $auth->{c_id} == 5781 || $auth->{c_id} == 11765 || $auth->{c_id} == 1843));#10 km test
$booking->{int26} = 10 if(!$booking->{int26} && ($auth->{c_id} == 1842 || $auth->{c_id} == 1843 || $auth->{c_id} == 5781 || $auth->{c_id} == 11765 || $auth->{c_id} == 38883));#10 km test
if($booking->{int26}){
$co2saving = "Einsparung: ";
my $co2diff = $pri->co2calc($booking);
@ -1838,22 +1855,6 @@ sub rentals(){
$return->{$id}->{K_u} = "$K_val" if($K_key eq "K_u");
}
}
#sig update station_lock_state=locked to cancel once miniquery
#disabled, moving to bikes_available
elsif(1==2 && $record->{$id}->{int11} && $record->{$id}->{int11} == 3){
$return->{$id}->{rentalId} = "$record->{$id}->{txt11}";
if($record->{$id}->{int28}){
#$return->{$id}->{state} = "returned";
#only for project=Bayern and developer enabled
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},"");
$return->{$id}->{user_miniquery} = $dbt->evaluationsfragen($dbh);
}#end mini_quest
}
}
}
return $return;
@ -1887,8 +1888,8 @@ sub bikes_available(){
};
my $tariff_content = {};
$authed = 1 if(ref($auth) eq "HASH" && $auth->{c_id} > 0);
(my $bike_group,my $user_group,$tariff_content,my $user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my $main_ids = join(",",@{$bike_group});
(my $bike_group,my $bike_node,$tariff_content,my $user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my $main_ids = join(",",@{$bike_node});
$main_ids =~ s/[a-z_-]+//ig;#should work also without Trenner
$pref = { %$pref, main_id => "IN::($main_ids)" };
@ -1899,7 +1900,8 @@ sub bikes_available(){
$pref = { %$pref, barcode => "=::" . $bike_id };
}
my $record = $dbt->fetch_record($dbh,$pref) if(ref($bike_group) eq "ARRAY" && @{$bike_group}[0]);
my $record = {};
$record = $dbt->fetch_record($dbh,$pref) if(ref($bike_node) eq "ARRAY" && @{$bike_node}[0]);
my $op_return = {};
my @adr_tariff = ();
@ -1928,8 +1930,13 @@ sub bikes_available(){
$return->{$id}->{lock_state} = "unlocked" if($record->{$id}->{int20} == 2);
$return->{$id}->{lock_state} = "locking" if($record->{$id}->{int20} == 3);
$return->{$id}->{lock_state} = "unlocking" if($record->{$id}->{int20} == 4);
$return->{$id}->{bike_group} = ["$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$record->{$id}->{main_id}"];
#$return->{$id}->{bike_group} = ["$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$record->{$id}->{main_id}"];
#for station_type_id mapping
if($record->{$id}->{type_id}){
$return->{$id}->{bike_group} = ["$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$record->{$id}->{type_id}"];
}else{
$return->{$id}->{bike_group} = [];
}
if($record->{$id}->{int11} eq "2"){
$return->{$id}->{system} = "Ilockit";
$return->{$id}->{Ilockit_GUID} = "$record->{$id}->{txt17}";
@ -1965,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 <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> zugestimmt (als Demo sharee AGB)."] if($auth->{c_id} && ($auth->{c_id} == 1842 || $auth->{c_id} == 5781 || $auth->{c_id} == 22262 || $auth->{c_id} == 38883));
$return->{$id}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> 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)){
@ -2015,8 +2022,8 @@ sub bikes_all(){
int10 => "!=::3",
};
my ($bike_group,$user_group,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my $main_ids = join(",",@{$bike_group});
my ($bike_group,$bike_node,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my $main_ids = join(",",@{$bike_node});
$main_ids =~ s/[a-z_]+//ig;
$pref = { %$pref, main_id => "IN::($main_ids)" };
@ -2047,7 +2054,7 @@ sub bikes_all(){
}
$bw->log("sub bikes_all with user_tour ($station_id) @stations_service_tour",$pref,"");
$record = $dbt->fetch_record($dbh,$pref) if(ref($bike_group) eq "ARRAY" && @{$bike_group}[0]);
$record = $dbt->fetch_record($dbh,$pref) if(ref($bike_node) eq "ARRAY" && @{$bike_node}[0]);
my $bikes_on_station = {};
my $op_return = {};
@ -2067,7 +2074,12 @@ sub bikes_all(){
$return->{$id}->{lock_state} = "unlocked" if($record->{$id}->{int20} == 2);
$return->{$id}->{lock_state} = "locking" if($record->{$id}->{int20} == 3);
$return->{$id}->{lock_state} = "unlocking" if($record->{$id}->{int20} == 4);
$return->{$id}->{bike_group} = ["$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$record->{$id}->{main_id}"];
#for bike-station type_id mapping
if($record->{$id}->{type_id}){
$return->{$id}->{bike_group} = ["$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$record->{$id}->{type_id}"];
}else{
$return->{$id}->{bike_group} = [];
}
if($record->{$id}->{int11} eq "2"){
$return->{$id}->{system} = "Ilockit";
@ -2096,14 +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->{int12} if(ref($record_pos) eq "HASH" && $record_pos->{int12});
$station_group = $record_pos->{int29} if(ref($record_pos) eq "HASH" && $record_pos->{int29});
my $aa_station = "";
#take start station from pos
$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,$user_group,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my ($bike_group,$bike_node,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my $return = {};
my $pref = {
@ -2118,11 +2134,20 @@ sub stations_available(){
my $pref_sql = "";
$pref_sql .= " and (";
foreach(@{$bike_group}){
if($station_group && $_ =~ /(\d+)/){
#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){
$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";
}
#without a rental
}elsif($_ =~ /(\d+)/){
my $group_id = $1;
$pref_sql .= " ct.txt24 like '%$group_id%' OR";
@ -2138,7 +2163,7 @@ sub stations_available(){
my $op_return = {};
foreach my $id (sort { $record->{$a}->{barcode} <=> $record->{$b}->{barcode} } keys (%$record)){
$return->{$id}->{authed} = "$authed";
$return->{$id}->{capacity} = $record->{$id}->{int05} || 1;
$return->{$id}->{capacity} = "$record->{$id}->{int05}" || "1";
$return->{$id}->{station} = "$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$record->{$id}->{int04}";
$return->{$id}->{uri_operator} = "$varenv->{wwwhost}";
@ -2147,7 +2172,7 @@ sub stations_available(){
$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}->{station_group} = "";
if($record->{$id}->{txt24}){#Ilockit with new station_group logic
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});
@ -2193,7 +2218,7 @@ sub stations_all(){
my $authed = 0;
$authed = 1 if(ref($auth) eq "HASH" && $auth->{c_id});
my ($bike_group,$user_group,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my ($bike_group,$bike_node,$tariff_content,$user_tour) = $self->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
my $return={};
my $pref = {
@ -2294,7 +2319,7 @@ 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}){#sharee Ilockit with new station_group logic
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});
@ -2334,7 +2359,7 @@ sub bikes_soll(){
}
#Collect Tariff to get user_group----------------------
#Collect Tarif to get users bike access ----------------------
sub fetch_tariff(){
my $self = shift;
my $dbname = shift;
@ -2361,6 +2386,8 @@ sub fetch_tariff(){
template_id => "210",#Tariff tpl_id
};
my ($nodes,$rows) = $dbt->collect_node($dbh,$dbt->{shareedms_conf}->{waren});
#if no primary address then only 2=public
if((ref($adr) ne "HASH" || !$adr->{c_id}) && ($dbname ne "sharee_lv")){
$tariff->{int18} = 2;
@ -2402,7 +2429,7 @@ sub fetch_tariff(){
$oprefix = "$dbt->{operator}->{$dbname}->{oprefix}" if($dbt->{operator}->{$dbname}->{oprefix});
my @tarifnr = ();
my @user_group = ();
my @bike_node = ();
my @bike_group = ();
my @adr_tariff = ();
if($auth_operator->{txt30}){
@ -2416,8 +2443,9 @@ sub fetch_tariff(){
if($_ == $tariff_content->{$id}->{barcode} && $tariff_content->{$id}->{int12}){
$bw->log("Tarif FOUND with merchant $merchant_id for authorized user-id $auth_operator->{c_id} if($tariff_content->{$id}->{int12}) (s-type:$tariff_content->{$id}->{int18})",$tariff_content->{$id}->{barcode},"");
push(@tarifnr, "$tariff_content->{$id}->{barcode}");
push(@user_group, "$oprefix$tariff_content->{$id}->{int12}");#sharee bike_node.main_id
push(@bike_group, "$oprefix$tariff_content->{$id}->{int12}");#sharee bike_node.main_id
push(@bike_node, "$oprefix$tariff_content->{$id}->{int12}");#sharee bike_node.main_id
my $type_id = $nodes->{$tariff_content->{$id}->{int12}}->{type_id} || "";
push(@bike_group, "$oprefix$type_id");#sharee bike_node.type_id
}
}
}
@ -2429,13 +2457,14 @@ sub fetch_tariff(){
if($tariff_content->{$id}->{int18} eq 2){
$bw->log("Tarif FOUND FALLBACK for No Tarif users with merchant $merchant_id if($tariff_content->{$id}->{int12} && $dbname) (s-type:$tariff_content->{$id}->{int18})",$id,"");
push(@tarifnr, "$tariff_content->{$id}->{barcode}");
push(@user_group, "$oprefix$tariff_content->{$id}->{int12}");#sharee bike_node.main_id
push(@bike_group, "$oprefix$tariff_content->{$id}->{int12}");#sharee bike_node.main_id
push(@bike_node, "$oprefix$tariff_content->{$id}->{int12}");#sharee bike_node.main_id
my $type_id = $nodes->{$tariff_content->{$id}->{int12}}->{type_id} || "";
push(@bike_group, "$oprefix$type_id");#sharee bike_node.type_id
}
}
}
$bw->log("FETCHED_Tarif by dbname:$dbname with merchant $merchant_id | user_group:@user_group | bike_group:@bike_group | user_tour:@user_tour | tarifnr: @tarifnr",\@tarifnr,"");
return (\@bike_group,\@user_group,$tariff_content,\@user_tour);
$bw->log("FETCHED_Tarif by dbname:$dbname with merchant $merchant_id | bike_node:@bike_node | bike_group:@bike_group | user_tour:@user_tour | tarifnr: @tarifnr",\@tarifnr,"");
return (\@bike_group,\@bike_node,$tariff_content,\@user_tour);
}
#authout
@ -2462,7 +2491,6 @@ sub authout(){
};
$record = $dbt->fetch_record($dbh,$authref);
my @user_group = ();
if ($record->{c_id} > 0 && length($record->{txt05}) > 20){
my $all_authcookie = $record->{txt05};
@ -2488,7 +2516,7 @@ sub authout(){
if($rows == 1){
$return = { authcookie => "1",
user_id => "$record->{txt08}",
user_group => @user_group,
user_group => [],
};
$return = { %$return, debuglevel => "$record->{int11}" } if($record->{int11});
$return = { %$return, Ilockit_admin => "$record->{int19}" } if($record->{int19});
@ -2523,8 +2551,8 @@ sub auth_verify(){
user_group => []
};
my $user_group = "";
my $bike_group = "";
my $bike_node = "";
my $tariff_content = "";
my $user_tour = "";
@ -2675,7 +2703,7 @@ sub auth_verify(){
}#end if($varenv{dbname} ne "sharee_primary")
if($varenv{dbname} ne "sharee_primary"){
($bike_group,$user_group,$tariff_content,$user_tour) = $self->fetch_tariff($varenv{dbname},$record,$q->param('authcookie'));
($bike_group,$bike_node,$tariff_content,$user_tour) = $self->fetch_tariff($varenv{dbname},$record,$q->param('authcookie'));
}
if($auth_primary->{c_id} > 0 && length($auth_primary->{txt05}) > 30){
@ -2684,7 +2712,7 @@ sub auth_verify(){
if(length($_) > 30 && $_ =~ /$cgi_authcookie/){
$return->{authcookie} = $cgi_authcookie;
$return->{user_id} = $record->{txt08};
$return->{user_group} = $user_group;
$return->{user_group} = $bike_group;#yes, but deprecated
$return->{user_tour} = $user_tour;
$return->{debuglevel} = "$record->{int11}" if($record->{int11});
$return->{Ilockit_admin} = "$record->{int19}" if($record->{int19});
@ -2701,11 +2729,11 @@ sub auth_verify(){
$record = $dbt->fetch_record($dbh,$authref);
($bike_group,$user_group,$tariff_content,$user_tour) = $self->fetch_tariff($varenv{dbname},$record,$q->param('authcookie'));
($bike_group,$bike_node,$tariff_content,$user_tour) = $self->fetch_tariff($varenv{dbname},$record,$q->param('authcookie'));
#maybe there isnt't any authcookie still available on confirm
if ($record->{c_id} > 0){
$return->{user_id} = $record->{txt08};
$return->{user_group} = $user_group;
$return->{user_group} = $bike_group;#yes, but deprecated
$return->{user_tour} = $user_tour;
$return->{debuglevel} = "$record->{int11}" if($record->{int11});
$return->{Ilockit_admin} = "$record->{int19}" if($record->{int19});

View file

@ -75,7 +75,7 @@ sub sig_available {
($ctpos,$show_dialog) = $apif->rental_to_feedback($varenv,$ctadr);
}
(my $bike_group,my $user_group,$tariff_content,my $user_tour) = $apif->fetch_tariff($varenv->{dbname},$ctadr,$q->param('authcookie'));
(my $bike_group,my $bike_node,$tariff_content,my $user_tour) = $apif->fetch_tariff($varenv->{dbname},$ctadr,$q->param('authcookie'));
my $hotline_hash = {
table => "contentuser",
@ -115,7 +115,7 @@ sub sig_available {
$response_out->{$station}->{authed} = "$authed";
$response_out->{$station}->{uri_operator} = "$dbt->{operator}->{$varenv->{dbname}}->{operatorApp}";
$response_out->{$station}->{description} = "$resp->{site}->{address}" || "";
$response_out->{$station}->{station_group} = ["SX300102"];#E-Lastenrad
$response_out->{$station}->{station_group} = ["SX300101"];#Lastenrad alias type_id
$response_out->{$station}->{gps}->{latitude} = "$resp->{site}->{lat}" || "";
$response_out->{$station}->{gps}->{longitude} = "$resp->{site}->{lon}" || "";
$response_out->{$station}->{gps_radius} = "75";
@ -149,7 +149,7 @@ 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} = "300102";
$return2copri->{$station}->{txt24} = "300101";#type_id
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{station_state} }) {
if($response_out->{$station}->{state} eq $value){
$return2copri->{$station}->{int10} = $key;
@ -198,7 +198,7 @@ sub sig_available {
}
$response_out->{$bike}->{system} = "sigo";
$response_out->{$bike}->{bike_group} = ["SX300102"];#E-Lastenrad
$response_out->{$bike}->{bike_group} = ["SX300101"];#Lastenrad type_id
$response_out->{$bike}->{unlock_allowed} = "1";
$response_out->{$bike}->{tariff_description} = {};
$response_out->{$bike}->{rental_description} = {};
@ -211,14 +211,13 @@ sub sig_available {
$response_out->{$bike}->{tariff_description}->{max_eur_per_day} = "$tariff_content->{$tid}->{int17}" if($tariff_content->{$tid}->{int17});
$response_out->{$bike}->{tariff_description}->{free_hours} = "$tariff_content->{$tid}->{int16}" if($tariff_content->{$tid}->{int16});
$response_out->{$bike}->{tariff_description}->{abo_eur_per_month} = "$tariff_content->{$tid}->{int15}" if($tariff_content->{$tid}->{int15});
$response_out->{$bike}->{tariff_description}->{operator_agb} = "Mit der Mietrad Anmietung wird folgender Betreiber <a href='$dbt->{operator}->{$varenv->{dbname}}->{operatorApp}/site/agb.html' target='_blank'>AGB</a> zugestimmt (Demo)." if($ctadr->{c_id} && ($ctadr->{c_id} == 1842 || $ctadr->{c_id} == 5781 || $ctadr->{c_id} == 22262));
#new rental_description
$response_out->{$bike}->{rental_description}->{name} = "$tariff_content->{$tid}->{ct_name}";
$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 <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> zugestimmt (als Demo sharee AGB)."] if($ctadr->{c_id} && ($ctadr->{c_id} == 1842 || $ctadr->{c_id} == 5781 || $ctadr->{c_id} == 22262));
$response_out->{$bike}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> 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)){

View file

@ -65,7 +65,6 @@ eval {
#- int19=bike charge
#- int27=velofactur bike ID
#- int28=station_lock_state (station lock velofactur)
#- int29=velofactur Buchbar (true|false)
#- int30=velofactur station ID
#- int31=velofactur slot ID
#- txt25=velofactur last station message (error or success)
@ -111,14 +110,14 @@ eval {
#velofactur false|true boeelan
#set bike_state to maintanance
#only if saved! velofactur Buchbar_state = true and bike_state = available
$update_cc->{int10} = 4 if($update_cc->{int29} == 1 && $update_cc->{int10} == 1);
$update_cc->{int29} = 0;
#$update_cc->{int10} = 4 if($update_cc->{int29} == 1 && $update_cc->{int10} == 1);
#$update_cc->{int29} = 0;
if($response_in->{Fahrzeug}->{Buchbar}){
#set bike_state to available
#only if saved! velofactur Buchbar_state = false and bike_state = maintanance
$update_cc->{int10} = 1 if($update_cc->{int29} == 0 && $update_cc->{int10} == 4);
$update_cc->{int29} = 1;
#$update_cc->{int10} = 1 if($update_cc->{int29} == 0 && $update_cc->{int10} == 4);
#$update_cc->{int29} = 1;
}
$rows = $dbt->update_record($dbh_operator,$update_cc,$record_cc);

View file

@ -185,7 +185,7 @@ sub update_operatorsloop {
#pseudo code copied fom net_booking. have to be done elsewehre because of $apif
if(1==2){
my $ctadr = { c_id => $c_id };
my ($bike_group,$user_group,$tariff_content,$user_tour);# = $apif->fetch_tariff($ctadr,"");
my ($bike_group,$bike_node,$tariff_content,$user_tour);# = $apif->fetch_tariff($ctadr,"");
foreach my $id (keys (%$tariff_content)){
# #int18
#<sharing_type>
@ -723,7 +723,7 @@ sub fetch_record(){
}
#ct.* because of nd.txt01 and ct.txt01 .
my $sql = "SELECT ct.*,rel.*,nd.node_name,nd.parent_id FROM $fetch->{table} ct, relation rel, nodes nd $where $order";
my $sql = "SELECT ct.*,rel.*,nd.node_name,nd.parent_id,nd.type_id,nd.energy_id FROM $fetch->{table} ct, relation rel, nodes nd $where $order";
my $sth = $dbh->prepare($sql);
my $rc = $sth->execute();
$bw->log("DBtank fetch_record $source: $rc",$sql,"") if($debug);
@ -1115,7 +1115,7 @@ sub collect_transpos {
$where .= " and cp.$key = $search->{$key}" if($key eq "int10" && looks_like_number($search->{$key}));#bike_state
$where .= " and cp.$key = $search->{$key}" if($key eq "int20" && looks_like_number($search->{$key}));#lock_state
$where .= " and cp.$key = $search->{$key}" if($key eq "barcode" && looks_like_number($search->{$key}));
$where .= " and cp.$key = $search->{$key}" if($key eq "int12" && looks_like_number($search->{$key}));#bike_group
$where .= " and cp.$key = $search->{$key}" if($key eq "int12" && looks_like_number($search->{$key}));#flot_id
$where .= " and (cp.$key = $search->{$key} OR cp.owner_end = $search->{$key})" if($key eq "owner" && looks_like_number($search->{$key}));
$where .= " and (cp.$key is $search->{$key} OR cp.$key = 0)" if($key eq "int34" && $search->{$key} eq "null");
}
@ -1150,7 +1150,7 @@ sub collect_theftpos {
$where .= " and cp.$key = $search->{$key}" if($key eq "int10" && looks_like_number($search->{$key}));#bike_state
$where .= " and cp.$key = $search->{$key}" if($key eq "int20" && looks_like_number($search->{$key}));#lock_state
$where .= " and cp.$key = $search->{$key}" if($key eq "barcode" && looks_like_number($search->{$key}));
$where .= " and cp.$key = $search->{$key}" if($key eq "int12" && looks_like_number($search->{$key}));#bike_group
$where .= " and cp.$key = $search->{$key}" if($key eq "int12" && looks_like_number($search->{$key}));#flot_id
$where .= " and cp.$key = $search->{$key}" if($key eq "int13" && looks_like_number($search->{$key}));#deviceId
$where .= " and cp.$key = $search->{$key}" if($key eq "owner" && looks_like_number($search->{$key}));
}
@ -1315,15 +1315,17 @@ sub insert_pos(){
my $self = shift;
my $dbh = shift || $dbh_intern;
my $ctt_id = shift;
my $ct = shift;
my $ctadr = shift;
my $ct = shift || {};
my $ct_station = shift || {};
my $ctadr = shift || {};
my $ct_tariff = shift || "";
my $endRental = shift || "0000-00-00";
my $ct_name = shift || "";
my $status = shift || "";
my $owner = shift || "";
my $sig_book = shift || {};
#txt11=$sig_book->{rentalId} will be set on booking_update
my $aa_station = $ct_station->{int42} || 0;
$ct_name = $ct->{barcode} if(!$ct_name);#artikelnr or bikenr
my $prefix = "";
@ -1338,6 +1340,7 @@ sub insert_pos(){
my $deviceId = $ct->{int13} || 0;
my $bike_charge = $ct->{int19} || 0;
my $trackon = $ct->{int25} || 0;
my $bike_type_id = $ct->{type_id} || 0;
my $from_main_id = $ct->{main_id} || 0;
my $station = $ct->{int04} || 0;
my $rabatt = 0;
@ -1376,7 +1379,7 @@ sub insert_pos(){
my $sth;
#Verleihräder
if($ct->{template_id} && $ct->{template_id} == 205){#Leihrad_list
$sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt01,txt08,txt02,txt09,txt12,itime,start_time,end_time,int02,int03,int06,int04,txt05,txt06,txt07,int10,int12,int13,owner,int07,txt04,int09,int17,int15,int16,int11,int18,int19,txt17,txt18,int20,int25,int34,txt22,txt11,int35,int36,int37,time01,time02) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','$ct->{barcode}','$ct->{txt01}','$user_name','$ct->{txt02}','$ctadr->{txt09}','$prefix',now(),now(),'$endRental','$unit_price','$menge','$station','$station','$ct->{txt06}','$ct->{txt06}','$ct->{txt07}','$status','$from_main_id','$deviceId','$owner','$rabatt','$tariff_desc','$tariff_nr','$daymax_price','$abo_price','$free_hours','$ct->{int11}','$sharing_type','$bike_charge','$ct->{txt17}','$ct->{txt18}','$ct->{int20}','$trackon','$staff','$sig_book->{bikeId}','$sig_book->{rentalId}','$unit_price1','$unit_price2','$start_price','$unit_time','$free_time') RETURNING c_id");
$sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt01,txt08,txt02,txt09,txt12,itime,start_time,end_time,int02,int03,int06,int04,txt05,txt06,txt07,int10,int12,int13,owner,int07,txt04,int09,int17,int15,int16,int11,int18,int19,txt17,txt18,int20,int25,int29,int34,txt22,txt11,int35,int36,int37,int42,time01,time02) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','$ct->{barcode}','$ct->{txt01}','$user_name','$ct->{txt02}','$ctadr->{txt09}','$prefix',now(),now(),'$endRental','$unit_price','$menge','$station','$station','$ct->{txt06}','$ct->{txt06}','$ct->{txt07}','$status','$from_main_id','$deviceId','$owner','$rabatt','$tariff_desc','$tariff_nr','$daymax_price','$abo_price','$free_hours','$ct->{int11}','$sharing_type','$bike_charge','$ct->{txt17}','$ct->{txt18}','$ct->{int20}','$trackon','$bike_type_id','$staff','$sig_book->{bikeId}','$sig_book->{rentalId}','$unit_price1','$unit_price2','$start_price','$aa_station','$unit_time','$free_time') RETURNING c_id");
}else{
$sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt08,txt09,itime,int02,int03,txt01,txt06,txt07,int10,int12,owner) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','0','$user_name','$ctadr->{txt09}',now(),'$unit_price','1','$ct->{txt01}','$ct->{txt06}','$ct->{txt07}','0','$from_main_id','$owner') RETURNING c_id");
}

View file

@ -444,6 +444,17 @@ sub save_relation {
$u_rows = $dbt->update_one($dbh,$update_node,"node_name='$node_name'");
$u_rows = $dbt->update_one($dbh,$update_node,"node_path='$node_path'");
#type_id and energy_id by node_name pattern match.
#TODO, should be editable by NodeEditor
my $type_id = 300101;#if Lastenrad
$type_id = 300102 if($node_name =~ /E-Lastenrad/);
$type_id = 300103 if($node_name =~ /Stadtrad/);
$u_rows = $dbt->update_one($dbh,$update_node,"type_id=$type_id");
my $energy_id = 0;
$energy_id = 1 if($node_name =~ /E-/i);
$u_rows = $dbt->update_one($dbh,$update_node,"energy_id=$energy_id");
if($subrelnode->{main_id} && $subrelnode->{template_id} >= 400 && $subrelnode->{template_id} <= 499){
my $update_subnode = {
table => "nodes",

View file

@ -745,7 +745,7 @@ sub save_transact(){
#if(!$cttpos->{c_id}){#disabled
if(1==1){
if($ctt->{c_id} > 0){
$pos_id = $dbt->insert_pos($dbh_operator,$ctt->{c_id},$ct,$ctadr_operator,"",$now_dt,$valxx,"0",$owner);
$pos_id = $dbt->insert_pos($dbh_operator,$ctt->{c_id},$ct,"",$ctadr_operator,"",$now_dt,$valxx,"0",$owner,"");
}else{
my $ct_id = {c_id => 0};
$ct_id = $dbt->insert_contenttrans($dbh_operator,$ctadr_operator,"300008","218","----",$owner);

View file

@ -582,6 +582,8 @@ EOF
elsif($key =~ /int18/ && "$size" eq "select" && $node_meta->{tpl_id} == 210){#sharing_type
my @_lock_valxx = ();
#delete hidden-lv if not LV
delete $dbt->{copri_conf}->{sharing_type}->{4} if($varenv{syshost} ne "shareedms-lv");
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{sharing_type} })) {
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{sharing_type}->{$s_key}";
}
@ -682,10 +684,16 @@ 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 @_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}");
#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");
}
my $height = scalar(@_valxx);
print $q->Tr();
print $q->td({-class=>'left_italic_cms',-style=>'vertical-align:top;',-colspan=>'1'},"$des");

View file

@ -129,13 +129,6 @@ print $q->div({-class=>"content2_legende"}, $q->img({-style=>'height:30px;', -sr
print "$initMap|$varenv->{dbname}|$api_return->{authcookie}|$users_sharee->{c_id}|$kmlfile" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});
#print "$varenv->{syshost}/$varenv->{dbname} --> $dbt->{operator}->{$varenv->{dbname}}->{initMap}";
#if($R::ask_radID && $R::ask_radID =~ /^\d+$/){
# require "Tpl/ModalboxDialog.pm";
# &ModalboxDialog::mobox2($tpl_name,$tpl_id,$parent_id,$main_id,$u_id,$u_group,$lang,$users_sharee,$bg_color1,$bg_color2,$R::ask_radID);
# }
#
}
1;

View file

@ -181,10 +181,9 @@ sub tpl(){
my $limit = $R::limit || $varenv{limit};
my $offset = $R::offset || "0";
if($node_meta->{int10} && $node_meta->{int10} < $varenv{limit}){
$offset = 0;
}
#if($node_meta->{int10} && $node_meta->{int10} < $varenv{limit}){
# $offset = 0;
#}
#backward | forward
if($R::go && $R::go eq "backward_list"){
@ -583,12 +582,25 @@ sub tpl(){
print $q->td({-class=>"search_line"},$q->textfield(-class=>'stxt',-name=>"s_$key",-default=>"$s_val",-size=>"$size",-maxlength=>40, -autofocus=>1),"\n");
}elsif($table =~ /contentadr|contenttrans/ && $key eq "txt08"){
print $q->td({-class=>"search_line"},$q->textfield(-class=>'stxt',-name=>"s_$key",-default=>"$s_val",-size=>"$size",-maxlength=>40, -autofocus=>1),"\n");
}elsif($size =~ /select/ && $key =~ /int12|txt24/ && $tpl_id =~ /225|210/){#txt24=Flotten ID select
}elsif($size =~ /select/ && $key =~ /int12/ && $tpl_id =~ /210/){#Tarif for Flot
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}");
}
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 @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;
}
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
my @s_valxx = ("");
foreach my $rid (sort { $tariff_all->{$a}->{barcode} <=> $tariff_all->{$b}->{barcode} } keys (%$tariff_all)){
@ -1012,16 +1024,23 @@ sub tpl(){
print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style $colorize"},"$dbt->{copri_conf}->{lock_state}->{$ct4rel->{$id}->{$key}}"),"\n";
}elsif($ct4rel->{$id}->{template_id} == 205 && $key eq "int11"){#lock_system
print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$dbt->{copri_conf}->{lock_system}->{$ct4rel->{$id}->{$key}}"),"\n";
#}elsif($ct4rel->{$id}->{template_id} == 210 && $key eq "int01"){#tariff_unit
# print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$dbt->{copri_conf}->{tariff_unit}->{$ct4rel->{$id}->{$key}}"),"\n";
}elsif($ct4rel->{$id}->{template_id} == 210 && $key eq "int18"){#sharing_type
print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$dbt->{copri_conf}->{sharing_type}->{$ct4rel->{$id}->{$key}}"),"\n";
}elsif($ct4rel->{$id}->{template_id} =~ /225|210/ && $key =~ /txt24|int12/){
}elsif($ct4rel->{$id}->{template_id} == 210 && $key eq "int12"){
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}<br />" if($ct4rel->{$id}->{$key} =~ /$bike_nodes->{$rid}->{main_id}/);
}
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}->{$_} - $_<br />";
}
print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$group_type"),"\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)){
@ -1347,7 +1366,8 @@ sub tpl(){
print $q->end_form;
my $offset_nr = $offset + $nr;
my $counter = $node_meta->{int10} || $rows;
#my $counter = $node_meta->{int10} || $rows;
my $counter = $rows;
print $q->div({-style=>'float:left;padding:6px 0 0 10px;'},"Zeile: $offset - $offset_nr / $counter");
#backward | forward
@ -1369,14 +1389,14 @@ sub tpl(){
print "</div>";
if($varenv{wwwhost} !~ /regiox/ && $node_meta->{main_id} > 300000 && $rows =~ /\d/){
$db->updater("nodes","main_id",$node_meta->{main_id},"int10",$rows);
}
#if($varenv{wwwhost} !~ /regiox/ && $node_meta->{main_id} > 300000 && $rows =~ /\d/){
# $db->updater("nodes","main_id",$node_meta->{main_id},"int10",$rows);
#}
#letzte Suche
if(!$v_journal && $R::detail_search && ref($searchref) eq "HASH" && $nr =~ /\d/){
$db->updater("nodes","main_id","300023","int10",$nr);
}
#if(!$v_journal && $R::detail_search && ref($searchref) eq "HASH" && $nr =~ /\d/){
# $db->updater("nodes","main_id","300023","int10",$nr);
#}
#print Dumper($node_meta);
return $return;
}

View file

@ -94,10 +94,6 @@ sub tplselect(){
}elsif($tpl_id == 1 || $tpl_id == 3){
require "Tpl/Listing.pm";
&Listing::tpl($node_meta,$users_dms,$mode,$varenv,$users_sharee,$return);
#require "Tpl/ModalboxDialog.pm";
#&ModalboxDialog::mobox2($node_meta,$users_dms,$mode,$varenv,$users_sharee,$return);
}
}
my $debug = "Mlogic --> (users_sharee->{c_id}: $users_sharee->{c_id} | ct_table: $node_meta->{ct_table} | parent_id: $node_meta->{parent_id} | main_id: $node_meta->{main_id} | tpl_id: $node_meta->{tpl_id} | u_id: $u_id | mode: $mode)";

View file

@ -1,262 +0,0 @@
package ModalboxDialog;
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (c) Rainer Gümpelein, TeilRad GmbH
#
use strict;
use warnings;
use CGI::Cookie ();
use CGI ':standard';
use DateTime;
use DateTime::Format::Pg;
use Lib::Config;
use Mod::Buttons;
use Mod::DBtank;
use Mod::APIfunc;
use Mod::Libenzdb;
sub new {
my $class = shift;
my $self = {};
bless($self,$class);
return $self;
}
sub mobox2(){
my $node_meta = shift;
my $users_dms = shift || "";
my $mode = shift || "";
my $varenv = shift;
my $users_sharee = shift || "";
my $return = shift || "";
my $ask_radID = shift || "";
my $q = new CGI;
my $cf = new Config;
my $dbt = new DBtank;
my $apif = new APIfunc;
my $db = new Libenzdb;
my $but = new Buttons;
my $script = $q->script_name();
my $path_info = $q->path_info();
my $path = $path_info;
#with meta_host,
if("$varenv->{metahost}"){
$path = "$script" . "$path_info";
$script="";
}
my $dbh = "";
my $bg_color = "white";
my $bg_color2 = $varenv->{brand_color} || "";
my $session="";
my $session_and="";
if(length($R::sessionid) > 20){
$session = "?sessionid=$R::sessionid";
$session_and = "&sessionid=$R::sessionid";
}
my $ctadr = $users_sharee if(ref($users_sharee) eq "HASH" && $users_sharee->{c_id});
my $main_ids;
my ($bike_group,$user_group,$tariff_content,$user_tour) = $apif->fetch_tariff($varenv->{dbname},$ctadr,"");
$main_ids = join(",",@{$bike_group});
$main_ids =~ s/[a-z_]+//ig;
my $title = "";
my $ct = {};
if($ask_radID){
my $pref_cc = {
table => "content",
fetch => "one",
main_id => "IN::($main_ids)",
barcode => $ask_radID,
int10 => 1,
};
$ct = $dbt->fetch_record($dbh,$pref_cc) if($ask_radID && $main_ids);
$title = "Fahrrad Buchungsbestätigung";
}
my $height = "250";
my $width = "400";
print<<EOF
<style>
.ui-dialog .ui-dialog-content {
background: $bg_color;
}
.ui-dialog > .ui-widget-header {
color:$varenv->{color};
font-weight:normal;
border:1px solid $bg_color2;
background: $bg_color2;
}
.ui-widget-overlay {
background: #666 url("$varenv->{metahost}/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;
opacity: .5;
filter: Alpha(Opacity=50);
}
</style>
EOF
;
#int04 != 1 --> no mailACK
#int13 != 1 --> no telACK
#int01 != 3 --> no sync
#int12 == 1 --> Vde
my $ctadr_int13 = 1;#default to activ
if($varenv->{telAck_startdate} && $ctadr->{mtime}){
my ($ty,$tm,$td) = split(/-/,$varenv->{telAck_startdate});
my $dt1telAck_start = DateTime->new(year => $ty, month => $tm, day => $td);
my $dt2mtime = DateTime::Format::Pg->parse_datetime($ctadr->{mtime});
#will be only evaluated if mtime never than global conf
if($ctadr->{owner} == 197 && $dt2mtime > $dt1telAck_start){
$ctadr_int13 = $ctadr->{int13};
}
}
if($node_meta->{main_id} && $ctadr->{c_id} && ($ctadr->{int04} != 1 || $ctadr_int13 != 1 || $ctadr->{int12} || $ask_radID)){
print<<EOF
<script>
\$(function() {
\$( "#dialog-form2" )
.css("background-color","$bg_color")
.dialog({
height: $height,
width: $width,
closeOnEscape: false,
modal: true
});
\$('.ui-widget-overlay').click(function() {
\$(".ui-dialog-titlebar-close").trigger('click');});
\$( "#btn_no1" ).click(function() {
\$( "#dialog-form2" ).dialog( "close" );
});
\$( "#btn_no2" ).click(function() {
\$( "#dialog-form2" ).dialog( "close" );
});
\$( "#btn_yes" ).click(function() {
window.location.href = '$varenv->{wwwhost}?radID=$ask_radID$session_and';
});
});
</script>
EOF
;
print "<div id='dialog-form2' style='text-align:left;margin:auto;max-width:1000px;' title='$title'>";
print $q->start_form(-name=>'modaldialog');
print $q->hidden(-name=>"sessionid",-override=>1,-value=>"$R::sessionid");
print "<div class='form-group' style='clear:both;'>\n";
if($ctadr->{int04} != 1 || $ctadr_int13 != 1){
my $required = "required";
if($ctadr->{int04} != 1){
my $des = "E-Mail Bestätigungscode";
my $key = "confirm_code";
my $label_des="* $des";
print $q->label({-for=>"$key", -style=>'padding-top:1em;'},"$label_des"),"\n";
print "<input id='$key' type='text' class='form-control' name='$key' value='' placeholder='$des' $required />\n";
}else{
print $q->div({-class=>'content2', -style=>'color:gray;'}, "* E-Mail Bestätigungscode wurde bereits erfolgreich eingegeben."),"\n";
}
if($ctadr_int13 != 1 && $varenv->{telAck_startdate}){
my $des = "SMS Bestätigungscode";
my $key = "confirm_smscode";
my $label_des="* $des";
print $q->label({-for=>"$key", -style=>'padding-top:1em;'},"$label_des"),"\n";
print "<input id='$key' type='text' class='form-control' name='$key' value='' placeholder='$des' $required />\n";
}elsif($varenv->{telAck_startdate}){
print $q->div({-class=>'content2', -style=>'color:gray;'}, "* SMS Bestätigungscode wurde bereits erfolgreich eingegeben."),"\n";
}
my $button_name = "Weiter";
print $q->div({-style=>'margin-top:1em;'},"<button type='submit' name='confirm_email' value='$ctadr->{txt08}' class='btn btn-primary btn-lg btn-block'>$button_name</button>"),"\n";
}elsif($ctadr->{int04} && $R::confirm_code){
my $des = "Danke! Die Bestätigung war erfolgreich.";
my $key = "nothing";
my $label_des="$des";
print $q->label({-for=>"$key", -style=>'padding-top:2.5em;'},"$label_des"),"\n";
print $q->div({-style=>'margin-top:2em;text-align:center;'},"<button type='button' id='btn_no1' class='btn btn-primary'>Schließen</button>"),"\n";
}elsif($ctadr->{int12} || $ctadr->{int01} != 3 || !$ct->{c_id}){
my $des = "Leider ist das Fahrradmietsystem für Ihren Account nicht freigeschaltet.<br /><br />Bitte überprüfen Sie Ihre Profildaten auf Vollständigkeit.";
$des = "Leider ist das Fahrradmietsystem für Ihren Account nicht freigeschaltet.<br /><br />Bitte kontaktieren Sie uns damit wir das Problem lösen und Ihren Account wieder freischalten können.</a>." if($ctadr->{int12} == 2);
my $key = "nothing";
my $label_des="$des";
print $q->label({-for=>"$key", -style=>'padding-top:2.5em;'},"$label_des"),"\n";
print $q->div({-style=>'margin-top:2em;text-align:center;'},"<button type='button' id='btn_no1' class='btn btn-primary'>Schließen</button>"),"\n";
}elsif($ask_radID){
my $des = "Fahrrad Nr. $R::ask_radID kostenlos für 15 Min. reservieren?";
my $key = "radID";
my $label_des="$des";
print $q->label({-for=>"$key", -style=>'padding-top:2.5em;'},"$label_des"),"\n";
#print "<input id='$key' type='text' class='form-control' name='$key' value='' placeholder='$des' $required />\n";
#print $q->hidden(-name=>"$key",-override=>1,-value=>"$ask_radID");
print $q->div({-style=>'margin-top:2em;text-align:center;'},"<button type='button' id='btn_no2' class='btn btn-primary' style='width:5em;margin:0 2.5em;'>Nein</button>","<button type='button' id='btn_yes' class='btn btn-primary' style='width:5em;;margin:0 2.5em;'>Ja</button>"),"\n";
}
print "</div>\n";
print $q->end_form,"\n";
print "</div>\n";
}elsif($ask_radID){
#If no Login
print<<EOF
<script>
\$(function() {
\$( "#dialog-form2" )
.css("background-color","$bg_color")
.dialog({
height: $height,
width: $width,
closeOnEscape: false,
modal: true
});
\$('.ui-widget-overlay').click(function() {
\$(".ui-dialog-titlebar-close").trigger('click');});
\$( "#btn_no3" ).click(function() {
\$( "#dialog-form2" ).dialog( "close" );
});
\$( "#btn_anmelden" ).click(function() {
window.location.href = '$varenv->{wwwhost}/$varenv->{mandant}/Anmelden';
});
});
</script>
EOF
;
print "<div id='dialog-form2' style='text-align:left;margin:auto;max-width:1000px;' title='$title'>";
print "<div class='form-group' style='clear:both;'>\n";
my $des = "Bitte erst anmelden.";
my $label_des="$des";
print $q->label({-for=>"no_access", -style=>'padding-top:2.5em;'},"$label_des"),"\n";
print $q->div({-style=>'margin-top:2em;text-align:center;'},"<button type='button' id='btn_no3' class='btn btn-primary' style='margin:0 2em;'>Schließen</button>","<button type='button' id='btn_anmelden' class='btn btn-primary' style='margin:0 2em;'>Anmelden</button>"),"\n";
print "</div>\n";
print "</div>\n";
}
}
1;

View file

@ -300,13 +300,6 @@ sub tplselect(){
}elsif($tpl_id == 197){
require "Tpl/Contact.pm";
&Contact::tpl($node_meta,$users_dms,$mode,$varenv,$users_sharee,$return);
#}elsif($tpl_id == 1 || $tpl_id == 3){
#require "Tpl/Listing.pm";
#&Listing::tpl($node_meta,$users_dms,$mode,$varenv,$users_sharee,$return);
#require "Tpl/ModalboxDialog.pm";
#&ModalboxDialog::mobox2($node_meta,$users_dms,$mode,$varenv,$users_sharee,$return);
}
}