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 ;
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 ;
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 = "" ;
}
my $ lang = "de" ;
my $ now_db = strftime ( "%d.%m.%Y %H:%M:%S" , localtime ( time ) ) ;
my $ dbh = "" ;
my $ debug = 0 ;
$ 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 ) ) ;
#steht auch in Libenz
my @ months = ( "Januar" , "Februar" , "März" , "April" , "Mai" , "Juni" , "Juli" , "August" , "September" , "Oktober" , "November" , "Dezember" ) ;
my $ mon = strftime "%m" , localtime ;
my $ hh ; my $ mm ;
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 } ) ;
################### new from Callib for collect_pos() ################
my $ start_date_time = $ R:: start_date_time ;
my $ end_date_time = $ R:: end_date_time ;
$ start_date_time = "01.$mon.$year" if ( ! $ start_date_time ) ;
my $ days4month = Days_in_Month ( $ year , $ mon ) ;
$ end_date_time = "$days4month.$mon.$year" if ( ! $ end_date_time ) ;
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 ) ;
}
#sammle alle termine im definierten Zeitraum
my $ search_startdt = $ start_date_time ;
my $ search_enddt = $ end_date_time ;
#FIXME
$ end_date_time . = " 23:59" if ( $ end_date_time !~ / \d\:\d/ ) ;
if ( "$start_date_time" eq "01.$mon.$year" ) {
$ search_startdt = "date \'$start_date_time\' - integer \'31\'"
} else {
$ search_startdt = "\'$start_date_time\'"
}
if ( "$end_date_time" eq "$days4month.$mon.$year" ) {
$ search_enddt = "date \'$end_date_time\' + integer \'31\'"
} else {
$ search_enddt = "\'$end_date_time\'"
}
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 } ;
}
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 } ;
}
}
$ cttpos = { %$ cttpos_trans , %$ cttpos_theft } ;
#####################################################################
my $ table = $ node_meta - > { ct_table } || "content" ;
my $ hashfile = "$varenv{logdir}/$users_dms->{u_id}-$table-searchhash" ;
if ( ( ! $ users_dms - > { ek_view } ) && ( $ table eq "content" ) ) {
$ node_meta - > { tpl_order } =~ s/int01=EK €=5,// ;
}
if ( $ table eq "content" ) {
$ node_meta - > { tpl_order } =~ s/txt17=[\w\s=]+,// ;
$ node_meta - > { tpl_order } =~ s/byte01=[\w\s=]+,// ;
}
if ( $ table eq "contentadr" && $ varenv { dbname } ne "sharee_primary" ) {
$ node_meta - > { tpl_order } =~ s/txt17=[\w\s=]+,// ;
$ node_meta - > { tpl_order } =~ s/txt19=[\w\s=]+,// ;
}
$ 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}" ) ;
}
my $ limit = $ R:: limit || $ varenv { limit } ;
my $ offset = $ R:: offset || "0" ;
2022-07-12 19:59:44 +02:00
#if($node_meta->{int10} && $node_meta->{int10} < $varenv{limit}){
# $offset = 0;
#}
2021-12-30 12:05:56 +01:00
#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 $ tpath = "" ;
#get Firma
my $ ctf = $ db - > get_content1 ( "contentuser" , "$dbt->{sharedms_conf}->{parent_id}" ) ;
2022-04-30 08:12:55 +02:00
my ( $ edit , $ new_key , $ copy_key , $ save_key , $ delete_key , $ c_id4csv ) ;
2021-12-30 12:05:56 +01:00
my $ ct4rel = { } ;
my $ ct4rel_parts = { } ;
my $ k = 0 ;
my $ message = "" ;
#print $q->end_form,"\n";
print "<div id='Content4list'>\n" ;
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 ) ;
}
my $ searchref = { } ;
#Filter OPOS
if ( $ path =~ /OPOS/ ) {
$ R:: detail_search = "suchen" ;
2022-03-17 20:28:28 +01:00
$ searchref - > { int14 } = ">=1" ;
2021-12-30 12:05:56 +01:00
$ R:: todo = "Filter" ;
$ message . = ">>> Offene Payone Posten (Fehlgeschlagene Geldeinzüge) <<<" ;
$ offset = 0 ;
$ limit = 10000 ;
}
if ( $ path =~ /langzeit/ ) {
$ R:: detail_search = "suchen" ;
$ searchref - > { long_rent } = "1 day" ;
$ R:: todo = "Filter" ;
$ message . = ">>> langzeit Mieten (größer 1 Tag) sollten vor Faktura überprüft werden <<<" ;
$ offset = 0 ;
$ limit = 10000 ;
}
2022-08-11 11:42:24 +02:00
if ( ! $ v_journal && ! $ R:: detail_search && - f $ hashfile && ( $ path =~ /letzte Suche/ || ( $ limit > $ varenv { limit } ) ) ) {
2021-12-30 12:05:56 +01:00
$ R:: todo = "Filter" ;
$ message . = ">>> es wurden die letzten Suchparameter oder Filter geladen <<<" ;
$ offset = 0 ;
$ limit = 10000 ;
}
my $ opos = "" ;
if ( $ node_meta - > { node_name } eq "Tagesbericht" ) {
$ offset = 0 ;
$ limit = "1000" ;
$ R:: detail_search = "suchen" ;
$ v_journal = $ node_meta - > { node_name } ;
$ opos = "null" ;
$ tpl_id = 218 ;
}
my $ max_timestamp = "" ;
$ max_timestamp = "$1.$2.$3" if ( $ ctf - > { txt80 } =~ /(\d{2})\.(\d{2})\.(\d{4})$/ ) ;
my $ max_sum = $ ctf - > { int03 } || "" ;
if ( $ max_timestamp ) {
$ limit = "2000" ;
$ message . = ">>> Buchbare Rechnungspositionen laut Einstellungen bis Buchungsdatum: $max_timestamp <<<" ;
}
if ( $ max_sum ) {
$ message . = ">>> Buchbare Rechnungspositionen laut Einstellungen bis Verkaufssumme: $max_sum € <<<" ;
}
$ message = $ R:: message if ( $ R:: message ) ;
#CSV
my $ export ;
my $ ck4ex = "@R::ck4ex" || "" ;
$ export = "check4export" if ( $ R:: ck4ex ) ;
if ( $ export || $ R:: ck4ex ) {
$ db - > users_up ( "time4csv" , "$time" , $ users_dms - > { u_id } ) ;
$ users_dms = $ db - > select_users ( $ users_dms - > { u_id } ) ;
}
#path-line
my $ redirect ;
$ redirect = "(redirected)" if ( $ R:: redirected ) ;
#top of bootstrap
my $ header_style = "" ;
$ header_style = "border:2px solid #9f1f0e;" if ( $ message ) ;
if ( $ node_meta - > { tpl_id } == 205 ) {
print $ q - > div ( { - class = > "copri_header" , - style = > "background-color:$node_meta->{bg_color};" } , "$path" , $ q - > span ( { - style = > "padding:3px 10px;background-color:#86cbd7;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" } , " ← " ) ,
$ 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" ;
} else {
print $ q - > div ( { - class = > "copri_header" , - style = > "background-color:$node_meta->{bg_color};" } , "$path $redirect" , $ q - > span ( { - style = > "$header_style" } , "$message" ) ) ;
}
print $ q - > start_form ( - name = > 'searchform' ) ;
print $ q - > hidden ( - name = > 'todo' , - value = > "Mindermenge" ) if ( $ R:: todo && $ R:: todo =~ /Mindermenge/ ) ;
print $ q - > hidden ( - name = > 'todo' , - value = > "Waren-Summe" ) if ( $ R:: todo && $ R:: todo =~ /Waren-Summe/ ) ;
print $ q - > hidden ( - name = > 'offset' , - value = > "$offset" ) ;
print $ q - > hidden ( - name = > 'main_id' , - value = > "$node_meta->{main_id}" ) ;
print $ q - > hidden ( - name = > 'kind_of_trans' , - value = > "$node_meta->{node_name}" ) ;
print $ q - > hidden ( - name = > 'mode' , - value = > "manager" ) ;
print $ q - > hidden ( - name = > 'owner' , - value = > "$users_dms->{u_id}" ) ;
print $ q - > hidden ( - name = > 'template_id' , - value = > "$node_meta->{template_id}" ) ;
my $ tplids = "$tpl_id," || 0 ;
$ tplids = "205,224,225,210,226,227,228,229" if ( ( $ table !~ /contentadr|contenttrans|contenttver|contentnel/ ) && ! $ export ) ;
$ tplids = 205 if ( $ path =~ /Waren$/ ) ; #Defaults to only Verleih_list
my $ s_ct_name = $ q - > escapeHTML ( $ R:: s_ct_name ) || "" ;
my $ s_barcode = $ q - > escapeHTML ( $ R:: s_barcode ) || "" ;
#mandanten-modul abhängige rekursive suche
my $ main_ids = "" ;
2022-08-11 11:42:24 +02:00
if ( $ v_journal && $ v_journal =~ /Verkaufsjournal/ ) {
2021-12-30 12:05:56 +01:00
$ main_ids = $ dbt - > { shareedms_conf } - > { invoicejournal } ;
$ tplids = 209 ;
} else {
$ main_id = $ dbt - > { shareedms_conf } - > { faktura } if ( $ v_journal && $ v_journal =~ /bericht/ || $ R:: todo ) ; #starts at root
$ main_ids = "$main_id," ;
my $ excluded = "journal" ; #case is defined
$ excluded = "Storno" if ( $ R:: todo && $ R:: todo eq "Filter" ) ;
$ main_ids . = $ db - > collect_noderec ( $ main_id , $ lang , "$excluded" ) ;
}
$ main_ids =~ s/,$// ;
if ( $ v_journal ) {
$ offset = 0 ;
$ limit = 10000 ;
}
#Waren-nodes für Umsatz-Auswertung
my $ w_nodes = "" ;
my $ verleih_nodes = "" ;
my $ relnod = "" ;
$ relnod = $ db - > collect_rel4nodes ( $ main_ids , "" , "" , "rel_id" ) ;
#Faktura/Verkaufsjournal menue (ex. Verleihjournal)
my $ j_exist = $ db - > get_node4multi ( "300011" , $ lang ) ;
#nur für node_name in tabelle
my $ nodes ;
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
if ( $ R:: detail_search && $ R:: detail_search eq "suchen" ) {
$ offset = 0 ;
$ limit = 10000 ;
}
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 } ;
}
}
}
my $ node = { template_id = > 205 , #Leihrad_liste
parent_id = > 200013 , #Waren
fetch = > "all" ,
keyfield = > "main_id" ,
} ;
my $ bike_nodes = $ dbt - > fetch_rel4tpl4nd ( $ dbh , $ node ) ;
my $ tariff_all = $ db - > collect_ct4rel ( "content" , "300026" , $ lang , "" , "" , "" , "" , "210" ) ;
2022-07-20 06:54:17 +02:00
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 int02 >= 1" ) ;
2021-12-30 12:05:56 +01:00
my $ ctrel = { } ;
#only if permission read
2022-07-20 06:54:17 +02:00
if ( ( $ node_meta - > { ct_table } eq "content" && $ users_dms - > { int01 } >= 1 ) || ( $ node_meta - > { ct_table } eq "contentadr" && $ users_dms_primary - > { int02 } >= 1 ) || ( $ node_meta - > { ct_table } eq "contenttrans" && $ users_dms_primary - > { int03 } >= 1 ) ) {
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 } ;
}
#only for adding to active transaction, disabled because of not browser tab save
#$ctrel = $db->get_ctrel("contenttrans","",$lang,"",$users_dms->{c_id4trans},$users_dms->{tpl_id4trans});
#without limit it will takes only one dataset
2022-07-20 06:54:17 +02:00
#if(($R::rel_id && $R::rel_id =~ /^\d+$/) || ($c_id4trans && $c_id4trans =~ /^\d+$/))
2021-12-30 12:05:56 +01:00
if ( ( ( $ R:: rel_id && $ R:: rel_id =~ /^\d+$/ ) || ( $ c_id4trans && $ c_id4trans =~ /^\d+$/ ) ) && ( $ limit > $ varenv { limit } ) ) {
$ ct4rel = $ db - > collect_cid ( $ table , $ lang , $ tpl_id , $ R:: rel_id , $ R:: barcode , "c_id" , $ c_id4trans ) ;
}
#Suchen
elsif ( ! $ start_chck && ! $ end_chck ) {
#2020-12-01 changed to get last tablecontent, not only 1 by edit
#testing state
2022-06-24 14:38:22 +02:00
#if(!$start_chck && !$end_chck)
2021-12-30 12:05:56 +01:00
$ rows = $ db - > count_content ( $ table , "$main_ids" , "$tplids" ) ;
#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
if ( ! $ v_journal && $ R:: detail_search && ref ( $ searchref ) eq "HASH" ) {
store $ searchref , $ hashfile ;
2022-08-11 11:42:24 +02:00
} elsif ( ! $ v_journal && ! $ R:: detail_search && - f $ hashfile && ( $ path =~ /letzte Suche/ || $ limit > $ varenv { limit } ) ) {
2021-12-30 12:05:56 +01:00
$ searchref = { } ;
$ searchref = retrieve ( $ hashfile ) ;
}
2022-08-11 11:42:24 +02:00
#Verkaufsjournal
if ( $ node_meta - > { tpl_id } == 209 && $ v_journal && ! $ R:: detail_search ) {
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
}
}
$ ct4rel = $ db - > search_content3 ( $ searchref , $ table , $ dbt - > { shareedms_conf } - > { parent_id } , $ node_meta , $ users_dms - > { u_id } , $ lang , "$main_ids" , "$tplids" , "$ct_ids" , $ v_journal , $ time , $ R:: s_kontext , $ scol , $ users_dms - > { sort_updown } , $ offset , $ limit , $ export , $ R:: todo , $ ck4ex , $ opos ) ;
2022-08-12 08:52:33 +02:00
#TODO check
if ( $ node_meta - > { node_name } eq "Faktura" || $ node_meta - > { tpl_id } == 218 || $ node_meta - > { tpl_id } == 209 ) {
my $ v_journalparts = "" ;
$ v_journalparts = $ v_journal . "_parts" ;
$ ct4rel_parts = $ db - > search_content3 ( $ searchref , $ table , $ dbt - > { shareedms_conf } - > { parent_id } , $ node_meta , $ users_dms - > { u_id } , $ lang , "$main_ids" , "$tplids" , "$ct_ids" , $ v_journalparts , $ time , $ R:: s_kontext , $ scol , $ users_dms - > { sort_updown } , $ offset , $ limit , $ export , $ R:: todo , $ ck4ex , $ opos ) ;
#collect invoice ids in kontext of parts
foreach my $ cp_id ( keys ( %$ ct4rel_parts ) ) {
$ ct_ids . = "$ct4rel_parts->{$cp_id}->{ct_id}," if ( $ R:: detail_search && ( $ R:: s_kontext && $ R:: s_kontext eq "Waren" || $ export eq "FiBu" ) ) ;
}
}
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" ;
my $ hstyle = "border-right: solid thin gray;border-bottom: solid thin gray;" ;
2022-08-11 11:42:24 +02:00
2021-12-30 12:05:56 +01:00
if ( $ v_journal && $ v_journal =~ /journal/ ) {
2022-08-11 11:42:24 +02:00
print $ q - > hidden ( - name = > 's_kontext' , - value = > "Beleg" ) , "\n" ;
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" ;
#1. Zeile mit Suchfelder und NEU-Anlage
#table-switch!!!
my $ sb_style = "" ;
my $ search = "search" ;
if ( $ v_journal =~ /journal/ ) {
$ search = "search_export" ;
$ sb_style = "font-size:0.61em;" ;
}
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - style = > "background-color:silver;$hstyle" } , $ but - > singlesubmit1 ( "detail_search" , "$search" , "" , "$sb_style;" ) , "\n" ) ;
$ edit = "rel_edit" ;
$ new_key = "new_content" ;
$ save_key = "save_content" ;
$ delete_key = "delete_content" ;
my $ a_color = $ node_meta - > { bg_color } || "yellow" ;
if ( $ table eq "contentadr" ) {
$ edit = "rel_edit" ;
$ new_key = "new_adr" ;
$ save_key = "save_adr" ;
$ delete_key = "delete_adr" ;
}
#contenttrans | contenttver via ct_trans
if ( $ table eq "contenttrans" ) {
$ edit = "ct_trans" ;
$ new_key = "new_trans" ;
$ delete_key = "delete_trans" ;
} elsif ( $ table eq "contenttver" ) {
$ edit = "ct_trans" ;
$ new_key = "new_tver" ;
$ delete_key = "delete_tver" ;
}
if ( $ node_meta - > { parent_id } >= "200000" && ! $ v_journal ) {
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 ;
my $ s_val ;
foreach ( @ tpl_order ) {
$ h + + ;
my ( $ key , $ val , $ size ) = split /=/ , $ _ ;
if ( $ size =~ /area/ ) {
$ size = "10em" ;
} elsif ( $ key =~ /int0|c_id/ ) {
$ size = "1em" if ( ! $ size ) ;
2022-08-12 08:52:33 +02:00
} elsif ( $ size !~ /^\d+$/ ) {
$ size = "6em" ;
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 ) ) {
push ( @ s_valxx , "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}" ) ;
}
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector_class ( "s_$key" , "" , "" , $ s_val , @ s_valxx ) ) , "\n" ;
2022-07-12 19:59:44 +02:00
} elsif ( $ size =~ /select/ && $ key =~ /txt24/ && $ tpl_id =~ /225/ ) { #txt24=bike_group (for station filter)
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 ) ) {
2022-07-15 07:11:01 +02:00
push ( @ s_valxx , "$bike_nodes->{$rid}->{main_id}:$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}" ) ;
#$station_filter_hash{$bike_nodes->{$rid}->{type_id}} = 1;
2022-07-12 19:59:44 +02:00
}
2022-07-15 07:11:01 +02:00
#foreach my $type_id (keys (%station_filter_hash)){
# push (@s_valxx, "$type_id:$dbt->{copri_conf}->{type_id}->{$type_id} - $type_id");
#}
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" ;
} elsif ( $ size =~ /select/ && $ key !~ /txt23|txt24/ ) { #txt23=color-code or txt24=Flotten ID select
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" ) ;
2022-04-20 12:07:48 +02:00
#$s_hash = $dbt->{copri_conf}->{tariff_unit} if($tpl_id == 210 && $key eq "int01");
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" ) ;
#while (my ($key, $value) = each %{ $s_hash }) {
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
}
print $ q - > td ( { - class = > 'search_line' } , $ but - > selector_class ( "s_$key" , "" , "" , $ s_val , @ s_valxx ) ) , "\n" ;
} else {
print $ q - > td ( { - class = > "search_line" } , $ q - > textfield ( - class = > 'stxt' , - name = > "s_$key" , - default = > "$s_val" , - size = > "$size" , - maxlength = > 40 ) , "\n" ) ;
}
} 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/ ) {
my @ _states = split ( /\|/ , $ varenv { Zahlungsweise } ) ;
my @ _orderstates = split ( /\|/ , $ varenv { order_state } ) ;
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
}
my $ s_mtime ; my $ e_mtime ;
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 } ;
}
if ( $ key eq "bctime" ) {
$ s_mtime = $ searchref - > { start_bctime } ;
$ e_mtime = $ searchref - > { end_bctime } ;
}
if ( $ key eq "date_time" ) {
$ s_mtime = $ searchref - > { start_date_time } ;
$ e_mtime = $ searchref - > { end_date_time } ;
}
2022-08-12 08:52:33 +02:00
print $ q - > td ( { - nowrap = > 1 , - class = > "search_line" } , $ q - > textfield ( - id = > 'datepicker1' , - class = > 'sdate' , - name = > "s_start_$key" , - default = > "$s_mtime" , - size = > "$size" , - maxlength = > 20 ) , "-" , $ q - > textfield ( - id = > 'datepicker2' , - class = > 'sdate' , - name = > "s_end_$key" , - default = > "$e_mtime" , - size = > "$size" , - maxlength = > 20 ) ) , "\n" if ( $ key =~ /time$/ ) ;
2021-12-30 12:05:56 +01:00
}
#2. Tableheader
print $ q - > Tr ( ) ;
#permissions
if ( $ users_dms - > { int07 } == 2 ) { #only DMS-Account Admin
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 ;
if ( $ R:: ck4ex ) {
print $ q - > th ( { - colspan = > 2 , - style = > 'text-align:left;' } , $ q - > a ( { - class = > 'linknav3' , href = > "$varenv{metahost}/pdf/$users_dms->{u_id}-$users_dms->{time4csv}.csv" } , "CSV" ) , " | " , $ q - > a ( { - class = > 'linknav3' , href = > "$varenv{metahost}/pdf/$users_dms->{u_id}-$users_dms->{time4csv}.xls" } , "XLS" ) ) , "\n" ;
} else {
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" ) ;
print $ q - > th ( $ q - > a ( { - class = > "sortnav" , - href = > "?sort_updown=up\&offset=$offset\&limit=$limit" , - title = > 'Aufsteigend sortieren' } , "$sort_up" ) , "|" , $ q - > a ( { - class = > "sortnav" , - href = > "?sort_updown=down\&offset=$offset\&limit=$limit" , - title = > 'Absteigend sortieren' } , "$sort_down" ) ) , "\n" ;
print $ q - > th ( "" ) , "\n" ;
}
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 + + ;
print $ q - > th ( $ q - > a ( { - class = > "sortnav" , - href = > "?col_sort=$key\&offset=$offset\&limit=$limit" , - title = > "$sort_title" } , "$val" ) ) , "\n" ;
}
}
#TODO, chrome breaks timeline
#print $q->th(" "),"\n";
my $ tdcal = scalar @ tpl_order ;
#$tdcal++;
#print "$tdcal xxxxxxxxx";
if ( $ tpl_id == "205" ) { #205=Verleih
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" ;
}
#print $q->end_form,"\n";
2022-05-01 18:31:03 +02:00
my $ sum_bar = "0" ; my $ sum_ec = "0" ; my $ sum_kredit = "0" ; my $ sum_abb = "0" ; my $ sum_ueb = "0" ; my $ sum_geka = "0" ; my $ sum_paypal = "0" ; my $ sum_SEPApayone = "0" ; my $ sum_CCpayone = "0" ; my $ sum_ausfall = "0" ; my $ sum_kasse = "0" ; my $ sum_start = "0" ; my $ close_time = "" ; my $ payment_time = "" ;
2021-12-30 12:05:56 +01:00
my $ nr = 0 ; my $ nx = 0 ;
my $ check_kaution = 0 ;
2022-05-01 18:31:03 +02:00
my $ rabatt_key = "" ;
my $ kost_key = "" ;
2021-12-30 12:05:56 +01:00
#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 = { } ;
2021-12-30 12:05:56 +01:00
if ( $ ct4rel - > { $ id } - > { state } ne "Kassenbestand" ) {
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 } ) {
( $ pricing , $ counting ) = $ pri - > counting_rental ( \ % varenv , $ ct4rel_parts - > { $ cpid } , "calc_price" ) ;
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 ) ;
$ sum_pos = $ lb - > cashme ( $ 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');
$ sum_kasse = $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } eq "Kassenbestand" ) ;
$ sum_start = $ ct4rel - > { $ id } - > { int02 } if ( $ ct4rel - > { $ id } - > { state } eq "Kassenbestand" ) ;
if ( eval ( $ sum_pos . $ max_op . $ max_sum_pos ) || $ table ne "contenttrans" ) {
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" ) ;
}
$ sum_bar += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /^Bar/ ) ;
$ sum_ec += $ ct4rel - > { $ id } - > { int01 } if ( $ ct4rel - > { $ id } - > { state } && $ ct4rel - > { $ id } - > { state } =~ /EC/ ) ;
#$sum_kredit += $ct4rel->{$id}->{int01} if($ct4rel->{$id}->{state} && $ct4rel->{$id}->{state} =~ /Kredit/);
$ 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/ ) ;
$ 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 ;
my $ nodeline2 ;
my $ nodeline_name2 ;
my $ nodelist ;
#Instanz Buttons-Logic
print $ q - > Tr ( ) , "\n" ;
#checkboxes
#permissions
if ( $ users_dms - > { int07 } == 2 ) { #only DMS-Account Admin
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;" } , " " ) , "\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" ;
#2021-06-08 disabled because dms must be browser-tab save
if ( 1 == 2 && $ table eq "content" && ( $ ct4rel - > { $ id } - > { template_id } =~ /205|224|229/ ) ) { #bikes|Gutschein|Zubehör
print $ q - > a ( { - class = > "editnav" , - href = > "$tpath?ct_trans=add_transpos\&mandant_main_id=$dbt->{shareedms_conf}->{parent_id}\&kind_of_trans=$users_dms->{kind_of_trans}\&c_id=$ct4rel->{$id}->{content_id}\&owner=$users_dms->{u_id}" , - title = > "zum $users_dms->{kind_of_trans} \#$ctrel->{ct_name} $ctrel->{txt01} hinzufügen" } , $ q - > img ( { - src = > "$varenv{metahost}/glyphicons/glyphicons-512-copy.png" , - style = > 'height:1.3em;' } ) ) ;
}
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
print $ q - > a ( { - class = > "editnav" , - href = > "$path/$node_names?detail_search=1\&$search_key" , - title = > "zur Liste der Rad $ct4rel->{$id}->{barcode} Servicearbeiten" } , $ q - > img ( { - src = > "$varenv{metahost}/glyphicons/glyphicons-440-wrench.png" , - style = > 'height:1em;' } ) ) ;
}
##
print "</td>\n" ;
} elsif ( $ users_dms - > { u_id } > 0 && "$table" =~ /contenttrans|contenttver/ ) {
print "<td class='tb_inst' style='$set_style' nowrap>\n" ;
print "</td>\n" ;
} 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 {
print $ q - > td ( { - class = > 'tdtxt' , - colspan = > 1 , - style = > "$set_style" , - nowrap = > 1 } , "$node_names" ) , "\n" ;
}
} 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" ) ;
2022-02-15 13:17:10 +01:00
} elsif ( $ table eq "contenttrans" && ( ( $ ct4rel - > { $ id } - > { txt28 } && $ ct4rel - > { $ id } - > { txt28 } =~ /error/i ) || ( $ 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" ) ;
}
#print $q->td("$ecol\n") if($ecol <= "2");
#my $ctimg = "000empty";
#my $ct_name4img = "$ct4rel->{$id}->{ct_name}.jpg";
#$ct_name4img =~ s/\s//g;
#my $title = "Foto nicht vorhanden";
#if(-f "$varenv{img4thumb}/$ct_name4img"){
# $ctimg = "$ct_name4img";
# $title="$ct4rel->{$id}->{ct_name}";
#}
#print $q->td({-class=>'element',-style=>"$set_style"},$q->a({-href=>"/img4ct/$ctimg",-rel=>'lightbox',-title=>"$title"},$q->img({-src=>"/img4thumb/$ctimg", -style=>'max-width:20px;border:1px solid silver;'})));
#Tablecontent (parameter)
$ k = 0 ;
foreach ( @ tpl_order ) {
$ k + + ;
my ( $ key , $ val , $ size , $ colorize ) = split /=/ , $ _ ;
$ rabatt_key = 1 if ( $ key =~ /int07/ ) ;
$ kost_key = 1 if ( $ key =~ /node05|node08/ ) ;
my $ txtstyle = "text-align:left;" ;
my $ isize = "26" ;
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;" ;
$ isize = "5" ;
$ isize = "5" if ( $ key =~ /int/ ) ;
}
$ isize = $ size if ( $ size =~ /\d/ ) ;
2022-04-20 12:07:48 +02:00
$ ct4rel - > { $ id } - > { $ key } = $ lb - > time4de ( $ ct4rel - > { $ id } - > { $ key } , "1" ) if ( $ key =~ /time$/ ) ;
2021-12-30 12:05:56 +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" ) ;
$ set_style4nr = $ set_style ;
$ set_style4nr = "background-color:#e3dbc9;" if ( ( $ key eq "barcode" ) || ( $ key eq "int04" ) ) ;
#$set_style4nr="background-color:#e3dbc9;" if($key eq "barcode");
$ ct4rel - > { $ id } - > { $ key } =~ s/\./,/ if ( $ key =~ /int/ ) ;
if ( $ key eq "c_id" && $ val eq "raw" ) {
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 ) ;
}
$ pos_details . = $ did . " = " . $ teaser . "</br>" ;
}
my $ pos_id = $ q - > div ( { - class = > "popup" , - onclick = > "toggle_box('$id')" } , "$ct4rel->{$id}->{c_id}" , $ q - > span ( { - class = > "popuptext" , - id = > "$id" } , "$pos_details" ) ) ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "font-weight:normal;$set_style4nr" } , "$pos_id" ) , "\n" ;
}
elsif ( $ key =~ /ct_name|c_id/ && $ ct4rel - > { $ id } - > { $ key } ) {
if ( $ table =~ /contenttrans|contenttver/ ) {
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=$offset\&limit=$limit" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) ;
} elsif ( $ table =~ /content$|contentadr|contentnel/ ) {
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=$offset\&limit=$limit" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
} 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" ;
}
} elsif ( $ key =~ /txt01/ && $ table =~ /contenttrans|contenttver/ ) {
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=$offset\&limit=$limit" , - title = > "Terminal öffnen" } , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
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 } ) ;
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=$offset\&limit=$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){
2021-12-30 12:05:56 +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=$offset\&limit=$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){
2021-12-30 12:05:56 +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=$offset\&limit=$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){
2021-12-30 12:05:56 +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 = > "Rad Warenstamm nach Station filtern" } , "$ct4rel->{$id}->{$key}" ) ) ;
} 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 {
my $ betrag = $ ct4rel - > { $ id } - > { $ key } || "∑ $sum_pos" ; # pre counting
$ betrag = $ ct4rel - > { $ id } - > { $ key } if ( $ v_journal ) ;
$ betrag =~ s/\./,/ ;
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "$betrag" ) , "\n" ;
}
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 ) ) {
$ flotten . = "$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}<br />" if ( $ ct4rel - > { $ id } - > { $ key } =~ /$bike_nodes->{$rid}->{main_id}/ ) ;
}
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 ) ) {
$ flotten . = "$bike_nodes->{$rid}->{node_name} - $bike_nodes->{$rid}->{main_id}<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" ;
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-06-24 14:38:22 +02:00
#for all other withot matching integer type condition
} elsif ( $ key =~ /int|barcode|save|time$|sort|public/ ) {
print $ q - > td ( { - class = > 'tdint' , - style = > "$txtstyle $set_style" } , "$ct4rel->{$id}->{$key}" ) , "\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" ) {
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$txtstyle $set_style" } , $ q - > a ( { - style = > "color:black;" , - href = > "$varenv{metahost}/site/$ct4rel->{$id}->{$key}" , - target = > '_blank' , - title = > 'download' , - type = > 'application/octet-stream' } , $ q - > img ( { - src = > "$varenv{metahost}/glyphicons/file-any.png" , - style = > 'height:1.3em;' } ) , "$ct4rel->{$id}->{$key}" ) ) , "\n" ;
} 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
} elsif ( ( $ table eq "contentadr" && $ key =~ /txt29/ ) || ( $ table eq "content" && $ key =~ /txt04/ ) || ( $ table eq "contenttrans" && $ key =~ /txt23/ ) ) {
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" ;
#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 ;
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;" ;
}
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" ;
$ calpath = "Alarmjournal" if ( $ ct4rel - > { $ id } - > { int13 } == $ cttpos - > { $ ctid } - > { int13 } && $ cttpos - > { $ ctid } - > { int10 } == 7 ) ;
2022-05-11 08:05:35 +02: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" ;
2021-12-30 12:05:56 +01:00
print "</td>\n" ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > 'padding-top:1px;' } , "" ) , "\n" ;
}
}
}
}
#sub-table-row, Journal mit Teileansicht
2022-08-12 08:52:33 +02:00
if ( 1 == 2 && $ v_journal ) {
2021-12-30 12:05:56 +01:00
my $ o = "9" ;
$ o = 8 if ( $ varenv { wwwhost } =~ /cofi/ ) ; #because of extra col ID
$ o + + if ( $ rabatt_key ) ; #Verkaufjournal mit Rabatt
$ o + + if ( $ kost_key ) ; #Verkaufjournal mit Kostenstelle
my $ m = $ k - $ o ;
foreach my $ cpid ( sort { $ ct4rel_parts - > { $ a } - > { c_id } <=> $ ct4rel_parts - > { $ b } - > { c_id } } keys ( %$ ct4rel_parts ) ) {
if ( $ ct4rel - > { $ id } - > { c_id } eq $ ct4rel_parts - > { $ cpid } - > { ct_id } ) {
my $ pos_style = "color:grey;$set_style" ;
my $ sum_parts = $ ct4rel_parts - > { $ cpid } - > { int02 } * $ ct4rel_parts - > { $ cpid } - > { int03 } ;
if ( $ ct4rel_parts - > { $ cpid } - > { int07 } != 0 ) {
#my $rabatt_eur = $ct4rel_parts->{$cpid}->{int02} * $ct4rel_parts->{$cpid}->{int03} * $ct4rel_parts->{$cpid}->{int07}/100;
my $ rabatt_eur = $ ct4rel_parts - > { $ cpid } - > { int07 } ;
$ rabatt_eur = $ ct4rel_parts - > { $ cpid } - > { int02 } * $ ct4rel_parts - > { $ cpid } - > { int03 } * $ ct4rel_parts - > { $ cpid } - > { int07 } / 100 if ( $ ct4rel_parts - > { $ cpid } - > { int08 } != 1 ) ; #wenn int08 != 1 alias €
$ sum_parts = $ ct4rel_parts - > { $ cpid } - > { int02 } * $ ct4rel_parts - > { $ cpid } - > { int03 } - $ rabatt_eur ;
}
$ sum_parts = $ lb - > round ( $ sum_parts ) ;
$ sum_parts = $ lb - > cashme ( $ sum_parts ) ;
my $ parts_time = "" ;
if ( $ ct4rel_parts - > { $ cpid } - > { start_time } && $ ct4rel_parts - > { $ cpid } - > { end_time } ) {
$ ct4rel_parts - > { $ cpid } - > { start_time } = $ lb - > time4de ( $ ct4rel_parts - > { $ cpid } - > { start_time } , "1" ) ;
$ ct4rel_parts - > { $ cpid } - > { end_time } = $ lb - > time4de ( $ ct4rel_parts - > { $ cpid } - > { end_time } , "1" ) ;
$ parts_time = "$ct4rel_parts->{$cpid}->{start_time} - $ct4rel_parts->{$cpid}->{end_time}" ;
}
print $ q - > Tr ( ) , "\n" ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
#print $q->td({-colspan=>'2',-style=>"$pos_style"},"$ct4rel->{$id}->{c_id} | $ct4rel_parts->{$cpid}->{ct_id}\n");
print $ q - > td ( { - colspan = > '3' , - style = > "$pos_style" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$pos_style" } , "$ct4rel_parts->{$cpid}->{txt00}" ) , "\n" ;
print $ q - > td ( { - colspan = > '1' , - style = > "$pos_style" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > "$pos_style" } , "$ct4rel_parts->{$cpid}->{txt01}" ) , "\n" ;
print $ q - > td ( { - class = > 'tdint' , - style = > "$pos_style" } , "$ct4rel_parts->{$cpid}->{ct_name}" ) , "\n" ;
print $ q - > td ( { - colspan = > "$m" , - style = > "$pos_style" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdint' , - style = > "$pos_style" } , "$ct4rel_parts->{$cpid}->{int03}" ) , "\n" ;
print $ q - > td ( { - class = > 'tdint' , - style = > "$pos_style" } , "$ct4rel_parts->{$cpid}->{int02}" ) , "\n" ;
#Rabatt
if ( $ rabatt_key && $ ct4rel_parts - > { $ cpid } - > { int07 } ) {
$ ct4rel_parts - > { $ cpid } - > { int07 } . = " €" if ( $ ct4rel_parts - > { $ cpid } - > { int08 } == 1 ) ; #wenn int08 != 1 alias €;
$ ct4rel_parts - > { $ cpid } - > { int07 } . = " %" if ( $ ct4rel_parts - > { $ cpid } - > { int08 } != 1 ) ; #wenn int08 != 1 alias €;
print $ q - > td ( { - class = > 'tdint' , - style = > "$pos_style" , - nowrap = > 1 } , "$ct4rel_parts->{$cpid}->{int07}" ) , "\n" ;
} elsif ( $ rabatt_key ) {
print $ q - > td ( { - class = > 'tdint' , - style = > "$pos_style" , - nowrap = > 1 } , "" ) , "\n" ;
}
print $ q - > td ( { - class = > 'tdint' , - style = > "$pos_style" } , "$sum_parts" ) , "\n" ;
print $ q - > td ( { - colspan = > '1' , - style = > "$pos_style" } , "" ) , "\n" ;
}
}
}
}
} #journal offen ende
#Kassenjournal alias Summe Bar und Kredit
if ( ( $ nr > 0 ) && ( $ v_journal || $ R:: v_abschluss ) && ( ! $ R:: rel_id ) && ( "$R::s_kontext" ne "Waren" ) ) {
#if(($nr > 0) && ($v_journal || $R::v_abschluss || $close_time) && (!$R::rel_id)){
#print "($nr > 0) && ($v_journal || $R::v_abschluss || $close_time) && (!$R::rel_id)";
$ k = "9" if ( ! $ k ) ;
my $ m = $ k ;
$ sum_bar = $ lb - > round ( $ sum_bar ) ;
$ sum_bar = $ lb - > cashme ( $ sum_bar ) ;
$ sum_ec = $ lb - > round ( $ sum_ec ) ;
$ sum_ec = $ lb - > cashme ( $ sum_ec ) ;
#$sum_kredit = $lb->round($sum_kredit);
#$sum_kredit = $lb->cashme($sum_kredit);
$ sum_abb = $ lb - > round ( $ sum_abb ) ;
$ sum_abb = $ lb - > cashme ( $ sum_abb ) ;
$ sum_ueb = $ lb - > round ( $ sum_ueb ) ;
$ sum_ueb = $ lb - > cashme ( $ sum_ueb ) ;
$ sum_geka = $ lb - > round ( $ sum_geka ) ;
$ sum_geka = $ lb - > cashme ( $ sum_geka ) ;
$ sum_paypal = $ lb - > round ( $ sum_paypal ) ;
$ sum_paypal = $ lb - > cashme ( $ sum_paypal ) ;
$ sum_SEPApayone = $ lb - > round ( $ sum_SEPApayone ) ;
$ sum_SEPApayone = $ lb - > cashme ( $ sum_SEPApayone ) ;
$ sum_CCpayone = $ lb - > round ( $ sum_CCpayone ) ;
$ sum_CCpayone = $ lb - > cashme ( $ sum_CCpayone ) ;
$ sum_ausfall = $ lb - > round ( $ sum_ausfall ) ;
$ sum_ausfall = $ lb - > cashme ( $ sum_ausfall ) ;
$ sum_start = $ lb - > cashme ( $ sum_start ) ;
$ sum_kasse = $ lb - > cashme ( $ sum_kasse ) ;
$ close_time = $ R:: s_mtime if ( $ R:: s_mtime ) ;
my $ summiert = "Gesamt Umsätze" ;
#my @_states = ("Bar","EC-Karte","Kreditkarte","Abbuchung","Überweisung");
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdtxt' , - style = > 'text-align:center;background-color:silver;' , - colspan = > "$m" } , "$summiert" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - style = > 'background-color:silver;' } , "" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - style = > 'background-color:silver;' } , "" ) ;
if ( 1 == 1 ) {
if ( $ sum_ec != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "EC-Karten Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_ec €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
#if($sum_kredit != "0"){
# print $q->Tr();
# print $q->td({-style=>"background-color:silver;"},""),"\n";
# print $q->td({-class=>'tdsum',-colspan=>"$m"},"Kreditkarten Summe");
# print $q->td({-class=>'tdsum',-colspan=>"1",-nowrap=>"1"},"$sum_kredit €");
#}
if ( $ sum_abb != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "Abbuchung Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_abb €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
if ( $ sum_ueb != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "Überweisung Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_ueb €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
if ( $ sum_geka != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "Geldkarte Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_geka €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
if ( $ sum_paypal != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "PayPal Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_paypal €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
if ( $ sum_SEPApayone != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "SEPA-Lastschrift (payone) Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_SEPApayone €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
if ( $ sum_CCpayone != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "Kreditkarte (payone) Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_CCpayone €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
if ( $ sum_ausfall != "0" ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" } , "Zahlungsausfall Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "$sum_ausfall €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" , - style = > 'background-color:#eaeaec;' } , "Bar Summe" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" , - style = > 'background-color:#eaeaec;' } , "$sum_bar €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
if ( $ v_journal eq "Tagesbericht" || ( $ v_journal && $ R:: s_start_mtime !~ /\d+[\.|,]\d+[\.|,]\d+/ ) ) {
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
$ sum_start = "$ctf->{int01}" if ( $ sum_start == "0" ) ;
my $ sum_start_text = "(Kassenbestand Übernahme vom Vortag)" if ( ! $ sum_start ) ;
$ sum_start = $ last_ab - > { int01 } if ( ! $ sum_start ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" , - style = > 'background-color:#eaeaec;' } , $ q - > span ( { - style = > 'color:silver;font-weight:normal;' } , "$sum_start_text" ) , "Anfangs Kassenbestand" ) ;
if ( $ close_time ) {
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" , - style = > 'background-color:#eaeaec;' } , "$sum_start €" ) ;
} else {
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - style = > 'background-color:#eaeaec;' } , $ q - > textfield ( - class = > 'etxt' , - style = > 'text-align:right;' , - name = > "sum_start" , - override = > '1' , - default = > "$sum_start" , - size = > "5" , - maxlength = > 10 ) , "\n" ) ;
}
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" , - nowrap = > "1" , - style = > 'background-color:#eaeaec;' } , "Tatsächlicher Kassenbestand" ) ;
$ sum_kasse = "$varenv{sum_start}" if ( $ sum_kasse == "0" ) ;
if ( $ close_time ) {
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" , - style = > 'background-color:#eaeaec;' } , "$sum_kasse €" ) ;
} else {
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - style = > 'background-color:#eaeaec;' } , $ q - > textfield ( - class = > 'etxt' , - style = > 'text-align:right;' , - name = > "sum_kasse" , - override = > '1' , - default = > "$sum_kasse" , - size = > "5" , - maxlength = > 10 ) , "\n" ) ;
}
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
my $ sum_diff = $ sum_kasse - $ sum_start - $ sum_bar ;
$ sum_diff = $ lb - > round ( $ sum_diff ) ;
$ sum_diff = $ lb - > cashme ( $ sum_diff ) ;
print $ q - > Tr ( ) ;
print $ q - > td ( { - style = > "background-color:silver;" } , "" ) , "\n" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "$m" , - style = > 'background-color:#eaeaec;' } , $ q - > span ( { - style = > 'color:silver;font-weight:normal;' } , "($sum_kasse - $sum_start - $sum_bar = $sum_diff)" ) , "Kassenbestand - Bar Summe = Differenz" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" , - style = > 'background-color:#eaeaec;' } , "$sum_diff €" ) ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
###
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" ;
print $ q - > td ( { - class = > 'tdsum' , - colspan = > "1" , - nowrap = > "1" } , "" ) ;
}
}
}
}
print $ q - > end_table ;
print $ q - > hidden ( - name = > 'tpl_id' , - override = > '1' , - value = > "$tpl_id" ) ;
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 - > end_form ;
my $ offset_nr = $ offset + $ nr ;
2022-07-12 19:59:44 +02:00
#my $counter = $node_meta->{int10} || $rows;
my $ counter = $ rows ;
2021-12-30 12:05:56 +01:00
print $ q - > div ( { - style = > 'float:left;padding:6px 0 0 10px;' } , "Zeile: $offset - $offset_nr / $counter" ) ;
#backward | forward
print "<div style='padding:6px 0 0 10px;'>\n" ;
print $ q - > a ( { - class = > "linknav" , - href = > "?go=backward_list;offset=$offset;limit=$limit" , - title = > '' } , "< zurück ... " ) if ( $ offset >= $ limit ) ;
print $ q - > a ( { - class = > "linknav" , - href = > "?go=forward_list;offset=$offset;limit=$limit" , - title = > '' } , " ... vorwärts >" ) if ( $ counter >= $ limit - 10 ) ; #if($rows > $limit && $nr > 0);
print "</div>\n" ;
print "</div>\n" ;
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" ;
} elsif ( $ table eq "content" ) {
#print $q->div({-style=>'padding:0 20px;font-style:italic;'}, $q->span({-style=>'padding:0.1em 0.8em;'},$q->img({-src=>"$varenv{metahost}/glyphicons/glyphicons-512-copy.png", -style=>'height:1.3em;'})), "Artikel zur Rechnung hinzufügen ( Orange unterlegte Faktura Rechnung )"),"\n";
print $ q - > div ( { - style = > 'padding:0 20px;font-style:italic;' } , $ q - > span ( { - style = > 'padding:0.1em 0.8em;' } , $ q - > img ( { - src = > "$varenv{metahost}/glyphicons/glyphicons-440-wrench.png" , - style = > 'height:1.3em;' } ) ) , "Service-Wartung" ) , "\n" ;
}
print $ q - > div ( { - style = > 'padding:0.5em;' } , " " ) , "\n" ;
print "</div>" ;
2022-07-12 19:59:44 +02:00
#if($varenv{wwwhost} !~ /regiox/ && $node_meta->{main_id} > 300000 && $rows =~ /\d/){
# $db->updater("nodes","main_id",$node_meta->{main_id},"int10",$rows);
#}
2021-12-30 12:05:56 +01:00
#letzte Suche
2022-07-12 19:59:44 +02:00
#if(!$v_journal && $R::detail_search && ref($searchref) eq "HASH" && $nr =~ /\d/){
# $db->updater("nodes","main_id","300023","int10",$nr);
#}
2021-12-30 12:05:56 +01:00
#print Dumper($node_meta);
return $ return ;
}
1 ;