Mietjournal parts edit and comment view

This commit is contained in:
ragu 2022-09-15 17:06:08 +02:00
parent 009025103f
commit eb09d2d480
19 changed files with 247 additions and 170 deletions

View file

@ -15,7 +15,6 @@ use Lib::Config;
use Mod::Buttons;
use Date::Calc qw(:all);
use Mod::Libenz;
use Mod::Libenzdb;
use Mod::Basework;
use Mod::DBtank;
use Mod::APIfunc;
@ -39,7 +38,6 @@ sub tpl(){
my $q = new CGI;
my $cf = new Config;
my $lb = new Libenz;
my $db = new Libenzdb;
my $bw = new Basework;
my $dbt = new DBtank;
my $apif = new APIfunc;
@ -56,7 +54,7 @@ sub tpl(){
my $c_id = $1 if($R::c_id && $R::c_id =~ /(\d+)/);
my $u_id = $1 if($R::u_id && $R::u_id =~ /(\d+)/);
$u_id = $1 if($R::c_idadr && $R::c_idadr =~ /(\d+)/ && $R::base_edit eq "new_dmsusers");
my ($edit,$copy_key,$save_key,$relate_key,$move_key,$delete_key,$package_key);
my ($edit,$copy_key,$save_key,$relate_key,$move_key,$delete_key);
my $tpl = {};
my @tpl_order = ();
my $edit_template = "";
@ -87,7 +85,7 @@ sub tpl(){
#$copy_key = "copy_content";
$save_key = "save_content";
$edit_template = "$ctrel->{template_id}";
$tpl = $db->get_tpl($edit_template);
$tpl = $dbt->get_tpl($dbh,$edit_template);
}elsif($node_meta->{ct_table} eq "contentadr" && $node_meta->{tpl_id}){
my $ref = {
table => "$node_meta->{ct_table}",
@ -103,8 +101,19 @@ sub tpl(){
$edit = "base_edit";
$save_key = "save_adr";
$edit_template = "$ctrel->{template_id}" . "000";
$tpl = $db->get_tpl($edit_template);
$tpl = $dbt->get_tpl($dbh,$edit_template);
}elsif($node_meta->{ct_table} eq "users" && $node_meta->{tpl_id} == 198 && $u_id){
my $dbh_primary = $dbt->dbconnect_extern("sharee_primary");
my $users_dms_primary = { u_id => 0 };
$users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int03=2");
$tpl = $dbt->get_tpl($dbh,$node_meta->{tpl_id});
#only if user is also a primary DMS user with invoice rw
if(!$users_dms_primary->{u_id} || $users_dms_primary->{int03} != 2){
$tpl->{tpl_order} =~ s/int02=[\w\s\+\&=]+,//;
$tpl->{tpl_order} =~ s/int03=[\w\s\+\&=]+,//;
}
my $ref = {
table => "$node_meta->{ct_table}",
fetch => "one",
@ -116,7 +125,6 @@ sub tpl(){
$bg_color = $varenv{background_color2};
$edit = "base_edit";
$save_key = "save_dmsusers";
$tpl = $db->get_tpl($node_meta->{tpl_id});
#print Dumper($node_meta->{tpl_id}) . "\n u_id:" . $u_id;
#
}elsif($node_meta->{ct_table} eq "contentuser" && $node_meta->{tpl_id} == 199){
@ -133,7 +141,7 @@ sub tpl(){
$bg_color = $varenv{background_color2};
$edit = "rel_edit";
$save_key = "save_ctuser";
$tpl = $db->get_tpl($node_meta->{tpl_id});
$tpl = $dbt->get_tpl($dbh,$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;
@ -164,7 +172,9 @@ sub tpl(){
$bg_color = $varenv{background_color2};
$edit = "base_edit";
$save_key = "save_pos";
$tpl = $db->get_tpl($node_meta->{tpl_id});
my $tpl_id = $node_meta->{tpl_id};
$tpl_id = 223 if($cttpos->{template_id} && $cttpos->{template_id} =~ /224|229/);
$tpl = $dbt->get_tpl($dbh,$tpl_id);
}else{
print $q->div("Es konnten keine Daten gefunden werden"),"\n";
@ -183,7 +193,6 @@ sub tpl(){
$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});
print $q->hidden(-name=>'parent_id',-override=>'1', -value=>"$node_meta->{parent_id}");
print $q->hidden(-name=>'main_id',-override=>'1', -value=>"$node_meta->{main_id}");
@ -203,7 +212,14 @@ sub tpl(){
keyfield => "main_id",
};
$bike_nodes = $dbt->fetch_rel4tpl4nd($dbh,$node);
$tariff_all = $db->collect_ct4rel("content","300026",$lang,"","","","","210");
my $tariff = {
table => "content",
fetch => "all",
keyfield => "barcode",
template_id => "210",#Tariff tpl_id
};
$tariff_all = $dbt->fetch_record($dbh,$tariff);
}
print "<div id='Container_cms'>\n";
@ -234,7 +250,16 @@ sub tpl(){
my $tpath = "";
my $top = 70;
if($node_meta->{tpl_id} == 202){
my $cttrans = $db->collect_ct4rel4nd("contenttrans","","$lang","","","","ct.int10","$ctrel->{c_id}","209,218","","rel_id","");
my $pref = {
table => "contenttrans",
fetch => "all",
keyfield => "c_id",
template_id => "IN::(209,218)",
#ca_id => "$ctrel->{c_id}",#future change
int10 => "$ctrel->{c_id}",
};
my $cttrans = $dbt->fetch_record($dbh,$pref);
foreach my $id (sort { $cttrans->{$b}->{c_id} <=> $cttrans->{$a}->{c_id} } keys (%$cttrans)){
my $toppx = $top . "px";
print $q->div({-style=>"position:absolute;top:$toppx;right:20px;"}, " TXID $cttrans->{$id}->{txt16} ",$q->span({-style=>"background-color:#f7ae37"},$q->a({-class=>"linknav",-href=>"/$dbt->{shareedms_conf}->{parent_node}/Faktura/$cttrans->{$id}->{node_name}?ct_trans=open\&c_id4trans=$cttrans->{$id}->{c_id}\&tpl_id4trans=$cttrans->{$id}->{template_id}\&kind_of_trans=$users_dms->{kind_of_trans}&owner=$users_dms->{u_id}",-title=>"Faktura Terminal öffnen"},"[ $cttrans->{$id}->{node_name} #$cttrans->{$id}->{ct_name} ]"))),"\n";

View file

@ -16,7 +16,6 @@ use Lib::Config;
use Mod::Buttons;
use Mod::Libenz;
use Mod::Callib;
use Mod::Libenzdb;
use Mod::DBtank;
use Mod::APIfunc;
use Mod::Pricing;
@ -37,17 +36,12 @@ sub tpl(){
my $lb = new Libenz;
my $but = new Buttons;
my $cb = new Callib;
my $db = new Libenzdb;
my $apif = new APIfunc;
my $dbt = new DBtank;
my $pri = new Pricing;
my $lang = "de";
my $tpl = $db->get_tpl($node_meta->{template_id});
#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 @tpl_order = ('date_time=Mietzeit','txt08=Name=15','int06=Start Station=5','int04=End Station=5','barcode=Bike Nr.=5','int12=Flotte=select','int10=Rental State=select','int20=Lock State=select','owner=User=select','txt23=Comment=15');
my %varenv = $cf->envonline();
my %ib = $but->ibuttons();
@ -101,16 +95,16 @@ sub tpl(){
};
my $bike_nodes = $dbt->fetch_rel4tpl4nd($dbh,$bnode);
my $root_id = 100;
my $x_main_ids = "$root_id,";
my $tplids = "$node_meta->{template_id},";
my $pref_ct = {
table => "contenttrans",
fetch => "all",
keyfield => "c_id",
template_id => "IN::(209,218)",
};
$tplids .= "218,209";
$tplids =~ s/,$//;
my $ct4rel = { c_id => 0 };
$ct4rel = $dbt->fetch_record($dbh,$pref_ct);
$x_main_ids .= $db->collect_noderec($root_id,$lang,"nothing");
$x_main_ids =~ s/,$//;
my $ct4rel = $db->collect_ct4rel4nd($table,"$x_main_ids","$lang","","","","","","$tplids","","c_id","");
my @months = $cb->monthmap();
my $hh;my $mm;
@ -125,7 +119,7 @@ sub tpl(){
print $q->end_form;
print $q->start_form();
print "<div id='Content4list' style='font-size:0.91em;min-width:1500px;'>\n";
print "<div id='Content4cal'>\n";
my $start_date_time = $R::start_date_time;
my $end_date_time = $R::end_date_time;
@ -177,6 +171,7 @@ sub tpl(){
cttpos_id => $q->escapeHTML("$R::cttpos_id"),
txt06 => $q->escapeHTML("$R::txt06"),
txt08 => $q->escapeHTML("$R::txt08"),
txt23 => $q->escapeHTML("$R::txt23"),
int04 => $q->escapeHTML("$R::int04"),
int06 => $q->escapeHTML("$R::int06"),
int12 => $q->escapeHTML("$R::int12"),
@ -206,14 +201,19 @@ sub tpl(){
}
}
#2019-05-09 collect content to get content.txt10 for Räder Status
my $tpl_id_ware = "205";
my $ct4rel_ware = {};
$ct4rel_ware = $db->collect_cid("content",$lang,$tpl_id_ware,"","","","");
my $pref_cc = {
table => "content",
fetch => "all",
keyfield => "c_id",
template_id => "205",
};
my $ct4rel_part = { c_id => 0 };
$ct4rel_part = $dbt->fetch_record($dbh,$pref_cc);
my $header_style = "";
$header_style = "border:2px solid #9f1f0e;" if($message);
print $q->div({-class=>"copri_header",-style=>"background-color:$tpl->{bg_color};"},"$path", $q->span({-style=>"padding:4px 10px;color:white;"},
print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path", $q->span({-style=>"padding:4px 10px;color:white;"},
" $months[$mon -1] $year",
$q->a({-class=>"linknav",-style=>"padding:0 0.5em;",-title=>"Monat zurück",-href=>"?cal_delta_start=0:-1:0"}," &larr; "),
$q->a({-class=>"linknav",-style=>"padding:0 0.5em;",-title=>"Monat aktuell",-href=>"?cal_today=1"}," &bull; "),
@ -242,7 +242,7 @@ sub tpl(){
#1. Search-fields
my $h=3;
print "<td class='search_line'>\n";
print $q->a({-class=>"sortnav",-href=>"?cal_sort_updown=up\&offset=$offset\&limit=$limit",-title=>'Aufsteigend sortieren'},"$sort_up"),"|",$q->a({-class=>"sortnav",-href=>"?cal_sort_updown=down\&offset=$offset\&limit=$limit",-title=>'Absteigend sortieren'},"$sort_down"),"\n";
#print $q->a({-class=>"sortnav",-href=>"?cal_sort_updown=up\&offset=$offset\&limit=$limit",-title=>'Aufsteigend sortieren'},"$sort_up"),"|",$q->a({-class=>"sortnav",-href=>"?cal_sort_updown=down\&offset=$offset\&limit=$limit",-title=>'Absteigend sortieren'},"$sort_down"),"\n";
foreach(@tpl_order){
#$h++;
my ($key,$des,$size) = split /=/,$_;
@ -296,37 +296,35 @@ sub tpl(){
###
###Calendar Content
my $nx;my $set_style="";my $kind;
my $nx=0;
my $set_style="";
my $scale_color = $node_meta->{bg_color};
my $edit="ct_trans";
my $save_key="save";
my $delete_key="delete";
my $itime;
my $start_time;
my $end_time;
my $itime="";
my $start_time="";
my $end_time="";
my ($year_st,$mon_st,$day_st,$hh_st,$mm_st);
my ($year_en,$mon_en,$day_en,$hh_en,$mm_en);
my $nr=0;
my $i= $offset || 0;
foreach my $pid (sort {
if($users_dms->{cal_sort_updown} eq "down"){
$cttpos->{$b}->{end_time} cmp $cttpos->{$a}->{end_time}
}else{
$cttpos->{$a}->{end_time} cmp $cttpos->{$b}->{end_time}
}
} keys(%$cttpos)){
my $c_left = "14px;";
foreach my $pid (sort { $cttpos->{$b}->{c_id} <=> $cttpos->{$a}->{c_id} } keys(%$cttpos)){
$nr++;
$i++;
$nx++;
$i++;
$c_left = "7px;" if($i >= 10);
$c_left = "0px;" if($i >= 100);
$set_style = "background-color:#fcfdfb;";
$set_style = "background-color:#f4f1ee;" if($nx %= 2);
$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;";
my $ware_style = "padding:0 5px;border: 2px solid #dcd77f;";
my $part_style = "padding:0 5px;border: 2px solid #dcd77f;";
my ($ct_name,$ct_txt00,$ct_txt01,$ct_phone,$c_id4trans,$tpl_id4trans,$u_name,$order_state22);
my $id = $cttpos->{$pid}->{ct_id};
@ -340,27 +338,39 @@ sub tpl(){
$tpl_id4trans = $ct4rel->{$id}->{template_id};
$trans_style .= "background-color:#f7ae37;" if($ct4rel->{$id}->{c_id} == $users_dms->{c_id4trans});
}
($year_st,$mon_st,$day_st,$hh_st,$mm_st) = $lb->split_date($cttpos->{$pid}->{start_time}) if($cttpos->{$pid}->{start_time});
($year_en,$mon_en,$day_en,$hh_en,$mm_en) = $lb->split_date($cttpos->{$pid}->{end_time}) if($cttpos->{$pid}->{end_time});
if($cttpos->{$pid}->{start_time}){
($year_st,$mon_st,$day_st,$hh_st,$mm_st) = $lb->split_date($cttpos->{$pid}->{start_time});
}else{
($year_st,$mon_st,$day_st,$hh_st,$mm_st) = $lb->split_date($cttpos->{$pid}->{itime});
}
if($cttpos->{$pid}->{end_time}){
($year_en,$mon_en,$day_en,$hh_en,$mm_en) = $lb->split_date($cttpos->{$pid}->{end_time});
}else{
($year_en,$mon_en,$day_en,$hh_en,$mm_en) = $lb->split_date($cttpos->{$pid}->{itime});
}
if($year_st && $mon_st && $day_st && $hh_st && $mm_st && $year_en && $mon_en && $day_en && $hh_en && $mm_en){
#if($year_st && $mon_st && $day_st && $hh_st && $mm_st && $year_en && $mon_en && $day_en && $hh_en && $mm_en){
if(1==1){
#generate px for rent scale
my $start_nr = $year_st . $mon_st . $day_st . $hh_st . $mm_st;
my $end_nr = $year_en . $mon_en . $day_en . $hh_en . $mm_en;
my $day_stpx = 0;
my $rent_day_px = 0;
my $time_style;
my $time_style="";;
if($start_nr <= $end_nr){
($day_stpx,$rent_day_px) = $lb->rent_scale($users_dms,$year_st,$mon_st,$day_st,$hh_st,$mm_st,$year_en,$mon_en,$day_en,$hh_en,$mm_en);
}else{
$time_style="color:red;";
}
$itime = $lb->time4de($cttpos->{$pid}->{itime},1);
if($cttpos->{$pid}->{start_time}){
$itime = $lb->time4de($cttpos->{$pid}->{itime},1);
$start_time = $lb->time4de($cttpos->{$pid}->{start_time},1);
$end_time = $lb->time4de($cttpos->{$pid}->{end_time},1);
}else{
$start_time = $lb->time4de($cttpos->{$pid}->{itime},1);
$end_time = $lb->time4de($cttpos->{$pid}->{itime},1);
}
my $u_name = $cttpos->{$pid}->{owner} || "";
@ -389,37 +399,35 @@ sub tpl(){
foreach my $did (sort keys (%{$pos_hash})){
$pos_details .= $did . " = " . $pos_hash->{$did} . "</br>" if($pos_hash->{$did});
}
my $pos_id = "";
my $pos_id = "ID $cttpos->{$pid}->{c_id}";
my $user_device = "";
#if($users_dms->{u_id} == $dbt->{copri_conf}->{bike_state}->{superu_id}){
if($users_dms->{u_id} && $users_dms->{u_id} =~ /1842|5781|11765|21618/){
if($users_dms->{u_id} && $users_dms->{u_id} =~ /1842|5781|11765|21618|38883/){
$pos_id = $q->div({-class=>"popup",-onclick=>"toggle_box('$pid')"},"$cttpos->{$pid}->{c_id}", $q->span({-class=>"popuptext",-id=>"$pid"},"$pos_details"));
my $txt26 = $cttpos->{$pid}->{txt26};
my $txt21 = $cttpos->{$pid}->{txt21};
$txt26 = substr($cttpos->{$pid}->{txt26},0,25) . " ..." if(length($cttpos->{$pid}->{txt26}) > 20);
$txt21 = substr($cttpos->{$pid}->{txt21},0,50) . " ..." if(length($cttpos->{$pid}->{txt21}) > 50);
$user_device = "";
$user_device .= " &rarr; lock charge $cttpos->{$pid}->{int14} %" if($cttpos->{$pid}->{int14});
my $txt26 = $cttpos->{$pid}->{txt26};
$txt26 = substr($cttpos->{$pid}->{txt26},0,25) if(length($cttpos->{$pid}->{txt26}) > 20);
$user_device .= " &rarr; $txt26" if($txt26);
$user_device .= " &rarr; $txt21" if($txt21);
my $txt21 = $cttpos->{$pid}->{txt21};
$txt21 = substr($cttpos->{$pid}->{txt21},0,50) . " ..." if(length($cttpos->{$pid}->{txt21}) > 50);
#$user_device .= " &rarr; $txt21" if($txt21);
}
my $bikenr = "$cttpos->{$pid}->{barcode}";
$bikenr = $q->a({-class=>"linknav3",-style=>"$stamm_style",-href=>"/DMS/Waren/?detail_search=1&s_barcode=$cttpos->{$pid}->{barcode}",-title=>"Rad im Warenstamm"},"$cttpos->{$pid}->{barcode}") if($cttpos->{$pid}->{cc_id});
# (Flotte $cttpos->{$pid}->{int12})
#
my $bikenr = $cttpos->{$pid}->{barcode} || $cttpos->{$pid}->{ct_name};
my $status = "$dbt->{copri_conf}->{bike_state}->{$cttpos->{$pid}->{int10}}" || "state failure";
$status = "<span style='color:#c63e3e;'>$dbt->{copri_conf}->{bike_state}->{$cttpos->{$pid}->{int10}}</span>" if($cttpos->{$pid}->{int10} == 2 || $cttpos->{$pid}->{int10} == 3);
if($cttpos->{$pid}->{int10} ne $ct4rel_ware->{$cttpos->{$pid}->{cc_id}}->{int10}){
if($cttpos->{$pid}->{int10} ne $ct4rel_part->{$cttpos->{$pid}->{cc_id}}->{int10}){
$status = "<span style='border: 1px solid #c63e3e;'>$dbt->{copri_conf}->{bike_state}->{$cttpos->{$pid}->{int10}}</span>";
}
my $lock_state = "lock failure" if(!$cttpos->{$pid}->{int20});
$lock_state = "locked" if($cttpos->{$pid}->{int20} == 1);
$lock_state = "<span style='color:#c63e3e;'>unlocked</span>" if($cttpos->{$pid}->{int20} == 2);
$lock_state = "<span style='color:#c63e3e;'>locking in progress</span>" if($cttpos->{$pid}->{int20} == 3);
$lock_state = "<span style='color:#c63e3e;'>unlocking in progress</span>" if($cttpos->{$pid}->{int20} == 4);
if($cttpos->{$pid}->{int20} ne $ct4rel_ware->{$cttpos->{$pid}->{cc_id}}->{int20}){
$lock_state = "<span style='color:#c63e3e;'>locking</span>" if($cttpos->{$pid}->{int20} == 3);
$lock_state = "<span style='color:#c63e3e;'>unlocking</span>" if($cttpos->{$pid}->{int20} == 4);
if($cttpos->{$pid}->{int20} ne $ct4rel_part->{$cttpos->{$pid}->{cc_id}}->{int20}){
$lock_state = "<span style='border: 1px solid #c63e3e;'>$dbt->{copri_conf}->{lock_state}->{$cttpos->{$pid}->{int20}}</span>";
}
@ -435,22 +443,33 @@ sub tpl(){
if($node_meta->{ct_table} eq "contenttranspos"){
my $start_station = "$cttpos->{$pid}->{int06}";
my $end_station = "$cttpos->{$pid}->{int04}";
$start_station = $q->a({-class=>"linknav3",-style=>"",-href=>"/DMS/Waren/?detail_search=1&s_int04=$cttpos->{$pid}->{int06}",-title=>"Rad Warenstamm nach Station filtern"},"$cttpos->{$pid}->{int06}") if($ct4rel_ware->{$cttpos->{$pid}->{cc_id}}->{rel_id});
$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});
$start_station = $q->a({-class=>"linknav3",-style=>"",-href=>"/DMS/Waren/?detail_search=1&s_int04=$cttpos->{$pid}->{int06}",-title=>"Rad Warenstamm nach Station filtern"},"$cttpos->{$pid}->{int06}") if($ct4rel_part->{$cttpos->{$pid}->{cc_id}}->{rel_id});
$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_part->{$cttpos->{$pid}->{cc_id}}->{rel_id});
my $comment = $cttpos->{$pid}->{txt23};
$comment = substr($cttpos->{$pid}->{txt23},0,50) . " ..." if(length($cttpos->{$pid}->{txt23}) > 50);
my $kunde = "$cttpos->{$pid}->{txt08}";
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2){
$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
$kunde = $q->a({-class=>"linknav3",-style=>"$part_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
}
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"}));
my $edit_pos = $q->a({-class=>"editboo",-href=>"?base_edit=transpos\&c_id=$cttpos->{$pid}->{c_id}\&owner=$users_dms->{u_id}",-title=>"Position 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> &rarr; $kunde &rarr; Start Station $start_station &rarr; End Station $end_station &rarr; Rad $bikenr $status $lock_state $track_info &rarr; $u_name/$u_name_end $pos_id"),"\n";
#Gebühren und Gutscheine
if($cttpos->{$pid}->{template_id} && $cttpos->{$pid}->{template_id} =~ /224|229/){
print $q->div({-style=>"float:left;margin-left:$c_left"}, "$i) $edit_pos $pos_id &rarr; $start_time &rarr; Nr. $bikenr &rarr; $kunde &rarr; $u_name/$u_name_end"),"\n";
}else{
$bikenr = $q->a({-class=>"linknav3",-style=>"$stamm_style",-href=>"/DMS/Waren/?detail_search=1&s_barcode=$cttpos->{$pid}->{barcode}",-title=>"Rad im Warenstamm"},"$bikenr") if($cttpos->{$pid}->{cc_id});
print $q->div({-style=>"float:left;margin-left:$c_left"}, "$i) $edit_pos $pos_id &rarr; <span style='$time_style'>$start_time $end_time</span> &rarr; $kunde &rarr; Start Station $start_station &rarr; End Station $end_station &rarr; Bike $bikenr $status $lock_state $track_info &rarr; $u_name/$u_name_end"),"\n";
#print $q->div({-style=>"float:left;margin-left:$c_left"}, "$i) $edit_pos $pos_id &rarr; Start $start_time Station $start_station &rarr; End $end_time Station $end_station &rarr; Bike $bikenr $status $lock_state $track_info &rarr; $kunde &rarr; $u_name/$u_name_end"),"\n";
}
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2){
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "&rarr; 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";
print $q->div({-style=>'float:left;margin-left:1em;'}, "&rarr; 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;'}, "$user_device"),"\n";
}
print $q->div({-style=>'float:left;margin-left:1em;'}, " &rarr; $comment"),"\n";
}elsif($node_meta->{ct_table} eq "contenttheftpos"){
my $speed = 0;
@ -461,11 +480,11 @@ sub tpl(){
my $event_type = "";
$event_type = "Diebstahlalarm" if($cttpos->{$pid}->{int01});
$event_type = "GPS $cttpos->{$pid}->{txt06} &rarr; speed $speed km/h &rarr; distance $cttpos->{$pid}->{int08} Meter" if($cttpos->{$pid}->{int02});
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "$i) <span style='$time_style'> $end_time</span> &rarr; $event_type &rarr; Rad $bikenr &rarr; $u_name $pos_id"),"\n";
print $q->div({-style=>"float:left;margin-left:$c_left"}, "$i) $pos_id &rarr; $end_time &rarr; $event_type &rarr; Bike $bikenr &rarr; $u_name"),"\n";
}
print $q->div({-style=>"position:absolute;margin-left:$daymarker;border-right: solid thin #86cb00;height:1.5em;"},"&nbsp;"),"\n" if("$mon" eq "$mon_today");
print $q->div({-style=>"position:absolute;margin-left:$daymarker;border-right: solid thin #009899;height:1.5em;"},"&nbsp;"),"\n" if("$mon" eq "$mon_today");
print $q->div({-style=>"position:static;margin-left:$day_stpx;width:$rent_day_px;height:1.5em;background-color:$scale_color;"},"&nbsp;"),"\n";
print "</td></Tr>\n";
}

View file

@ -815,7 +815,7 @@ sub tpl(){
print $q->Tr(),"\n";
#checkboxes
#permissions
if($users_dms->{int07} == 2){#only DMS-Account Admin
if($users_dms_primary->{int03} == 2 && $users_dms->{int03} == 2){
print $q->td({-style=>"background-color:silver;"}, $q->checkbox(-name=>"ck4ex", -checked=>'', -value=>"$ct4rel->{$id}->{c_id}", -label=>'')),"\n";
}else{
print $q->td({-style=>"background-color:silver;"},"&nbsp;"),"\n";
@ -1353,7 +1353,7 @@ sub tpl(){
print "<div id='jump_bottom' style='clear:both;border:0px dotted silver;height:35px;'>\n";
if($R::detail_search !~ /suchen/ && $rows > $limit && $nr > 0){
print $q->div({-style=>'float:left;padding:6px 0 0 20px;'},"Datensätze pro Seite:",$q->textfield(-style=>'height:16px;',-name=>"limit",-default=>"$limit",-size=>"3",-maxlength=>10)),"\n";
print $q->div({-style=>'float:left;padding:7px 0 0 10px;'},$but->singlesubmit3("detail_search","reload_search","$varenv{metahost}/img/refresh.png","height:15px;","Tabelle neu laden")),"\n";
print $q->div({-style=>'float:left;padding:7px 0 0 10px;'},$but->singlesubmit3("detail_search","reload_search","$varenv{metahost}/img/refresh.png","height:14px;","Tabelle neu laden")),"\n";
}
print $q->end_form;

View file

@ -54,14 +54,9 @@ sub tpl(){
my $parent_node4rel = $db->get_node4rel($node_meta->{parent_id},"","","null");
my %ib = $but->ibuttons();
my $tpl_order = $node_meta->{tpl_order};
if(1==2 && $node_meta->{tpl_id} > 400 && $node_meta->{tpl_id} < 500){
$tpl_order =~ s/barcode=Rad/barcode=Rad,txt10=Station-log,txt09=Wartungsprotokoll=area/;
$tpl_order =~ s/int04=Station/int04=Station,txt09=Wartungsprotokoll=area/ if($node_meta->{tpl_id} == 499);
}
my @tpl_order = split /,/,$tpl_order;
my $message = "";
#$message = "Fehler: " if(scalar(@tpl_order) < 1);
my $s_owner_id = "";
#my $s_u_name = "";
@ -146,6 +141,16 @@ sub tpl(){
$tpl_ids = $node_meta->{tpl_id};
}
elsif($node_meta->{tpl_id} == 198){
my $dbh_primary = $dbt->dbconnect_extern("sharee_primary");
my $users_dms_primary = { u_id => 0 };
$users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int03=2");
#only if user is also a primary DMS user with invoice rw
if(!$users_dms_primary->{u_id} || $users_dms_primary->{int03} != 2){
$node_meta->{tpl_order} =~ s/int02=[\w\s\+\&=]+,//;
$node_meta->{tpl_order} =~ s/int03=[\w\s\+\&=]+,//;
}
$table = "contentadr";
$searchref->{table_pos} = "users";
#$searchref->{template_id_pos} = "$node_meta->{tpl_id}";
@ -177,6 +182,7 @@ EOF
;
}
my @tpl_order = split /,/,$node_meta->{tpl_order};
#print Dumper($node_meta);
my $hashfile = "$varenv{logdir}/$users_dms->{u_id}-$searchref->{table_pos}-searchhash";

View file

@ -53,11 +53,11 @@ sub tpl(){
my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
my $dbh = "";
my $channel_map = $dbt->channel_map();
my $coo = $q->cookie(-name=>'domcookie');
my $mapref = {};
my $ct_users = $dbt->users_map($dbh,$mapref);#get serviceAPP and DMS users from contentadr
my $line_count2;
my $line_count2 = 0;
my $k=0;
my $spart_ct_name = $R::spart_ct_name || "";
my $c_idpos = $R::c_idpos || $R::pos_id || "";
@ -586,8 +586,9 @@ EOF
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> $vibuchen_mtime Gebucht $ctt->{int01} € \"$ctt->{state}\"") if($ctt->{state});
}
if( -f "$varenv{pdf}/$praefix-$ctt->{ct_name}.pdf" && $varenv{metahost}){
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "Download: ", $q->a({-href=>"$varenv{metahost}/pdf/$praefix-$ctt->{ct_name}.pdf", -target=>'_blank'},"$praefix-$ctt->{ct_name}.pdf"));
if( -f "$varenv{pdfinvoice}/$praefix-$ctt->{ct_name}.pdf"){
#print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "Download: ", $q->a({-href=>"$varenv{metahost}/pdf/$praefix-$ctt->{ct_name}.pdf", -target=>'_blank'},"$praefix-$ctt->{ct_name}.pdf"));
print $q->div({-style=>'padding:0.5em;font-size:0.81em;width:98%;text-align:right;'}, "Download: ", $q->a({-href=>"$varenv{wwwhost}/FileOut?file=$praefix-$ctt->{ct_name}.pdf&sessionid=$coo", -target=>"_blank" , -type=>'application/octet-stream', -style=>'text-decoration:underline;'}), "Rechnung $ctt->{ct_name}.pdf"),"\n";
}