2021-12-30 12:05:56 +01:00
package Liste3 ;
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (c) Rainer Gümpelein, TeilRad GmbH
#
#
#uncomment for perl -cw src/Tpl/Liste3.pm
#use lib qw(/var/www/copri4/main/src);
#
use strict ;
use warnings ;
use POSIX ;
use CGI ;
use CGI::Carp qw( fatalsToBrowser ) ;
use CGI ':standard' ;
use URI::Escape ;
use Encode ;
use Lib::Config ;
use Mod::Buttons ;
use Mod::Libenz ;
2023-03-05 20:01:47 +01:00
use Mod::Prelib ;
2021-12-30 12:05:56 +01:00
use Mod::Libenzdb ;
use Mod::DBtank ;
use Date::Calc qw( :all ) ;
use Scalar::Util qw( looks_like_number ) ;
use Storable ;
use Mod::APIfunc ;
2022-04-30 08:12:55 +02:00
use Mod::Pricing ;
2022-06-24 14:38:22 +02:00
use Mod::Shareework ;
use Mod::APIsigclient ;
use Mod::Basework ;
2021-12-30 12:05:56 +01:00
use Data::Dumper ;
sub new {
my $ class = shift ;
my $ self = { } ;
bless ( $ self , $ class ) ;
return $ self ;
}
#Template
sub tpl () {
my $ node_meta = shift ;
my $ users_dms = shift ;
my $ u_group = shift ;
my $ return = shift ;
my $ q = new CGI ;
my @ keywords = $ q - > param ;
my $ cf = new Config ;
my $ lb = new Libenz ;
2023-03-05 20:01:47 +01:00
my $ pl = new Prelib ;
2021-12-30 12:05:56 +01:00
my $ db = new Libenzdb ;
my $ but = new Buttons ;
my $ dbt = new DBtank ;
my $ apif = new APIfunc ;
2022-04-30 08:12:55 +02:00
my $ pri = new Pricing ;
2022-06-24 14:38:22 +02:00
my $ tk = new Shareework ;
my $ si = new APIsigclient ;
my $ bw = new Basework ;
2021-12-30 12:05:56 +01:00
my % varenv = $ cf - > envonline ( ) ;
my $ script = $ q - > script_name ( ) ;
my $ path_info = $ q - > path_info ( ) ;
my $ path = $ path_info ;
#with meta_host,
if ( "$varenv{metahost}" ) {
$ path = "$script" . "$path_info" ;
$ script = "" ;
}
2023-03-05 20:01:47 +01:00
my $ feedb = { message = > "" } ;
2021-12-30 12:05:56 +01:00
my $ lang = "de" ;
my $ now_db = strftime ( "%d.%m.%Y %H:%M:%S" , localtime ( time ) ) ;
my $ dbh = "" ;
my $ debug = 0 ;
2022-11-06 18:45:59 +01:00
my $ coo = $ q - > cookie ( - name = > 'domcookie' ) || "" ;
my $ opdir_dms = "$dbt->{copri_conf}->{basedir}/$dbt->{operator}->{$varenv{dbname}}->{dir_dms}" || "" ;
2021-12-30 12:05:56 +01:00
$ path =~ s/\/login|\/user|\/manager|\/admin|\/$// ;
my $ user_agent = $ q - > user_agent ( ) ;
my $ saved_query = $ q - > url ( - query = > 1 ) ;
my % ib = $ but - > ibuttons ( ) ;
my $ main_id = $ node_meta - > { main_id } ;
my $ tpl_id = $ node_meta - > { template_id } ;
my $ time = time ;
my $ today = strftime ( "%d.%m.%Y" , localtime ( time ) ) ;
my $ now_date = strftime ( "%Y-%m-%d" , localtime ( time ) ) ;
my @ months = ( "Januar" , "Februar" , "März" , "April" , "Mai" , "Juni" , "Juli" , "August" , "September" , "Oktober" , "November" , "Dezember" ) ;
2022-11-02 20:14:57 +01:00
my $ hh = 0 ;
my $ mm = 0 ;
2021-12-30 12:05:56 +01:00
my $ day = strftime "%d" , localtime ;
my $ mon = strftime "%m" , localtime ;
my $ year = strftime "%Y" , localtime ;
( $ year , $ mon , $ day , $ hh , $ mm ) = $ lb - > split_date ( $ users_dms - > { cal_start } ) if ( $ users_dms - > { cal_start } ) ;
2023-04-05 07:41:11 +02:00
my $ start_date_time = $ R:: start_date_time || "" ;
2021-12-30 12:05:56 +01:00
$ start_date_time = "01.$mon.$year" if ( ! $ start_date_time ) ;
2023-04-05 07:41:11 +02:00
my $ end_date_time = $ R:: end_date_time || "" ;
if ( ! $ end_date_time ) {
#my $days4month = Days_in_Month($year,$mon);
#$end_date_time = "$days4month.$mon.$year";
my ( $ nyear , $ nmon , $ nday ) = Add_Delta_YMD ( $ year , $ mon , 1 , 0 , 1 , 0 ) ;
$ end_date_time = "$nday.$nmon.$nyear" ;
}
2021-12-30 12:05:56 +01:00
my $ c_date ; my $ start_chck = 0 ; my $ end_chck = 0 ; my $ message ;
if ( $ start_date_time ) {
( $ start_date_time , $ start_chck ) = $ lb - > checkdate ( $ start_date_time ) if ( $ start_date_time ne "%" ) ;
$ message . = ">>> Datum Eingabefehler: $start_date_time <<<" if ( $ start_chck ) ;
}
if ( $ end_date_time ) {
( $ end_date_time , $ end_chck ) = $ lb - > checkdate ( $ end_date_time ) if ( $ end_date_time ne "%" ) ;
$ message . = ">>> Datum Eingabefehler: $end_date_time <<<" if ( $ end_chck ) ;
}
2023-04-05 07:41:11 +02:00
my $ search_startdt = "\'$start_date_time\'" ;
my $ search_enddt = "\'$end_date_time\'" ;
2021-12-30 12:05:56 +01:00
my $ cttpos = { } ;
my $ cttpos_trans = { } ;
my $ cttpos_theft = { } ;
if ( ( $ node_meta - > { ct_table } eq "content" ) && ( $ node_meta - > { tpl_id } == 205 ) && ( ! $ start_chck && ! $ end_chck ) ) {
my $ cttpos1 = $ db - > collect_postime ( "contenttranspos" , "$search_startdt" , "$search_enddt" , "$start_date_time" , "$end_date_time" ) ;
foreach my $ key ( keys %$ cttpos1 ) {
$ cttpos_trans - > { "trans_" . $ key } = $ cttpos1 - > { $ key } ;
}
2022-12-30 19:51:45 +01:00
#my $cttpos2 = $db->collect_postime("contenttheftpos","$search_startdt","$search_enddt","$start_date_time","$end_date_time");
#foreach my $key (keys %$cttpos2){
# $cttpos_theft->{"theft_" . $key} = $cttpos2->{$key};
#}
2021-12-30 12:05:56 +01:00
}
2022-12-30 19:51:45 +01:00
#$cttpos = { %$cttpos_trans, %$cttpos_theft };
$ cttpos = { %$ cttpos_trans } ;
2021-12-30 12:05:56 +01:00
2022-12-02 07:25:27 +01:00
my $ table = $ node_meta - > { ct_table } || "" ;
2021-12-30 12:05:56 +01:00
my $ hashfile = "$varenv{logdir}/$users_dms->{u_id}-$table-searchhash" ;
if ( $ table eq "content" ) {
$ node_meta - > { tpl_order } =~ s/txt17=[\w\s=]+,// ;
$ node_meta - > { tpl_order } =~ s/byte01=[\w\s=]+,// ;
}
2022-11-16 21:22:00 +01:00
if ( $ table eq "contentadr" && $ varenv { dbname } ne $ dbt - > { primary } - > { sharee_primary } - > { database } - > { dbname } ) {
2021-12-30 12:05:56 +01:00
$ node_meta - > { tpl_order } =~ s/txt17=[\w\s=]+,// ;
$ node_meta - > { tpl_order } =~ s/txt19=[\w\s=]+,// ;
}
2023-03-10 11:35:56 +01:00
if ( $ table eq "contentadr" && $ varenv { dbname } eq $ dbt - > { primary } - > { sharee_primary } - > { database } - > { dbname } ) {
$ node_meta - > { tpl_order } =~ s/Tarife/private Tarife/ ;
}
2021-12-30 12:05:56 +01:00
$ node_meta - > { tpl_order } =~ s/c_id=raw=[\w\s=]+// if ( $ users_dms - > { u_id } != $ dbt - > { copri_conf } - > { superu_id } ) ;
my @ tpl_order = split /,/ , $ node_meta - > { tpl_order } ;
my $ scol = "c_id" ;
$ scol = "txt01" if ( $ path =~ /Waren/ ) ;
#table columne check for col_sort
if ( $ users_dms - > { col_sort } eq "node_name" && ( $ table eq "contenttver" ) ) {
$ scol = "node_name" ;
} elsif ( $ users_dms - > { col_sort } eq "date_time" && ( $ table =~ /contenttver|contenttrans/ ) ) {
$ scol = "end_time" ;
} elsif ( $ users_dms - > { col_sort } ) {
my $ tinfo = $ db - > table_info ( $ table ) ;
foreach ( keys ( %$ tinfo ) ) {
$ scol = "$users_dms->{col_sort}" if ( "$users_dms->{col_sort}" eq "$tinfo->{$_}->{attname}" ) ;
}
$ db - > users_up ( "col_sort" , "0" , $ users_dms - > { owner } ) if ( "$scol" ne "$users_dms->{col_sort}" ) ;
}
2023-01-05 18:11:24 +01:00
my $ limit = $ R:: limit || 250 ;
2021-12-30 12:05:56 +01:00
my $ offset = $ R:: offset || "0" ;
#backward | forward
if ( $ R:: go && $ R:: go eq "backward_list" ) {
$ offset -= $ limit if ( $ offset >= $ limit ) ;
} elsif ( $ R:: go && $ R:: go eq "forward_list" ) {
$ offset += $ limit ;
}
my ( $ daymarker , $ raster_mmpx , $ day4month ) = $ lb - > month_line ( $ users_dms ) ;
my $ rows = 0 ;
my $ ctf = $ db - > get_content1 ( "contentuser" , "$dbt->{sharedms_conf}->{parent_id}" ) ;
2023-03-05 20:01:47 +01:00
my $ c_id4csv = "" ;
2021-12-30 12:05:56 +01:00
my $ ct4rel = { } ;
my $ ct4rel_parts = { } ;
my $ k = 0 ;
my $ message = "" ;
2022-11-16 21:22:00 +01:00
my $ framewidth = "min-width: 1200px;" ;
#to keep calendar line
$ framewidth = "min-width: 2000px;" if ( $ node_meta - > { ct_table } eq "content" ) ;
print "<div id='Content4list' style='$framewidth'>\n" ;
2021-12-30 12:05:56 +01:00
my $ v_journal = $ R:: v_journal || "" ;
2022-05-09 12:45:01 +02:00
if ( $ node_meta - > { main_id } == $ dbt - > { shareedms_conf } - > { invoicejournal } ) {
2021-12-30 12:05:56 +01:00
$ v_journal = $ node_meta - > { node_name } ;
}
my $ date = "" ;
my $ start_chck = 0 ;
my $ end_chck = 0 ;
my $ last_year = "" ;
if ( $ R:: s_start_mtime ) {
( $ date , $ start_chck ) = $ lb - > checkdate ( $ R:: s_start_mtime ) if ( $ R:: s_start_mtime !~ "%" ) ;
$ message . = ">>> Datum Eingabefehler: $date <<<" if ( $ start_chck ) ;
my ( $ c_dd , $ c_mm , $ c_yy ) = split ( /\./ , $ date ) ;
$ last_year = $ c_yy if ( "$c_yy" eq "2011" ) ;
}
if ( $ R:: s_end_mtime ) {
( $ date , $ end_chck ) = $ lb - > checkdate ( $ R:: s_end_mtime ) if ( $ R:: s_end_mtime !~ "%" ) ;
$ message . = ">>> Datum Eingabefehler: $date <<<" if ( $ end_chck ) ;
my ( $ c_dd , $ c_mm , $ c_yy ) = split ( /\./ , $ date ) ;
}
2022-12-02 07:25:27 +01:00
my $ export = "" ;
my $ ck4ex = "@R::ck4ex" || "" ;
$ export = "check4export" if ( $ R:: ck4ex ) ;
if ( $ export || $ ck4ex ) {
$ db - > users_up ( "time4csv" , "$time" , $ users_dms - > { u_id } ) ;
$ users_dms = $ db - > select_users ( $ users_dms - > { u_id } ) ;
}
my $ searchref = {
time = > $ time ,
scol = > $ scol ,
offset = > $ offset ,
limit = > $ limit ,
export = > $ export ,
opos = > "" ,
} ;
2022-09-28 13:28:45 +02:00
my $ tplids = "$tpl_id," || 0 ;
2022-10-11 07:00:25 +02:00
my $ main_ids = "" ;
2021-12-30 12:05:56 +01:00
2022-09-28 13:28:45 +02:00
#Faktura actions
2022-10-14 08:28:51 +02:00
if ( $ node_meta - > { template_id } =~ /208|209|218/ ) {
2022-10-11 07:00:25 +02:00
$ main_id = $ dbt - > { shareedms_conf } - > { faktura } ;
2022-10-31 08:11:53 +01:00
$ tplids = "218" ;
2022-10-11 07:00:25 +02:00
if ( $ node_meta - > { node_name } =~ /OPOS/ ) {
2022-11-14 21:16:22 +01:00
$ R:: detail_search = "search" ;
2022-03-17 20:28:28 +01:00
$ searchref - > { int14 } = ">=1" ;
2021-12-30 12:05:56 +01:00
$ message . = ">>> Offene Payone Posten (Fehlgeschlagene Geldeinzüge) <<<" ;
2022-12-02 07:25:27 +01:00
$ searchref - > { offset } = 0 ;
$ searchref - > { limit } = 1000 ;
2022-09-28 13:28:45 +02:00
$ tplids = "209,218" ;
2022-11-02 20:14:57 +01:00
my $ tpl = $ dbt - > get_tpl ( $ dbh , 209 ) ;
@ tpl_order = split /,/ , $ tpl - > { tpl_order } ;
2022-09-28 13:28:45 +02:00
}
2021-12-30 12:05:56 +01:00
2022-11-17 20:36:53 +01:00
elsif ( $ node_meta - > { node_name } =~ /Mahnung/ ) {
$ R:: detail_search = "search" ;
2022-12-02 07:25:27 +01:00
$ searchref - > { int06 } = ">=1" ;
2022-11-17 20:36:53 +01:00
$ message . = "" ;
2022-12-02 07:25:27 +01:00
$ searchref - > { offset } = 0 ;
$ searchref - > { limit } = 1000 ;
2022-11-17 20:36:53 +01:00
$ tplids = "209,218" ;
my $ tpl = $ dbt - > get_tpl ( $ dbh , 209 ) ;
@ tpl_order = split /,/ , $ tpl - > { tpl_order } ;
}
2022-10-11 07:00:25 +02:00
elsif ( ! $ R:: detail_search && - f $ hashfile && $ node_meta - > { node_name } =~ /letzte Suche/ ) {
2021-12-30 12:05:56 +01:00
$ message . = ">>> es wurden die letzten Suchparameter oder Filter geladen <<<" ;
2022-12-02 07:25:27 +01:00
$ searchref - > { offset } = 0 ;
$ searchref - > { limit } = 1000 ;
2022-11-02 20:14:57 +01:00
#$tplids = "208,209,218";#reload store by hashfile
$ v_journal = $ node_meta - > { node_name } ;
my $ tpl = $ dbt - > get_tpl ( $ dbh , 209 ) ;
@ tpl_order = split /,/ , $ tpl - > { tpl_order } ;
2022-09-28 13:28:45 +02:00
}
2021-12-30 12:05:56 +01:00
2022-10-11 07:00:25 +02:00
elsif ( $ node_meta - > { node_name } eq "Tagesbericht" ) {
2022-11-14 21:16:22 +01:00
$ R:: detail_search = "search" ;
2022-12-02 07:25:27 +01:00
$ searchref - > { offset } = 0 ;
2023-04-24 14:49:30 +02:00
$ searchref - > { limit } = 10000 ;
2021-12-30 12:05:56 +01:00
$ v_journal = $ node_meta - > { node_name } ;
2022-12-02 07:25:27 +01:00
$ searchref - > { opos } = "null" ;
2022-10-11 07:00:25 +02:00
$ tplids = 218 ;
}
2022-11-02 20:14:57 +01:00
elsif ( $ node_meta - > { node_name } eq "Verkaufsjournal" || $ R:: tpl_id4trans eq "209" ) {
2022-10-11 07:00:25 +02:00
$ main_id = $ dbt - > { shareedms_conf } - > { invoicejournal } ;
$ v_journal = $ node_meta - > { node_name } ;
$ tplids = 209 ;
2022-12-02 07:25:27 +01:00
$ searchref - > { offset } = 0 ;
$ searchref - > { limit } = 1000 ;
2022-09-28 13:28:45 +02:00
}
2022-10-11 07:00:25 +02:00
elsif ( $ node_meta - > { node_name } eq "Rechnung" ) {
$ main_id = $ dbt - > { shareedms_conf } - > { invoice } ;
$ tplids = 218 ;
}
elsif ( $ node_meta - > { node_name } eq "Storno" ) {
$ main_id = 300009 ;
$ tplids = 218 ;
}
2022-10-31 08:11:53 +01:00
elsif ( $ node_meta - > { node_name } eq "Abrechnung" || $ R:: tpl_id4trans eq "208" ) {
2022-10-14 08:28:51 +02:00
$ main_id = 300029 ;
$ tplids = 208 ;
}
2022-10-11 07:00:25 +02:00
2022-10-31 08:11:53 +01:00
#search at all
2023-04-24 14:49:30 +02:00
if ( $ R:: detail_search && $ R:: detail_search eq "search" ) {
2023-01-23 12:56:14 +01:00
$ tplids = "209,218" ;
2022-09-28 13:28:45 +02:00
}
2022-11-02 20:14:57 +01:00
$ searchref - > { tplids } = "$tplids" ;
2023-04-24 14:49:30 +02:00
} elsif ( $ R:: detail_search && $ R:: detail_search eq "search" ) {
$ searchref - > { offset } = 0 ;
$ searchref - > { limit } = 1000 ;
2021-12-30 12:05:56 +01:00
}
2023-04-24 14:49:30 +02:00
2022-10-11 07:00:25 +02:00
$ main_ids = "$main_id," ;
$ main_ids . = $ db - > collect_noderec ( $ main_id , $ lang , "nothing" ) ;
$ main_ids =~ s/,$// ;
2021-12-30 12:05:56 +01:00
$ message = $ R:: message if ( $ R:: message ) ;
#path-line
2022-09-28 13:28:45 +02:00
my $ redirect = "" ;
2021-12-30 12:05:56 +01:00
$ redirect = "(redirected)" if ( $ R:: redirected ) ;
#top of bootstrap
my $ header_style = "" ;
$ header_style = "border:2px solid #9f1f0e;" if ( $ message ) ;
2022-11-02 20:14:57 +01:00
if ( $ node_meta - > { tpl_id } == 205 || $ node_meta - > { tpl_id } == 209 ) {
2022-10-31 08:11:53 +01:00
print $ q - > div ( { - class = > "copri_header" , - style = > "background-color:$node_meta->{bg_color};" } , "$path" , $ q - > span ( { - style = > "padding:5px 10px;background-color:#86cbd7;color:white;" } ,
2021-12-30 12:05:56 +01:00
" $months[$mon -1] $year" ,
$ q - > a ( { - class = > "linknav" , - style = > "padding:0 0.5em;" , - title = > "Monat zurück" , - href = > "?cal_delta_start=0:-1:0" } , " ← " ) ,
$ q - > a ( { - class = > "linknav" , - style = > "padding:0 0.5em;" , - title = > "Monat aktuell" , - href = > "?cal_today=1" } , "•" ) ,
$ q - > a ( { - class = > "linknav" , - style = > "padding:0 0.5em;" , - title = > "Monat vorwärts" , - href = > "?cal_delta_start=0:1:0" } , " → " ) ,
"$message"
) ) , "\n" ;
2023-01-30 20:59:19 +01:00
} elsif ( $ node_meta - > { template_id } =~ /209|218/ ) {
print << EOF
<script>
function postave ( val ) {
jQuery . ajax ( {
url: "/ajax_json" ,
data: { 'table' : 'users' , 'faksum' : val } ,
type: 'POST' ,
} ) ;
//co nsole . log ( 'faksum ' + val ) ;
}
</script>
EOF
;
2023-07-07 08:50:13 +02:00
my $ checked_sum = 0 ;
$ checked_sum = 1 if ( $ users_dms - > { faksum } ) ;
print $ q - > div ( { - class = > "copri_header" , - style = > "background-color:$node_meta->{bg_color};" } , "$path $redirect | " , $ q - > checkbox ( - name = > " ∑ sum " , - title = > 'Faktura Positionen summieren ∑ — kostet Zeit' , - onclick = > "postave(1)" , - checked = > "$checked_sum" ) , $ q - > span ( { - style = > "$header_style" } , "$message" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
} else {
2023-03-05 20:01:47 +01:00
print $ q - > div ( { - class = > "copri_header" , - style = > "background-color:$node_meta->{bg_color};" } , "$path $redirect" , $ q - > span ( { - style = > "$header_style" } , "$message" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
2023-03-05 20:01:47 +01:00
print $ q - > start_form ( - name = > 'searchform' ) , "\n" ;
print $ q - > hidden ( - name = > 'offset' , - value = > "$searchref->{offset}" ) , "\n" ;
print $ q - > hidden ( - name = > 'main_id' , - value = > "$node_meta->{main_id}" ) , "\n" ;
print $ q - > hidden ( - name = > 'mode' , - value = > "manager" ) , "\n" ;
print $ q - > hidden ( - name = > 'owner' , - value = > "$users_dms->{u_id}" ) , "\n" ;
print $ q - > hidden ( - name = > 'template_id' , - value = > "$node_meta->{template_id}" ) , "\n" ;
print $ q - > hidden ( - name = > 'ct_table' , - value = > "$node_meta->{ct_table}" ) , "\n" ;
2021-12-30 12:05:56 +01:00
2022-12-21 15:03:45 +01:00
my $ record_st = { c_id = > 0 } ;
if ( $ table eq "content" ) {
$ tplids = "205,224,225,210,226,227,228,229" ;
my $ pref_st = {
table = > "content" ,
fetch = > "all" ,
keyfield = > "int04" ,
template_id = > "225" ,
} ;
$ record_st = $ dbt - > fetch_record ( $ dbh , $ pref_st ) ;
}
#defaults to rental bikes
if ( $ path =~ /Waren$/ ) {
$ tplids = 205 ;
}
my $ s_ct_name = $ q - > escapeHTML ( $ R:: s_ct_name ) || "" ;
my $ s_barcode = $ q - > escapeHTML ( $ R:: s_barcode ) || "" ;
2021-12-30 12:05:56 +01:00
my $ relnod = "" ;
$ relnod = $ db - > collect_rel4nodes ( $ main_ids , "" , "" , "rel_id" ) ;
my $ j_exist = $ db - > get_node4multi ( "300011" , $ lang ) ;
2022-09-28 13:28:45 +02:00
my $ nodes = "" ;
2021-12-30 12:05:56 +01:00
if ( $ main_ids ) {
$ nodes = $ db - > collect_node2 ( $ main_ids ) ;
} else {
$ lb - > failure ( "Fehler! Es fehlen wichtige Einstellungen. ....journal-ID!" ) ;
}
2022-08-11 11:42:24 +02:00
my $ ct_ids = "" ;
my $ last_ab = { } ;
2021-12-30 12:05:56 +01:00
my $ channel_map = $ dbt - > channel_map ( ) ;
my $ mapref = { } ;
my $ ct_users = $ dbt - > users_map ( $ dbh , $ mapref ) ; #get serviceAPP and DMS users from contentadr
my @ _users = ( "" ) ;
foreach my $ id ( sort { $ channel_map - > { $ a } cmp $ channel_map - > { $ b } } keys ( %$ channel_map ) ) {
push ( @ _users , "$id:$channel_map->{$id}" ) ;
if ( $ R:: s_owner && $ channel_map - > { $ id } eq $ R:: s_owner ) {
$ searchref - > { owner } = $ id ;
}
}
if ( ! $ searchref - > { owner } ) {
foreach my $ ctu_id ( sort { $ ct_users - > { $ a } - > { txt01 } cmp $ ct_users - > { $ b } - > { txt01 } } keys ( %$ ct_users ) ) {
push ( @ _users , "$ct_users->{$ctu_id}->{c_id}:$ct_users->{$ctu_id}->{txt01}" ) ;
if ( $ ct_users - > { $ ctu_id } - > { ct_name } && ( $ R:: s_owner && $ ct_users - > { $ ctu_id } - > { txt01 } =~ /$R::s_owner/i ) || ( $ ct_users - > { $ ctu_id } - > { c_id } eq $ searchref - > { owner } ) ) {
$ searchref - > { owner } = $ ct_users - > { $ ctu_id } - > { c_id } ;
}
}
}
2022-10-14 08:28:51 +02:00
my $ node = { template_id = > 205 ,
parent_id = > 200013 ,
2021-12-30 12:05:56 +01:00
fetch = > "all" ,
keyfield = > "main_id" ,
} ;
my $ bike_nodes = $ dbt - > fetch_rel4tpl4nd ( $ dbh , $ node ) ;
2023-03-16 15:13:19 +01:00
my $ tariff_all = { } ;
my $ tariff = {
table = > "content" ,
fetch = > "all" ,
keyfield = > "barcode" ,
template_id = > "210" , #Tariff tpl_id
} ;
$ tariff_all = $ dbt - > fetch_record ( $ dbh , $ tariff ) ;
2021-12-30 12:05:56 +01:00
2022-11-16 21:22:00 +01:00
my $ dbh_primary = $ dbt - > dbconnect_extern ( $ dbt - > { primary } - > { sharee_primary } - > { database } - > { dbname } ) ;
2022-07-20 06:54:17 +02:00
my $ users_dms_primary = { u_id = > 0 } ;
2022-11-24 12:50:23 +01:00
$ users_dms_primary = $ dbt - > select_users ( $ dbh_primary , $ users_dms - > { u_id } , "" ) ;
2022-07-20 06:54:17 +02:00
2021-12-30 12:05:56 +01:00
my $ ctrel = { } ;
#only if permission read
2022-11-28 18:28:06 +01:00
if ( ( $ node_meta - > { ct_table } eq "content" && $ users_dms - > { int01 } >= 1 ) || ( $ node_meta - > { ct_table } eq "contentadr" && $ users_dms_primary - > { u_id } && $ users_dms - > { u_id } && $ users_dms - > { int02 } >= 1 ) || ( $ node_meta - > { ct_table } eq "contenttrans" && $ users_dms_primary - > { u_id } && $ users_dms - > { u_id } && $ users_dms - > { int03 } >= 1 ) ) {
2022-07-20 06:54:17 +02:00
2021-12-30 12:05:56 +01:00
my $ c_id4trans = $ R:: c_id4trans || "" ;
#Take only c_id from users if
if ( $ users_dms - > { c_id4trans } && $ R:: ct_trans && ( ( $ R:: ct_trans eq "add_transadr" && $ R:: c_idadr ) || ( $ R:: ct_trans eq "add_transpos" && $ R:: c_id ) || $ R:: ct_trans eq "new_trans" ) ) {
$ c_id4trans = $ users_dms - > { c_id4trans } ;
}
2022-10-14 08:28:51 +02:00
#it will takes only one dataset
2023-01-31 14:58:22 +01:00
if ( $ node_meta - > { ct_table } eq "contenttrans" && $ c_id4trans && $ c_id4trans =~ /^\d+$/ && $ users_dms - > { faksum } ) {
$ ct4rel = $ db - > collect_cid ( $ table , $ lang , $ tplids , $ R:: rel_id , $ R:: barcode , "c_id" , $ c_id4trans ) ;
} elsif ( ! $ start_chck && ! $ end_chck ) {
2021-12-30 12:05:56 +01:00
#collect search keys
foreach my $ postkey ( @ keywords ) {
foreach ( @ tpl_order ) {
my ( $ key , $ val , $ size ) = split /=/ , $ _ ;
if ( $ postkey =~ /s_$key|s_start_$key|s_end_$key/ ) {
my $ val = $ q - > param ( $ postkey ) ;
$ postkey =~ s/^s_// ;
$ searchref - > { $ postkey } = $ val ;
}
}
}
#trying to save hashref
2022-11-02 20:14:57 +01:00
if ( $ R:: detail_search && ref ( $ searchref ) eq "HASH" ) {
2021-12-30 12:05:56 +01:00
store $ searchref , $ hashfile ;
2022-11-02 20:14:57 +01:00
} elsif ( ! $ R:: detail_search && - f $ hashfile && ( $ path =~ /letzte Suche/ ) ) {
2022-11-14 21:16:22 +01:00
#}elsif(!$R::detail_search && -f $hashfile && ($path =~ /letzte Suche/ || $R::select_part || $R::ct_trans || $R::trans2edit || $R::node2edit || $R::base_edit || $R::rel_edit || $R::set_state)){
2021-12-30 12:05:56 +01:00
$ searchref = { } ;
$ searchref = retrieve ( $ hashfile ) ;
2022-11-02 20:14:57 +01:00
$ tplids = $ searchref - > { tplids } if ( $ searchref - > { tplids } ) ;
2021-12-30 12:05:56 +01:00
}
2022-11-02 20:14:57 +01:00
#print Dumper($searchref);exit;
$ rows = $ db - > count_content ( $ table , "$main_ids" , "$tplids" ) ;
2021-12-30 12:05:56 +01:00
2022-11-02 20:14:57 +01:00
#Verkaufsjournal default view
2022-08-11 11:42:24 +02:00
if ( $ node_meta - > { tpl_id } == 209 && $ v_journal && ! $ R:: detail_search ) {
2022-11-02 20:14:57 +01:00
$ searchref - > { start_pay_time } = $ start_date_time ;
$ searchref - > { end_pay_time } = $ end_date_time ;
}
if ( 1 == 2 && $ node_meta - > { tpl_id } == 209 && $ v_journal && ! $ R:: detail_search ) {
2022-08-11 11:42:24 +02:00
my $ pref_209 = {
table = > "contenttrans" ,
fetch = > "one" ,
order = > "int11" ,
state = > "Tagesabschluss" ,
} ;
$ last_ab = $ dbt - > fetch_tablerecord ( $ dbh , $ pref_209 ) ;
$ searchref - > { int11 } = $ last_ab - > { int11 } if ( $ last_ab - > { int11 } ) ;
2021-12-30 12:05:56 +01:00
}
2022-08-11 11:42:24 +02:00
#print Dumper($last_ab->{int11});
2022-06-24 14:38:22 +02:00
#reload sig bikes and stations states
#$bw->log("Liste3 condition",$node_meta,"");
if ( $ varenv { syshost } eq "shareedms-sx" ) {
my $ ctadr = { c_id = > $ users_dms - > { u_id } } ;
if ( $ node_meta - > { tpl_id } == 205 || $ node_meta - > { node_name } eq "Waren" ) {
$ q - > param ( - name = > 'request' , - value = > "bikes_available" ) ;
( my $ response - > { bikes } , my $ return2copri - > { bikes } ) = $ si - > sig_available ( $ q , \ % varenv , $ ctadr ) ;
2022-07-27 14:38:06 +02:00
#$bw->log("return2copri",$return2copri->{bikes},"");
2022-06-24 14:38:22 +02:00
$ tk - > sigbike_cupdate ( $ return2copri - > { bikes } ) ;
} elsif ( $ node_meta - > { tpl_id } == 225 ) {
$ q - > param ( - name = > 'request' , - value = > "stations_available" ) ;
( my $ response - > { stations } , my $ return2copri - > { stations } ) = $ si - > sig_available ( $ q , \ % varenv , $ ctadr ) ;
2022-07-27 14:38:06 +02:00
#$bw->log("return2copri",$return2copri->{stations},"");
$ tk - > sigstation_cupdate ( $ return2copri - > { stations } ) ;
2022-06-24 14:38:22 +02:00
}
}
2022-12-02 07:25:27 +01:00
$ ct4rel = $ dbt - > search_content ( $ dbh , $ searchref , $ node_meta , $ users_dms , "$main_ids" , "$tplids" , "$ct_ids" , $ v_journal , $ ck4ex ) ;
2023-03-05 20:01:47 +01:00
$ feedb = $ pl - > export_csv ( $ node_meta , $ users_dms , $ ct4rel , $ coo ) if ( $ ck4ex ) ;
2022-08-12 08:52:33 +02:00
2022-11-02 20:14:57 +01:00
if ( $ node_meta - > { node_name } eq "Faktura" || $ tplids =~ /218/ ) {
2022-08-12 08:52:33 +02:00
my $ v_journalparts = "" ;
$ v_journalparts = $ v_journal . "_parts" ;
2022-12-02 07:25:27 +01:00
$ ct4rel_parts = $ dbt - > search_content ( $ dbh , $ searchref , $ node_meta , $ users_dms , "$main_ids" , "$tplids" , "$ct_ids" , $ v_journalparts , $ ck4ex ) ;
2022-08-12 08:52:33 +02:00
}
2021-12-30 12:05:56 +01:00
} #end $ct4rel collect
} else {
$ return = "failure::Abbruch. Keine Zugriffsberechtigung" ;
} #end permission read
my $ max_sum_pos = - 10000 ;
my $ max_op = ">=" ;
if ( $ searchref - > { int01 } =~ /\d/ ) {
$ max_sum_pos = $ searchref - > { int01 } ;
$ max_sum_pos =~ s/\s//g ;
$ max_sum_pos =~ s/,/./g ;
#$max_op = "==";
if ( $ max_sum_pos =~ /(\<\=|\>\=|\<|\>|\=\=)(\d+)/ ) {
$ max_op = $ 1 ;
$ max_sum_pos = $ 2 ;
}
}
print $ q - > div ( { - style = > 'background-color:silver;height:10px;' } , " " ) , "\n" ;
2022-09-28 13:28:45 +02:00
2021-12-30 12:05:56 +01:00
my $ hstyle = "border-right: solid thin gray;border-bottom: solid thin gray;" ;
2022-08-11 11:42:24 +02:00
2022-11-02 20:14:57 +01:00
#accounting workflow
if ( $ node_meta - > { node_name } eq "Verkaufsjournal" ) {
print "<div style='padding-bottom:5px;background-color:silver;'>\n" ;
if ( $ R:: accounting_select ) {
2022-11-09 15:17:55 +01:00
print $ but - > singlesubmit1 ( "detail_search" , "operator_accounting" , "" , "margin:0 0 0px 20px;" ) , "\n" ;
2022-11-02 20:14:57 +01:00
} else {
print $ q - > a ( { - class = > 'elinkbutton' , - style = > 'margin:0 0 2px 20px;' , - href = > '?accounting_select=1' } , "1. Einzüge selektieren" ) , "\n" ;
}
2023-01-30 20:59:19 +01:00
print "<b>$months[$mon -1] $year</b>\n" ;
2023-05-05 07:30:00 +02:00
print $ q - > span ( { - style = > 'font-size:0.81em;' } , " (1. selektiert Rechnungen mit Payone Einzug & kein OPOS & p-Saldo=0 & kein Storno & keine interne Bemerkung, alle anderen bitte manuell überprüfen und falls i.O. selektieren)" ) , "\n" ;
2022-11-02 20:14:57 +01:00
print "</div>\n" ;
2022-10-11 07:00:25 +02:00
}
2021-12-30 12:05:56 +01:00
print $ q - > hidden ( - name = > 'mandant_main_id' , - value = > "$dbt->{shareedms_conf}->{parent_id}" ) , "\n" ;
print $ q - > hidden ( - name = > 'tpl_id4trans' , - value = > "$node_meta->{tpl_id}" ) , "\n" ;
print $ q - > start_table ( { - style = > 'clear:both;' , - border = > '0' , - width = > '100%' , - align = > 'center' , - cellpadding = > '0' , - cellspacing = > '0' } ) , "\n" ;
2022-10-11 07:00:25 +02:00
#1. search line
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2022-11-09 15:17:55 +01:00
print $ q - > td ( { - style = > "background-color:silver;$hstyle" } , $ but - > singlesubmit1 ( "detail_search" , "search" , "" , "width:100%;" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
2023-03-05 20:01:47 +01:00
my $ edit = "base_edit" ;
my $ new_key = "new_content" ;
2021-12-30 12:05:56 +01:00
my $ a_color = $ node_meta - > { bg_color } || "yellow" ;
if ( $ table eq "contenttrans" ) {
$ edit = "ct_trans" ;
$ new_key = "new_trans" ;
}
2022-11-06 18:45:59 +01:00
if ( $ node_meta - > { parent_id } >= 200000 ) {
2021-12-30 12:05:56 +01:00
print $ q - > td ( { - style = > "width:25px;background-color:$a_color;$hstyle" } , $ but - > singlesubmit2glyph ( "$edit" , "$new_key" , "$ib{$new_key}" , "background-color:$a_color;" ) ) ;
print $ q - > hidden ( - name = > 'open_set_main_id' , - value = > "$node_meta->{main_id}" ) if ( $ table =~ /contenttrans/ ) ;
} else {
print $ q - > td ( { - class = > 'ebutton' , - style = > "width:25px;background-color:$a_color;$hstyle" } , " " ) , "\n" ;
}
#1. Search-fields
my $ h = 0 ;
2022-09-28 13:28:45 +02:00
my $ s_val = "" ;
2021-12-30 12:05:56 +01:00
foreach ( @ tpl_order ) {
$ h + + ;
my ( $ key , $ val , $ size ) = split /=/ , $ _ ;
2023-03-30 17:45:12 +02:00
if ( $ size !~ /select|readonly/ ) {
2021-12-30 12:05:56 +01:00
if ( $ size =~ /area/ ) {
2022-11-02 20:14:57 +01:00
$ size = "5em" ;
} elsif ( $ key =~ /int0|c_id|ct_name/ ) {
$ size = "1em" ; # if(!$size);
} else {
$ size = "2em" ;
2021-12-30 12:05:56 +01:00
}
2022-11-16 21:22:00 +01:00
}
2021-12-30 12:05:56 +01:00
$ s_val = $ searchref - > { $ key } ;
#print "$key=$searchref->{$key}|";
2022-04-20 12:07:48 +02:00
if ( $ key =~ /byte|node|txt|int|time\d+|ct_name|c_id|barcode|sort|public/ ) {
2021-12-30 12:05:56 +01:00
if ( $ table eq "content" && $ tpl_id == 225 && $ key eq "int04" ) {
print $ q - > td ( { - class = > "search_line" } , $ q - > textfield ( - class = > 'stxt' , - name = > "s_$key" , - default = > "$s_val" , - size = > "$size" , - maxlength = > 40 , - autofocus = > 1 ) , "\n" ) ;
} elsif ( $ table eq "content" && $ key eq "barcode" ) {
print $ q - > td ( { - class = > "search_line" } , $ q - > textfield ( - class = > 'stxt' , - name = > "s_$key" , - default = > "$s_val" , - size = > "$size" , - maxlength = > 40 , - autofocus = > 1 ) , "\n" ) ;
} elsif ( $ table =~ /contentadr|contenttrans/ && $ key eq "txt08" ) {
print $ q - > td ( { - class = > "search_line" } , $ q - > textfield ( - class = > 'stxt' , - name = > "s_$key" , - default = > "$s_val" , - size = > "$size" , - maxlength = > 40 , - autofocus = > 1 ) , "\n" ) ;
2022-07-12 19:59:44 +02:00
} elsif ( $ size =~ /select/ && $ key =~ /int12/ && $ tpl_id =~ /210/ ) { #Tarif for Flot
2021-12-30 12:05:56 +01:00
my @ s_valxx = ( "" ) ;
foreach my $ rid ( sort { $ bike_nodes - > { $ a } - > { node_name } cmp $ bike_nodes - > { $ b } - > { node_name } } keys ( %$ bike_nodes ) ) {
2023-03-16 15:13:19 +01:00
push ( @ s_valxx , "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name} - $dbt->{copri_conf}->{type_id}->{$bike_nodes->{$rid}->{type_id}}" ) ;
2021-12-30 12:05:56 +01:00
}
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector_class ( "s_$key" , "" , "" , $ s_val , @ s_valxx ) ) , "\n" ;
2023-03-30 17:45:12 +02:00
}
#txt24=bike_group
elsif ( $ size =~ /select/ && $ key =~ /txt24/ && $ tpl_id =~ /225/ ) {
2022-07-15 07:11:01 +02:00
#my %station_filter_hash = ();
2022-07-12 19:59:44 +02:00
my @ s_valxx = ( "" ) ;
foreach my $ rid ( sort { $ bike_nodes - > { $ a } - > { node_name } cmp $ bike_nodes - > { $ b } - > { node_name } } keys ( %$ bike_nodes ) ) {
2023-03-30 17:45:12 +02:00
push ( @ s_valxx , "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name}" ) ;
2022-07-12 19:59:44 +02:00
}
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector_class ( "s_$key" , "" , "" , $ s_val , @ s_valxx ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( $ size =~ /select/ && $ key =~ /int21|int22/ && $ tpl_id == 228 ) { #Bonusnummern
my @ s_valxx = ( "" ) ;
foreach my $ rid ( sort { $ tariff_all - > { $ a } - > { barcode } <=> $ tariff_all - > { $ b } - > { barcode } } keys ( %$ tariff_all ) ) {
2022-05-19 06:35:50 +02:00
push ( @ s_valxx , "$tariff_all->{$rid}->{barcode}:$tariff_all->{$rid}->{barcode} - $tariff_all->{$rid}->{ct_name}" ) ;
2021-12-30 12:05:56 +01:00
}
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector_class ( "s_$key" , "" , "" , $ s_val , @ s_valxx ) ) , "\n" ;
2022-11-16 21:22:00 +01:00
2023-03-30 17:45:12 +02:00
} elsif ( $ size =~ /select|readonly/ && $ key !~ /txt23|txt24/ ) { #txt23=color-code or txt24=Flotten ID select
2021-12-30 12:05:56 +01:00
my @ s_valxx = ( "" ) ;
my $ s_hash = { } ;
$ s_hash = $ dbt - > { copri_conf } - > { lock_state } if ( $ tpl_id == 205 && $ key eq "int20" ) ;
$ s_hash = $ dbt - > { copri_conf } - > { bike_state } if ( $ tpl_id == 205 && $ key eq "int10" ) ;
$ s_hash = $ dbt - > { copri_conf } - > { station_state } if ( $ tpl_id == 225 && $ key eq "int10" ) ;
$ s_hash = $ dbt - > { copri_conf } - > { lock_system } if ( $ tpl_id == 205 && $ key eq "int11" ) ;
$ s_hash = $ dbt - > { copri_conf } - > { sharing_type } if ( $ tpl_id == 210 && $ key eq "int18" ) ;
2023-03-30 17:45:12 +02:00
$ s_hash = $ dbt - > { copri_conf } - > { type_id } if ( $ tpl_id == 225 && $ key eq "txt25" ) ;
2022-03-14 17:37:49 +01:00
$ s_hash = { 1 = > 1 , 2 = > 2 , 3 = > 3 , 4 = > 4 } if ( $ tpl_id == 225 && $ key eq "txt07" ) ;
foreach my $ s_key ( sort keys ( % { $ s_hash } ) ) {
push @ s_valxx , "$s_key:$s_hash->{$s_key}" ; #[2:unlocked]
2021-12-30 12:05:56 +01:00
}
2023-07-07 08:50:13 +02:00
if ( scalar @ s_valxx < 2 ) {
print $ q - > td ( { - class = > 'search_line' , readonly = > } , "" ) , "\n" ;
} else {
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector_class ( "s_$key" , "" , "" , $ s_val , @ s_valxx ) ) , "\n" ;
}
2021-12-30 12:05:56 +01:00
} else {
2023-03-30 17:45:12 +02:00
print $ q - > td ( { - class = > "search_line" } , $ q - > textfield ( - class = > 'stxt' , - name = > "s_$key" , - default = > "$s_val" , - size = > "$size" , - maxlength = > 40 ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
} elsif ( $ key =~ /owner/ ) {
2022-08-12 08:52:33 +02:00
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector ( "s_$key" , "120px" , "$s_val" , @ _users ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( $ key =~ /state/ ) {
2022-10-14 08:28:51 +02:00
my @ _states = split ( /\|/ , $ dbt - > { shareedms_conf } - > { payment_state } ) ;
my @ _orderstates = split ( /\|/ , $ dbt - > { shareedms_conf } - > { order_state } ) ;
2021-12-30 12:05:56 +01:00
push ( @ _states , @ _orderstates ) ;
2022-08-12 08:52:33 +02:00
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector ( "s_$key" , "120px" , "$s_val" , @ _states ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
2022-11-02 20:14:57 +01:00
my $ s_mtime = "" ;
my $ e_mtime = "" ;
2021-12-30 12:05:56 +01:00
if ( $ key eq "mtime" ) {
$ s_mtime = $ searchref - > { start_mtime } ;
$ e_mtime = $ searchref - > { end_mtime } ;
}
if ( $ key eq "atime" ) {
$ s_mtime = $ searchref - > { start_atime } ;
$ e_mtime = $ searchref - > { end_atime } ;
}
2022-11-02 20:14:57 +01:00
if ( $ key eq "pay_time" ) {
$ s_mtime = $ searchref - > { start_pay_time } ;
$ e_mtime = $ searchref - > { end_pay_time } ;
2021-12-30 12:05:56 +01:00
}
2022-12-02 07:25:27 +01:00
if ( $ key eq "warn_time" ) {
$ s_mtime = $ searchref - > { start_warn_time } ;
$ e_mtime = $ searchref - > { end_warn_time } ;
}
2021-12-30 12:05:56 +01:00
if ( $ key eq "date_time" ) {
$ s_mtime = $ searchref - > { start_date_time } ;
$ e_mtime = $ searchref - > { end_date_time } ;
}
2023-05-05 07:30:00 +02:00
print $ q - > td ( { - nowrap = > 1 , - class = > "search_line_date" } , $ q - > textfield ( - id = > 'datepicker1' , - class = > 'etxt' , - name = > "s_start_$key" , - default = > "$s_mtime" , - size = > "8" , - maxlength = > 10 ) , "<" , $ q - > textfield ( - id = > 'datepicker2' , - class = > 'etxt' , - name = > "s_end_$key" , - default = > "$e_mtime" , - size = > "8" , - maxlength = > 10 ) ) , "\n" if ( $ key =~ /time$/ ) ;
2021-12-30 12:05:56 +01:00
}
#2. Tableheader
print $ q - > Tr ( ) ;
#permissions
2022-08-16 06:44:58 +02:00
if ( $ users_dms_primary - > { int03 } == 2 && $ users_dms - > { int03 } == 2 ) {
2021-12-30 12:05:56 +01:00
print $ q - > td ( { - style = > "background-color:silver;" } , $ q - > checkbox ( - name = > 'toggle_all' , - checked = > '' , - value = > 'off' , - label = > '' , - title = > 'Alle auswählen' , - onclick = > 'CheckAll();' ) ) , "\n" ;
} else {
print $ q - > td ( { - style = > "background-color:silver;" } , " " ) , "\n" ;
}
my $ i = 0 ;
$ i += 2 ;
my $ sort_up = "up" ;
my $ sort_down = "down" ;
$ sort_up = "<b>$sort_up</b>" if ( $ users_dms - > { sort_updown } eq "up" ) ;
$ sort_down = "<b>$sort_down</b>" if ( $ users_dms - > { sort_updown } eq "down" ) ;
2022-12-02 07:25:27 +01:00
print $ q - > th ( $ q - > a ( { - class = > "sortnav" , - href = > "?sort_updown=up\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > 'Aufsteigend sortieren' } , "$sort_up" ) , "|" , $ q - > a ( { - class = > "sortnav" , - href = > "?sort_updown=down\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > 'Absteigend sortieren' } , "$sort_down" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
print $ q - > th ( "" ) , "\n" ;
2023-03-05 20:01:47 +01:00
2021-12-30 12:05:56 +01:00
foreach ( @ tpl_order ) {
my ( $ key , $ val , $ size , $ title ) = split /=/ , $ _ ;
my $ sort_title = " $title" ;
$ val = "<b>$val</b>" if ( $ key eq $ users_dms - > { col_sort } ) ;
2022-04-20 12:07:48 +02:00
if ( $ key =~ /byte|txt|time|node|int|time\d+|save|state|owner|c_id|ct_name|barcode|sort|public/ ) {
2021-12-30 12:05:56 +01:00
$ i + + ;
2023-01-30 20:59:19 +01:00
print $ q - > th ( { - nowrap = > 1 } , $ q - > a ( { - class = > "sortnav" , - href = > "?col_sort=$key\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "$sort_title" } , "$val" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
}
my $ tdcal = scalar @ tpl_order ;
2022-10-14 08:28:51 +02:00
if ( $ tpl_id == "205" ) {
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > 'background-color:silver;' } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > 'background-color:silver;' , - colspan = > 2 } , "$months[$mon -1] $year" ) , "\n" ;
print $ q - > td ( { - style = > "font-size:0.71em;padding:0;border:0px solid green;" , - colspan = > "$tdcal" , - nowrap = > "1" } , "$day4month" ) , "\n" ;
}
2023-03-22 08:24:08 +01:00
my $ sum_saldo = "0" ; my $ sum_opos = "0" ; my $ sum_abb = "0" ; my $ sum_ueb = "0" ; my $ sum_success = "0" ; my $ sum_SEPApayone = "0" ; my $ sum_CCpayone = "0" ; my $ sum_ausfall = "0" ; my $ sum_gutschrift = "0" ; my $ sum_einzugfail = "0" ; my $ sum_entgelt = "0" ; my $ sum_abr = "0" ; my $ close_time = "" ; my $ payment_time = "" ;
2021-12-30 12:05:56 +01:00
my $ nr = 0 ; my $ nx = 0 ;
#BIG LOOP loop content table
foreach my $ id ( sort {
if ( $ users_dms - > { sort_updown } eq "down" ) {
if ( $ scol =~ /barcode|int/ ) {
$ ct4rel - > { $ b } - > { $ scol } <=> $ ct4rel - > { $ a } - > { $ scol }
} else {
lc ( $ ct4rel - > { $ b } - > { $ scol } ) cmp lc ( $ ct4rel - > { $ a } - > { $ scol } )
}
} else {
if ( $ scol =~ /barcode|int/ ) {
$ ct4rel - > { $ a } - > { $ scol } <=> $ ct4rel - > { $ b } - > { $ scol }
} else {
lc ( $ ct4rel - > { $ a } - > { $ scol } ) cmp lc ( $ ct4rel - > { $ b } - > { $ scol } )
}
}
} keys ( %$ ct4rel ) ) {
2022-02-04 15:42:58 +01:00
my $ set_style = "" ;
my $ set_style4nr = "" ;
my $ sum_error = 0 ;
2021-12-30 12:05:56 +01:00
my $ ecol = 0 ;
2022-06-24 14:38:22 +02:00
my $ lock_system = 2 ; #defaults to Ilockit
$ lock_system = $ ct4rel - > { $ id } - > { int11 } if ( $ ct4rel - > { $ id } - > { int11 } ) ;
2021-12-30 12:05:56 +01:00
# check sum_pos and sum_buchen
2022-05-01 18:31:03 +02:00
my $ sum_pos = 0 ;
2022-04-30 08:12:55 +02:00
my $ pricing = { } ;
my $ counting = { } ;
2022-11-02 20:14:57 +01:00
#pre-sum only if client invoice
2023-01-30 20:59:19 +01:00
if ( $ ct4rel - > { $ id } - > { template_id } == 218 && $ ct4rel - > { $ id } - > { int10 } != 2 && $ users_dms - > { faksum } == 1 ) {
2021-12-30 12:05:56 +01:00
foreach my $ cpid ( keys ( %$ ct4rel_parts ) ) {
2022-05-01 18:31:03 +02:00
if ( $ ct4rel - > { $ id } - > { c_id } == $ ct4rel_parts - > { $ cpid } - > { ct_id } ) {
2022-04-30 08:12:55 +02:00
if ( $ ct4rel_parts - > { $ cpid } - > { int35 } && $ ct4rel_parts - > { $ cpid } - > { start_time } && $ ct4rel_parts - > { $ cpid } - > { end_time } ) {
2023-04-17 15:30:19 +02:00
( $ pricing , $ counting ) = $ pri - > counting_rental ( \ % varenv , $ ct4rel_parts - > { $ cpid } ) ;
2022-05-01 18:31:03 +02:00
$ sum_pos += $ pricing - > { total_price }
2022-04-30 08:12:55 +02:00
} elsif ( ( looks_like_number ( $ ct4rel_parts - > { $ cpid } - > { int02 } ) && $ ct4rel_parts - > { $ cpid } - > { int02 } != 0 ) && ( looks_like_number ( $ ct4rel_parts - > { $ cpid } - > { int03 } ) && $ ct4rel_parts - > { $ cpid } - > { int03 } != 0 ) ) {
2022-05-01 18:31:03 +02:00
my ( $ gesamt , $ rabatt ) = $ pri - > price2calc ( $ ct4rel_parts - > { $ cpid } ) ;
$ sum_pos += $ gesamt ;
2022-04-30 08:12:55 +02:00
}
}
2021-12-30 12:05:56 +01:00
}
my $ sum_chk = $ ct4rel - > { $ id } - > { int01 } ;
$ sum_pos = $ lb - > round ( $ sum_pos ) ;
2022-11-02 20:14:57 +01:00
$ sum_pos = sprintf ( '%.2f' , $ sum_pos ) ;
2022-05-01 18:31:03 +02:00
my $ sum_chkdiff = $ sum_chk - $ sum_pos ;
2021-12-30 12:05:56 +01:00
if ( $ ct4rel - > { $ id } - > { int01 } && ( $ sum_pos ne $ sum_chk ) && ( $ sum_chkdiff > 0.02 || $ sum_chkdiff < - 0.02 ) ) {
$ sum_error = "1" ;
}
$ sum_error = "0" if ( $ R:: s_kontext && $ R:: s_kontext eq "Waren" || $ R:: node2edit || $ R:: ct_trans ) ;
}
my $ u_name = $ ct4rel - > { $ id } - > { owner } ;
foreach my $ ctu_id ( keys ( %$ ct_users ) ) {
if ( $ channel_map - > { $ u_name } ) {
$ u_name = $ channel_map - > { $ u_name } ;
} elsif ( $ ct4rel - > { $ id } - > { owner } eq $ ct_users - > { $ ctu_id } - > { c_id } ) {
$ u_name = $ ct_users - > { $ ctu_id } - > { txt01 } ;
}
}
#print $q->start_form(-name=>'listeform');
2022-10-11 07:00:25 +02:00
if ( 1 == 1 ) {
2021-12-30 12:05:56 +01:00
if ( 1 == 1 ) {
$ nr + + ;
$ nx = $ nr ;
$ close_time = $ ct4rel - > { $ id } - > { close_time } if ( $ ct4rel - > { $ id } - > { close_time } ) ;
$ close_time = $ lb - > time4de ( $ close_time , "1" ) if ( $ close_time ) ;
$ payment_time = "" ;
if ( $ ct4rel - > { $ id } - > { payment_time } ) {
$ payment_time = $ ct4rel - > { $ id } - > { payment_time } ;
$ payment_time = $ lb - > time4de ( $ payment_time , "1" ) ;
}
2022-11-02 20:14:57 +01:00
$ sum_saldo += $ ct4rel - > { $ id } - > { int16 } if ( $ ct4rel - > { $ id } - > { state } ) ;
2023-03-22 08:24:08 +01:00
$ sum_opos += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { int14 } >= 1 && ( $ ct4rel - > { $ id } - > { state } !~ /ausfall|fehlgeschlagen/i ) ) ;
2021-12-30 12:05:56 +01:00
$ sum_abb += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /Abbuchung/ ) ;
$ sum_ueb += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /Überweisung/ ) ;
$ sum_SEPApayone += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /SEPA.*payone|Zahlungseingang.*payone/ ) ;
$ sum_CCpayone += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /Kreditkarte.*payone/ ) ;
$ sum_ausfall += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /Zahlungsausfall/ ) ;
2023-03-22 08:24:08 +01:00
$ sum_gutschrift += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /Gutschrift/ ) ;
$ sum_einzugfail += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /fehlgeschlagen/i ) ;
2023-01-23 12:56:14 +01:00
$ sum_entgelt += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /Entgelt/ ) ;
$ sum_abr -= $ ct4rel - > { $ id } - > { int02 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /Abrechnung/ ) ;
2021-12-30 12:05:56 +01:00
$ c_id4csv . = "$ct4rel->{$id}->{c_id}," ;
$ ct4rel - > { $ id } - > { ct_name } = $ q - > unescapeHTML ( $ ct4rel - > { $ id } - > { ct_name } ) || "" ;
$ ct4rel - > { $ id } - > { c_id } = $ q - > unescapeHTML ( $ ct4rel - > { $ id } - > { c_id } ) || "" ;
$ set_style = "background-color:#fcfdfb;" ;
$ set_style = "background-color:#f4f1ee;" if ( $ nx % = 2 ) ;
#$set_style = "background-color:#e4f1ee;" if($ct4rel->{$id}->{ct_name} eq $ct4rel->{$id}->{barcode});
my $ ccc_id = $ R:: c_id || $ R:: c_id4trans || $ users_dms - > { c_id4trans } ;
$ set_style = "background-color:$node_meta->{bg_color};" if ( ( $ R:: rel_id && $ R:: rel_id eq $ ct4rel - > { $ id } - > { rel_id } ) && ! $ R:: empty_rel_id ) ;
$ set_style = "background-color:$node_meta->{bg_color};" if ( ( $ ccc_id && $ ccc_id eq $ ct4rel - > { $ id } - > { content_id } ) && ( "$table" =~ /contenttrans/ ) ) ;
$ set_style = "background-color:$node_meta->{bg_color};" if ( ( $ ccc_id && $ ccc_id eq $ ct4rel - > { $ id } - > { content_id } ) && ( "$table" =~ /contenttver/ ) ) ;
#red
$ set_style = "background-color:#d39c9c;" if ( $ sum_error && $ sum_error == 1 && $ node_meta - > { node_name } eq "Faktura" ) ;
$ set_style4nr = $ set_style ;
my $ m_id ;
#Instanz Buttons-Logic
print $ q - > Tr ( ) , "\n" ;
#checkboxes
#permissions
2022-09-15 17:06:08 +02:00
if ( $ users_dms_primary - > { int03 } == 2 && $ users_dms - > { int03 } == 2 ) {
2022-10-18 20:15:11 +02:00
my $ checked = 0 ;
2023-05-05 07:30:00 +02:00
if ( $ R:: accounting_select && $ node_meta - > { template_id } == 209 && $ ct4rel - > { $ id } - > { int01 } > 0 && $ ct4rel - > { $ id } - > { state } =~ /payone/i && ! $ ct4rel - > { $ id } - > { int14 } && $ ct4rel - > { $ id } - > { int16 } == 0 && ! $ ct4rel - > { $ id } - > { txt22 } && $ ct4rel - > { $ id } - > { int18 } eq "1" ) {
2023-07-07 08:50:13 +02:00
$ checked = 1 ;
2023-05-05 07:30:00 +02:00
}
2022-10-18 20:15:11 +02:00
print $ q - > td ( { - style = > "background-color:silver;" } , $ q - > checkbox ( - name = > "ck4ex" , - checked = > "$checked" , - value = > "$ct4rel->{$id}->{c_id}" , - label = > '' ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
} else {
print $ q - > td ( { - style = > "background-color:silver;" } , " " ) , "\n" ;
}
#1.Spalte
if ( "$ct4rel->{$id}->{main_id}" eq "$node_meta->{main_id}" || "$ct4rel->{$id}->{main_id}" eq "$node_meta->{parent_id}" ) {
if ( $ table =~ /content$|contentadr|contentnel/ ) {
$ ecol + + ;
print "<td class='tb_inst' style='$set_style' nowrap>\n" ;
2022-09-20 16:13:45 +02:00
#fee2pos
if ( $ table eq "content" && ( $ ct4rel - > { $ id } - > { template_id } =~ /229/ ) && $ R:: ca_id && $ R:: ct_id ) {
2022-12-06 19:57:49 +01:00
print $ q - > a ( { - class = > "editnav" , - href = > "/$dbt->{shareedms_conf}->{parent_node}/Mietjournal?insert_contenttranspos=1\&cc_id=$ct4rel->{$id}->{c_id}\&ca_id=$R::ca_id\&ct_id=$R::ct_id\&owner=$users_dms->{u_id}" , - title = > "Gebühr hinzufügen" } , $ q - > span ( { - class = > "bi bi-clipboard2-plus" , - style = > 'font-size:1.5em;' } ) ) ;
2021-12-30 12:05:56 +01:00
}
2022-09-20 16:13:45 +02:00
2021-12-30 12:05:56 +01:00
if ( $ table eq "content" && ( $ ct4rel - > { $ id } - > { template_id } =~ /205|225/ ) ) {
my $ rnid = $ ct4rel - > { $ id } - > { rel_id } ;
my $ node_names = "failure $rnid | $relnod->{$rnid}->{content_id} == $ct4rel->{$id}->{c_id}" ;
if ( $ relnod - > { $ rnid } - > { content_id } && $ relnod - > { $ rnid } - > { content_id } == $ ct4rel - > { $ id } - > { c_id } ) {
$ node_names = $ relnod - > { $ rnid } - > { node_name } ;
} else {
my $ subnode = $ dbt - > get_subrelnode ( $ dbh , $ node_meta - > { main_id } ) ;
$ node_names = $ subnode - > { node_name } ;
}
my $ search_key = "s_barcode=$ct4rel->{$id}->{barcode}" ; #bike
$ search_key = "s_int04=$ct4rel->{$id}->{int04}" if ( $ ct4rel - > { $ id } - > { template_id } == 225 ) ; #station
2022-12-06 19:57:49 +01:00
print $ q - > a ( { - class = > "editnav" , - href = > "$path/$node_names?detail_search=1\&$search_key" , - title = > "zur Liste der Rad $ct4rel->{$id}->{barcode} Servicearbeiten" } , $ q - > span ( { - class = > "bi bi-wrench" } ) ) ;
2021-12-30 12:05:56 +01:00
}
##
print "</td>\n" ;
2023-07-07 08:50:13 +02:00
} elsif ( $ users_dms - > { u_id } > 0 && $ table eq "contenttrans" ) {
my $ accounting_id = "" ;
$ accounting_id = "AbrID $ct4rel->{$id}->{int20}" if ( $ ct4rel - > { $ id } - > { int20 } ) ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$set_style; color:grey;" , - nowrap = > 1 } , "$accounting_id" ) , "\n" ;
2021-12-30 12:05:56 +01:00
} else {
$ ecol + + ;
print $ q - > td ( { - style = > "$set_style" } ) , "\n" ;
}
} elsif ( $ ct4rel - > { $ id } - > { content_id } && ! $ v_journal ) {
#2017-11-10 simple multi node_name directory view
$ ecol + + ;
my $ rnid = $ ct4rel - > { $ id } - > { rel_id } ;
my $ node_names = "failure $rnid | $relnod->{$rnid}->{content_id} == $ct4rel->{$id}->{c_id}" ;
if ( $ relnod - > { $ rnid } - > { content_id } && $ relnod - > { $ rnid } - > { content_id } == $ ct4rel - > { $ id } - > { c_id } ) {
$ node_names = $ relnod - > { $ rnid } - > { node_name } ;
} else {
my $ subnode = $ dbt - > get_subrelnode ( $ dbh , $ node_meta - > { main_id } ) ;
$ node_names = $ subnode - > { node_name } ;
}
#node_names fails TODO
if ( 1 == 1 && $ table eq "content" && ( $ ct4rel - > { $ id } - > { template_id } =~ /205|225/ ) ) {
my $ search_key = "s_barcode=$ct4rel->{$id}->{barcode}" ; #bike
$ search_key = "s_int04=$ct4rel->{$id}->{int04}" if ( $ ct4rel - > { $ id } - > { template_id } == 225 ) ; #station
print $ q - > td ( { - class = > 'tdtxt' , - colspan = > 1 , - style = > "$set_style" , - nowrap = > 1 } , $ q - > a ( { - class = > "editnav" , - href = > "$path/$node_names?detail_search=1\&$search_key" , - title = > "zur Liste der Rad $ct4rel->{$id}->{barcode} Servicearbeiten $ct4rel->{$id}->{main_id}" } , "$node_names" ) ) , "\n" ;
} else {
2023-01-25 07:25:12 +01:00
print $ q - > td ( { - class = > 'tdtxt' , - colspan = > 1 , - style = > "$set_style" , - nowrap = > 1 } , "$ct4rel->{$id}->{txt00}" ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
} else {
$ ecol + + ;
print $ q - > td ( { - class = > 'element' , - colspan = > 1 , - style = > "$set_style" } , "" ) , "\n" ;
}
$ ecol + + ;
#2.Spalte
my $ ny = "" ;
if ( $ table eq "contentadr" && ( $ ct4rel - > { $ id } - > { int12 } || ! $ ct4rel - > { $ id } - > { int04 } || ! $ ct4rel - > { $ id } - > { int13 } ) ) {
print $ q - > td ( { - class = > 'tdicon' , - style = > "$set_style color:red;" } , "•" , "\n" ) if ( $ ecol <= "2" ) ;
2023-01-23 12:56:14 +01:00
} elsif ( $ table eq "contenttrans" && ( $ ct4rel - > { $ id } - > { int14 } && $ ct4rel - > { $ id } - > { int14 } >= 1 ) ) {
2021-12-30 12:05:56 +01:00
print $ q - > td ( { - class = > 'tdicon' , - style = > "$set_style color:red;" } , "•" , "\n" ) if ( $ ecol <= "2" ) ;
} elsif ( $ table eq "content" && $ ct4rel - > { $ id } - > { template_id } == 227 ) {
my $ dir_thumb = "$varenv{data}/$node_meta->{main_id}-thumb/$ct4rel->{$id}->{c_id}" ;
my @ pics = $ lb - > read_dirfiles ( $ dir_thumb , "\.JPG|\.PNG" , "file" , "" ) ;
my $ dir_main = "$varenv{data}/$node_meta->{main_id}/$ct4rel->{$id}->{c_id}" ;
my @ docs = $ lb - > read_dirfiles ( $ dir_main , "\.HTML" , "file" , "" ) ;
print "<td class='tdtxt' style='$set_style' nowrap>\n" ;
if ( - d "$dir_thumb" && scalar ( @ pics ) > 0 ) {
foreach ( @ pics ) {
print $ q - > span ( $ q - > img ( { - style = > 'max-width:75px;' , - src = > "$varenv{metahost}/data/$node_meta->{main_id}-thumb/$ct4rel->{$id}->{c_id}/$_" } , "$_" ) ) , "\n" ;
print $ q - > br ( ) , "\n" if ( scalar ( @ pics ) > 1 ) ;
}
}
print "</td>\n" ;
} else {
$ ny = $ nr if ( $ path =~ /letzte Suche/ ) ;
print $ q - > td ( { - class = > 'tdint' , - style = > "$set_style color:grey;" } , "$ny" ) , "\n" if ( $ ecol <= "2" ) ;
}
#Tablecontent (parameter)
$ k = 0 ;
foreach ( @ tpl_order ) {
$ k + + ;
my ( $ key , $ val , $ size , $ colorize ) = split /=/ , $ _ ;
my $ txtstyle = "text-align:left;" ;
2022-04-20 12:07:48 +02:00
if ( $ key =~ /barcode|c_id|ct_name|int|time\d+|state|sort|public/ ) {
2021-12-30 12:05:56 +01:00
$ txtstyle = "text-align:right;max-width:8em;" ;
}
2022-04-20 12:07:48 +02:00
$ ct4rel - > { $ id } - > { $ key } = $ lb - > time4de ( $ ct4rel - > { $ id } - > { $ key } , "1" ) if ( $ key =~ /time$/ ) ;
2023-01-11 06:55:55 +01:00
#$ct4rel->{$id}->{$key} = $q->unescapeHTML($ct4rel->{$id}->{$key});# if($key !~ /byte/);
#my $br4text = $R::node2edit || "";
#$ct4rel->{$id}->{$key} = $lb->newline($ct4rel->{$id}->{$key},"","$br4text");
2021-12-30 12:05:56 +01:00
$ set_style4nr = $ set_style ;
$ set_style4nr = "background-color:#e3dbc9;" if ( ( $ key eq "barcode" ) || ( $ key eq "int04" ) ) ;
$ ct4rel - > { $ id } - > { $ key } =~ s/\./,/ if ( $ key =~ /int/ ) ;
2022-11-16 21:22:00 +01:00
if ( $ key eq "c_id" ) {
2021-12-30 12:05:56 +01:00
my $ pos_hash = $ ct4rel - > { $ id } ;
my $ pos_details = "" ;
foreach my $ did ( sort keys ( % { $ pos_hash } ) ) {
my $ teaser = "" ;
if ( $ pos_hash - > { $ did } ) {
$ teaser = substr ( $ pos_hash - > { $ did } , 0 , 30 ) ;
}
2022-11-16 21:22:00 +01:00
$ pos_details . = $ did . " = " . $ teaser . "</br>" if ( $ pos_hash - > { $ did } ) ;
2021-12-30 12:05:56 +01:00
}
2022-11-16 21:22:00 +01:00
my $ pos_id = "$ct4rel->{$id}->{c_id}" ;
2022-12-06 19:57:49 +01:00
if ( $ users_dms_primary - > { u_id } && $ dbt - > { copri_conf } - > { contributors } && $ users_dms_primary - > { u_id } =~ /$dbt->{copri_conf}->{contributors}/ ) {
2022-11-16 21:22:00 +01:00
$ pos_id = $ q - > div ( { - class = > "popup" , - onclick = > "toggle_box('$id')" } , "$ct4rel->{$id}->{c_id}" , $ q - > span ( { - class = > "popuptext" , - id = > "$id" } , "$pos_details" ) ) ;
}
2021-12-30 12:05:56 +01:00
print $ q - > td ( { - class = > 'tdtxt' , - style = > "font-weight:normal;$set_style4nr" } , "$pos_id" ) , "\n" ;
}
2022-11-16 21:22:00 +01:00
elsif ( $ key eq "ct_name" && $ ct4rel - > { $ id } - > { $ key } ) {
2021-12-30 12:05:56 +01:00
if ( $ table =~ /contenttrans|contenttver/ ) {
2022-12-02 07:25:27 +01:00
print $ q - > td ( { - class = > 'tdint' , - style = > "font-weight:normal;$set_style4nr" } , $ q - > a ( { - class = > "linknav3" , - href = > "?ct_trans=open\&mode=manager\&c_id4trans=$ct4rel->{$id}->{c_id}\&tpl_id4trans=$ct4rel->{$id}->{template_id}\&kind_of_trans=$node_meta->{node_name}\&owner=$users_dms->{u_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) ;
2021-12-30 12:05:56 +01:00
} elsif ( $ table =~ /content$|contentadr|contentnel/ ) {
2022-12-02 07:25:27 +01:00
print $ q - > td ( { - class = > "tdint" , - style = > "font-weight:normal;$set_style4nr" } , $ q - > a ( { - class = > "linknav3" , - href = > "?node2edit=editpart\&mode=manager\&rel_id=$ct4rel->{$id}->{rel_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( ( $ node_meta - > { tpl_order } !~ /barcode/ ) || ( "$ct4rel->{$id}->{$key}" ne "$ct4rel->{$id}->{barcode}" ) ) {
print $ q - > td ( { - class = > 'tdint' , - style = > "font-weight:bold;$set_style4nr" } , "$ct4rel->{$id}->{$key}" ) , "\n" ;
} else {
print $ q - > td ( { - class = > 'tdint' , - style = > "font-weight:bold;$set_style4nr" } , "" ) , "\n" ;
}
2023-07-07 08:50:13 +02:00
} elsif ( $ key eq "int13" && $ table eq "contenttrans" ) {
my $ pref_rel = {
table = > "contenttrans" ,
fetch = > "all" ,
keyfield = > "c_id" ,
template_id = > "IN::(209,218)" ,
barcode = > $ ct4rel - > { $ id } - > { barcode } ,
} ;
my $ ctt_rel = "" ;
$ ctt_rel = $ dbt - > fetch_record ( $ dbh , $ pref_rel ) if ( $ ct4rel - > { $ id } - > { barcode } ) ;
print "<td class='tdint' style='$set_style4nr' nowrap>\n" ;
if ( ref ( $ ctt_rel ) eq "HASH" ) {
foreach my $ irid ( sort { $ ctt_rel - > { $ b } - > { c_id } <=> $ ctt_rel - > { $ a } - > { c_id } } keys ( %$ ctt_rel ) ) {
if ( $ ct4rel - > { $ id } - > { c_id } != $ ctt_rel - > { $ irid } - > { c_id } ) {
my $ rel_opos = "" ;
$ rel_opos = "<span style='color:red'>•</span>" if ( $ ctt_rel - > { $ irid } - > { int14 } ) ;
print $ q - > a ( { - class = > "linknav3" , - href = > "/$dbt->{shareedms_conf}->{parent_node}/Faktura/$ctt_rel->{$irid}->{node_name}?ct_trans=open\&c_id4trans=$ctt_rel->{$irid}->{c_id}\&tpl_id4trans=$ctt_rel->{$irid}->{template_id}\&owner=$users_dms->{u_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "Terminal öffnen" } , "$rel_opos $ctt_rel->{$irid}->{ct_name}<br />" ) ;
}
}
}
print "</td>\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( $ key =~ /txt01/ && $ table =~ /contenttrans|contenttver/ ) {
2022-12-02 07:25:27 +01:00
print $ q - > td ( { - class = > 'tdtxt' , - style = > "font-weight:normal;$set_style4nr" } , $ q - > a ( { - class = > "linknav3" , - href = > "?ct_trans=open\&mode=manager\&c_id4trans=$ct4rel->{$id}->{c_id}\&tpl_id4trans=$ct4rel->{$id}->{template_id}\&kind_of_trans=$node_meta->{node_name}\&owner=$users_dms->{u_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
2022-08-06 10:47:06 +02:00
} elsif ( $ key =~ /txt01/ && $ table =~ /content$|contentadr/ ) { # && $lock_system != 3){
2021-12-30 12:05:56 +01:00
my $ txt01 = "---" ;
$ txt01 = "$ct4rel->{$id}->{$key}" if ( $ ct4rel - > { $ id } - > { $ key } ) ;
2022-12-02 07:25:27 +01:00
print $ q - > td ( { - class = > 'tdtxt' , - style = > "font-weight:normal;$set_style4nr" } , $ q - > a ( { - class = > "linknav3" , - href = > "?node2edit=editpart\&mode=manager\&rel_id=$ct4rel->{$id}->{rel_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "Terminal öffnen" } , "$txt01" ) ) , "\n" ;
2022-08-06 10:47:06 +02:00
} elsif ( $ key =~ /barcode/ && $ table =~ /content$|contentadr/ && $ ct4rel - > { $ id } - > { template_id } != 225 ) { # && $lock_system != 3){
2022-12-02 07:25:27 +01:00
print $ q - > td ( { - class = > 'tdint' , - style = > "font-weight:normal;$set_style4nr" } , $ q - > a ( { - class = > "linknav3" , - href = > "?node2edit=editpart\&mode=manager\&rel_id=$ct4rel->{$id}->{rel_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
2022-08-06 10:47:06 +02:00
} elsif ( $ key =~ /int04/ && $ table eq "content" && $ ct4rel - > { $ id } - > { template_id } == 225 ) { # && $lock_system != 3){
2022-12-02 07:25:27 +01:00
print $ q - > td ( { - class = > 'tdint' , - style = > "font-weight:normal;$set_style4nr" } , $ q - > a ( { - class = > "linknav3" , - href = > "?node2edit=editpart\&mode=manager\&rel_id=$ct4rel->{$id}->{rel_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
2022-08-06 10:47:06 +02:00
} elsif ( $ key =~ /int04/ && $ table eq "content" && $ ct4rel - > { $ id } - > { template_id } == 205 ) { # && $lock_system != 3){
2022-12-21 15:03:45 +01:00
print $ q - > td ( { - class = > 'tdint' , - style = > "font-weight:normal;" } , $ q - > a ( { - class = > "linknav3" , - style = > "" , - href = > "?detail_search=1&s_int04=$ct4rel->{$id}->{$key}" , - title = > "$record_st->{$ct4rel->{$id}->{int04}}->{txt01} | Station Filter" } , "$ct4rel->{$id}->{$key}" ) ) ;
2021-12-30 12:05:56 +01:00
} elsif ( $ key =~ /date_time/ ) {
$ ct4rel - > { $ id } - > { start_time } = $ lb - > time4de ( $ ct4rel - > { $ id } - > { start_time } , "1" ) if ( $ ct4rel - > { $ id } - > { start_time } ) ;
$ ct4rel - > { $ id } - > { end_time } = $ lb - > time4de ( $ ct4rel - > { $ id } - > { end_time } , "1" ) if ( $ ct4rel - > { $ id } - > { end_time } ) ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" , - nowrap = > 1 } , "$ct4rel->{$id}->{start_time} - $ct4rel->{$id}->{end_time}" ) , "\n" ;
2022-04-30 08:12:55 +02:00
} elsif ( $ key =~ /int01/ && ( $ node_meta - > { parent_id } == $ dbt - > { shareedms_conf } - > { faktura } || $ node_meta - > { main_id } == $ dbt - > { shareedms_conf } - > { faktura } ) ) {
2021-12-30 12:05:56 +01:00
if ( $ ct4rel - > { $ id } - > { state } eq "Kassenbestand" ) {
2022-04-30 08:12:55 +02:00
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "" ) , "\n" ;
2021-12-30 12:05:56 +01:00
} else {
2023-01-30 20:59:19 +01:00
my $ betrag = "" ;
if ( $ ct4rel - > { $ id } - > { $ key } ) {
$ betrag = $ ct4rel - > { $ id } - > { $ key } ;
} elsif ( $ users_dms - > { faksum } ) {
$ betrag = "∑ $sum_pos" ;
}
2021-12-30 12:05:56 +01:00
$ betrag = $ ct4rel - > { $ id } - > { $ key } if ( $ v_journal ) ;
$ betrag =~ s/\./,/ ;
2023-01-30 20:59:19 +01:00
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" , - nowrap = > 1 } , "$betrag" ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
2022-02-23 20:30:12 +01:00
} elsif ( $ key =~ /int02/ && $ ct4rel - > { $ id } - > { state } eq "Tagesabschluss" ) {
2022-04-30 08:12:55 +02:00
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "" ) , "\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( $ key =~ /int03/ && "$table" eq "contenttrans" ) {
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "" ) , "\n" ;
} elsif ( $ key =~ /mtime/ && $ ct4rel - > { $ id } - > { close_time } ) {
my $ close = "<br />$close_time TaAb." ;
my $ payment = "" ;
$ payment = "<br />$payment_time ZaEi." if ( $ payment_time ) ;
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "$ct4rel->{$id}->{$key} $close $payment" ) , "\n" ;
} elsif ( $ key =~ /owner/ ) {
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "$u_name" ) , "\n" ;
} elsif ( $ key =~ /state/ ) {
my $ order_state = "" ;
$ order_state = "$ct4rel->{$id}->{txt22}" if ( $ ct4rel - > { $ id } - > { txt22 } ) ;
$ order_state = "$ct4rel->{$id}->{txt22},<br />" if ( $ ct4rel - > { $ id } - > { txt22 } && $ ct4rel - > { $ id } - > { $ key } ) ;
my $ capture_state = "<span>$ct4rel->{$id}->{$key}</span>" ;
2022-02-15 13:17:10 +01:00
$ capture_state = "<span style='color:red;'>$ct4rel->{$id}->{$key}</span>" if ( $ ct4rel - > { $ id } - > { $ key } =~ /payone/ && $ ct4rel - > { $ id } - > { int14 } >= 1 ) ;
2021-12-30 12:05:56 +01:00
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "$order_state $capture_state" ) , "\n" ;
} elsif ( $ ct4rel - > { $ id } - > { template_id } =~ /205|225/ && $ key eq "int10" ) { #bike_state
my $ colorize = "" ;
$ colorize = "color:#c63e3e;" if ( $ ct4rel - > { $ id } - > { $ key } == 2 || $ ct4rel - > { $ id } - > { $ key } == 3 ) ;
$ colorize = "color:#bd2424;" if ( $ ct4rel - > { $ id } - > { $ key } == 4 || $ ct4rel - > { $ id } - > { $ key } == 5 || $ ct4rel - > { $ id } - > { $ key } == 6 ) ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style $colorize" } , "$dbt->{copri_conf}->{bike_state}->{$ct4rel->{$id}->{$key}}" ) , "\n" ;
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 205 && $ key eq "int20" ) { #lock_state
my $ colorize = "" ;
$ colorize = "color:#c63e3e;" if ( $ ct4rel - > { $ id } - > { $ key } == 2 || $ ct4rel - > { $ id } - > { $ key } == 3 ) ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style $colorize" } , "$dbt->{copri_conf}->{lock_state}->{$ct4rel->{$id}->{$key}}" ) , "\n" ;
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 205 && $ key eq "int11" ) { #lock_system
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$dbt->{copri_conf}->{lock_system}->{$ct4rel->{$id}->{$key}}" ) , "\n" ;
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 210 && $ key eq "int18" ) { #sharing_type
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$dbt->{copri_conf}->{sharing_type}->{$ct4rel->{$id}->{$key}}" ) , "\n" ;
2022-07-12 19:59:44 +02:00
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 210 && $ key eq "int12" ) {
2021-12-30 12:05:56 +01:00
my $ flotten = "" ;
foreach my $ rid ( sort { $ bike_nodes - > { $ a } - > { node_name } cmp $ bike_nodes - > { $ b } - > { node_name } } keys ( %$ bike_nodes ) ) {
2023-03-16 15:13:19 +01:00
$ flotten . = "$bike_nodes->{$rid}->{node_name} - $dbt->{copri_conf}->{type_id}->{$bike_nodes->{$rid}->{type_id}}<br />" if ( $ ct4rel - > { $ id } - > { $ key } =~ /$bike_nodes->{$rid}->{main_id}/ ) ;
2021-12-30 12:05:56 +01:00
}
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$flotten" ) , "\n" ;
2022-07-12 19:59:44 +02:00
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 225 && $ key eq "txt24" ) {
2022-07-15 07:11:01 +02:00
my $ flotten = "" ;
foreach my $ rid ( sort { $ bike_nodes - > { $ a } - > { node_name } cmp $ bike_nodes - > { $ b } - > { node_name } } keys ( %$ bike_nodes ) ) {
2023-03-30 17:45:12 +02:00
$ flotten . = "$bike_nodes->{$rid}->{node_name}<br />" if ( $ ct4rel - > { $ id } - > { $ key } =~ /$bike_nodes->{$rid}->{main_id}/ ) ;
2022-07-12 19:59:44 +02:00
}
2022-07-15 07:11:01 +02:00
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$flotten" ) , "\n" ;
2023-03-30 17:45:12 +02:00
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 225 && $ key eq "txt25" ) {
my % station_filter_hash = ( ) ;
if ( $ ct4rel - > { $ id } - > { txt25 } && $ ct4rel - > { $ id } - > { txt25 } =~ /\d\s\d/ ) {
% station_filter_hash = map { $ _ = > 1 } split ( /\s+/ , $ ct4rel - > { $ id } - > { txt25 } ) ;
} elsif ( $ ct4rel - > { $ id } - > { txt25 } && $ ct4rel - > { $ id } - > { txt25 } =~ /(\d+)/ ) {
$ station_filter_hash { $ 1 } = 1 ;
}
my $ station_filter = "" ;
foreach my $ type_id ( keys ( % station_filter_hash ) ) {
$ station_filter . = "$dbt->{copri_conf}->{type_id}->{$type_id}<br />" ;
}
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$station_filter" ) , "\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 228 && $ key =~ /int21|int22/ ) {
my $ bonustarif = "" ;
foreach my $ rid ( sort { $ tariff_all - > { $ a } - > { barcode } <=> $ tariff_all - > { $ b } - > { barcode } } keys ( %$ tariff_all ) ) {
2022-05-19 06:35:50 +02:00
$ bonustarif . = "$tariff_all->{$rid}->{barcode} - $tariff_all->{$rid}->{ct_name}<br />" if ( $ ct4rel - > { $ id } - > { $ key } == $ tariff_all - > { $ rid } - > { barcode } ) ;
2021-12-30 12:05:56 +01:00
}
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$bonustarif" ) , "\n" ;
2022-12-02 07:25:27 +01:00
} elsif ( $ key =~ /int|barcode/ ) {
2022-06-24 14:38:22 +02:00
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "$ct4rel->{$id}->{$key}" ) , "\n" ;
2022-12-02 07:25:27 +01:00
} elsif ( $ key =~ /time$/ ) {
my $ timeview = "" ;
$ timeview = $ ct4rel - > { $ id } - > { $ key } if ( $ ct4rel - > { $ id } - > { $ key } && $ ct4rel - > { $ id } - > { $ key } =~ /\d/ ) ;
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "$timeview" ) , "\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( $ key =~ /txt01/ && $ v_journal ) {
my $ txt01 = "$ct4rel->{$id}->{$key}" ;
$ txt01 = "<b>$txt01</b>" if ( $ ct4rel - > { $ id } - > { state } eq "Kassenbestand" ) ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$txt01" ) , "\n" ;
} elsif ( $ key =~ /txt03/ && $ ct4rel - > { $ id } - > { template_id } eq "227" ) {
2022-12-06 19:57:49 +01:00
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , $ q - > a ( { - style = > "color:black;" , - href = > "$varenv{metahost}/site/$ct4rel->{$id}->{$key}" , - target = > '_blank' , - title = > 'anzeigen' } , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
} elsif ( $ key =~ /txt00/ && $ v_journal ) {
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$ct4rel->{$id}->{$key}" ) , "\n" ;
} elsif ( $ key =~ /txt08/ && $ table eq "contentadr" ) {
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$ct4rel->{$id}->{$key}" ) , "\n" ;
#color code
} elsif ( $ ct4rel - > { $ id } - > { template_id } == 205 && $ key eq "txt23" ) {
my @ service_code = split ( /\s/ , $ ct4rel - > { $ id } - > { $ key } ) ;
my $ color_code = "" ;
foreach ( @ service_code ) {
$ color_code . = "<span class='coloricon' style='background-color:$_;'></span>" ;
}
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$color_code" ) , "\n" ;
#teaser shorts longtext
2022-12-16 08:37:05 +01:00
} elsif ( ( $ table eq "contentadr" && $ key =~ /txt29/ ) || ( $ table eq "content" && $ key =~ /txt04/ ) || ( $ table eq "contenttrans" && $ key =~ /txt23|txt28/ ) ) {
2021-12-30 12:05:56 +01:00
my $ teaser = "" ;
if ( $ ct4rel - > { $ id } - > { $ key } ) {
$ teaser = substr ( $ ct4rel - > { $ id } - > { $ key } , 0 , 50 ) . " ..." ;
}
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style; min-width:200px;" } , "$teaser" ) , "\n" ;
2023-03-16 15:13:19 +01:00
} elsif ( $ key eq "txt30" && $ node_meta - > { template_id } == 202 ) {
$ txtstyle = "text-align:left;" ;
my @ user_tarif = ( "$ct4rel->{$id}->{$key}" ) ;
@ user_tarif = split ( /\s/ , $ ct4rel - > { $ id } - > { $ key } ) if ( $ ct4rel - > { $ id } - > { $ key } =~ /\w\s+\w/ ) ;
my $ registered_tarif = "" ;
foreach ( @ user_tarif ) {
$ registered_tarif . = "$_ - $dbt->{copri_conf}->{sharing_type}->{$tariff_all->{$_}->{int18}} - $tariff_all->{$_}->{ct_name} - $bike_nodes->{$tariff_all->{$_}->{int12}}->{node_name} | " ;
}
#print $q->td({-class=>'tdtxt',-style=>"$txtstyle $set_style"},"$registered_tarif"),"\n";
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" , - title = > "$registered_tarif" } , "$ct4rel->{$id}->{$key}" ) , "\n" ;
2021-12-30 12:05:56 +01:00
#default to anything else
} elsif ( $ key =~ /ct_name|node|txt|uri/ ) {
$ txtstyle = "text-align:left;" ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$ct4rel->{$id}->{$key}" ) , "\n" ;
} elsif ( $ key =~ /byte/ ) {
#$ct4rel->{$id}->{$key} =~ s/\\x//;
my $ K_int = $ ct4rel - > { $ id } - > { $ key } ;
#$K_int =~ s/(.)/sprintf( "%x", ord($1))/eg;
my $ K_int = unpack "H*" , $ ct4rel - > { $ id } - > { $ key } ;
$ txtstyle = "text-align:left;" ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$K_int" ) , "\n" ;
2022-04-20 12:07:48 +02:00
} elsif ( $ key =~ /time\d+/ ) {
$ txtstyle = "text-align:right;" ;
$ ct4rel - > { $ id } - > { $ key } =~ s/:00$// ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , "$ct4rel->{$id}->{$key}" ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
}
}
#sub-table-row for rent Calendar
my $ cal_count = 0 ;
foreach my $ ctid ( sort { $ cttpos - > { $ b } - > { end_time } cmp $ cttpos - > { $ a } - > { end_time } } keys ( %$ cttpos ) ) {
if ( $ ct4rel - > { $ id } - > { c_id } == $ cttpos - > { $ ctid } - > { cc_id } ) {
$ cal_count + + ;
if ( $ cal_count <= 1 ) {
my $ scale_color = "#86cbd7;" ;
my $ calement = "calement_86cbd7" ;
if ( $ ct4rel - > { $ id } - > { int13 } == $ cttpos - > { $ ctid } - > { int13 } && $ cttpos - > { $ ctid } - > { int10 } == 7 ) {
$ scale_color = "#f0536e;" ;
$ calement = "calement_f0536e" ;
}
my ( $ year_st , $ mon_st , $ day_st , $ hh_st , $ mm_st ) = $ lb - > split_date ( $ cttpos - > { $ ctid } - > { start_time } ) if ( $ cttpos - > { $ ctid } - > { start_time } ) ;
my ( $ year_en , $ mon_en , $ day_en , $ hh_en , $ mm_en ) = $ lb - > split_date ( $ cttpos - > { $ ctid } - > { end_time } ) if ( $ cttpos - > { $ ctid } - > { end_time } ) ;
if ( $ year_st && $ mon_st && $ day_st && $ hh_st && $ mm_st && $ year_en && $ mon_en && $ day_en && $ hh_en && $ mm_en ) {
#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 ;
2022-11-14 21:16:22 +01:00
my $ time_style = "" ;
2021-12-30 12:05:56 +01:00
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;" ;
}
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > 'background-color:silver;' } , "" ) , "\n" ;
print $ q - > td ( { - class = > "$calement" , - colspan = > 2 , - style = > "$set_style;" } , "" ) , "\n" ;
print "<td class='$calement' colspan='$tdcal' style='$set_style;'>\n" ;
#print $q->div({-style=>"position:absolute;margin-left:$daymarker;border-right: solid thin #86cb00;height:1.7em;"}," "),"\n";# if("$mon" eq "$mon_today");
my $ calpath = "Mietjournal" ;
2022-11-14 21:16:22 +01:00
if ( 1 == 2 && $ ct4rel - > { $ id } - > { int13 } == $ cttpos - > { $ ctid } - > { int13 } && $ cttpos - > { $ ctid } - > { int10 } =~ /7|8/ ) {
2022-11-09 15:17:55 +01:00
$ calpath = "Alarmjournal" ;
$ time_style = "color:red;" ;
}
2022-11-14 21:16:22 +01:00
#print $q->div({-style=>"position:static;margin-left:$day_stpx;width:$rent_day_px;background-color:$scale_color"},$q->a({-class=>"linknav3",-style=>"$time_style",-href=>"$varenv{wwwhost}/DMS/$calpath/?cttpos_id=$cttpos->{$ctid}->{c_id}",-title=>"Im $calpath öffnen"},"$hh_en:$mm_en")),"\n";
print $ q - > div ( { - style = > "position:static;margin-left:$day_stpx;width:$rent_day_px;background-color:$scale_color" } , $ q - > a ( { - class = > "linknav3" , - style = > "$time_style" , - href = > "$varenv{wwwhost}/DMS/$calpath/?barcode=$cttpos->{$ctid}->{barcode}" , - title = > "Im $calpath öffnen" } , "$hh_en:$mm_en" ) ) , "\n" ;
2021-12-30 12:05:56 +01:00
print "</td>\n" ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > 'padding-top:1px;' } , "" ) , "\n" ;
}
}
}
}
}
} #journal offen ende
2022-11-02 20:14:57 +01:00
if ( ( $ nr > 0 ) && ( $ v_journal || $ R:: v_abschluss ) && ! $ R:: rel_id ) {
2023-01-23 12:56:14 +01:00
my $ m = $ k - 4 ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2023-01-23 12:56:14 +01:00
print $ q - > td ( { - class = > 'tdtxt' , - style = > 'text-align:center;background-color:silver;' , - colspan = > "$k" } , "Gesamt Umsätze" ) ;
2022-11-16 21:22:00 +01:00
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "4" , - style = > 'background-color:silver;' } , "" ) ;
2021-12-30 12:05:56 +01:00
2022-11-02 20:14:57 +01:00
if ( $ sum_saldo != 0 ) {
$ sum_saldo = sprintf ( '%.2f' , $ sum_saldo ) ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2022-11-02 20:14:57 +01:00
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "Saldo Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_saldo €" ) ;
2021-12-30 12:05:56 +01:00
}
2022-11-02 20:14:57 +01:00
if ( $ sum_opos != 0 ) {
$ sum_opos *= - 1 ;
$ sum_opos = sprintf ( '%.2f' , $ sum_opos ) ;
$ sum_success += $ sum_opos ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2022-11-02 20:14:57 +01:00
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "OPOS Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_opos €" ) ;
2021-12-30 12:05:56 +01:00
}
2022-11-02 20:14:57 +01:00
if ( $ sum_ueb != 0 ) {
$ sum_ueb = sprintf ( '%.2f' , $ sum_ueb ) ;
$ sum_success += $ sum_ueb ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2022-11-02 20:14:57 +01:00
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "Überweisung Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_ueb €" ) ;
2021-12-30 12:05:56 +01:00
}
2022-11-02 20:14:57 +01:00
if ( $ sum_SEPApayone != 0 ) {
$ sum_SEPApayone = sprintf ( '%.2f' , $ sum_SEPApayone ) ;
$ sum_success += $ sum_SEPApayone ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2022-11-02 20:14:57 +01:00
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "SEPA-Lastschrift (payone) Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_SEPApayone €" ) ;
2021-12-30 12:05:56 +01:00
}
2022-11-02 20:14:57 +01:00
if ( $ sum_CCpayone != 0 ) {
$ sum_CCpayone = sprintf ( '%.2f' , $ sum_CCpayone ) ;
$ sum_success += $ sum_CCpayone ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2022-11-02 20:14:57 +01:00
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "Kreditkarte (payone) Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_CCpayone €" ) ;
2021-12-30 12:05:56 +01:00
}
2023-03-22 08:24:08 +01:00
if ( $ sum_gutschrift != 0 ) {
$ sum_gutschrift *= - 1 ;
$ sum_gutschrift = sprintf ( '%.2f' , $ sum_gutschrift ) ;
$ sum_gutschrift += $ sum_gutschrift ;
$ sum_success += $ sum_gutschrift ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "Gutschrift Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_gutschrift €" ) ;
}
if ( $ sum_einzugfail != 0 ) {
$ sum_einzugfail *= - 1 ;
$ sum_einzugfail = sprintf ( '%.2f' , $ sum_einzugfail ) ;
$ sum_success += $ sum_einzugfail ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "fehlgeschlagener Einzug Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_einzugfail €" ) ;
}
2022-11-02 20:14:57 +01:00
if ( $ sum_ausfall != 0 ) {
$ sum_ausfall *= - 1 ;
$ sum_ausfall = sprintf ( '%.2f' , $ sum_ausfall ) ;
$ sum_success += $ sum_ausfall ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2022-11-02 20:14:57 +01:00
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "Zahlungsausfall Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_ausfall €" ) ;
2021-12-30 12:05:56 +01:00
}
2022-11-02 20:14:57 +01:00
if ( $ sum_success != 0 ) {
$ sum_success = sprintf ( '%.2f' , $ sum_success ) ;
2021-12-30 12:05:56 +01:00
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
2023-03-22 08:24:08 +01:00
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "Gesamtsumme" ) ;
2022-11-02 20:14:57 +01:00
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_success €" ) ;
2023-01-23 12:56:14 +01:00
}
#disabled, only useful by timerange
if ( 1 == 2 && $ sum_entgelt != 0 ) {
$ sum_entgelt = sprintf ( '%.2f' , $ sum_entgelt ) ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "Entgelt Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_entgelt €" ) ;
}
if ( 1 == 2 && $ sum_abr != 0 ) {
$ sum_abr = sprintf ( '%.2f' , $ sum_abr ) ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "$m" } , "Abrechnung Summe" ) ;
print $ q - > td ( { - class = > 'tdint' , - colspan = > "1" , - nowrap = > "1" } , "$sum_abr €" ) ;
2021-12-30 12:05:56 +01:00
}
if ( $ users_dms - > { u_id } ) {
if ( $ v_journal =~ /bericht/ && $ j_exist - > { main_id } ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - style = > "background-color:silver;" , - class = > 'tdsum' , - colspan = > "$m" } , "Tagesabschluss" ) , "\n" ;
print $ q - > td ( { - style = > "background-color:silver;" , - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , $ but - > checkbox ( "1" , "close_trans" , "" , "Tagesbericht abschließen und in das Verkaufsjournal senden" ) , $ but - > singlesubmit ( "v_abschluss" , "Speichern" ) ) , "\n" ;
}
}
}
2022-11-06 18:45:59 +01:00
if ( $ varenv { dbname } eq "sharee_kn" && $ node_meta - > { tpl_id } == 228 ) {
if ( - d "$opdir_dms/ftp/SWK_codes" ) {
my @ pdfs = $ lb - > read_dirfiles ( "$opdir_dms/ftp/SWK_codes" , "got_last\.csv" , "file" , "" ) ;
foreach ( @ pdfs ) {
print $ q - > Tr ( ) , "\n" ;
2022-12-06 19:57:49 +01:00
print $ q - > td ( { - class = > "tdtxt" , - colspan = > 10 } , "SWK Bonunsnummern download " , $ q - > a ( { - class = > 'linknav3' , - href = > "$varenv{wwwhost}/FileOut?file=$_&sessionid=$coo" , - target = > '_default' , - title = > 'Download' , - type = > 'application/octet-stream' } , $ q - > span ( { - class = > "bi bi-download" } ) , "\"$_\"" ) ) , "\n" ;
2022-11-06 18:45:59 +01:00
}
}
}
2021-12-30 12:05:56 +01:00
print $ q - > end_table ;
print $ q - > hidden ( - name = > 'tpl_id' , - override = > '1' , - value = > "$tpl_id" ) ;
print $ q - > end_form ;
2022-12-02 07:25:27 +01:00
my $ offset_nr = $ searchref - > { offset } + $ nr ;
2022-07-12 19:59:44 +02:00
my $ counter = $ rows ;
2022-12-02 07:25:27 +01:00
print $ q - > div ( { - style = > 'float:left;padding:6px 0 0 10px;' } , "Zeile: $searchref->{offset} - $offset_nr / $counter" ) ;
2021-12-30 12:05:56 +01:00
#backward | forward
print "<div style='padding:6px 0 0 10px;'>\n" ;
2022-12-02 07:25:27 +01:00
print $ q - > a ( { - class = > "linknav1" , - href = > "?go=backward_list;offset=$searchref->{offset};limit=$searchref->{limit}" , - title = > 'backward' } , "← " ) if ( $ searchref - > { offset } >= $ searchref - > { limit } ) ;
print $ q - > a ( { - class = > "linknav1" , - href = > "?go=forward_list;offset=$searchref->{offset};limit=$searchref->{limit}" , - title = > 'forward' } , " →" ) if ( $ counter >= $ limit - 10 ) ; #if($rows > $limit && $nr > 0);
2023-04-24 14:49:30 +02:00
print $ q - > span ( { - style = > 'color:silver;' } , " (offset:$searchref->{offset}, limit:$searchref->{limit})" ) ;
2021-12-30 12:05:56 +01:00
print "</div>\n" ;
2022-09-28 13:28:45 +02:00
print $ q - > div ( { - style = > '' } , " " ) , "\n" ;
2021-12-30 12:05:56 +01:00
print $ q - > div ( { - style = > 'padding:6px 0 6px 20px;text-decoration:underline;' } , "Symbol Legende" ) , "\n" ;
if ( $ table eq "contentadr" ) {
print $ q - > div ( { - style = > 'padding:0 20px;font-style:italic;' } , $ q - > span ( { - style = > 'padding:0.1em 0.8em;' , - style = > 'color:red;' } , "•" ) , "Der Verleih ist nicht freigeschaltet" ) , "\n" ;
} elsif ( $ table eq "contenttrans" ) {
print $ q - > div ( { - style = > 'padding:0 20px;font-style:italic;' } , $ q - > span ( { - style = > 'padding:0.1em 0.8em;' , - style = > 'color:red;' } , "•" ) , "payone error" ) , "\n" ;
2022-09-28 13:28:45 +02:00
} elsif ( $ table eq "content" && $ node_meta - > { tpl_id } =~ /205|225/ ) {
2022-12-06 19:57:49 +01:00
print $ q - > div ( { - style = > 'padding:0 20px;font-style:italic;' } , $ q - > span ( { - class = > "bi bi-wrench" } ) , "Service-Wartung" ) , "\n" ;
2021-12-30 12:05:56 +01:00
}
print $ q - > div ( { - style = > 'padding:0.5em;' } , " " ) , "\n" ;
print "</div>" ;
2022-12-02 07:25:27 +01:00
2023-03-05 20:01:47 +01:00
$ return = $ feedb - > { message } if ( $ feedb - > { message } ) ;
2021-12-30 12:05:56 +01:00
return $ return ;
}
1 ;