mirror of
https://gitlab.com/t6353/sharee.bike.git
synced 2025-02-22 19:56:29 +01:00
new rental editor
This commit is contained in:
parent
46f86f6c05
commit
aceda57b50
23 changed files with 548 additions and 162 deletions
|
@ -91,7 +91,6 @@ div#Container_cms {
|
|||
.left_italic_cms {
|
||||
min-width:140px;
|
||||
padding:4px 0;
|
||||
vertical-align: middle;
|
||||
text-align: right;
|
||||
border: 0px solid black;
|
||||
}
|
||||
|
@ -350,13 +349,11 @@ div#Oline {
|
|||
.etxt {
|
||||
font-size:100%;
|
||||
border: 1px solid silver;
|
||||
background-color: #ededed;
|
||||
padding:1px;
|
||||
margin:1px;
|
||||
}
|
||||
.etxt2 {
|
||||
font-size:100%;
|
||||
border: 0px solid #ededed;
|
||||
margin:1px;
|
||||
}
|
||||
.stxt {
|
||||
|
@ -386,7 +383,6 @@ div#Oline {
|
|||
min-height: 2em;
|
||||
min-width: 20em;
|
||||
border: 0px solid silver;
|
||||
background-color: #ededed;
|
||||
}
|
||||
.etxtarea2 {
|
||||
min-height: 10em;
|
||||
|
@ -639,15 +635,15 @@ div#botlogic {
|
|||
|
||||
div#retm {
|
||||
position:fixed;
|
||||
right:0%;
|
||||
width:auto;
|
||||
top:0%;
|
||||
border:1px solid #007700;
|
||||
padding:5px;
|
||||
width:150px;
|
||||
left:20%;
|
||||
right:20%;
|
||||
padding:4px;
|
||||
color:black;
|
||||
background-color:yellow;
|
||||
background-color:#F3F34C;
|
||||
cursor:pointer;
|
||||
z-index:11;
|
||||
z-index:1100;
|
||||
}
|
||||
|
||||
div#savestate {
|
||||
|
@ -729,6 +725,17 @@ div#Container_txt1 {
|
|||
.sortnav:visited { color:black;}
|
||||
.sortnav:hover { color:#dcd77f;}
|
||||
|
||||
.editboo {
|
||||
font-size: 1.5em;
|
||||
color: black;
|
||||
padding:0 2px;
|
||||
vertical-align:middle;
|
||||
text-decoration: none;
|
||||
}
|
||||
.editboo:link {color:black;}
|
||||
.editboo:visited { color:black;}
|
||||
.editboo:hover { color:#dcd77f;}
|
||||
|
||||
.editnav {
|
||||
color: black;
|
||||
padding:0 2px;
|
||||
|
|
|
@ -53,9 +53,15 @@ sub handler {
|
|||
my $debug=1;
|
||||
my $user_agent = $q->user_agent();
|
||||
|
||||
$bw->log("APIjsonserver request:\n--> user-agent '$user_agent'",$q,"");
|
||||
#my %headers = map { $_ => $q->http($_) } $q->http();
|
||||
#$bw->log("headers:",\%headers,"");
|
||||
$bw->log("APIjsonserver request:\n--> user-agent '$user_agent' ",$q,"");
|
||||
|
||||
print $q->header(-type => "application/json", -charset => "utf-8", -'Access-Control-Allow-Origin' => "*");
|
||||
#for my $header ( keys %headers ) {
|
||||
# print "$header: $headers{$header}\n";
|
||||
#}
|
||||
|
||||
|
||||
my $respreq = $q->param('request') || "";
|
||||
my $apiserver = $q->url(-base=>1) || "";
|
||||
|
@ -249,6 +255,7 @@ elsif($q->param('request') eq "booking_request"){
|
|||
my $ct_tariff = {};
|
||||
($ct_bike,$ct_tariff) = $apif->fetch_bike_tariff(\%varenv,$authraw,$bike,$aowner);
|
||||
|
||||
#sig booking_request
|
||||
my $sig_book = {
|
||||
bikeId => "$ct_bike->{txt22}",
|
||||
rentalId => "",
|
||||
|
@ -258,7 +265,7 @@ elsif($q->param('request') eq "booking_request"){
|
|||
if($ct_bike->{barcode} && $ct_tariff->{barcode}){
|
||||
#sig reservation. not mandatory
|
||||
if($ct_bike->{int11} == 3){
|
||||
$sig_book = $si->sig_booking(\%varenv,$authraw,$ct_bike,"","reserve");
|
||||
$sig_book = $si->sig_booking(\%varenv,"reserve",$authraw,$ct_bike,"");
|
||||
$sig_book->{bikeId} = "$ct_bike->{txt22}";
|
||||
}
|
||||
$response_book = $apif->booking_request($q,\%varenv,$authraw,$bike,$ct_bike,$ct_tariff,$aowner,$gps,$sig_book);
|
||||
|
@ -286,8 +293,8 @@ elsif($q->param('request') eq "booking_request"){
|
|||
#sig booking
|
||||
if($ctpos->{int11} == 3){
|
||||
#usecase with reservationId (in ctpos) is in sig not defined, thats because using ct_bike.txt22
|
||||
#$sig_book = $si->sig_booking(\%varenv,$authraw,$ct_bike,$ctpos,"rental");
|
||||
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} $ctpos->{c_id} &");
|
||||
#$sig_book = $si->sig_booking(\%varenv,"rental",$authraw,$ct_bike,$ctpos);
|
||||
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} '' $ctpos->{c_id} &");
|
||||
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
|
||||
$response = {%$response, %$booking_values};
|
||||
}else{
|
||||
|
@ -358,7 +365,7 @@ elsif($q->param('request') eq "booking_cancel" || $q->param('request') eq "booki
|
|||
#this sig request is still not defined
|
||||
#$response->{response_state} = "Failure: sig bike reservation can not be canceled on sig";
|
||||
#$response->{response_text} = "Abbruch, die Reservierung kann nicht storniert werden";
|
||||
$sig_book = $si->sig_booking(\%varenv,$authraw,"",$ctpos,"reserve_end");
|
||||
$sig_book = $si->sig_booking(\%varenv,"reserve_end",$authraw,"",$ctpos);
|
||||
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
|
||||
}else{
|
||||
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,"");
|
||||
|
@ -370,12 +377,12 @@ elsif($q->param('request') eq "booking_cancel" || $q->param('request') eq "booki
|
|||
|
||||
if($ctpos->{int11} == 3){
|
||||
if($q->param('state') eq "occupied"){
|
||||
#$sig_book = $si->sig_booking(\%varenv,$authraw,"",$ctpos,"rental");
|
||||
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} $ctpos->{c_id} &");
|
||||
#$sig_book = $si->sig_booking(\%varenv,"rental",$authraw,"",$ctpos);
|
||||
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} '' $ctpos->{c_id} &");
|
||||
}
|
||||
if($q->param('state') eq "available"){
|
||||
#$sig_book = $si->sig_booking(\%varenv,$authraw,"",$ctpos,"rental_end");
|
||||
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental_end' $authraw->{c_id} $ctpos->{c_id} &");
|
||||
#$sig_book = $si->sig_booking(\%varenv,"rental_end",$authraw,"",$ctpos);
|
||||
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental_end' $authraw->{c_id} '' $ctpos->{c_id} &");
|
||||
}
|
||||
|
||||
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
|
||||
|
|
|
@ -278,10 +278,10 @@ sub sig_available {
|
|||
sub sig_booking {
|
||||
my $self = shift;
|
||||
my $varenv = shift || {};
|
||||
my $todo = shift || "";
|
||||
my $ctadr = shift || {};
|
||||
my $ct_bike = shift || {};
|
||||
my $ctpos = shift || {};
|
||||
my $todo = shift || "";
|
||||
|
||||
my $dbh = "";
|
||||
my $owner = 169;
|
||||
|
@ -314,7 +314,8 @@ sub sig_booking {
|
|||
#int10 state will be set on main booking_update
|
||||
elsif($todo eq "rental"){
|
||||
$endpoint .= "rental";
|
||||
my $sig_bikeId = $ctpos->{txt22} || $ct_bike->{txt22};
|
||||
#my $sig_bikeId = $ctpos->{txt22} || $ct_bike->{txt22};
|
||||
my $sig_bikeId = "380116b5-0522-43da-ab66-477744a731a3";
|
||||
%json = (
|
||||
bikeId => "$sig_bikeId",
|
||||
email => "$ctadr->{txt08}"
|
||||
|
@ -329,6 +330,15 @@ sub sig_booking {
|
|||
);
|
||||
#keep in mind, it will return no json, just text: "Rental Ended"
|
||||
}
|
||||
#rentals running
|
||||
#TODO, execute it before user_bikes_occupied
|
||||
elsif($todo eq "rentals_running"){
|
||||
$endpoint .= "rentals/running";
|
||||
%json = (
|
||||
email => "$ctadr->{txt08}"
|
||||
);
|
||||
}
|
||||
|
||||
else{
|
||||
print "Failure, request $todo not defined\n";
|
||||
|
||||
|
@ -352,6 +362,9 @@ sub sig_booking {
|
|||
#warn $@;
|
||||
print FILE "warn:" . $@ . "\n";
|
||||
}
|
||||
|
||||
#save always API return state for documentation
|
||||
$sig_book->{return_state} = "$now_dt $todo: $ret_status";
|
||||
}
|
||||
|
||||
if(ref($sig_book) ne "HASH"){
|
||||
|
@ -387,7 +400,8 @@ sub sig_booking {
|
|||
#}
|
||||
|
||||
$update_pos->{txt10} = "$sig_book->{reservationId}" if($sig_book->{reservationId});
|
||||
$update_pos->{txt11} = "$sig_book->{rentalId}" if($sig_book->{rentalid});
|
||||
$update_pos->{txt11} = "$sig_book->{rentalId}" if($sig_book->{rentalId});
|
||||
$update_pos->{txt25} = "$ctpos->{txt25}\n$sig_book->{return_state}";# if($sig_book->{return_state});
|
||||
$rows = $dbt->update_record($dbh,$update_pos,$ctpos);
|
||||
|
||||
print FILE "<--- rows: $rows, update_pos: $ctpos->{c_id}, with:" . Dumper($update_pos) . "\n";
|
||||
|
|
|
@ -58,5 +58,38 @@ sub log {
|
|||
|
||||
}
|
||||
|
||||
#return headline message
|
||||
sub return_feedback(){
|
||||
my $self = shift;
|
||||
my $node_meta = shift;
|
||||
my $users_dms = shift || {};
|
||||
my $feedb = shift || {};
|
||||
|
||||
my $return = "";
|
||||
if(ref($feedb) eq "HASH" && $feedb->{message}){
|
||||
print<<EOF
|
||||
<script>
|
||||
\$(document).ready(function(){
|
||||
\$( "#retm" ).fadeOut(8000);
|
||||
})
|
||||
</script>
|
||||
EOF
|
||||
;
|
||||
my $debug = "";
|
||||
$debug = $feedb->{debug} if($users_dms->{u_id} eq "1842");
|
||||
|
||||
if($feedb->{message} =~ /(failure::.*)/){
|
||||
$return = $1;
|
||||
}elsif($feedb->{message}){
|
||||
print $q->div({-id=>'retm'},"$feedb->{message} $debug"),"\n";
|
||||
}elsif($feedb->{u_rows}){
|
||||
print $q->div({-id=>'retm'},"$feedb->{u_rows} $node_meta->{node_name} aktualisiert $debug"),"\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
@ -312,7 +312,7 @@ sub selector_class(){
|
|||
push @selopt, "<option style='$des_style' value='$id'>$value</option>\n";
|
||||
}
|
||||
}
|
||||
my $selret = "<select class='$class' style='$style' name='$column'>@selopt</select>\n";
|
||||
my $selret = "<select class='$class' style='background-color:white;' name='$column'>@selopt</select>\n";
|
||||
return $selret;
|
||||
}
|
||||
|
||||
|
|
|
@ -277,6 +277,7 @@ sub channel_map(){
|
|||
my $self = shift;
|
||||
my $channel = {
|
||||
169 => "sig connector",
|
||||
172 => "cron timeout",
|
||||
173 => "merchant fallback",#mig
|
||||
175 => "example App",#mig
|
||||
176 => "Mein konrad App",#mig
|
||||
|
@ -532,13 +533,12 @@ sub select_worktime {
|
|||
sub collect_contentpos(){
|
||||
my $self = shift;
|
||||
my $dbh = shift || $dbh_intern;
|
||||
my ($table,$c_id) = @_;
|
||||
my $tb = "contenttrans";
|
||||
my $tbpos = "contenttranspos";
|
||||
my $where = "where ctt.c_id=pos.ct_id and ctt.c_id='$c_id'";
|
||||
my $table = shift;
|
||||
my $ct_id = shift || "";
|
||||
my $where = "where ctt.c_id=pos.ct_id and ctt.c_id='$ct_id'";
|
||||
|
||||
if($c_id){
|
||||
my $sth = $dbh->prepare("SELECT pos.* FROM $tbpos pos, $tb ctt $where");
|
||||
if($ct_id){
|
||||
my $sth = $dbh->prepare("SELECT pos.* FROM contenttranspos pos, contenttrans ctt $where");
|
||||
my $rc = $sth->execute();
|
||||
my $cpos = $sth->fetchall_hashref("c_id");
|
||||
my $rows = $sth->rows;
|
||||
|
@ -633,21 +633,20 @@ sub collect_post(){
|
|||
}
|
||||
}
|
||||
|
||||
my $sth;
|
||||
my $sql;
|
||||
my $sth = "";
|
||||
my $sql = "";
|
||||
my $limit = "";
|
||||
$limit = "LIMIT $count" if(looks_like_number($count));
|
||||
if($fetch->{catch} && $fetch->{catch} eq "content_contentpos"){
|
||||
$sql = "SELECT cp.* from $fetch->{table_pos} cp, $fetch->{table} ct where $ctcp_where and $cp_where and $ct_where order by cp.mtime DESC $limit";
|
||||
$sth = $dbh->prepare($sql);
|
||||
#+3
|
||||
}else{
|
||||
#adapated from search_content3 to get Category-Menue
|
||||
$sql = "SELECT cp.* FROM $fetch->{table_pos} cp WHERE $cp_where and $poscid IN (SELECT ct.c_id FROM relation rel, $fetch->{table} ct WHERE rel.content_id=ct.c_id and $ct_where) order by cp.mtime ASC";#mtime aufsteigend get last (newest) entry
|
||||
#rental pos with capture booking ct.state
|
||||
$sql = "SELECT cp.*, ct.state FROM $fetch->{table_pos} cp, $fetch->{table} ct WHERE $cp_where and $poscid IN (SELECT ct.c_id FROM relation rel, $fetch->{table} ct WHERE rel.content_id=ct.c_id and $ct_where) order by cp.mtime ASC";#mtime aufsteigend get last (newest) entry
|
||||
$sth = $dbh->prepare($sql);
|
||||
}
|
||||
my $rc = $sth->execute();
|
||||
$bw->log("DBtank collect_post $source",$sql,"") if($debug);
|
||||
my $rc = $sth->execute();
|
||||
|
||||
my $record = { c_id => 0 };
|
||||
if($fetch->{fetch} eq "all" && $fetch->{keyfield}){
|
||||
|
|
|
@ -380,6 +380,10 @@ sub handler {
|
|||
$return = "failure::Abbruch. Schreibender Zugriff \"Faktura\" verweigert.";
|
||||
}
|
||||
}
|
||||
if($node_meta->{ct_table} eq "contenttranspos" && $R::base_edit eq "save_pos"){
|
||||
$return = $pl->save_contenttranspos($R::c_id,$users_dms->{u_id});
|
||||
}
|
||||
|
||||
$users_dms = $dbt->select_users($dbh,$users_dms->{u_id},"");#just to get update after save
|
||||
|
||||
#none DMS hosts ----------------------------------------------------
|
||||
|
@ -656,7 +660,6 @@ sub handler {
|
|||
###
|
||||
}
|
||||
|
||||
my $nodev = $db->get_node("$view_post","$lang");
|
||||
#Printpreview
|
||||
if($view =~ /Printpreview/){
|
||||
require "Mod/Printpreview.pm";
|
||||
|
@ -669,13 +672,6 @@ sub handler {
|
|||
exit 0;
|
||||
}
|
||||
|
||||
#else global REDIRECT. Availability check for redirect
|
||||
#elsif(!$nodev->{main_id} || ($nodev->{main_id} == 100 && $R::rel_edit eq "save_content")){
|
||||
#print redirect("$varenv{wwwhost}$session");
|
||||
#exit 0;
|
||||
#}
|
||||
|
||||
|
||||
#CSVout
|
||||
if($R::rel_edit && $R::rel_edit =~ /XLSout/){
|
||||
$users_dms = $dbt->select_users($dbh,$users_dms->{u_id});
|
||||
|
@ -737,6 +733,7 @@ sub handler {
|
|||
\$( '#datepicker1' ).datepicker({ dateFormat: 'dd.mm.yy', dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']});
|
||||
\$( '#datepicker2' ).datepicker({ dateFormat: 'dd.mm.yy', dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']});
|
||||
\$( '#datepicker3' ).datepicker({ dateFormat: 'dd.mm.yy', dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']});
|
||||
\$( '#datepicker4' ).datepicker({ dateFormat: 'dd.mm.yy', dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']});
|
||||
});";
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ sub mobox3(){
|
|||
$title = "Kunden Editor" if($node_meta->{ct_table} eq "contentadr");
|
||||
$title = "DMS-Account Zugriffsberechtigung" if($node_meta->{ct_table} eq "users");
|
||||
$title = "Service Editor" if($node_meta->{ct_table} eq "contentpos");
|
||||
$title = "Rental Editor" if($node_meta->{ct_table} eq "contenttranspos");
|
||||
my $height = $node_meta->{tpl_height} || "990";
|
||||
my $width = $node_meta->{tpl_width} || "990";
|
||||
|
||||
|
|
|
@ -13,6 +13,8 @@ use File::Path qw(make_path remove_tree);
|
|||
use CGI ':standard';
|
||||
use CGI::Carp qw(fatalsToBrowser);
|
||||
use Scalar::Util qw(looks_like_number);
|
||||
use DateTime;
|
||||
use DateTime::Format::Pg;
|
||||
|
||||
use Lib::Config;
|
||||
use Mod::Libenzdb;
|
||||
|
@ -20,6 +22,7 @@ use Mod::Libenz;
|
|||
use Mod::DBtank;
|
||||
use Mod::Basework;
|
||||
use Mod::APIfunc;
|
||||
use Mod::Pricing;
|
||||
use Data::Dumper;
|
||||
|
||||
my $cf = new Config;
|
||||
|
@ -28,6 +31,7 @@ my $lb = new Libenz;
|
|||
my $dbt = new DBtank;
|
||||
my $bw = new Basework;
|
||||
my $apif = new APIfunc;
|
||||
my $pri = new Pricing;
|
||||
my $q = new CGI;
|
||||
|
||||
sub new {
|
||||
|
@ -46,6 +50,151 @@ my %varenv = $cf->envonline();
|
|||
my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
|
||||
my $debug=1;
|
||||
|
||||
sub save_contenttranspos {
|
||||
my $self = shift;
|
||||
my $c_id = shift;
|
||||
my $owner = shift;
|
||||
|
||||
my $dbh = "";
|
||||
my $feedb = { message => "" };
|
||||
if($c_id && $R::start_date =~ /\d{1,2}\.\d{1,2}\.\d{4}/ && $R::end_date =~ /\d{1,2}\.\d{1,2}\.\d{4}/){
|
||||
my $s_hh = $q->escapeHTML("$R::s_hh") || "0";
|
||||
my $s_mi = $q->escapeHTML("$R::s_mi") || "0";
|
||||
my $e_hh = $q->escapeHTML("$R::e_hh") || "0";
|
||||
my $e_mi = $q->escapeHTML("$R::e_mi") || "0";
|
||||
$s_hh = "24" if($s_hh > "24");
|
||||
$e_hh = "24" if($e_hh > "24");
|
||||
$s_mi = "59" if($s_mi > "59");
|
||||
$e_mi = "59" if($e_mi > "59");
|
||||
$s_hh = sprintf('%.2d',$s_hh);
|
||||
$e_hh = sprintf('%.2d',$e_hh);
|
||||
$s_mi = sprintf('%.2d',$s_mi);
|
||||
$e_mi = sprintf('%.2d',$e_mi);
|
||||
my $start_time="";
|
||||
my $end_time="";
|
||||
|
||||
my $dtnow = DateTime->now( time_zone => "Europe/Berlin" );
|
||||
my $dt0 = DateTime->now( time_zone => "Europe/Berlin" );
|
||||
my $dt1 = DateTime->now( time_zone => "Europe/Berlin" );
|
||||
|
||||
if($R::start_date =~ /(\d{1,2})\.(\d{1,2})\.(\d{4})/){
|
||||
$dt0 = DateTime->new(
|
||||
year => $3,
|
||||
month => $2,
|
||||
day => $1,
|
||||
hour => $s_hh,
|
||||
minute => $s_mi,
|
||||
time_zone => 'Europe/Berlin',
|
||||
);
|
||||
$start_time = $dt0->strftime("%Y-%m-%d %H:%M:%S");
|
||||
#print $start_time;
|
||||
}
|
||||
|
||||
if($R::end_date =~ /(\d{1,2})\.(\d{1,2})\.(\d{4})/){
|
||||
$dt1 = DateTime->new(
|
||||
year => $3,
|
||||
month => $2,
|
||||
day => $1,
|
||||
hour => $e_hh,
|
||||
minute => $e_mi,
|
||||
time_zone => 'Europe/Berlin',
|
||||
);
|
||||
$end_time = $dt1->strftime("%Y-%m-%d %H:%M:%S");
|
||||
}
|
||||
|
||||
if($c_id && $start_time && $end_time && $dt0 < $dtnow && $dt1 < $dtnow){
|
||||
|
||||
my $pref = {
|
||||
table => "contenttrans",
|
||||
table_pos => "contenttranspos",
|
||||
fetch => "one",
|
||||
template_id => "218",#Mietjournal tpl_id
|
||||
c_id => $c_id,
|
||||
"ct.close_time" => "is::null",
|
||||
};
|
||||
|
||||
my $record_pos = {};
|
||||
$record_pos = $dbt->collect_post($dbh,$pref);
|
||||
|
||||
my $pricing = {};
|
||||
my $counting = {};
|
||||
my $update_pos = {
|
||||
table => "contenttranspos",
|
||||
start_time => "$start_time",
|
||||
end_time => "$end_time",
|
||||
owner_end => $owner,
|
||||
mtime => "now()",
|
||||
};
|
||||
$u_rows += $dbt->update_record($dbh,$update_pos,$record_pos);
|
||||
|
||||
#again to get setted date-times
|
||||
$record_pos = $dbt->collect_post($dbh,$pref);
|
||||
|
||||
($pricing,$counting) = $pri->counting_rental(\%varenv,$record_pos,"calc_price");
|
||||
$update_pos->{int38} = "$counting->{int38}" if(looks_like_number($counting->{int38}));
|
||||
$update_pos->{int39} = "$counting->{int39}" if(looks_like_number($counting->{int39}));
|
||||
$update_pos->{int40} = "$counting->{int40}" if(looks_like_number($counting->{int40}));
|
||||
$update_pos->{int41} = "$counting->{int41}" if(looks_like_number($counting->{int41}));
|
||||
|
||||
$update_pos->{int10} = $R::int10 if(looks_like_number($R::int10));
|
||||
$update_pos->{int20} = $R::int20 if(looks_like_number($R::int20));
|
||||
$update_pos->{int04} = $R::int04 if(looks_like_number($R::int04));
|
||||
|
||||
#before update bike content check if realy last rental
|
||||
my $pref2ck = {
|
||||
table => "contenttrans",
|
||||
table_pos => "contenttranspos",
|
||||
fetch => "one",
|
||||
template_id => "218",#Mietjournal tpl_id
|
||||
start_time => ">::$end_time",
|
||||
"ct.close_time" => "is::null",
|
||||
};
|
||||
|
||||
my $record_pos2ck = { c_id => 0 };
|
||||
$record_pos2ck = $dbt->collect_post($dbh,$pref2ck);
|
||||
|
||||
#update bike content only if there is no later rental start
|
||||
if($record_pos->{cc_id} && !$record_pos2ck->{c_id}){
|
||||
my $ctpref = {
|
||||
table => "content",
|
||||
fetch => "one",
|
||||
c_id => $record_pos->{cc_id},
|
||||
};
|
||||
my $ctbike = $dbt->fetch_tablerecord($dbh,$ctpref);
|
||||
|
||||
$ctpref->{int10} = $R::int10 if(looks_like_number($R::int10));
|
||||
$ctpref->{int20} = $R::int20 if(looks_like_number($R::int20));
|
||||
$ctpref->{int04} = $R::int04 if(looks_like_number($R::int04));
|
||||
|
||||
$ctpref->{owner} = $owner;
|
||||
$ctpref->{mtime} = "now()";
|
||||
$u_rows += $dbt->update_record($dbh,$ctpref,$ctbike);
|
||||
$feedb->{message} = "Mietdaten gespeichert und Mietrad Stati in Warenstamm übernommen";
|
||||
}else{
|
||||
$feedb->{message} = "Mietdaten gespeichert. Achtung, Mietrad Stati in Warenstamm NICHT übernommen, da es sich nicht um die letzte Miete handelt";
|
||||
}
|
||||
|
||||
$u_rows += $dbt->update_record($dbh,$update_pos,$record_pos);
|
||||
|
||||
#
|
||||
if($record_pos->{ct_id}){
|
||||
my $ctpref = {
|
||||
table => "contenttrans",
|
||||
c_id => $record_pos->{ct_id},
|
||||
start_time => "$start_time",
|
||||
end_time => "$end_time",
|
||||
owner => $owner,
|
||||
mtime => "now()",
|
||||
};
|
||||
$u_rows += $dbt->update_record($dbh,$ctpref,$ctpref);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$feedb->{message} = "failure::Fehler, falsche Zeitangaben oder Datensatz nicht gefunden!";
|
||||
}
|
||||
$feedb->{u_rows} = $u_rows;
|
||||
return $feedb;
|
||||
}#end save_contenttranspos
|
||||
|
||||
#set Faktura workflow like Rechnung to Storno
|
||||
sub set_workflow {
|
||||
|
@ -440,6 +589,7 @@ sub set_usertarif {
|
|||
if(@new_txt30){
|
||||
print FILE "-3-> txt30: @new_txt30\n" if($debug);
|
||||
$u_rows = $dbt->update_one($dbh_operator,$adr_bonus,"txt30='@new_txt30'");
|
||||
$u_rows = $dbt->update_one($dbh_operator,$adr_bonus,"txt15='$adr_bonus->{txt15}'");
|
||||
}
|
||||
$ret = "failure::txt30#top2" if(!$adr_bonus->{txt30_array} || $adr_bonus->{txt30_array} !~ /\d/);
|
||||
}
|
||||
|
|
|
@ -363,7 +363,7 @@ sub preinit(){
|
|||
($pricing,$counting) = $pri->counting_rental(\%varenv,$record_pos,"calc_price");
|
||||
|
||||
#int03 only used for tarif counting backwards compatibility
|
||||
$update_pos->{int03} = "$pricing->{computed_hours}" if(looks_like_number($pricing->{computed_hours}));
|
||||
#$update_pos->{int03} = "$pricing->{computed_hours}" if(looks_like_number($pricing->{computed_hours}));
|
||||
$update_pos->{int38} = "$counting->{int38}" if(looks_like_number($counting->{int38}));
|
||||
$update_pos->{int39} = "$counting->{int39}" if(looks_like_number($counting->{int39}));
|
||||
$update_pos->{int40} = "$counting->{int40}" if(looks_like_number($counting->{int40}));
|
||||
|
|
|
@ -62,7 +62,7 @@ sub only_first_free(){
|
|||
int10 => "IN::('1','6')",
|
||||
"ct.close_time" => "is::null",
|
||||
};
|
||||
$pref = { %$pref, time_range => "start_time >= '$ctpos->{start_time}' and start_time < '$ctpos->{end_time}' and start_time != end_time" };
|
||||
$pref = { %$pref, time_range => "cp.start_time >= '$ctpos->{start_time}' and cp.start_time < '$ctpos->{end_time}' and cp.start_time != cp.end_time" };
|
||||
|
||||
my $record = $dbt->collect_post($dbh,$pref);
|
||||
return $record;
|
||||
|
|
|
@ -269,7 +269,8 @@ sub save_account(){
|
|||
$valxx = "KN-$valappend";
|
||||
print FILE "Prepare SWK Bonusnr by prefix $valxx" . "\n" if($debug);
|
||||
}
|
||||
if($valxx && ($valxx =~ /^(\w{2,3})-(\w+)/ || $valxx =~ /^(\w{2,3})(\d+)/)){
|
||||
#Freischaltcode format can be "CA-Li-hsze789k" or "CA1234567"
|
||||
if($valxx && ($valxx =~ /^(\w{2,3})-([\w\-]+)/i || $valxx =~ /^(\w{2,3})(\d+)/)){
|
||||
$valxx =~ s/\s//g;
|
||||
my $bonus_prefix = uc($1),
|
||||
my $bonusnr = $2;
|
||||
|
|
|
@ -19,6 +19,7 @@ use Mod::Libenzdb;
|
|||
use Mod::Basework;
|
||||
use Mod::DBtank;
|
||||
use Mod::APIfunc;
|
||||
use Mod::Pricing;
|
||||
use Data::Dumper;
|
||||
|
||||
sub new {
|
||||
|
@ -42,6 +43,7 @@ sub tpl(){
|
|||
my $bw = new Basework;
|
||||
my $dbt = new DBtank;
|
||||
my $apif = new APIfunc;
|
||||
my $pri = new Pricing;
|
||||
my $but = new Buttons;
|
||||
my %ib = $but->ibuttons();
|
||||
|
||||
|
@ -60,6 +62,13 @@ sub tpl(){
|
|||
my $edit_template = "";
|
||||
my $bg_color = "grey";
|
||||
my $ctrel = {};
|
||||
my $cttpos = {};
|
||||
my $gesamt = 0;
|
||||
my $pricing = {};
|
||||
my $counting = {};
|
||||
my $rental_feed = {};
|
||||
my $occupied_style = "";
|
||||
|
||||
if($node_meta->{ct_table} eq "content" && $node_meta->{tpl_id}){
|
||||
my $ref = {
|
||||
table => "$node_meta->{ct_table}",
|
||||
|
@ -125,18 +134,54 @@ sub tpl(){
|
|||
$edit = "rel_edit";
|
||||
$save_key = "save_ctuser";
|
||||
$tpl = $db->get_tpl($node_meta->{tpl_id});
|
||||
|
||||
}elsif($node_meta->{ct_table} eq "contenttranspos" && $node_meta->{tpl_id} == 221){
|
||||
my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
|
||||
my $pref = {
|
||||
table => "contenttrans",
|
||||
table_pos => "contenttranspos",
|
||||
fetch => "one",
|
||||
c_id => $c_id,
|
||||
};
|
||||
|
||||
print $q->hidden(-name=>'c_id',-override=>'1', -value=>"$c_id");
|
||||
|
||||
$cttpos = $dbt->collect_post($dbh,$pref);
|
||||
$occupied_style = "color:#ff1493" if($cttpos->{int10} == 2 ||$cttpos->{int10} == 3 || $cttpos->{int10} == 6);
|
||||
|
||||
if($cttpos->{int35} && $cttpos->{start_time} && $cttpos->{end_time}){
|
||||
$cttpos->{end_time} = $now_dt if($cttpos->{int10} == 3);
|
||||
($pricing,$counting) = $pri->counting_rental(\%varenv,$cttpos,"calc_price");
|
||||
$rental_feed = $pri->fetch_rentalfeed(\%varenv,$cttpos,$counting);
|
||||
$gesamt = $pri->round($pricing->{total_price});
|
||||
$gesamt = sprintf('%.2f', $gesamt);
|
||||
}else{
|
||||
($gesamt,my $rabatt) = $pri->price2calc($cttpos);
|
||||
$gesamt = $pri->round($gesamt);
|
||||
$gesamt = sprintf('%.2f', $gesamt);
|
||||
}
|
||||
|
||||
$bg_color = $varenv{background_color2};
|
||||
$edit = "base_edit";
|
||||
$save_key = "save_pos";
|
||||
$tpl = $db->get_tpl($node_meta->{tpl_id});
|
||||
|
||||
}else{
|
||||
print $q->div("Es konnten keine Daten gefunden werden"),"\n";
|
||||
return "failure::Error, no table selected";
|
||||
}
|
||||
|
||||
my $u_name = $dbt->sys_username($dbh,$ctrel->{owner});
|
||||
|
||||
if(ref($ctrel) ne "HASH" && !$ctrel->{c_id} && !$ctrel->{u_id}){
|
||||
print $q->div("error: no content available");
|
||||
}
|
||||
#if(ref($ctrel) ne "HASH" && !$ctrel->{c_id} && !$ctrel->{u_id}){
|
||||
# print $q->div("error: no content available");
|
||||
#}
|
||||
|
||||
$ctrel->{mtime} = $lb->time4de($ctrel->{mtime},"1") if($ctrel->{mtime});
|
||||
my $u_name = "";
|
||||
my $dbmtime = "";
|
||||
my $dbowner = $ctrel->{owner} || $cttpos->{owner_end} || "";
|
||||
my $dbmtime = $ctrel->{mtime} || $cttpos->{mtime} || "";
|
||||
$u_name = $dbt->sys_username($dbh,$dbowner);
|
||||
$dbmtime = $lb->time4de($dbmtime,"1") if($dbmtime);
|
||||
my $selsize="200px";
|
||||
#$db->users_up("rel_id4edit",$ctrel->{rel_id},$users_dms->{u_id});
|
||||
|
||||
|
@ -147,23 +192,6 @@ sub tpl(){
|
|||
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit");
|
||||
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids");
|
||||
|
||||
my ($start_date,$start_time,$s_dd,$s_mo,$s_yy,$s_hh,$s_mi,$end_date,$end_time,$e_yy,$e_mo,$e_dd,$e_hh,$e_mi);
|
||||
my $today = strftime("%d.%m.%Y",localtime(time));
|
||||
my $start_datetime = $ctrel->{start_time};
|
||||
my $end_datetime = $ctrel->{end_time};
|
||||
|
||||
if($start_datetime){
|
||||
($start_date,$start_time) = split(/ /,$start_datetime);
|
||||
($s_yy,$s_mo,$s_dd) = split(/-/,$start_date);
|
||||
$start_date = "$s_dd-$s_mo-$s_yy";
|
||||
($s_hh,$s_mi) = split(/\:/,$start_time);
|
||||
}
|
||||
if($end_datetime){
|
||||
($end_date,$end_time) = split(/ /,$end_datetime);
|
||||
($e_yy,$e_mo,$e_dd) = split(/-/,$end_date);
|
||||
$end_date = "$e_dd-$e_mo-$e_yy";
|
||||
($e_hh,$e_mi) = split(/\:/,$end_time);
|
||||
}
|
||||
###
|
||||
|
||||
my $bike_nodes = {};
|
||||
|
@ -187,11 +215,11 @@ sub tpl(){
|
|||
print $but->singlesubmit7("rel_edit","$relate_key","$ib{$relate_key}","margin:0 5px;");
|
||||
print $but->singlesubmit7("rel_edit","$move_key","$ib{$move_key}","margin:0 5px;");
|
||||
print $but->singlesubmit7("rel_edit","$copy_key","$ib{$copy_key}","margin:0 5px;");
|
||||
print $but->singlesubmit7("$edit","remove_chk4rel","$ib{remove_chk4rel}","margin:0 5px;") if($node_meta->{tpl_id} != 199);
|
||||
print $but->singlesubmit7("$edit","remove_chk4rel","$ib{remove_chk4rel}","margin:0 5px;") if($node_meta->{tpl_id} !~ /199|221/);
|
||||
|
||||
#print $q->div({-style=>'position:fixed;bottom:2%;right:1%;z-index:10;font-size:13px;'}," (c_id: $ctrel->{c_id} | rel_id: $ctrel->{rel_id} | tpl_id: $ctrel->{template_id} / $edit_template)"),"\n" if($users_dms->{u_id} eq $varenv{superu_id});
|
||||
print "</td>\n";
|
||||
print $q->td({-style=>"background-color:$bg_color;padding-right:10px;border-bottom: 1px solid silver;text-align:right;font-size:11px;"}, "$u_name / $ctrel->{mtime}");
|
||||
print $q->td({-style=>"background-color:$bg_color;padding-right:10px;border-bottom: 1px solid silver;text-align:right;font-size:11px;"}, "$u_name / $dbmtime");
|
||||
print $q->end_table;
|
||||
|
||||
|
||||
|
@ -272,14 +300,138 @@ EOF
|
|||
|
||||
foreach (@tpl_order){
|
||||
|
||||
#Mietjournal edit
|
||||
if($node_meta->{ct_table} eq "contenttranspos" && $node_meta->{tpl_id} == 221){
|
||||
my ($key,$des,$size,$postdes) = split /=/,$_;
|
||||
|
||||
if($key =~ /c_id|ct_name|txt08|barcode/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms'}, $q->b("$cttpos->{$key}")),"\n";
|
||||
}elsif($key =~ /txt01/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
if($cttpos->{int09} && $cttpos->{$key} !~ /Manuell/){
|
||||
$cttpos->{$key} .= "\nManuell bearbeitet\n";
|
||||
}
|
||||
|
||||
print "<td class='content1_cms' style='$occupied_style;'\n>";
|
||||
print $q->textarea(-class=>'autos',-style=>"border: 1px solid #ededed;",-name=>"$key",-default=>"$cttpos->{$key}", -override=>'1',-rows=>"1",-cols=>45, -autofocus=>1),"<br />\n";
|
||||
|
||||
|
||||
print "</td>\n";
|
||||
#if Traiff Nr.
|
||||
}elsif($key eq "int09"){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms'}, $q->textfield(-class=>'etxt',-name=>"int09",-default=>"$cttpos->{int09}",-size=>"5",-maxlength=>5), "Text", $q->textfield(-class=>'etxt',-name=>"txt04",-default=>"$cttpos->{txt04}",-size=>"30",-maxlength=>50)),"\n";
|
||||
|
||||
#Endstation
|
||||
}elsif($key eq "int04"){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms'}, $q->textfield(-class=>'etxt',-name=>"int04",-default=>"$cttpos->{int04}",-size=>"5",-maxlength=>40)),"\n";
|
||||
#End GPS
|
||||
}elsif($key eq "txt06"){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms'}, "$cttpos->{$key}"),"\n";
|
||||
|
||||
}elsif($key eq "date_time"){
|
||||
my ($s_yy,$s_mo,$s_dd,$s_hh,$s_mi) = $lb->split_date($cttpos->{start_time});
|
||||
my ($e_yy,$e_mo,$e_dd,$e_hh,$e_mi) = $lb->split_date($cttpos->{end_time});
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms'},
|
||||
$q->textfield(-id=>'datepicker3',-class=>'etxt',-name=>"start_date",-default=>"$s_dd.$s_mo.$s_yy",-size=>"8",-maxlength=>10),
|
||||
$q->textfield(-class=>'etxt',-name=>"s_hh",-default=>"$s_hh",-size=>"1",-maxlength=>2),":",
|
||||
$q->textfield(-class=>'etxt',-name=>"s_mi",-default=>"$s_mi",-size=>"1",-maxlength=>2)," → ",
|
||||
$q->textfield(-id=>'datepicker4',-class=>'etxt',-name=>"end_date",-default=>"$e_dd.$e_mo.$e_yy",-size=>"8",-maxlength=>10),
|
||||
$q->textfield(-class=>'etxt',-name=>"e_hh",-default=>"$e_hh",-size=>"1",-maxlength=>2),":",
|
||||
$q->textfield(-class=>'etxt',-name=>"e_mi",-default=>"$e_mi",-size=>"1",-maxlength=>2)),"\n";
|
||||
|
||||
}elsif($key =~ /int10/ && "$size" eq "select"){#bike_state
|
||||
my @_lock_valxx = ();
|
||||
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{bike_state} })) {
|
||||
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{bike_state}->{$s_key}";
|
||||
}
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$cttpos->{$key},@_lock_valxx));
|
||||
|
||||
}elsif($key =~ /int20/ && "$size" eq "select"){#lock_state locked/unlocked
|
||||
my @_lock_valxx = ();
|
||||
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{lock_state} })) {
|
||||
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{lock_state}->{$s_key}";
|
||||
}
|
||||
my $sys_comment = "";
|
||||
$sys_comment = "Realer Schliesszustand kann nur am Mietrad gesteuert werden!" if($cttpos->{int11} == 2);
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$cttpos->{$key},@_lock_valxx),"$sys_comment");
|
||||
|
||||
}elsif($key eq "int26"){
|
||||
if($cttpos->{int26}){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
my $co2saving = "";
|
||||
my $co2diff = $pri->co2calc($cttpos);
|
||||
my $sprit_price = $pri->sprit2calc($cttpos);
|
||||
$co2saving .= "$co2diff kg CO²<br />";
|
||||
$co2saving .= "$sprit_price EUR<br />";
|
||||
$cttpos->{int26} =~ s/\./,/;
|
||||
$co2saving .= "bei $cttpos->{int26} KM";
|
||||
print $q->td({-class=>'content1_cms'},"$co2saving");
|
||||
}
|
||||
}elsif($key =~ /int03/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms',-nowrap=>"1"},"$des"),"\n";
|
||||
if($cttpos->{int35} && $cttpos->{start_time} && $cttpos->{end_time}){
|
||||
print $q->td({-class=>'content1_cms', -nowrap=>1},"$pricing->{real_clock} $pricing->{freed_time}"),"\n";
|
||||
}else{
|
||||
print $q->td({-colspan=>'1',-class=>'content1_cms'},$q->textfield(-class=>'etxt',-name=>"$key",-default=>"$cttpos->{$key}", -override=>'1',-size=>"$size",-maxlength=>10)),"\n";
|
||||
}
|
||||
}elsif($key =~ /int02/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
if($cttpos->{int35} && $cttpos->{start_time} && $cttpos->{end_time}){
|
||||
print "<td class='content1_cms' nowrap>\n";
|
||||
foreach my $fid (sort keys(%{ $rental_feed->{rental_description}->{tarif_elements} })){
|
||||
if(ref($rental_feed->{rental_description}->{tarif_elements}->{$fid}) eq "ARRAY"){
|
||||
print "$rental_feed->{rental_description}->{tarif_elements}->{$fid}[0]: $rental_feed->{rental_description}->{tarif_elements}->{$fid}[1]<br />\n";
|
||||
}
|
||||
}
|
||||
print "</td>\n";
|
||||
}else{
|
||||
print $q->td({-class=>'content1_cms',-style=>""},$q->textfield(-class=>'etxt',-name=>"$key",-default=>"$cttpos->{$key}", -override=>'1',-size=>"$size",-maxlength=>100),"\n");
|
||||
}
|
||||
}elsif($key =~ /int07/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-style=>"",-nowrap=>'1'},$q->textfield(-class=>'etxt',-name=>"$key",-default=>"$cttpos->{$key}", -override=>'1',-size=>"$size",-maxlength=>100),$but->selector("int08","40px","$cttpos->{int08}",("0.00:%","1.00:€"))),"\n";
|
||||
}elsif($key =~ /int01/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-nowrap=>"1"},"$gesamt €");
|
||||
}elsif($key =~ /txt/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms'},$q->textfield(-class=>'etxt',-name=>"$key",-default=>"$cttpos->{$key}", -override=>'1',-size=>"$size",-maxlength=>100)),"\n";
|
||||
}elsif($key =~ /int/){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-nowrap=>"1"}," \n");
|
||||
}
|
||||
}#end edit position
|
||||
|
||||
#service-config
|
||||
if($tpl->{tpl_id} == 199){
|
||||
elsif($node_meta->{ct_table} eq "contentuser" && $node_meta->{tpl_id} == 199){
|
||||
my ($key,$tplkey,$des,$size,$service_interval,$service_type) = split /=/,$_;
|
||||
$ctrel->{$key} = $q->unescapeHTML("$ctrel->{$key}");
|
||||
$ctrel->{$key} = $lb->newline($ctrel->{$key},"",1);
|
||||
|
||||
if($key =~ /ct_name/){
|
||||
print $q->Tr();
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>3},$q->b("$ctrel->{ct_name}")),"\n";
|
||||
}
|
||||
elsif($key =~ /txt\d/ && $tplkey =~ /int\d/){
|
||||
|
@ -292,7 +444,7 @@ EOF
|
|||
my $desc_intervall = "";
|
||||
my $desc_type = "";
|
||||
($desc_key,$desc_name,$desc_size,$desc_intervall,$desc_type) = split(/=/,$ctrel->{$key});
|
||||
print $q->Tr();
|
||||
print $q->Tr(),"\n";
|
||||
print $q->hidden(-name=>"$key",-override=>1,-value=>"$tplkey"),"\n";
|
||||
print $q->td({-class=>'content1_cms'},"$desc_num",$q->textfield(-class=>'etxt', -style=>"width:15em;",-name=>"$key", -default=>"$desc_name")),"\n";
|
||||
print $q->hidden(-name=>"$key",-override=>1,-value=>"checkbox"),"\n";
|
||||
|
@ -310,7 +462,7 @@ EOF
|
|||
if($key =~ /c_id|ct_name|barcode|txt/ && $size eq "readonly"){
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>2},$q->textfield(-class=>'etxt', -style=>"width:15em;",-name=>"$key", -default=>"$ctrel->{$key}", -readonly=>1)),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>2},$q->textfield(-class=>'etxt', -style=>"color:grey;",-name=>"$key", -default=>"$ctrel->{$key}", -readonly=>1)),"\n";
|
||||
}elsif($key eq "u_id" && $size eq "readonly"){
|
||||
my $adref = {
|
||||
table => "contentadr",
|
||||
|
@ -402,7 +554,7 @@ EOF
|
|||
elsif($key =~ /int21|int22/ && "$size" eq "select" && $node_meta->{tpl_id} == 228){#Bonus Tarif
|
||||
my @_valxx = ("");
|
||||
foreach my $rid (sort { $tariff_all->{$a}->{barcode} <=> $tariff_all->{$b}->{barcode} } keys (%$tariff_all)){
|
||||
push (@_valxx, "$tariff_all->{$rid}->{barcode}:$tariff_all->{$rid}->{barcode} - $tariff_all->{$rid}->{txt01}");
|
||||
push (@_valxx, "$tariff_all->{$rid}->{barcode}:$tariff_all->{$rid}->{barcode} - $tariff_all->{$rid}->{ct_name}");
|
||||
}
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms',-colspan=>'1'},"$des");
|
||||
|
@ -410,8 +562,8 @@ EOF
|
|||
}
|
||||
elsif($key =~ /int10/ && "$size" eq "select" && $node_meta->{tpl_id} == 205){#bike_state
|
||||
my @_lock_valxx = ();
|
||||
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{bike_state} }) {
|
||||
push @_lock_valxx, "$key:$value";#[1:available] ...
|
||||
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{bike_state} })) {
|
||||
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{bike_state}->{$s_key}";
|
||||
}
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
|
@ -419,8 +571,8 @@ EOF
|
|||
}
|
||||
elsif($key =~ /int10/ && "$size" eq "select" && $node_meta->{tpl_id} == 225){#station_state
|
||||
my @_lock_valxx = ();
|
||||
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{station_state} }) {
|
||||
push @_lock_valxx, "$key:$value";#[1:available] ...
|
||||
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{station_state} })) {
|
||||
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{station_state}->{$s_key}";
|
||||
}
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
|
@ -429,8 +581,8 @@ EOF
|
|||
|
||||
elsif($key =~ /int18/ && "$size" eq "select" && $node_meta->{tpl_id} == 210){#sharing_type
|
||||
my @_lock_valxx = ();
|
||||
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{sharing_type} }) {
|
||||
push @_lock_valxx, "$key:$value";#[0:private] ...
|
||||
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{sharing_type} })) {
|
||||
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{sharing_type}->{$s_key}";
|
||||
}
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
|
@ -438,42 +590,34 @@ EOF
|
|||
}
|
||||
elsif($key =~ /int20/ && "$size" eq "select" && $node_meta->{tpl_id} == 205){#lock_state locked/unlocked
|
||||
my @_lock_valxx = ();
|
||||
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{lock_state} }) {
|
||||
push @_lock_valxx, "$key:$value";#[2:unlocked]
|
||||
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{lock_state} })) {
|
||||
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{lock_state}->{$s_key}";
|
||||
}
|
||||
my $sys_comment = "";
|
||||
$sys_comment = "Realer Schliesszustand kann nur am Mietrad gesteuert werden!" if($ctrel->{int11} == 2);
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$ctrel->{$key},@_lock_valxx));
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$ctrel->{$key},@_lock_valxx),"$sys_comment");
|
||||
}
|
||||
elsif($key =~ /int11/ && "$size" eq "select" && $node_meta->{tpl_id} == 205){#lock_system BC Ilockit usw
|
||||
my @_lock_valxx = ();
|
||||
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{lock_system} }) {
|
||||
push @_lock_valxx, "$key:$value";#[2:Ilockit]
|
||||
foreach my $s_key (sort keys (%{ $dbt->{copri_conf}->{lock_system} })) {
|
||||
push @_lock_valxx, "$s_key:$dbt->{copri_conf}->{lock_system}->{$s_key}";
|
||||
}
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$ctrel->{$key},@_lock_valxx));
|
||||
}
|
||||
#changed to time01
|
||||
elsif(1==2 && $key =~ /int01/ && "$size" eq "select" && $node_meta->{tpl_id} == 210){#tariff_unit
|
||||
my @_unit_valxx = ();
|
||||
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{tariff_unit} }) {
|
||||
push @_unit_valxx, "$key:$value";#[0.5:0,5 Std]
|
||||
}
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$ctrel->{$key},@_unit_valxx));
|
||||
}
|
||||
elsif($key =~ /int/ && "$size" eq "select"){
|
||||
my @_valxx;
|
||||
my $selsize="50px";
|
||||
#elsif($key =~ /int/ && "$size" eq "select"){
|
||||
# my @_valxx;
|
||||
# my $selsize="50px";
|
||||
|
||||
@_valxx = split(/\|/,$varenv{$seldes});
|
||||
$ctrel->{$key} =~ s/\.00//;
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector("$key","$selsize",$ctrel->{$key},@_valxx));
|
||||
}
|
||||
# @_valxx = split(/\|/,$varenv{$seldes});
|
||||
# $ctrel->{$key} =~ s/\.00//;
|
||||
# print $q->Tr();
|
||||
# print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
|
||||
# print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector("$key","$selsize",$ctrel->{$key},@_valxx));
|
||||
#}
|
||||
elsif($key =~ /int/){
|
||||
my $w = $size . "em";
|
||||
print $q->Tr();
|
||||
|
@ -575,7 +719,7 @@ EOF
|
|||
my $h= 1;# if($size =~ /area(\d+)/);
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms',-colspan=>1},"$des"),"\n";
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-class=>"autos", -style=>'border: 1px solid silver;background-color:#ededed;',-rows=>"$h",-cols=>'35em;', -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n";
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-class=>"autos", -style=>'border: 1px solid silver;',-rows=>"$h",-cols=>'35em;', -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n";
|
||||
}
|
||||
elsif($key =~ /txt/ && $size =~ /area(\d+)/){
|
||||
#my $h= $1 if($size =~ /area(\d+)/);
|
||||
|
@ -593,7 +737,7 @@ EOF
|
|||
$ctrel->{txt28} =~ s/\+/ /g;
|
||||
print $q->td({-style=>'border:1px solid silver;'},$ctrel->{txt28}),"\n";
|
||||
}else{
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-id=>"$key", -class=>"autos", -style=>"border: 1px solid silver;background-color:#ededed;$h $w", -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n";
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-id=>"$key", -class=>"autos", -style=>"border: 1px solid silver;$h $w", -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n";
|
||||
}
|
||||
}
|
||||
elsif($key =~ /txt02/ && $varenv{syshost} =~ /sharee/){
|
||||
|
@ -656,17 +800,20 @@ EOF
|
|||
}
|
||||
|
||||
if($key =~ /date_time/){
|
||||
#print $q->hidden(-name=>'t_id', -override=>'1',-value=>"$times_id");
|
||||
my ($s_yy,$s_mo,$s_dd,$s_hh,$s_mi) = $lb->split_date($ctrel->{start_time});
|
||||
my ($e_yy,$e_mo,$e_dd,$e_hh,$e_mi) = $lb->split_date($ctrel->{end_time});
|
||||
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"Datum Start"),"\n";
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'1'},$q->textfield(-id=>'datepicker1',-class=>'etxt',-name=>"start_date",-default=>"$start_date",-override=>'1',-size=>"10",-maxlength=>10)),"\n";
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'1'},"Ende", $q->textfield(-id=>'datepicker2',-class=>'etxt',-name=>"end_date",-default=>"$end_date",-override=>'1',-size=>"10",-maxlength=>10)),"\n";
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"Uhrzeit Start"),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'1'},
|
||||
print $q->td({-class=>'left_italic_cms'},"Start"),"\n";
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'1'},
|
||||
$q->textfield(-id=>'datepicker3',-class=>'etxt',-name=>"start_date",-default=>"$s_dd.$s_mo.$s_yy",-override=>'1',-size=>"10",-maxlength=>10),
|
||||
$q->textfield(-class=>'etxt',-name=>"s_hh", -override=>'1',-default=>"$s_hh",-size=>"2",-maxlength=>2),":",
|
||||
$q->textfield(-class=>'etxt',-name=>"s_mi", -override=>'1',-default=>"$s_mi",-size=>"2",-maxlength=>2)),"\n";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'1'},"Ende",
|
||||
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'left_italic_cms'},"Ende"),"\n";
|
||||
print $q->td({-class=>'content1_cms', -colspan=>'1'},
|
||||
$q->textfield(-id=>'datepicker4',-class=>'etxt',-name=>"end_date",-default=>"$e_dd.$e_mo.$e_yy",-override=>'1',-size=>"10",-maxlength=>10),
|
||||
$q->textfield(-class=>'etxt',-name=>"e_hh", -override=>'1',-default=>"$e_hh",-size=>"2",-maxlength=>2),":",
|
||||
$q->textfield(-class=>'etxt',-name=>"e_mi", -override=>'1',-default=>"$e_mi",-size=>"2",-maxlength=>2)),"\n";
|
||||
}
|
||||
|
@ -679,7 +826,7 @@ EOF
|
|||
print $q->end_table;
|
||||
#2.table ende
|
||||
|
||||
print $q->div($but->singlesubmit7("$edit","$save_key","$ib{$save_key}","margin:10px 20px;")),"\n";
|
||||
print $q->div($but->singlesubmit7("$edit","$save_key","$ib{$save_key}","margin:10px 5px;")),"\n";
|
||||
my $debug = "";
|
||||
$debug = "(ct_table: $node_meta->{ct_table} | main_id: $node_meta->{main_id} | c_id: $ctrel->{c_id} | tpl_id: $tpl->{tpl_id} | rel_id: $ctrel->{rel_id})";
|
||||
print $q->div({-style=>'z-index:10;font-size:13px;'},"$debug"),"\n" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});
|
||||
|
|
|
@ -43,9 +43,12 @@ sub tpl(){
|
|||
my $pri = new Pricing;
|
||||
|
||||
my $lang = "de";
|
||||
#my $rel = $db->get_relation($main_id,$lang);
|
||||
my $tpl = $db->get_tpl($node_meta->{template_id});
|
||||
my @tpl_order = split /,/,$tpl->{tpl_order};
|
||||
|
||||
#DB tpl_order used by Rental Editor
|
||||
#my @tpl_order = split /,/,$tpl->{tpl_order};
|
||||
my @tpl_order = ('date_time=Mietzeit','txt08=Vorname Name=readonly','int06=Start Station=5','int04=End Station=5','barcode=Rad Nr.=5','int12=Flotte=select','int10=Miet Status=select','int20=Schloss Status=select','owner=user=select');
|
||||
|
||||
my %varenv = $cf->envonline();
|
||||
my %ib = $but->ibuttons();
|
||||
my $script = $q->script_name();
|
||||
|
@ -62,7 +65,6 @@ sub tpl(){
|
|||
|
||||
my $table = "contenttrans";
|
||||
my $u_name = $q->escapeHTML("$R::u_name");
|
||||
my $ctf = $db->get_content1("contentuser",$dbt->{shareedms_conf}->{parent_id});
|
||||
my $dbh = "";
|
||||
|
||||
my $channel_map = $dbt->channel_map();
|
||||
|
@ -96,16 +98,10 @@ sub tpl(){
|
|||
my $bike_nodes = $dbt->fetch_rel4tpl4nd($dbh,$bnode);
|
||||
|
||||
my $root_id = 100;
|
||||
#alle nicht abgeschlossene mandanten-einträge ....
|
||||
my $x_main_ids = "$root_id,";
|
||||
my $tplids = "$node_meta->{template_id},";
|
||||
$tplids .= "$ctf->{txt34}," if($ctf->{txt34});
|
||||
$tplids .= "$ctf->{txt35}," if($ctf->{txt35});
|
||||
$tplids .= "$ctf->{txt36}," if($ctf->{txt36});
|
||||
|
||||
#sollte ins ctf-System. Verkaufliste,Verleihliste
|
||||
#incl. Verkauf/Verleih journal
|
||||
$tplids .= "204,207,218,209";
|
||||
$tplids .= "218,209";
|
||||
$tplids =~ s/,$//;
|
||||
|
||||
$x_main_ids .= $db->collect_noderec($root_id,$lang,"nothing");
|
||||
|
@ -163,11 +159,17 @@ sub tpl(){
|
|||
$offset += $limit;
|
||||
}
|
||||
|
||||
my $cttpos;
|
||||
my $cttpos = {};
|
||||
$R::ct_ct_name =~ s/\#//;
|
||||
my $search = {
|
||||
#table => "contenttranspos",
|
||||
table => "$node_meta->{ct_table}",
|
||||
limit => $q->escapeHTML($limit),
|
||||
offset => $q->escapeHTML($offset),
|
||||
cal_sort_updown => $users_dms->{cal_sort_updown},
|
||||
};
|
||||
|
||||
if($R::base_edit !~ /transpos|save_pos/){
|
||||
$search = { %$search,
|
||||
cttpos_id => $q->escapeHTML("$R::cttpos_id"),
|
||||
txt06 => $q->escapeHTML("$R::txt06"),
|
||||
txt08 => $q->escapeHTML("$R::txt08"),
|
||||
|
@ -182,10 +184,9 @@ sub tpl(){
|
|||
ct_txt06 => $q->escapeHTML("$R::ct_txt06"),#PLZ
|
||||
ct_ct_name => $q->escapeHTML("$R::ct_ct_name"),
|
||||
owner => $q->escapeHTML("$R::owner"),
|
||||
limit => $q->escapeHTML($limit),
|
||||
offset => $q->escapeHTML($offset),
|
||||
cal_sort_updown => $users_dms->{cal_sort_updown},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
$search = { %$search,
|
||||
start_date_time => "$start_date_time",
|
||||
end_date_time => "$end_date_time",
|
||||
|
@ -312,7 +313,7 @@ sub tpl(){
|
|||
$nx++;
|
||||
$set_style = "background-color:#fcfdfb;";
|
||||
$set_style = "background-color:#f4f1ee;" if($nx %= 2);
|
||||
#$set_style = "background-color:$varenv{calendar_active_color}" if("$R::c_idpos" == "$cttpos->{$pid}->{c_id}");
|
||||
$set_style = "background-color:#b6dbe3;" if($R::c_id && $R::c_id == $cttpos->{$pid}->{c_id});
|
||||
|
||||
my $trans_style = "padding:0 5px;border: 2px solid #f7ae37;";
|
||||
my $stamm_style = "padding:0 5px;border: 2px solid #98c13b;";
|
||||
|
@ -372,7 +373,7 @@ sub tpl(){
|
|||
|
||||
#if($ct_name){
|
||||
if(1==1){
|
||||
print "<Tr><td class='element' colspan='$h' style='$set_style;0.91em;padding:0.3em 0 0 0em;'>\n";
|
||||
print "<Tr id='$cttpos->{$pid}->{c_id}'><td class='element' colspan='$h' style='$set_style;0.91em;padding:0.3em 0 0 0em;'>\n";
|
||||
|
||||
my $pos_hash = $cttpos->{$pid};
|
||||
my $pos_details = "";
|
||||
|
@ -429,7 +430,10 @@ sub tpl(){
|
|||
$end_station = $q->a({-class=>"linknav3",-style=>"",-href=>"/DMS/Waren/?detail_search=1&s_int04=$cttpos->{$pid}->{int04}",-title=>"Rad Warenstamm nach Station filtern"},"$cttpos->{$pid}->{int04}") if($ct4rel_ware->{$cttpos->{$pid}->{cc_id}}->{rel_id});
|
||||
my $kunde = $q->a({-class=>"linknav3",-style=>"$ware_style",-href=>"/DMS/Kunden/?detail_search=1&s_c_id=$cttpos->{$pid}->{ca_id}",-title=>"Kunde im Kundenstamm"},"$cttpos->{$pid}->{txt08} ($cttpos->{$pid}->{ca_id})");#2021-05-24 saves kd name
|
||||
|
||||
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "$i) <span style='$time_style'> $start_time – $end_time</span> → $kunde → Start Station $start_station → End Station $end_station → Rad $bikenr $status $lock_state $track_info → $u_name/$u_name_end $pos_id"),"\n";
|
||||
my $edit_pos = $q->a({-class=>"editboo",-href=>"?base_edit=transpos\&c_id=$cttpos->{$pid}->{c_id}\&owner=$users_dms->{u_id}",-title=>"Miete bearbeiten ($cttpos->{$pid}->{c_id})"},$q->span({-class=>"bi bi-file-earmark-text-fill"}));
|
||||
|
||||
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "<span style='$time_style'>$edit_pos $i) $start_time – $end_time</span> → $kunde → Start Station $start_station → End Station $end_station → Rad $bikenr $status $lock_state $track_info → $u_name/$u_name_end $pos_id"),"\n";
|
||||
|
||||
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "→ Faktura", $q->a({-class=>"linknav3",-style=>"$trans_style",-href=>"/DMS/Faktura?ct_trans=open\&c_id4trans=$c_id4trans\&tpl_id4trans=$tpl_id4trans\&kind_of_trans=Faktura\&owner=$users_dms->{owner}",-title=>"Faktura Terminal öffnen"},"\#$ct_name")),"\n" if($c_id4trans && $tpl_id4trans);
|
||||
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "$user_device"),"\n";
|
||||
|
||||
|
|
|
@ -103,8 +103,8 @@ EOF
|
|||
print<<EOF
|
||||
<script>
|
||||
|
||||
var map = L.map('map').setView([$lat, $lng], $map_zoom);
|
||||
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
var map = L.map('map', { scrollWheelZoom: false }).setView([$lat, $lng], $map_zoom);
|
||||
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
||||
}).addTo(map);
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ EOF
|
|||
if(!$start_chck && !$end_chck && $main_ids && $tpl_ids){
|
||||
#$rows = $db->count_content($searchref->{table_pos},"$main_ids","$tpl_ids");
|
||||
|
||||
#collect search keys
|
||||
#collect search keys.
|
||||
foreach my $postkey (@keywords){
|
||||
foreach(@tpl_order){
|
||||
my ($key,$val,$size) = split /=/,$_;
|
||||
|
@ -195,7 +195,6 @@ EOF
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#trying to save hashref
|
||||
if($R::detail_search && ref($searchref) eq "HASH"){
|
||||
store $searchref, $hashfile;
|
||||
|
|
|
@ -314,8 +314,6 @@ EOF
|
|||
print "</td>\n";
|
||||
}elsif($key =~ /txt/){
|
||||
print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100),"\n");
|
||||
#}elsif($key =~ /save/){
|
||||
#print $q->td({-class=>'element',-style=>"$set_style"},$but->singlesubmit2("ct_trans","save_pos","$ib{save_pos}"));
|
||||
}elsif($key =~ /int/){
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"}," \n");
|
||||
}
|
||||
|
|
|
@ -213,6 +213,7 @@ sub get_devices {
|
|||
|
||||
|
||||
#sudo su www-data -c "./src/scripts/Ilockit_cloud.pl shareedms-fr01 get_events 6572 20"
|
||||
#TODO
|
||||
&get_events if($todo eq "get_events");
|
||||
sub get_events {
|
||||
|
||||
|
|
1
copri4/main/src/scripts/coupongen.pl
Symbolic link
1
copri4/main/src/scripts/coupongen.pl
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../../../sharee.bike/copri-bike/main/src/scripts/coupongen.pl
|
|
@ -48,6 +48,8 @@ my $update_cp = {
|
|||
table => "contenttranspos",
|
||||
#txt10 => "available",
|
||||
int10 => "1",
|
||||
owner_end => "172",
|
||||
mtime => "now()",
|
||||
};
|
||||
my $update_cc = {
|
||||
table => "content",
|
||||
|
|
|
@ -3,10 +3,15 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# Copyright (c) Rainer Gümpelein, TeilRad GmbH
|
||||
#
|
||||
#On this forking script, nothing will saved on script, else by execute APIsigclient methodes
|
||||
#
|
||||
# command line syntax
|
||||
# sudo su www-data -c "./src/scripts/sig_client.pl shareeapp-sx 'todo' 'user_id' 'bike_id' 'pos_id'"
|
||||
#
|
||||
# sudo su www-data -c "./src/scripts/sig_client.pl shareeapp-sx bikes_available"
|
||||
#
|
||||
# sudo su www-data -c "./src/scripts/sig_client.pl shareeapp-sx reserve 1842 '380116b5-0522-43da-ab66-477744a731a3'"
|
||||
# sudo su www-data -c "./src/scripts/sig_client.pl shareeapp-sx rental 1842 '380116b5-0522-43da-ab66-477744a731a3'"
|
||||
# sudo su www-data -c "./src/scripts/sig_client.pl shareeapp-sx reserve 1842 '380116b5-0522-43da-ab66-477744a731a3' ''"
|
||||
# sudo su www-data -c "./src/scripts/sig_client.pl shareeapp-sx rental 1842 '380116b5-0522-43da-ab66-477744a731a3' ''"
|
||||
#
|
||||
use vars qw($syshost);
|
||||
|
||||
|
@ -36,7 +41,8 @@ my $dbh = "";
|
|||
|
||||
my $todo = $ARGV[1] || "";
|
||||
my $user_id = $ARGV[2] || "";
|
||||
my $pos_id = $ARGV[3] || "";
|
||||
my $bike_id = $ARGV[3] || "";
|
||||
my $pos_id = $ARGV[4] || "";
|
||||
|
||||
open(FILE,">>$varenv{logdir}/APIsigclient.log");
|
||||
print FILE "\n*** $now_dt 'sig_client fork with todo:$todo|user_id:$user_id|pos_id:$pos_id' \n";
|
||||
|
@ -51,7 +57,7 @@ my $apref = {
|
|||
my $ctadr = { c_id => 0 };
|
||||
$ctadr = $dbt->fetch_record($dbh,$apref) if($user_id =~ /^\d+$/ && $user_id > 0);
|
||||
|
||||
my $ct_bike = { txt22 => "" };
|
||||
my $ct_bike = { txt22 => "$bike_id" };
|
||||
|
||||
my $posref = {
|
||||
table => "contenttranspos",
|
||||
|
@ -61,7 +67,7 @@ my $posref = {
|
|||
c_id => "$pos_id",
|
||||
};
|
||||
my $ctpos = { c_id => 0 };
|
||||
$ctpos = $dbt->fetch_tablerecord($dbh,$posref) if($user_id =~ /^\d+$/ && $user_id > 0 && $pos_id);
|
||||
$ctpos = $dbt->fetch_tablerecord($dbh,$posref) if($user_id =~ /^\d+$/ && $user_id > 0 && $pos_id && $pos_id =~ /^\d+$/);
|
||||
|
||||
print FILE "fetched from DB ctadr:$ctadr->{c_id}|ctpos:$ctpos->{c_id}\n";
|
||||
|
||||
|
@ -81,25 +87,36 @@ if($todo eq "bikes_available"){
|
|||
#print $0 . Dumper($return) . "\n";
|
||||
}
|
||||
|
||||
#only for tests
|
||||
#sig => copri key mapping
|
||||
#bike id => txt22
|
||||
#reservationId => txt10
|
||||
#renatlId => txt11
|
||||
|
||||
#only for tests. build in methode
|
||||
elsif($todo eq "reserve"){
|
||||
#$ctadr = { c_id => 1842 };
|
||||
#$ct_bike = { txt22 => "380116b5-0522-43da-ab66-477744a731a3" };
|
||||
my $return = $si->sig_booking(\%varenv,$ctadr,$ct_bike,$ctpos,$todo);
|
||||
my $return = $si->sig_booking(\%varenv,$todo,$ctadr,$ct_bike,$ctpos);
|
||||
#print $0 . Dumper($return) . "\n";
|
||||
}
|
||||
|
||||
#used also live! to fork rental request with
|
||||
#live! Fork rental request with bike "id"
|
||||
elsif($todo eq "rental" && $ctadr->{c_id} > 0 && $ctpos->{txt22}){
|
||||
#$ctadr = { c_id => 1842 };
|
||||
#$ct_bike = { txt22 => "380116b5-0522-43da-ab66-477744a731a3" };
|
||||
my $return = $si->sig_booking(\%varenv,$ctadr,$ct_bike,$ctpos,$todo);
|
||||
my $return = $si->sig_booking(\%varenv,$todo,$ctadr,$ct_bike,$ctpos);
|
||||
#print $0 . Dumper($return) . "\n";
|
||||
}
|
||||
|
||||
#used also live! to fork rental_end request with "rentalId"
|
||||
#live! Fork rental_end request with "rentalId"
|
||||
elsif($todo eq "rental_end" && $ctadr->{c_id} > 0 && $ctpos->{txt11}){
|
||||
my $return = $si->sig_booking(\%varenv,$ctadr,$ct_bike,$ctpos,$todo);
|
||||
my $return = $si->sig_booking(\%varenv,$todo,$ctadr,$ct_bike,$ctpos);
|
||||
#print $0 . Dumper($return) . "\n";
|
||||
}
|
||||
|
||||
#only for tests. build in methode
|
||||
elsif($todo eq "rentals_running" && $ctadr->{c_id} > 0 && $ctpos->{txt22}){
|
||||
my $return = $si->sig_booking(\%varenv,$todo,$ctadr,$ct_bike,$ctpos);
|
||||
#print $0 . Dumper($return) . "\n";
|
||||
}
|
||||
|
||||
|
|
|
@ -42,11 +42,11 @@ 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")){
|
||||
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_wue"; my $bike="WUE5524";
|
||||
#my $api_test = "sharee_sx"; my $bike="S3X1001";
|
||||
my $api_test = "sharee_sx"; my $bike="S3X1001";
|
||||
#my $api_test = "sharee_ren"; my $bike="REN2";
|
||||
|
||||
print $q->div({-style=>'float:right;text-align:right;height:25px;padding:6px 15px;background-color:white'},$q->a({-style=>"background-color:#ffffff;color:#$bgcolor1;", -href=>"$varenv->{metahost}/src/scripts/tests/index.pl?sessionid=$coo\&api_test=$api_test\&bike=$bike", -target=>'_blank'}," [ tests --> $api_test ] "),"$users_sharee->{txt08}",$q->a({-style=>"color:#$bgcolor1;", -href=>"logout_sharee$session"},"logout")),"\n";
|
||||
|
|
|
@ -10,6 +10,7 @@ use CGI::Carp qw(fatalsToBrowser);
|
|||
use CGI ':standard';
|
||||
use Config::General;
|
||||
use Mod::Buttons;
|
||||
use Mod::Basework;
|
||||
use Mod::Libenz;
|
||||
use Mod::Libenzdb;
|
||||
use Mod::DBtank;
|
||||
|
@ -34,6 +35,7 @@ sub tpl(){
|
|||
my $return = shift || "";
|
||||
|
||||
my $q = new CGI;
|
||||
my $bw = new Basework;
|
||||
my $lb = new Libenz;
|
||||
my $db = new Libenzdb;
|
||||
my $dbt = new DBtank;
|
||||
|
@ -129,7 +131,13 @@ sub tpl(){
|
|||
}
|
||||
|
||||
if($users_dms->{u_id} && $main_id){
|
||||
$return = $lb->return_feedback($return,$users_dms->{kind_of_trans},$users_dms->{owner}) if($return !~ /shareejson/);
|
||||
|
||||
if(ref($return) eq "HASH"){
|
||||
$return = $bw->return_feedback($node_meta,$users_dms,$return);
|
||||
}else{
|
||||
#deprecated
|
||||
$return = $lb->return_feedback($return,$node_meta->{node_name},$users_dms->{owner}) if($return !~ /shareejson/);
|
||||
}
|
||||
|
||||
if($main_id >= "100000"){
|
||||
my $mstyle="";
|
||||
|
@ -359,7 +367,7 @@ EOF
|
|||
if($return !~ /failure/){
|
||||
if(($R::ct_trans !~ /close/) && ($ct_table =~ /contenttrans/) && ($R::ct_trans || $R::trans2edit || $R::ctpos_activ || $R::select_part || $R::set_main_id)){
|
||||
&Modalbox::mobox($node_meta,$users_dms,$mode,$return);
|
||||
}elsif(($R::ct_trans !~ /close/) && ($ct_table =~ /content$|contentadr|contentuser|contentpos|users$/ && ($R::ct_trans || $R::rel_edit || $R::base_edit)) || ($R::node2edit && $R::node2edit =~ /edit/)){
|
||||
}elsif(($R::ct_trans !~ /close/) && ($ct_table =~ /content$|contentadr|contentuser|contentpos|users$|contenttranspos/ && ($R::ct_trans || $R::rel_edit || $R::base_edit)) || ($R::node2edit && $R::node2edit =~ /edit/)){
|
||||
&Modalbox3::mobox3($node_meta,$users_dms,$mode,$return) if($R::rel_edit !~ /delete|save/ && $R::ct_trans !~ /delete/ && $R::base_edit !~ /delete|save/ && !$R::service_id);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue