adding REN and SX operators

This commit is contained in:
Rainer Gümpelein 2022-03-30 07:29:24 +02:00
parent 709521c892
commit 30bb566d5e
8 changed files with 45 additions and 29 deletions

View file

@ -550,7 +550,7 @@ sub service_update(){
}; };
my $record_pos = $dbt->fetch_tablerecord($dbh,$pref_pos) if($c_id); my $record_pos = $dbt->fetch_tablerecord($dbh,$pref_pos) if($c_id);
if($record_pos->{txt01} ne "NaN"){ if($record_pos->{txt01} ne "NaN"){
$update->{$key} = $q->escapeHTML($q->param('work_val')) . " " . $record_pos->{txt01}; $update->{$key} = $q->escapeHTML($q->param('work_val')) . " " . $record_pos->{txt01} if($record_pos->{txt01} !~ /::erledigt::/);
}else{ }else{
$update->{$key} = $q->escapeHTML($q->param('work_val')); $update->{$key} = $q->escapeHTML($q->param('work_val'));
} }
@ -779,6 +779,7 @@ sub booking_update(){
my $owner = shift || 0; my $owner = shift || 0;
my $state = $q->escapeHTML($q->param('state')) || ""; my $state = $q->escapeHTML($q->param('state')) || "";
my $lock_state = $q->escapeHTML($q->param('lock_state')) || ""; my $lock_state = $q->escapeHTML($q->param('lock_state')) || "";
my $station_state = $q->escapeHTML($q->param('station_state')) || "";
my %varenv = $cf->envonline(); my %varenv = $cf->envonline();
my $rows = 0; my $rows = 0;
my $user_agent = $q->user_agent(); my $user_agent = $q->user_agent();
@ -801,6 +802,7 @@ sub booking_update(){
bike => "$bike", bike => "$bike",
state => "", state => "",
lock_state => "", lock_state => "",
station_state => "",
co2saving => "", co2saving => "",
response_state => "OK 1017: No update", response_state => "OK 1017: No update",
response_text => "Es wurden keine Daten aktualisiert", response_text => "Es wurden keine Daten aktualisiert",
@ -960,7 +962,9 @@ sub booking_update(){
$geo_distance = $lb->geo_fencing($latitude,$longitude,$latitude_station,$longitude_station); $geo_distance = $lb->geo_fencing($latitude,$longitude,$latitude_station,$longitude_station);
#$station_next = $stations_raw->{$id}->{int04}; #$station_next = $stations_raw->{$id}->{int04};
if($geo_distance <= $stations_raw->{$id}->{int06}){ #if($geo_distance <= $stations_raw->{$id}->{int06}){
#sigo development workaround without geofence
if(($geo_distance <= $stations_raw->{$id}->{int06}) || ($record_pos->{int11} == 3)){
$geo_distance_next = $geo_distance; $geo_distance_next = $geo_distance;
#end-Station #end-Station
$update_pos->{int04} = "$stations_raw->{$id}->{int04}"; $update_pos->{int04} = "$stations_raw->{$id}->{int04}";
@ -1169,12 +1173,13 @@ sub booking_update(){
$booking_values->{response_text} = "Abschließen von Fahrrad Nr. " . $q->param('bike') . " bestätigt"; $booking_values->{response_text} = "Abschließen von Fahrrad Nr. " . $q->param('bike') . " bestätigt";
} }
}elsif($lock_state eq "unlocked"){ }elsif($lock_state eq "unlocked"){
#int11=system >= 3 (sigo) with station_lock
#int30=Station Id #int30=Station Id
#int31=Slot Id #int31=Slot Id
#int27=velofactur bike Id #int27=velofactur bike Id
if($record_cc->{int30} && $record_cc->{int31} && $record_cc->{int27}){ if($record_cc->{int11} && $record_cc->{int11} >=3 && $record_cc->{int30} && $record_cc->{int31} && $record_cc->{int27}){
$bw->log("unlock velofactur station lock with: '$record_cc->{int30}' '$record_cc->{int31}' '$record_cc->{int27}' 'Freigeben' '$record_pos->{c_id}'","",""); $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}"`); #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; $lock_value = 2;
$update_cc->{int20} = "$lock_value"; $update_cc->{int20} = "$lock_value";

View file

@ -1079,7 +1079,7 @@ sub collect_transpos {
$where .= " and cp.$key = $search->{$key}" if($key eq "barcode" && looks_like_number($search->{$key})); $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}));#bike_group
$where .= " and cp.$key = $search->{$key}" if($key eq "owner" && looks_like_number($search->{$key})); $where .= " and cp.$key = $search->{$key}" if($key eq "owner" && looks_like_number($search->{$key}));
$where .= " and cp.$key is $search->{$key}" if($key eq "int34" && $search->{$key} eq "null"); $where .= " and (cp.$key is $search->{$key} OR cp.$key = 0)" if($key eq "int34" && $search->{$key} eq "null");
} }
$where .= " ORDER BY cp.end_time $updown LIMIT $search->{limit} OFFSET $search->{offset}" if($search->{limit}); $where .= " ORDER BY cp.end_time $updown LIMIT $search->{limit} OFFSET $search->{offset}" if($search->{limit});

View file

@ -60,8 +60,6 @@ sub admin_tpl(){
my $change = $lb->time4de($node_meta->{change},"1") if($node_meta->{change}); my $change = $lb->time4de($node_meta->{change},"1") if($node_meta->{change});
my $subid = $1 if($node_meta->{main_id} =~ /^(\d)/); my $subid = $1 if($node_meta->{main_id} =~ /^(\d)/);
my $ctf = $db->get_content1("contentuser",$dbt->{shareedms_conf}->{parent_id});
#Node templates #Node templates
my $tpl_id = 97;#Standard for CMS my $tpl_id = 97;#Standard for CMS
#Selektierbare Tabellen Layout templates #Selektierbare Tabellen Layout templates
@ -79,7 +77,6 @@ sub admin_tpl(){
$tpl_lists4selection = 210; $tpl_lists4selection = 210;
}else{ }else{
$tpl_lists4selection = "224,226,227,228,229"; $tpl_lists4selection = "224,226,227,228,229";
#$tpl_lists4selection .= "," . $ctf->{txt35} if($ctf->{txt35});#pos tpl-id's
} }
}elsif($node_meta->{ct_table} eq "contenttrans"){ }elsif($node_meta->{ct_table} eq "contenttrans"){
$tpl_id = "101"; $tpl_id = "101";
@ -89,8 +86,7 @@ sub admin_tpl(){
$tpl_lists4selection = "221,222"; $tpl_lists4selection = "221,222";
}elsif($node_meta->{ct_table} eq "contentadr" || $node_meta->{ct_table} eq "contentadrpos"){ }elsif($node_meta->{ct_table} eq "contentadr" || $node_meta->{ct_table} eq "contentadrpos"){
$tpl_id = "101"; $tpl_id = "101";
$tpl_lists4selection = $ctf->{txt38}; $tpl_lists4selection = "401,402,403";
$tpl_lists4selection .= "," . $ctf->{txt31} if($ctf->{txt31});#pos tpl-id's
} }
#Defaults to tpl_id=97 #Defaults to tpl_id=97

View file

@ -597,6 +597,7 @@ sub tpl(){
$s_hash = $dbt->{copri_conf}->{station_state} if($tpl_id == 225 && $key eq "int10"); $s_hash = $dbt->{copri_conf}->{station_state} if($tpl_id == 225 && $key eq "int10");
$s_hash = $dbt->{copri_conf}->{lock_system} if($tpl_id == 205 && $key eq "int11"); $s_hash = $dbt->{copri_conf}->{lock_system} if($tpl_id == 205 && $key eq "int11");
$s_hash = $dbt->{copri_conf}->{sharing_type} if($tpl_id == 210 && $key eq "int18"); $s_hash = $dbt->{copri_conf}->{sharing_type} if($tpl_id == 210 && $key eq "int18");
#$s_hash = $dbt->{copri_conf}->{tariff_unit} if($tpl_id == 210 && $key eq "int01");
$s_hash = { 1 => 1, 2 => 2, 3 => 3, 4 => 4 } if($tpl_id == 225 && $key eq "txt07"); $s_hash = { 1 => 1, 2 => 2, 3 => 3, 4 => 4 } if($tpl_id == 225 && $key eq "txt07");
#while (my ($key, $value) = each %{ $s_hash }) { #while (my ($key, $value) = each %{ $s_hash }) {
foreach my $s_key (sort keys (%{ $s_hash })) { foreach my $s_key (sort keys (%{ $s_hash })) {
@ -1018,6 +1019,8 @@ sub tpl(){
print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style $colorize"},"$dbt->{copri_conf}->{lock_state}->{$ct4rel->{$id}->{$key}}"),"\n"; 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 }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"; 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 }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"; 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} =~ /225|210/ && $key =~ /txt24|int12/){

View file

@ -100,6 +100,7 @@ sub tpl(){
$size = "60" if($key =~ /ct_name|txt|img/ && !$size); $size = "60" if($key =~ /ct_name|txt|img/ && !$size);
$ct->{$key} = $q->unescapeHTML("$ct->{$key}"); $ct->{$key} = $q->unescapeHTML("$ct->{$key}");
$ct->{$key} = $lb->newline($ct->{$key}); $ct->{$key} = $lb->newline($ct->{$key});
$des .= " ($key)" if($users_dms->{u_id} eq $varenv{superu_id});
my $value = ""; my $value = "";
if($R::config2edit){ if($R::config2edit){
if($size eq "area"){ if($size eq "area"){
@ -122,16 +123,13 @@ sub tpl(){
$value = "$ct->{$key}"; $value = "$ct->{$key}";
} }
print $q->Tr(); print $q->Tr();
if($key =~ /header01/){ if($key =~ /ct_name/){
print $q->td({-class=>'tdval2',-colspan=>'2'},$q->b("<br />$dbt->{operator}->{$varenv{dbname}}->{project} $dbt->{operator}->{$varenv{dbname}}->{oprefix} $dbt->{operator}->{$varenv{dbname}}->{database}->{dbname}")),"\n"; print $q->td({-class=>'tdescr2'}, ""),"\n";
}elsif($key =~ /header/){ print $q->td({-class=>'tdval2'},"Project: $dbt->{operator}->{$varenv{dbname}}->{project} | Prefix: $dbt->{operator}->{$varenv{dbname}}->{oprefix} | DB: $dbt->{operator}->{$varenv{dbname}}->{database}->{dbname}"),"\n";
print $q->td({-class=>'tdval2',-colspan=>'2'},$q->b("<br />$des")),"\n";
}elsif($users_dms->{u_id} eq $varenv{superu_id}){
print $q->td({-class=>'tdescr2'},"$des ($key)"),"\n";
}else{ }else{
print $q->td({-class=>'tdescr2'},"$des"),"\n"; print $q->td({-class=>'tdescr2'},"$des"),"\n";
print $q->td({-class=>'tdval2'}, "$value"),"\n";
} }
print $q->td({-class=>'tdval2'}, "$value"),"\n" if($key !~ /header/);
} }
print $q->end_table; print $q->end_table;
print $q->end_form; print $q->end_form;

View file

@ -47,7 +47,7 @@ my $dbt = new DBtank;
my $lang = "de"; my $lang = "de";
my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime; my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
my $dbh = ""; my $dbh = "";
my $main_id = 300101;#TODO Lastenrad Flotten ID my $main_id = 300103;#TODO Flotten ID
my $template_id = 205; my $template_id = 205;
### ###
@ -96,8 +96,8 @@ my $template_id = 205;
int10 => "5",#defect int10 => "5",#defect
int11 => "2",#Ilockit int11 => "2",#Ilockit
int20 => "2",#unlocked int20 => "2",#unlocked
txt01 => "Lastenrad neu", #Bezeichnung #TODO txt01 => "Mietrad neu", #Bezeichnung #TODO
txt04 => "aus Lieferung vom 08.03.2022", #Besonderheiten txt04 => "", #Besonderheiten
txt15 => "", #Firmware txt15 => "", #Firmware
txt17 => "", #GUID from APP txt17 => "", #GUID from APP
txt23 => "$csv->{$id}->{c1} $csv->{$id}->{c2} $csv->{$id}->{c3} $csv->{$id}->{c4} $csv->{$id}->{c5} $csv->{$id}->{c6}", txt23 => "$csv->{$id}->{c1} $csv->{$id}->{c2} $csv->{$id}->{c3} $csv->{$id}->{c4} $csv->{$id}->{c5} $csv->{$id}->{c6}",

View file

@ -153,9 +153,23 @@ print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$user_m
print $q->div({-style=>'margin:15px;'},"&nbsp;"),"\n"; print $q->div({-style=>'margin:15px;'},"&nbsp;"),"\n";
#config #config
my $uriop = "$dbt->{operator}->{$operator_key}->{operatorApp}/APIjsonserver"; my $uriop = "$dbt->{operator}->{$operator_key}->{operatorApp}/APIjsonserver";
my $bike = "FR1003"; my $bike = "FR1006";
my $latitude = "47.927738"; my $latitude = "47.927738";
my $longitude = "7.973855"; my $longitude = "7.973855";
my $system = "Ilockit";
my $and_station_state_locking = "";
my $and_station_state_locked = "";
my $and_station_state_unlocked = "";
#sigo test lock
if(1==1){
$bike = "FR1006";
$system = "sigo";
#$and_station_state_locking = "&station_state=locking";
#$and_station_state_locked = "&station_state=locked";
#$and_station_state_unlocked = "&station_state=unlocked";
}
if($operator_key eq "sharee_kn"){ if($operator_key eq "sharee_kn"){
$bike = "KN259"; $bike = "KN259";
$latitude = "47.66267"; $latitude = "47.66267";
@ -169,20 +183,20 @@ print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$bookin
my $booking_update_cancel = "$uriop?request=booking_update&bike=$bike&state=canceled&authcookie=$coo"; my $booking_update_cancel = "$uriop?request=booking_update&bike=$bike&state=canceled&authcookie=$coo";
print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_cancel"},"[ booking_update_cancel ]---> $booking_update_cancel")),"\n"; print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_cancel"},"[ booking_update_cancel ]---> $booking_update_cancel")),"\n";
my $booking_update_locking = "$uriop?request=booking_update&bike=$bike&lock_state=locking&authcookie=$coo"; my $booking_update_locking = "$uriop?request=booking_update&bike=$bike&lock_state=locking$and_station_state_locking&authcookie=$coo";
print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_locking"},"[ booking_update_locking ]---> $booking_update_locking")),"\n"; print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_locking"},"[ booking_update_locking ]---> $booking_update_locking")),"\n";
my $booking_update_locked = "$uriop?request=booking_update&bike=$bike&lock_state=locked&authcookie=$coo"; my $booking_update_locked = "$uriop?request=booking_update&bike=$bike&lock_state=locked$and_station_state_locked&authcookie=$coo";
print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_locked"},"[ booking_update_locked ]---> $booking_update_locked")),"\n"; print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_locked"},"[ booking_update_locked ]---> $booking_update_locked")),"\n";
my $booking_update_unlocked = "$uriop?request=booking_update&bike=$bike&lock_state=unlocked&voltage=39&authcookie=$coo"; my $booking_update_unlocked = "$uriop?request=booking_update&bike=$bike&lock_state=unlocked$and_station_state_unlocked&voltage=39&authcookie=$coo";
print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_unlocked"},"[ booking_update_unlocked ]---> $booking_update_unlocked")),"\n"; print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_unlocked"},"[ booking_update_unlocked ]---> $booking_update_unlocked")),"\n";
my $booking_update_oc_ul = "$uriop?request=booking_update&bike=$bike&state=occupied&lock_state=unlocked&authcookie=$coo"; my $booking_update_oc_ul = "$uriop?request=booking_update&bike=$bike&state=occupied&lock_state=unlocked$and_station_state_unlocked&authcookie=$coo";
print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_oc_ul"},"[ booking_update_oc_ul ]---> $booking_update_oc_ul")),"\n"; print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_oc_ul"},"[ booking_update_oc_ul ]---> $booking_update_oc_ul")),"\n";
my $booking_request_oc_ul = "$uriop?request=booking_request&bike=$bike&state=occupied&lock_state=unlocked&authcookie=$coo"; my $booking_request_oc_ul = "$uriop?request=booking_request&bike=$bike&state=occupied&lock_state=unlocked$and_station_state_unlocked&authcookie=$coo";
print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_request_oc_ul"},"[ booking_request_oc_ul ]---> $booking_request_oc_ul")),"\n"; print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_request_oc_ul"},"[ booking_request_oc_ul ]---> $booking_request_oc_ul")),"\n";
my $booking_update_av_lo = "$uriop?request=booking_update&bike=$bike&state=available&lock_state=locked&latitude=$latitude&longitude=$longitude&gps_age=300&user_device_manufaturer=samsung)&user_device_model=SM-G398FN&user_device_platform=Android&user_device_version=10&user_device_id=90af86831c10374d&authcookie=$coo"; my $booking_update_av_lo = "$uriop?request=booking_update&bike=$bike&state=available&lock_state=locked$and_station_state_locked&latitude=$latitude&longitude=$longitude&gps_age=300&user_device_manufaturer=samsung)&user_device_model=SM-G398FN&user_device_platform=Android&user_device_version=10&user_device_id=90af86831c10374d&authcookie=$coo";
print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_av_lo"},"[ booking_update_av_lo ]---> $booking_update_av_lo")),"\n"; print $q->div({-style=>'margin:15px;'},$q->a({-target=>'_blank', -href=>"$booking_update_av_lo"},"[ booking_update_av_lo ]---> $booking_update_av_lo")),"\n";
my $user_feedback = "$uriop?request=user_feedback&bike=$bike&bike_broken=1&message=testnachricht äöü&authcookie=$coo"; my $user_feedback = "$uriop?request=user_feedback&bike=$bike&bike_broken=1&message=testnachricht äöü&authcookie=$coo";

View file

@ -191,7 +191,7 @@ sub tpl(){
print "<li class='nav-item'> $lmenu0 </li><li><hr class='dropdown-divider'></li>\n"; print "<li class='nav-item'> $lmenu0 </li><li><hr class='dropdown-divider'></li>\n";
my $lmenu1; my $lmenu1;
foreach my $id1 (sort {$node1->{$a}->{n_sort} <=> $node1->{$b}->{n_sort}} keys (%$node1)){ foreach my $id1 (sort {$node1->{$a}->{n_sort} <=> $node1->{$b}->{n_sort}} keys (%$node1)){
if(($node1->{$id1}->{node_name} !~ /Firma|System/) || ($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id})){ if($node1->{$id1}->{node_name} !~ /Firma|System|Servicetechnik/){
my $node2 = $db->collect_noderel($node1->{$id1}->{main_id},$lang,$users_dms->{u_id}); my $node2 = $db->collect_noderel($node1->{$id1}->{main_id},$lang,$users_dms->{u_id});
$mclass = ""; $mclass = "";
$mstyle = ""; $mstyle = "";