mirror of
https://gitlab.com/t6353/sharee.bike.git
synced 2025-07-09 15:07:31 +02:00
new rental editor
This commit is contained in:
parent
46f86f6c05
commit
aceda57b50
23 changed files with 548 additions and 162 deletions
|
@ -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,18 +562,18 @@ 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";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$ctrel->{$key},@_lock_valxx));
|
||||
}
|
||||
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";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$ctrel->{$key},@_lock_valxx));
|
||||
|
@ -429,51 +581,43 @@ 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";
|
||||
print $q->td({-class=>'content1_cms',-colspan=>'2'},$but->selector_class("$key","eselect","",$ctrel->{$key},@_lock_valxx));
|
||||
}
|
||||
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,11 +184,10 @@ 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,
|
||||
}
|
||||
}
|
||||
|
||||
$search = { %$search,
|
||||
start_date_time => "$start_date_time",
|
||||
end_date_time => "$end_date_time",
|
||||
} if(!$R::cttpos_id);
|
||||
|
@ -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");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue