mirror of
https://gitlab.com/t6353/sharee.bike.git
synced 2025-02-22 11:46:27 +01:00
bike_type object and bike charge App-feedback
This commit is contained in:
parent
7442d49f11
commit
23f513bef3
6 changed files with 123 additions and 25 deletions
|
@ -504,7 +504,6 @@ sub service_update(){
|
|||
ca_id => "$auth->{c_id}",
|
||||
"ct.close_time" => "is::null",
|
||||
int10 => "1",
|
||||
int28 => "3",
|
||||
end_time => ">=::(now() - interval '5 min')",
|
||||
};
|
||||
my $ctpos = { c_id => 0 };
|
||||
|
@ -526,16 +525,36 @@ sub service_update(){
|
|||
$update->{int01} = 1 if($q->param('bike_broken'));
|
||||
$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",
|
||||
};
|
||||
|
||||
#update sig int28 counter
|
||||
$update_pos->{int28} = 2 if($ctpos->{int28} && $ctpos->{int28} == 3);
|
||||
|
||||
#update bike charge on pos and content
|
||||
if($q->param('charge_current_bars') =~ /^\d+$/){
|
||||
my $max_bars = 5;
|
||||
my $current_percent = $bw->battery_percent($max_bars,$q->param('charge_current_bars'));
|
||||
$update_pos->{int19} = $current_percent;
|
||||
|
||||
#update also bike charge
|
||||
my $update_bike = {
|
||||
table => "content",
|
||||
mtime => "now()",
|
||||
int19 => "$update_pos->{int19}",
|
||||
};
|
||||
my $record_bike = { c_id => 0 };
|
||||
$record_bike->{c_id} = $ctpos->{cc_id} if($ctpos->{cc_id});
|
||||
$dbt->update_record($dbh,$update_bike,$record_bike) if($record_bike->{c_id} > 0);
|
||||
}
|
||||
|
||||
$dbt->update_record($dbh,$update_pos,$ctpos);
|
||||
}
|
||||
|
||||
}elsif($q->param('request') eq "user_minianswer"){
|
||||
$update = {
|
||||
table => "contentadrpos",
|
||||
|
@ -1610,13 +1629,6 @@ 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){
|
||||
$bw->log("get co2saving",$booking->{c_id},"");
|
||||
|
@ -1940,7 +1952,6 @@ sub bikes_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}->{lock_state} = "$dbt->{copri_conf}->{lock_state}->{$record->{$id}->{int20}}";
|
||||
$return->{$id}->{bike_charge} = "$record->{$id}->{int19}" if($record->{$id}->{int19});
|
||||
|
||||
#defaults
|
||||
$return->{$id}->{bike_group} = [];
|
||||
|
@ -1954,7 +1965,19 @@ sub bikes_available(){
|
|||
$return->{$id}->{bike_type}->{category} = "cargo";
|
||||
$return->{$id}->{bike_type}->{wheels} = "2";
|
||||
$return->{$id}->{bike_type}->{wheels} = "3" if($record->{$id}->{txt01} =~ /drei|trike/i);
|
||||
$return->{$id}->{bike_type}->{engine}->{manufacturer} = "dummy" if($record->{$id}->{txt01} =~ /E-/i);
|
||||
if($record->{$id}->{txt01} =~ /E-/i){
|
||||
$return->{$id}->{bike_type}->{engine}->{manufacturer} = "dummy";
|
||||
my $max_bars = 5;
|
||||
my $current_bars = 0;
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_max_bars} = "$max_bars";
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_percent} = "0";
|
||||
if($record->{$id}->{int19}){
|
||||
$current_bars = $bw->battery_bars($max_bars,$record->{$id}->{int19});
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_percent} = "$record->{$id}->{int19}";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if($record->{$id}->{int11} eq "2"){
|
||||
|
@ -2105,7 +2128,19 @@ sub bikes_all(){
|
|||
$return->{$id}->{bike_type}->{category} = "cargo";
|
||||
$return->{$id}->{bike_type}->{wheels} = "2";
|
||||
$return->{$id}->{bike_type}->{wheels} = "3" if($record->{$id}->{txt01} =~ /drei|trike/i);
|
||||
$return->{$id}->{bike_type}->{engine}->{manufacturer} = "dummy" if($record->{$id}->{txt01} =~ /E-/i);
|
||||
if($record->{$id}->{txt01} =~ /E-/i){
|
||||
$return->{$id}->{bike_type}->{engine}->{manufacturer} = "dummy";
|
||||
my $max_bars = 5;
|
||||
my $current_bars = 0;
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_max_bars} = "$max_bars";
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_percent} = "0";
|
||||
if($record->{$id}->{int19}){
|
||||
$current_bars = $bw->battery_bars($max_bars,$record->{$id}->{int19});
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$return->{$id}->{bike_type}->{battery}->{charge_current_percent} = "$record->{$id}->{int19}";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -113,8 +113,10 @@ sub sig_available {
|
|||
$response_out->{$station}->{station} = "$station";
|
||||
$response_out->{$station}->{authed} = "$authed";
|
||||
$response_out->{$station}->{uri_operator} = "$dbt->{operator}->{$varenv->{dbname}}->{operatorApp}";
|
||||
|
||||
#FIXME charset encoding
|
||||
#$response_out->{$station}->{description} = "$resp->{site}->{address}" || "";
|
||||
$response_out->{$station}->{description} = Encode::encode('utf-8', Encode::decode('iso-8859-1',$resp->{site}->{address})) || "";
|
||||
#$response_out->{$station}->{description} = Encode::encode('utf-8', Encode::decode('iso-8859-1',$resp->{site}->{address})) || "";
|
||||
$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}" || "";
|
||||
|
@ -186,7 +188,6 @@ sub sig_available {
|
|||
$response_out->{$bike}->{description} = "E-Lastenrad";
|
||||
$response_out->{$bike}->{gps}->{latitude} = "$resp->{state}->{lat}" || "";
|
||||
$response_out->{$bike}->{gps}->{longitude} = "$resp->{state}->{lon}" || "";
|
||||
$response_out->{$bike}->{bike_charge} = "$resp->{energy_level}" || "0";
|
||||
$response_out->{$bike}->{state} = "defect";
|
||||
$response_out->{$bike}->{lock_state} = "locked";
|
||||
if(uc($resp->{reservation_state}) eq "RESERVED"){
|
||||
|
@ -198,6 +199,19 @@ sub sig_available {
|
|||
$response_out->{$bike}->{state} = "available";
|
||||
}
|
||||
|
||||
$response_out->{$bike}->{bike_type}->{engine}->{manufacturer} = "dummy";
|
||||
my $max_bars = 5;
|
||||
my $current_bars = 0;
|
||||
$response_out->{$bike}->{bike_type}->{battery}->{charge_max_bars} = "$max_bars";
|
||||
$response_out->{$bike}->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$response_out->{$bike}->{bike_type}->{battery}->{charge_current_percent} = "0";
|
||||
if(looks_like_number($resp->{energy_level})){
|
||||
$current_bars = $bw->battery_bars($max_bars,$resp->{energy_level});
|
||||
$response_out->{$bike}->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$response_out->{$bike}->{bike_type}->{battery}->{charge_current_percent} = "$resp->{energy_level}";
|
||||
}
|
||||
|
||||
|
||||
$response_out->{$bike}->{system} = "sigo";
|
||||
$response_out->{$bike}->{bike_group} = ["SX300101"];#Lastenrad type_id
|
||||
$response_out->{$bike}->{unlock_allowed} = "1";
|
||||
|
@ -251,7 +265,7 @@ sub sig_available {
|
|||
$return2copri->{$bike}->{txt01} = "$response_out->{$bike}->{description}";
|
||||
$return2copri->{$bike}->{int25} = "1" if($resp->{gps_tracker_id});
|
||||
$return2copri->{$bike}->{txt06} = "$response_out->{$bike}->{gps}->{latitude},$response_out->{$bike}->{gps}->{longitude}";
|
||||
$return2copri->{$bike}->{int19} = $1 if($response_out->{$bike}->{bike_charge} =~ /(\d+)/);
|
||||
$return2copri->{$bike}->{int19} = $1 if($response_out->{$bike}->{bike_type}->{battery}->{charge_current_percent} =~ /(\d+)/);
|
||||
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{bike_state} }) {
|
||||
if($response_out->{$bike}->{state} eq $value){
|
||||
$return2copri->{$bike}->{int10} = $key;
|
||||
|
|
|
@ -90,6 +90,39 @@ EOF
|
|||
return $return;
|
||||
}
|
||||
|
||||
sub battery_bars {
|
||||
my $self = shift;
|
||||
my $max_bars = shift || 0;
|
||||
my $current_percent = shift || 0;
|
||||
|
||||
my $current_bars = 0;
|
||||
if($max_bars == 5){
|
||||
$current_bars = 1 if($current_percent >= 10);
|
||||
$current_bars = 2 if($current_percent >= 30);
|
||||
$current_bars = 3 if($current_percent >= 50);
|
||||
$current_bars = 4 if($current_percent >= 70);
|
||||
$current_bars = 5 if($current_percent >= 90);
|
||||
}
|
||||
|
||||
return $current_bars;
|
||||
}
|
||||
|
||||
sub battery_percent {
|
||||
my $self = shift;
|
||||
my $max_bars = shift || 0;
|
||||
my $current_bars = shift || 0;#by user input
|
||||
|
||||
my $current_percent = 0;
|
||||
if($max_bars == 5){
|
||||
$current_percent = 10 if($current_bars >= 1);
|
||||
$current_percent = 30 if($current_bars >= 2);
|
||||
$current_percent = 50 if($current_bars >= 3);
|
||||
$current_percent = 70 if($current_bars >= 4);
|
||||
$current_percent = 100 if($current_bars >= 5);
|
||||
}
|
||||
|
||||
return $current_percent;
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
@ -111,6 +111,9 @@ sub counting_rental {
|
|||
my $computed_clock = $real_clock;
|
||||
my $rental_minute = $self->clock_minutes($computed_clock);
|
||||
|
||||
#if end_station == start_station and rental minutes < 5 minutes, then 0
|
||||
$rental_minute = 0 if($ctpos->{int04} == $ctpos->{int06} && $rental_minute && $rental_minute < 5);
|
||||
|
||||
#init with some defaults
|
||||
my $total_price = 0;
|
||||
my $ctpos_freed = { c_id => 0 };
|
||||
|
@ -142,6 +145,7 @@ sub counting_rental {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
my $rental_unit = 0;
|
||||
my $price_by_allunit = 0;
|
||||
my $max_daily_unit = 0;#how many rental_minute is one daily_unit
|
||||
|
@ -281,7 +285,7 @@ sub fetch_rentalfeed {
|
|||
my $returned_counting = shift || {};
|
||||
|
||||
my $td_template = $dbt->rental_description_template();
|
||||
my $bike_group = "$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$ctpos->{int12}" || "";
|
||||
my $bike_group = "$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$ctpos->{int29}" || "";
|
||||
|
||||
my $return = {};
|
||||
$return->{bike_group} = ["$bike_group"];
|
||||
|
@ -302,17 +306,27 @@ sub fetch_rentalfeed {
|
|||
$return->{bike_type}->{wheels} = "2";
|
||||
|
||||
#for station_type_id mapping
|
||||
if($ctpos->{int29}){
|
||||
if($ctpos->{int29} == 300101){
|
||||
if($ctpos->{int29} && $ctpos->{int29} == 300101){
|
||||
$return->{bike_type}->{category} = "cargo";
|
||||
$return->{bike_type}->{wheels} = "2";
|
||||
$return->{bike_type}->{wheels} = "3" if($ctpos->{txt01} =~ /drei|trike/i);
|
||||
$return->{bike_type}->{engine}->{manufacturer} = "dummy" if($ctpos->{txt01} =~ /E-/i);
|
||||
}
|
||||
|
||||
if($ctpos->{txt01} =~ /E-/i){
|
||||
$return->{bike_type}->{engine}->{manufacturer} = "dummy";
|
||||
my $max_bars = 5;
|
||||
my $current_bars = 0;
|
||||
$return->{bike_type}->{battery}->{charge_max_bars} = "$max_bars";
|
||||
$return->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$return->{bike_type}->{battery}->{charge_current_percent} = "0";
|
||||
if($ctpos->{int19}){
|
||||
$current_bars = $bw->battery_bars($max_bars,$ctpos->{int19});
|
||||
$return->{bike_type}->{battery}->{charge_current_bars} = "$current_bars";
|
||||
$return->{bike_type}->{battery}->{charge_current_percent} = "$ctpos->{int19}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$return->{Ilockit_ID} = "$ctpos->{txt18}" if($ctpos->{int11} == 2);
|
||||
$return->{bike_charge} = "$ctpos->{int19}" if($ctpos->{int19});
|
||||
$return->{description} = "$ctpos->{txt01}";
|
||||
$return->{request_time} = "$ctpos->{itime}";
|
||||
$return->{system} = "Ilockit" if($ctpos->{int11} && $ctpos->{int11} == 2);
|
||||
|
|
|
@ -42,8 +42,8 @@ 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="FR1005";#E-Lastenrad (bike_group=300101, bike_node=300102)
|
||||
#my $api_test = "sharee_fr01"; my $bike="FR1538";
|
||||
my $api_test = "sharee_fr01"; my $bike="FR1005";#E-Lastenrad (bike_group=300101, bike_node=300102)
|
||||
#my $api_test = "sharee_fr01"; my $bike="FR4781";#Tracking and BVB test
|
||||
#my $api_test = "sharee_kn"; my $bike="KN205";
|
||||
#my $api_test = "sharee_wue"; my $bike="WUE5525";
|
||||
|
|
|
@ -437,7 +437,9 @@ Nach Abschluss der Registrierung erhalten Sie sowohl auf die von Ihnen hinterleg
|
|||
$gesamt = $lb->round($pricing->{total_price});
|
||||
$gesamt = sprintf('%.2f', $gesamt);
|
||||
$gesamt =~ s/\./,/;
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style", -nowrap=>1},"$gesamt €"),"\n";
|
||||
my $rabatt = "";
|
||||
$rabatt = "$pricing->{discount}" if($pricing->{discount});
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style", -nowrap=>1},"$rabatt $gesamt €"),"\n";
|
||||
}else{
|
||||
my $gesamt = 0;
|
||||
my $rabatt = "";
|
||||
|
|
Loading…
Add table
Reference in a new issue