mirror of
https://gitlab.com/t6353/sharee.bike.git
synced 2025-02-22 19:56:29 +01:00
saving column into invoices
This commit is contained in:
parent
ba041a56b6
commit
4c11beb331
7 changed files with 222 additions and 283 deletions
|
@ -68,7 +68,7 @@ sub dbconnect_extern {
|
|||
#while (my ($key, $value) = each %{ $self->{$instance_type} }) {
|
||||
while (my ($key, $value) = each %{ $globalconf{$instance_type} }) {
|
||||
if($key eq $dbname){
|
||||
$bw->log("dbconnect_XX",$value->{database},"");
|
||||
$bw->log("dbconnect_XX",$value->{database}->{dbname},"");
|
||||
my $database = "dbi:Pg:dbname=$value->{database}->{dbname};host=$value->{database}->{host};port=$value->{database}->{port};options='$value->{database}->{options}'";
|
||||
$database .= ";sslmode=$value->{database}->{sslmode}" if($value->{database}->{sslmode} && $value->{database}->{host} ne "localhost");
|
||||
my $dbh = DBI->connect($database, $value->{database}->{user}, $value->{database}->{passwd},{ RaiseError => 0, AutoCommit => 1 });
|
||||
|
@ -730,6 +730,10 @@ sub fetch_tablerecord(){
|
|||
$where .= " and $key $op '$value'";
|
||||
}elsif($key =~ /_itime$/ && $value){
|
||||
$where .= " and itime $op '$value'";
|
||||
}elsif($key =~ /start_mtime|end_mtime/ && $value){
|
||||
$key =~ s/start_mtime/mtime/;
|
||||
$key =~ s/end_mtime/mtime/;
|
||||
$where .= " and $key $op '$value'";
|
||||
}elsif($key =~ /time$/ && $value && $value =~ /interval/){#<= (now() - interval '15 minutes')
|
||||
$where .= " and $key $op $value";
|
||||
}elsif($key =~ /time$/ && $value){
|
||||
|
|
|
@ -19,6 +19,7 @@ use Lib::Config;
|
|||
use Mod::Buttons;
|
||||
use Mod::Libenz;
|
||||
use Mod::Libenzdb;
|
||||
use Mod::Pricing;
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
|
@ -33,6 +34,8 @@ sub printpre(){
|
|||
my $lb = new Libenz;
|
||||
my $db = new Libenzdb;
|
||||
my $but = new Buttons;
|
||||
my $pri = new Pricing;
|
||||
|
||||
my %varenv = $cf->envonline();
|
||||
my $path = $q->path_info();
|
||||
my $script = $q->script_name();
|
||||
|
@ -149,8 +152,6 @@ td {
|
|||
my $ctf = $db->get_content1("contentuser","$mandant_main_id");
|
||||
$ctf->{txt13} = $1 if($ctf->{txt13} =~ /(\d+)/);
|
||||
|
||||
my $tpl = $db->get_tpl($ctf->{txt34});#Verkauf template
|
||||
$tpl = $db->get_tpl($ctf->{txt36}) if($users->{kind_of_trans} =~ /Faktur/);
|
||||
my $ctt = $db->get_content1("contenttrans",$c_id);
|
||||
|
||||
#payone Bank
|
||||
|
@ -170,9 +171,9 @@ td {
|
|||
my $mtime = $lb->time4de("$invoice_time","");
|
||||
|
||||
$db->updater("contenttrans","c_id",$ctt->{c_id},"invoice_time","$invoice_time","");
|
||||
#
|
||||
my $scol = "c_id";
|
||||
#$scol = "$users->{cash_sort}" if($users->{cash_sort});
|
||||
|
||||
#my $scol = "c_id";
|
||||
my $scol = "itime";
|
||||
my $i=0;
|
||||
my $tplf = $db->get_tpl("201");#Firma tpl
|
||||
my @tplf_order = split /,/,$tplf->{tpl_order};
|
||||
|
@ -208,7 +209,7 @@ td {
|
|||
&data_invoice("0",$vendor,$kd_nr,$mandat_nr,$ctt->{txt00},$ct_name2print,$mtime);
|
||||
|
||||
#table
|
||||
my ($sum_paid,$break_table_wc,$nullcount) = &data_table("0",$c_id,$scol,"",$mandant_main_id,$users->{kind_of_trans},$tpl->{tpl_order},"0",$max_table_wc,$ctt);
|
||||
my ($sum_paid,$break_table_wc,$nullcount) = &data_table("0",$c_id,$scol,"",$mandant_main_id,"0",$max_table_wc,$ctt);
|
||||
|
||||
#print "$site_all++ if(($wc > $max_site_wc) || ($table_wc > $max_table_wc)) --> $break_table_wc";
|
||||
#$site_all++ if(($wc > $max_site_wc) || ($table_wc > $max_table_wc));
|
||||
|
@ -220,7 +221,7 @@ td {
|
|||
|
||||
print PMA "$site_all,$footer_top,$site,$site_all,$wc\n";
|
||||
if($site_all == 1){
|
||||
&text_description("0",$mandant_main_id,$ctt->{txt21},$ctt->{txt12},$users->{kind_of_trans},$ctt->{txt00},$nullcount);
|
||||
&text_description("0",$mandant_main_id,$ctt->{txt21},$ctt->{txt12},$ctt->{txt00},$nullcount);
|
||||
&text_footer($mandant_main_id,$footer_top,$site,$site_all,$wc,$footer_bank,$logo);
|
||||
}else{
|
||||
&text_footer($mandant_main_id,$footer_top,$site,$site_all,$wc,$footer_bank,$logo);
|
||||
|
@ -236,13 +237,13 @@ td {
|
|||
$h_top +=60;
|
||||
#table_break
|
||||
if($break_table_wc >= $max_table_wc){
|
||||
my ($sum_paid,$exit_table_wc,$nullcount) = &data_table($h_top,$c_id,$scol,"",$mandant_main_id,$users->{kind_of_trans},$tpl->{tpl_order},$break_table_wc,$max_table_wc,$ctt,$sum_paid);
|
||||
my ($sum_paid,$exit_table_wc,$nullcount) = &data_table($h_top,$c_id,$scol,"",$mandant_main_id,$break_table_wc,$max_table_wc,$ctt,$sum_paid);
|
||||
$h_top += ($table_wc - $max_table_wc) * 65;
|
||||
print PMA "h_top: $h_top += ($table_wc - $max_table_wc) * 65\n";
|
||||
}
|
||||
|
||||
#print "$h_top | $table_wc | $break_table_wc >= $max_table_wc";
|
||||
&text_description($h_top,$mandant_main_id,$ctt->{txt21},$ctt->{txt12},$users->{kind_of_trans},$ctt->{txt00},$nullcount);
|
||||
&text_description($h_top,$mandant_main_id,$ctt->{txt21},$ctt->{txt12},$ctt->{txt00},$nullcount);
|
||||
$footer_top +=130;
|
||||
$site++;
|
||||
print PMA "$site_all,$footer_top,$site,$site_all,$wc\n";
|
||||
|
@ -338,10 +339,9 @@ td {
|
|||
}
|
||||
|
||||
sub data_table(){
|
||||
my ($h_top,$c_id,$scol,$ctt_dummy,$mandant_main_id,$kind_of_trans,$tpl_order,$break_table_wc,$max_table_wc,$ctt,$sum_break) = @_;
|
||||
my ($h_top,$c_id,$scol,$ctt_dummy,$mandant_main_id,$break_table_wc,$max_table_wc,$ctt,$sum_break) = @_;
|
||||
$ctf = $db->get_content1("contentuser","$mandant_main_id");
|
||||
|
||||
my $umst1619 = $lb->umst_breaking($ctt,"");
|
||||
#my $umst1619 = $lb->umst_breaking($ctt,"");
|
||||
|
||||
my $txt20 = $ctt->{txt20};
|
||||
my $max_timestamp = "210001012359";
|
||||
|
@ -354,14 +354,20 @@ td {
|
|||
}
|
||||
|
||||
my $max_sum = $ctf->{int03} || "10000";
|
||||
my @tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=Mietzeit","int03=Menge","int02=Preis","int07=Rabatt","int04=Gesamt");
|
||||
my ($cttpos,$rows) = $db->collect_contentpos("contenttrans",$c_id);
|
||||
foreach my $id (keys(%$cttpos)){
|
||||
if($cttpos->{$id}->{int26}){
|
||||
@tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=Mietzeit","int26=Einsparung","int03=Menge","int02=Preis","int07=Rabatt","int04=Gesamt");
|
||||
}
|
||||
}
|
||||
|
||||
my $h_toppx = "$h_top" . "px";
|
||||
my $position;
|
||||
$position = "position:absolute; top: $h_toppx;" if($h_top);
|
||||
|
||||
print "\n<div style='width:$width;$position border:0px solid black;'>\n";
|
||||
print $q->start_table({ -border=>'0', -width=>'100%',-align=>'center', -cellpadding=>'3', -cellspacing=>'0'}),"\n";
|
||||
my @tpl_order = split /,/,$tpl_order;
|
||||
|
||||
#Tableheader
|
||||
my $h=0;
|
||||
|
@ -371,13 +377,7 @@ td {
|
|||
$h++ if($val && $key !~ /int07/);
|
||||
print $q->th({-class=>'tdint'},"$val"),"\n" if("$key" eq "ct_name");
|
||||
print $q->th({-class=>'tdtxt2'},"$val"),"\n" if($key =~ /txt01/);
|
||||
print $q->th({-class=>'tdint'},"$val"),"\n" if($key =~ /int03/);
|
||||
if($ctt->{txt00} =~ /Lieferschein/){
|
||||
print $q->th(""),"\n" if($key =~ /int02|int03/);
|
||||
}else{
|
||||
print $q->th({-class=>'tdint'},"$val"),"\n" if($key =~ /int02/);
|
||||
print $q->th({-class=>'tdint'},"$val"),"\n" if($key =~ /int04/);
|
||||
}
|
||||
print $q->th({-class=>'tdint'},"$val"),"\n" if($key =~ /int02|int03|int04|int26/);
|
||||
}
|
||||
$h--;
|
||||
|
||||
|
@ -398,39 +398,23 @@ td {
|
|||
}
|
||||
|
||||
#Tablecontent (ct_name(primary key))
|
||||
my $sum_parts0=0;
|
||||
my $sum_parts7=0;
|
||||
my $sum_parts19=0;
|
||||
my $j=0;
|
||||
my $k=0;
|
||||
my $nullcount=0;
|
||||
foreach my $id (sort { $cttpos->{$a}->{$scol} <=> $cttpos->{$b}->{$scol} } keys(%$cttpos)){
|
||||
#foreach my $id (sort { $cttpos->{$a}->{$scol} <=> $cttpos->{$b}->{$scol} } keys(%$cttpos)){
|
||||
foreach my $id (sort { $cttpos->{$b}->{$scol} cmp $cttpos->{$a}->{$scol} } keys(%$cttpos)){
|
||||
my $cttpos_timestamp = $1 . $2 . $3 . "0000" if($cttpos->{$id}->{itime} =~ /(\d+)\-(\d+)\-(\d+)/);
|
||||
#$k++;
|
||||
my $menge="0";my $gesamt="0";my $kaution="0";my $gesamt_kaution="0";
|
||||
my $timeing="0";my $times;my $rent_time;my $start_time;my $end_time;
|
||||
#Mietzeit wenn Verleihräder
|
||||
if($kind_of_trans =~ /Faktur|Verleih/ && $cttpos->{$id}->{int12} =~ /$ctf->{txt29}/){
|
||||
$timeing="1";
|
||||
$times = $db->get_time4ct("contenttranspos",$cttpos->{$id}->{c_id});
|
||||
$start_time = $lb->time4de($times->{start_time},"1");
|
||||
$end_time = $lb->time4de($times->{end_time},"1");
|
||||
}
|
||||
|
||||
my $gesamt = 0;
|
||||
my $rabatt = "";
|
||||
my $einzel = $cttpos->{$id}->{int02};
|
||||
my $menge = $cttpos->{$id}->{int03} || 0;
|
||||
my $unit = $cttpos->{$id}->{txt03};
|
||||
|
||||
#start copri pricing on 2018-03-21
|
||||
my $dt1 = DateTime->new(year => 2018, month => 3, day => 20);
|
||||
my $dt0 = $dt1;
|
||||
my $dt2 = $dt1;
|
||||
$dt0 = DateTime::Format::Pg->parse_datetime($cttpos->{$id}->{start_time}) if($cttpos->{$id}->{start_time});
|
||||
$dt2 = DateTime::Format::Pg->parse_datetime($cttpos->{$id}->{end_time}) if($cttpos->{$id}->{end_time});
|
||||
|
||||
if(looks_like_number($einzel) && $einzel != 0 && looks_like_number($menge) && $menge != 0){
|
||||
$gesamt = $einzel * $menge;
|
||||
}
|
||||
($gesamt,$rabatt) = $pri->price2calc($cttpos->{$id});
|
||||
$gesamt = $lb->round($gesamt);
|
||||
$gesamt = $lb->cashme($gesamt,",");
|
||||
|
||||
#max. Rechnungspositionen
|
||||
if(($gesamt == 0) && ($cttpos_timestamp <= $max_timestamp || $ctt->{int05} == 1) && ($sum_parts19 <= $max_sum)){
|
||||
|
@ -441,25 +425,10 @@ td {
|
|||
$j++;
|
||||
if($j<=$max_table_wc || $break_table_wc){
|
||||
|
||||
|
||||
my $rabatt_val = $cttpos->{$id}->{int07} || "";
|
||||
if($rabatt_val != 0 && looks_like_number($einzel) && $einzel != 0 && looks_like_number($menge) && $menge != 0){
|
||||
my $rabatt_eur = $rabatt_val;
|
||||
$rabatt_eur = $einzel * $menge * $rabatt_val/100 if($cttpos->{$id}->{int08} != 1);#wenn int08 != 1 alias €
|
||||
$gesamt = $einzel * $menge - $rabatt_eur;
|
||||
}
|
||||
$gesamt = $lb->round($gesamt);
|
||||
$gesamt = $lb->cashme($gesamt);
|
||||
#summieren
|
||||
if("$cttpos->{$id}->{int05}" =~ /\d/){
|
||||
$sum_parts0 += $gesamt if("$cttpos->{$id}->{int05}" == "0");
|
||||
$sum_parts7 += $gesamt if("$cttpos->{$id}->{int05}" == "7");
|
||||
$sum_parts19 += $gesamt if("$cttpos->{$id}->{int05}" >= "16");
|
||||
}else{
|
||||
$sum_parts0 += $gesamt if("$ctf->{txt13}" == "0");
|
||||
$sum_parts7 += $gesamt if("$ctf->{txt13}" == "7");
|
||||
$sum_parts19 += $gesamt if($ctf->{txt13} >= 16);
|
||||
}
|
||||
($gesamt,$rabatt) = $pri->price2calc($cttpos->{$id});
|
||||
$sum_parts19 += $gesamt;
|
||||
$gesamt = $lb->round($gesamt);
|
||||
$gesamt = $lb->cashme($gesamt,",");
|
||||
|
||||
#2. empty loop for sum
|
||||
if($break_table_wc){
|
||||
|
@ -467,13 +436,6 @@ td {
|
|||
next if($j<=$max_table_wc);
|
||||
}
|
||||
|
||||
my ($s_date,$s_dd,$s_mo,$s_yy,$s_hh,$s_mi,$e_date,$e_yy,$e_mo,$e_dd,$e_hh,$e_mi,$times_id);
|
||||
|
||||
#Make date and time
|
||||
if($cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
|
||||
($s_yy,$s_mo,$s_dd,$s_hh,$s_mi) = $lb->split_date($cttpos->{$id}->{start_time});
|
||||
($e_yy,$e_mo,$e_dd,$e_hh,$e_mi) = $lb->split_date($cttpos->{$id}->{end_time});
|
||||
}
|
||||
|
||||
#Tablecontent (parameter)
|
||||
print $q->Tr(),"\n";
|
||||
|
@ -481,9 +443,6 @@ td {
|
|||
foreach (@tpl_order){
|
||||
#$k++;
|
||||
my ($key,$val) = split /=/,$_;
|
||||
#if($cttpos->{$id}->{sort} =~ /^\d+$/){
|
||||
# $txtstyle = "border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:silver;";
|
||||
#}
|
||||
$cttpos->{$id}->{$key} = $q->unescapeHTML("$cttpos->{$id}->{$key}");
|
||||
$cttpos->{$id}->{$key} = $lb->newline($cttpos->{$id}->{$key},"");
|
||||
if("$key" eq "ct_name"){
|
||||
|
@ -502,31 +461,40 @@ td {
|
|||
$cttpos->{$id}->{$key} =~ s/\<br \/\>/; /g;
|
||||
print "$cttpos->{$id}->{$key}<br />\n";
|
||||
}
|
||||
#if($cttpos->{$id}->{int04}){
|
||||
# print $q->span("Station: $cttpos->{$id}->{int04}"),"\n";
|
||||
#}
|
||||
#if($cttpos->{$id}->{txt06}){
|
||||
# print $q->span(" (GPS: $cttpos->{$id}->{txt06})"),"\n";
|
||||
#}
|
||||
if($cttpos->{$id}->{start_time}){
|
||||
if($cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
|
||||
#print "<br />\n";
|
||||
print $q->span("Mietzeit: $s_dd.$s_mo.$s_yy $s_hh:$s_mi – $e_dd.$e_mo.$e_yy $e_hh:$e_mi"),"\n";
|
||||
$cttpos->{$id}->{start_time} = $lb->time4de($cttpos->{$id}->{start_time},"1");
|
||||
$cttpos->{$id}->{end_time} = $lb->time4de($cttpos->{$id}->{end_time},"1");
|
||||
|
||||
print $q->span("Mietzeit: $cttpos->{$id}->{start_time} – $cttpos->{$id}->{end_time}"),"\n";
|
||||
}
|
||||
print "</td>\n";
|
||||
}
|
||||
|
||||
if($key eq "int26"){
|
||||
my $co2saving = "";
|
||||
if($cttpos->{$id}->{int26}){
|
||||
$co2saving = "Einsparung</br>";
|
||||
my $co2diff = $pri->co2calc($cttpos->{$id});
|
||||
my $sprit_price = $pri->sprit2calc($cttpos->{$id});
|
||||
$co2saving .= "$co2diff kg CO²<br />";
|
||||
$co2saving .= "$sprit_price EUR<br />";
|
||||
$cttpos->{$id}->{int26} =~ s/\./,/;
|
||||
$co2saving .= "bei $cttpos->{$id}->{int26} KM";
|
||||
}
|
||||
print $q->td({-class=>'tdint'},"$co2saving");
|
||||
}
|
||||
if($key =~ /int03/){
|
||||
$menge =~ s/\./,/;
|
||||
print $q->td({-class=>'tdint'},"$menge"),"\n";
|
||||
$cttpos->{$id}->{$key} =~ s/\./,/;
|
||||
print $q->td({-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
|
||||
}
|
||||
|
||||
if($key =~ /int02/){
|
||||
if($einzel == "0"){
|
||||
$einzel="";
|
||||
if($cttpos->{$id}->{$key} == "0"){
|
||||
$cttpos->{$id}->{$key}="";
|
||||
}else{
|
||||
$einzel =~ s/\./,/;
|
||||
$cttpos->{$id}->{$key} =~ s/\./,/;
|
||||
}
|
||||
print $q->td({-nowrap=>'1',-class=>'tdint'},"$einzel"),"\n";
|
||||
print $q->td({-nowrap=>'1',-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
|
||||
}
|
||||
|
||||
if($key =~ /int04/){
|
||||
|
@ -536,11 +504,10 @@ td {
|
|||
$gesamt .= " €";
|
||||
$gesamt =~ s/\./,/;
|
||||
}
|
||||
#if($rabatt_val != 0 && $gesamt != 0){
|
||||
if($rabatt_val != 0){
|
||||
if($rabatt != 0){
|
||||
my $proz="%";
|
||||
$proz = "€" if($cttpos->{$id}->{int08} == 1);
|
||||
print $q->td({-nowrap=>'1',-class=>'tdint'},"(Rabatt $rabatt_val $proz) $gesamt"),"\n";
|
||||
print $q->td({-nowrap=>'1',-class=>'tdint'},"(Rabatt $rabatt $proz) $gesamt"),"\n";
|
||||
}else{
|
||||
print $q->td({-nowrap=>'1',-class=>'tdint'},"$gesamt"),"\n";
|
||||
}
|
||||
|
@ -569,34 +536,24 @@ td {
|
|||
}
|
||||
|
||||
|
||||
my $diff7 = 100 + 7;
|
||||
my $diff19 = 100 + $umst1619;
|
||||
my $sum_umst7 = $sum_parts7 / $diff7 * 7;
|
||||
my $sum_umst19 = $sum_parts19 / $diff19 * $umst1619;
|
||||
$sum_umst7 = $lb->round($sum_umst7);
|
||||
my $diff19 = 100 + 19;
|
||||
my $sum_umst19 = $sum_parts19 / $diff19 * 19;
|
||||
$sum_umst19 = $lb->round($sum_umst19);
|
||||
my $sum_netto7 = $sum_parts7 - $sum_umst7;
|
||||
my $sum_netto19 = $sum_parts19 - $sum_umst19;
|
||||
$sum_netto7 = $lb->cashme($sum_netto7);
|
||||
$sum_netto19 = $lb->cashme($sum_netto19);
|
||||
my $sum_nettoall = $sum_parts0 + $sum_netto7 + $sum_netto19;
|
||||
my $sum_nettoall = $sum_netto19;
|
||||
$sum_nettoall = $lb->cashme($sum_nettoall,",");
|
||||
my $sum_paid = $sum_parts0 + $sum_parts7 + $sum_parts19;
|
||||
$sum_parts0 = $lb->cashme($sum_parts0,",");
|
||||
$sum_parts7 = $lb->cashme($sum_parts7,",");
|
||||
my $sum_paid = $sum_parts19;
|
||||
$sum_parts19 = $lb->cashme($sum_parts19,",");
|
||||
$sum_umst7 = $lb->cashme($sum_umst7,",");
|
||||
$sum_umst19 = $lb->cashme($sum_umst19,",");
|
||||
$sum_paid = $lb->cashme($sum_paid,",");
|
||||
|
||||
|
||||
if($ctt->{txt00} !~ /Lieferschein/){
|
||||
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'Oline',-colspan=>5}," "),"\n";
|
||||
print $q->td({-class=>'Oline',-colspan=>6}," "),"\n";
|
||||
|
||||
print "<tr>\n";
|
||||
print "<td colspan='2' style='border:0px solid silver;vertical-align:top;padding:0.2em 0.5em;font-size:1em;'>$payment_text</td>\n";
|
||||
print "<td colspan='3' style='border:0px solid silver;vertical-align:top;padding:0.2em 0.5em;font-size:1em;'>$payment_text</td>\n";
|
||||
print "<td colspan='3' style='font-size:1em;'>\n";
|
||||
print $q->start_table({-style=>'border:1px solid silver;', -border=>'0', -width=>'100%',-align=>'center', -cellpadding=>'3', -cellspacing=>'0'}),"\n";
|
||||
|
||||
|
@ -612,19 +569,9 @@ td {
|
|||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'tdint'},"Betrag Netto:"),"\n";
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_nettoall €"),"\n";
|
||||
if($sum_parts0 != "0"){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"0% UmSt auf $sum_parts0 €:"),"\n";
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"0,00 €"),"\n";
|
||||
}
|
||||
if($sum_netto7 != "0"){
|
||||
print $q->Tr(),"\n";
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"7% UmSt auf $sum_netto7 €:"),"\n";
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_umst7 €"),"\n";
|
||||
}
|
||||
if($sum_parts19 != "0"){
|
||||
print $q->Tr();
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$umst1619% UmSt auf $sum_netto19 €:"),"\n";
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"19% UmSt auf $sum_netto19 €:"),"\n";
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_umst19 €"),"\n";
|
||||
}
|
||||
}
|
||||
|
@ -639,7 +586,6 @@ td {
|
|||
print $q->end_table,"\n";
|
||||
print "</td>\n";
|
||||
print "</tr>\n";
|
||||
}
|
||||
|
||||
print $q->end_table,"\n";
|
||||
print "</div>\n";
|
||||
|
@ -648,7 +594,7 @@ td {
|
|||
|
||||
#Beschreibungs-Text
|
||||
sub text_description(){
|
||||
my ($h_top,$mandant_main_id,$ctt_txt21,$ctt_txt12,$kind_of_trans,$node_name,$nullcount) = @_;
|
||||
my ($h_top,$mandant_main_id,$ctt_txt21,$ctt_txt12,$node_name,$nullcount) = @_;
|
||||
my $ctf = $db->get_content1("contentuser","$mandant_main_id");
|
||||
my $position;
|
||||
my $h_toppx = "$h_top" . "px";
|
||||
|
|
|
@ -675,7 +675,7 @@ sub save_transact(){
|
|||
fetch => "one",
|
||||
template_id => "224",
|
||||
int03 => ">::0",
|
||||
ct_name => "$coupon_nr",
|
||||
ct_name => "ilike::$coupon_nr",
|
||||
};
|
||||
my $ct = { c_id => 0 };
|
||||
$ct = $dbt->fetch_record($dbh_operator,$pref_co);
|
||||
|
@ -715,6 +715,7 @@ sub save_transact(){
|
|||
my $ctt = { c_id => 0 };
|
||||
$ctt = $dbt->fetch_record($dbh_operator,$pref);
|
||||
if($ctt->{c_id} > 0){
|
||||
#TODO, fetch coupon in user context to restrict mass inserts
|
||||
$pos_id = $dbt->insert_pos($dbh_operator,$ctt->{c_id},$ct,$ctadr_operator,"",$now_dt,$ct->{ct_name},"0",$owner);
|
||||
}else{
|
||||
my $ct_id = $dbt->insert_contenttrans($dbh_operator,$ctadr_operator,"300008","218","----",$owner);
|
||||
|
@ -840,14 +841,15 @@ sub net_booking(){
|
|||
# 4 = "hidden-lv"
|
||||
#</sharing_type>
|
||||
if($tariff_content->{$id}->{int18} && ($tariff_content->{$id}->{int18} == 2 || $tariff_content->{$id}->{int18} == 3 || $tariff_content->{$id}->{int18} == 4)){
|
||||
#auto set tarif if requested bike matches flot
|
||||
if($tariff_content->{$id}->{int12} && $tariff_content->{$id}->{int12} == $ct->{main_id} && $tariff_content->{$id}->{barcode}){
|
||||
$bw->log("2. net_booking tariff loop matches:",$tariff_content->{$id}->{barcode},"");
|
||||
$tariff_nr = $tariff_content->{$id}->{barcode};
|
||||
push(@txt30, "$tariff_content->{$id}->{barcode}");
|
||||
}
|
||||
#if($tariff_content->{$id}->{int12} && $tariff_content->{$id}->{barcode}){
|
||||
# push(@txt30, "$tariff_content->{$id}->{barcode}");
|
||||
#}
|
||||
}#add also other public tarif
|
||||
elsif($tariff_content->{$id}->{int18} && $tariff_content->{$id}->{int18} == 2 && $tariff_content->{$id}->{int12} && $tariff_content->{$id}->{barcode}){
|
||||
push(@txt30, "$tariff_content->{$id}->{barcode}");
|
||||
}
|
||||
}
|
||||
}
|
||||
$bw->log("--> NO user tariff defined, update user account to fallback default public or private or hidden",\@txt30,"");
|
||||
|
|
|
@ -26,7 +26,10 @@ sub new {
|
|||
|
||||
#Template
|
||||
sub tpl(){
|
||||
my ($node_meta,$users_dms,$return) = @_;
|
||||
my $node_meta = shift;
|
||||
my $users_dms = shift;
|
||||
my $return = shift || "";
|
||||
|
||||
my $q = new CGI;
|
||||
my $cf = new Config;
|
||||
my $lb = new Libenz;
|
||||
|
@ -36,23 +39,14 @@ sub tpl(){
|
|||
my $transp = new TransPositionen;
|
||||
my %varenv = $cf->envonline();
|
||||
my $lang = "de";
|
||||
|
||||
my $user_agent = $q->user_agent();
|
||||
my %ib = $but->ibuttons();
|
||||
my $line_count1;
|
||||
my $line_count1 = 0;
|
||||
|
||||
#get Firma
|
||||
my $ctf = $db->get_content1("contentuser",$dbt->{shareedms_conf}->{parent_id});
|
||||
#print Dumper($users_dms) . "if($R::c_id4trans && $node_meta->{tpl_id} && $users_dms->{u_id} > 0)\n";
|
||||
|
||||
my $rel4tpl = $db->get_rel4tpl("",$lang,$users_dms->{c_id4trans},$node_meta->{tpl_id});
|
||||
|
||||
my @tpl_order = split /,/,$rel4tpl->{tpl_order};
|
||||
my $node = $db->get_node4multi($node_meta->{main_id},$lang) if($node_meta->{main_id});
|
||||
if(!$node->{main_id} && $users_dms->{u_id}){
|
||||
$db->update_users4trans("0","0",$R::kind_of_trans,$users_dms->{u_id});
|
||||
$users_dms = $db->select_users($users_dms->{u_id});
|
||||
}
|
||||
|
||||
my $ctx = { c_id => 0 };
|
||||
$ctx = $db->get_content1("contenttrans",$users_dms->{c_id4trans});
|
||||
|
@ -102,16 +96,16 @@ EOF
|
|||
;
|
||||
|
||||
my $main_id = $rel4tpl->{main_id} || $ctx->{int12};
|
||||
my $set_main_id = $ctf->{txt22};
|
||||
my $set_main_id = $dbt->{shareedms_conf}->{invoice};
|
||||
|
||||
my @formular_relations=("$set_main_id:Typ auswählen ...");
|
||||
my @workflow_relations=("$set_main_id:Typ auswählen ...");
|
||||
my $nodes = $db->collect_node($dbt->{shareedms_conf}->{faktura}, "$lang");
|
||||
my $depends = "irgendeinzeichen";
|
||||
my $depends = "nothingelse";
|
||||
#$depends = "Storno" if(!$ctx->{close_time});
|
||||
foreach my $id (sort { $nodes->{$a}->{node_name} cmp $nodes->{$b}->{node_name} } keys (%$nodes)){
|
||||
push (@formular_relations, "$id:$nodes->{$id}->{node_path}") if(($main_id eq $id) || ($nodes->{$id}->{node_path} !~ /journal|bericht|offen|Storno|Vorauszahlungsrechnung|letzte|langzeit|OPOS|$depends/));
|
||||
push (@workflow_relations, "$id:$nodes->{$id}->{node_path}") if($nodes->{$id}->{node_path} !~ /journal|bericht|offen|Schlussrechnung|letzte|langzeit|OPOS|$node->{node_name}$|$ctx->{txt00}|$depends/);
|
||||
push (@workflow_relations, "$id:$nodes->{$id}->{node_path}") if($nodes->{$id}->{node_path} !~ /journal|bericht|offen|Schlussrechnung|letzte|langzeit|OPOS|$node_meta->{node_name}$|$ctx->{txt00}|$depends/);
|
||||
}
|
||||
|
||||
print "\n<div style='position:absolute;text-align:left;background-color:white;width:100%;'>\n";
|
||||
|
@ -177,7 +171,6 @@ EOF
|
|||
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit");
|
||||
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids");
|
||||
print $q->hidden(-name=>'ct_name4workflow', -override=>1, -value=>"$ctx->{ct_name}");
|
||||
print $q->hidden(-name=>'p_template', -override=>'1', -value=>"$node->{node_path}");
|
||||
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctx->{c_id}");
|
||||
print $q->hidden(-name=>'c_id4copy', -override=>'1', -value=>"$ctx->{c_id}");
|
||||
print $q->hidden(-name=>'close_time', -override=>'1', -value=>"$ctx->{close_time}");
|
||||
|
@ -353,7 +346,7 @@ EOF
|
|||
print "<tr><td colspan='5' style='font-size:1em;'>\n";
|
||||
|
||||
#require "Tpl/TransPositionen.pm";
|
||||
my $line_count2 = $transp->tpl($node_meta,$users_dms,$set_main_id,$rel4tpl->{main_id},$rel4tpl->{rel_id},$rel4tpl->{content_id},$lang,"$return","$node->{node_name}");
|
||||
my $line_count2 = $transp->tpl($node_meta,$users_dms,$set_main_id,$rel4tpl,$return);
|
||||
|
||||
print "</td></tr>\n";
|
||||
###end Edit Parts
|
||||
|
|
|
@ -20,6 +20,7 @@ use Mod::Libenz;
|
|||
use Mod::Libenzdb;
|
||||
use Mod::DBtank;
|
||||
use Mod::APIfunc;
|
||||
use Mod::Pricing;
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
|
@ -30,8 +31,13 @@ sub new {
|
|||
|
||||
#Template
|
||||
sub tpl(){
|
||||
my $self=shift;
|
||||
my ($node_meta,$users_dms,$set_main_id,$main_id,$rel_id,$c_id,$lang,$return,$node_name) = @_;
|
||||
my $self = shift;
|
||||
my $node_meta = shift;
|
||||
my $users_dms = shift;
|
||||
my $set_main_id = shift;
|
||||
my $rel4tpl = shift;
|
||||
my $return = shift || "";
|
||||
|
||||
my $q = new CGI;
|
||||
my $cf = new Config;
|
||||
my $lb = new Libenz;
|
||||
|
@ -39,15 +45,8 @@ sub tpl(){
|
|||
my $dbt = new DBtank;
|
||||
my $apif = new APIfunc;
|
||||
my $but = new Buttons;
|
||||
my $pri = new Pricing;
|
||||
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 %ib = $but->ibuttons();
|
||||
my $today = strftime("%d.%m.%Y",localtime(time));
|
||||
my $dbh = "";
|
||||
|
@ -62,17 +61,15 @@ sub tpl(){
|
|||
my $c_idpos = $R::c_idpos || $R::pos_id || "";
|
||||
|
||||
my $ctf = $db->get_content1("contentuser",$dbt->{shareedms_conf}->{parent_id});
|
||||
my $ctt = $db->get_content1("contenttrans",$c_id);
|
||||
|
||||
my $umst1619 = $lb->umst_breaking($ctt,"");
|
||||
my $ctt = $db->get_content1("contenttrans",$rel4tpl->{content_id});
|
||||
#my $umst1619 = $lb->umst_breaking($ctt,"");
|
||||
|
||||
my $ctadr = $db->get_content1("contentadr",$ctt->{int10});
|
||||
my $buchen_mtime = $lb->time4de($ctt->{mtime});
|
||||
my $vibuchen_mtime = "";
|
||||
$vibuchen_mtime = "Payone post " . $lb->time4de($ctt->{pay_time},1) . " . " if($ctt->{pay_time});
|
||||
|
||||
my $tpl = $db->get_tpl("208");
|
||||
my @tpl_order = split /,/,$tpl->{tpl_order};
|
||||
my @tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=Mietzeit","int03=Menge","int02=Preis","int07=Rabatt","int04=Gesamt");
|
||||
my $tplf = $db->get_tpl("201");#Firma tpl
|
||||
my @tplf_order = split /,/,$tplf->{tpl_order};
|
||||
|
||||
|
@ -87,7 +84,14 @@ sub tpl(){
|
|||
my $max_sum = $ctf->{int03} || "10000";
|
||||
my $cttpos = { c_id => 0 };
|
||||
my $rows = 0;
|
||||
($cttpos,$rows) = $db->collect_contentpos("contenttrans",$c_id);# if($c_id);
|
||||
($cttpos,$rows) = $db->collect_contentpos("contenttrans",$rel4tpl->{content_id});
|
||||
|
||||
foreach my $id (keys(%$cttpos)){
|
||||
if($cttpos->{$id}->{int26}){
|
||||
@tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=Mietzeit","int26=Einsparung","int03=Menge","int02=Preis","int07=Rabatt","int04=Gesamt");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($varenv{orga} eq "dms"){#obsolete after migrating lx-rad and mobile ...
|
||||
print<<EOF
|
||||
|
@ -115,49 +119,36 @@ print<<EOF
|
|||
EOF
|
||||
;
|
||||
}
|
||||
#print $q->div({ -class=>"ui-widget"}, $q->label({ -for=>"birds"},"Birds: "),$q->input({ -id=>"birds"},"")),"\n";
|
||||
|
||||
|
||||
print $q->start_table({-class=>'list', -border=>'0', -width=>'100%',-align=>'left', -cellpadding=>'3', -cellspacing=>'0'});
|
||||
|
||||
|
||||
#my $action_sort = "itime";
|
||||
#Parts Header
|
||||
print $q->start_form(-name=>'spartform');
|
||||
print $q->Tr(); $line_count2++;
|
||||
print $q->th($but->singlesubmit("select_part","*"),"\n");
|
||||
foreach (@tpl_order){
|
||||
my ($key,$val) = split /=/,$_;
|
||||
$k++ if($val);
|
||||
if("$key" eq "ct_name"){
|
||||
my $ctpos;
|
||||
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$c_id");
|
||||
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
|
||||
print $q->hidden(-id=>'c_id', -name=>"c_id", -override=>'1');
|
||||
print $q->hidden(-id=>'spart_ct_name', -name=>"spart_ct_name", -override=>'1');
|
||||
print $q->th($q->textfield(-class=>'etxt',-style=>'height:19px;width:140px;font-size:1.3em;text-align:right;',-id=>"json_select",-name=>"json_select",-value=>"", -override=>'1',-size=>"25",-maxlength=>50, -placeholder=>'Nummer'),"");
|
||||
}
|
||||
if($key =~ /int03/){
|
||||
print $q->th("$val");
|
||||
}elsif($key =~ /int|txt03/){
|
||||
print $q->th("$val");
|
||||
}elsif($key =~ /txt01/){
|
||||
|
||||
my $cal_button = "";
|
||||
my $ter_button = "";
|
||||
my $war_button = "";
|
||||
print $q->th("Beschreibung"),"\n";
|
||||
|
||||
}elsif($key =~ /txt/){
|
||||
print $q->th("$val");
|
||||
}
|
||||
}
|
||||
|
||||
$c_idpos = $1 if($return && $return =~ /pos_id=(\d+)/);
|
||||
print $q->hidden(-name=>'trans2edit', -value=>"transpos", -override=>'1');
|
||||
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
|
||||
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
|
||||
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids") if($R::relids);
|
||||
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
|
||||
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
|
||||
print $q->hidden(-id=>'c_id', -name=>"c_id", -override=>'1');
|
||||
print $q->hidden(-id=>'spart_ct_name', -name=>"spart_ct_name", -override=>'1');
|
||||
|
||||
$line_count2++;
|
||||
print $q->Tr();
|
||||
print $q->th($but->singlesubmit("select_part","*"),"\n");
|
||||
foreach (@tpl_order){
|
||||
my ($key,$val) = split /=/,$_;
|
||||
$k++ if($val);
|
||||
if($key eq "ct_name"){
|
||||
print $q->th($q->textfield(-class=>'etxt',-style=>'height:19px;width:140px;font-size:1.3em;text-align:right;',-id=>"json_select",-name=>"json_select",-value=>"", -override=>'1',-size=>"25",-maxlength=>50, -placeholder=>'Nummer'),"");
|
||||
}elsif($key =~ /int|txt/){
|
||||
print $q->th("$val");
|
||||
}
|
||||
}
|
||||
|
||||
print $q->end_form,"\n";
|
||||
|
||||
print $q->start_form(-name=>'transposform'),"\n";
|
||||
|
@ -169,7 +160,8 @@ EOF
|
|||
my $sum_parts7=0;
|
||||
my $sum_parts19=0;
|
||||
my $diff7 = 100 + 7;
|
||||
my $diff19 = 100 + $umst1619;
|
||||
#my $diff19 = 100 + $umst1619;
|
||||
my $diff19 = 100 + 19;
|
||||
my $sum_umst7=0;
|
||||
my $sum_umst19=0;
|
||||
my $i=0;
|
||||
|
@ -179,7 +171,6 @@ EOF
|
|||
#foreach my $id (sort { $cttpos->{$b}->{$scol} <=> $cttpos->{$a}->{$scol} } keys(%$cttpos)){
|
||||
foreach my $id (sort { $cttpos->{$b}->{$scol} cmp $cttpos->{$a}->{$scol} } keys(%$cttpos)){
|
||||
my $set_style="";
|
||||
my $gesamt="0";
|
||||
my $occupied_style = "";
|
||||
my $time_style = "";
|
||||
#$occupied_style = "color:#ff1493" if($cttpos->{$id}->{txt10} =~ /occupied|requested|canceled/);
|
||||
|
@ -202,44 +193,13 @@ EOF
|
|||
$line_count2++;
|
||||
#$line_count2 += scalar(@line_txt01);
|
||||
}
|
||||
my ($s_date,$s_dd,$s_mo,$s_yy,$s_hh,$s_mi,$e_date,$e_yy,$e_mo,$e_dd,$e_hh,$e_mi);
|
||||
my $einzel = $cttpos->{$id}->{int02};
|
||||
my $menge = $cttpos->{$id}->{int03} || 0;
|
||||
|
||||
#Make date and time
|
||||
if($cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
|
||||
($s_yy,$s_mo,$s_dd,$s_hh,$s_mi) = $lb->split_date($cttpos->{$id}->{start_time});
|
||||
($e_yy,$e_mo,$e_dd,$e_hh,$e_mi) = $lb->split_date($cttpos->{$id}->{end_time});
|
||||
}
|
||||
|
||||
|
||||
my $dt1 = DateTime->new(year => 2018, month => 3, day => 20);
|
||||
my $dt0 = $dt1;
|
||||
my $dt2 = $dt1;
|
||||
$dt0 = DateTime::Format::Pg->parse_datetime($cttpos->{$id}->{start_time}) if($cttpos->{$id}->{start_time});
|
||||
$dt2 = DateTime::Format::Pg->parse_datetime($cttpos->{$id}->{end_time}) if($cttpos->{$id}->{end_time});
|
||||
#if($dt2 < $dt0){
|
||||
#$time_style="color:red;";
|
||||
#}
|
||||
|
||||
if(looks_like_number($einzel) && $einzel != 0 && looks_like_number($menge) && $menge != 0){
|
||||
$gesamt = $einzel * $menge;
|
||||
|
||||
my $rabatt_val = $cttpos->{$id}->{int07} || "";
|
||||
if($rabatt_val != 0){
|
||||
my $rabatt_eur = $rabatt_val;
|
||||
$rabatt_eur = $einzel * $menge * $rabatt_val/100 if($cttpos->{$id}->{int08} != 1);#wenn int08 != 1 alias €
|
||||
$gesamt = $einzel * $menge - $rabatt_eur;
|
||||
}
|
||||
}
|
||||
|
||||
$gesamt = $lb->round($gesamt);
|
||||
$gesamt = $lb->cashme($gesamt);
|
||||
if($cttpos->{$id}->{int05} =~ /\d/){
|
||||
$sum_parts19 += $gesamt;
|
||||
}else{
|
||||
$sum_parts19 += $gesamt;
|
||||
}
|
||||
my $gesamt = 0;
|
||||
my $rabatt = "";
|
||||
($gesamt,$rabatt) = $pri->price2calc($cttpos->{$id});
|
||||
$sum_parts19 += $gesamt;
|
||||
$gesamt = $lb->round($gesamt);
|
||||
$gesamt = $lb->cashme($gesamt,",");
|
||||
|
||||
#1. Spalte
|
||||
print $q->Tr(),"\n";
|
||||
|
@ -247,12 +207,12 @@ EOF
|
|||
if(($c_idpos == $cttpos->{$id}->{c_id}) && ($R::trans2edit && $R::trans2edit =~ /transpos/)){
|
||||
print $q->hidden(-name=>'c_idpos', -value=>"$cttpos->{$id}->{c_id}", -override=>'1');
|
||||
print $q->hidden(-name=>'cc_id', -value=>"$cttpos->{$id}->{cc_id}", -override=>'1');
|
||||
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$c_id");
|
||||
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
|
||||
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
|
||||
print $but->singlesubmit2("ct_trans","save_pos","$ib{save_pos}","","ebutton5"),
|
||||
$but->singlesubmit2("ct_trans","delete_pos","$ib{delete_pos}"),"\n";
|
||||
}elsif(!$ctt->{close_time}){
|
||||
print $q->a({-class=>"editnav",-href=>"/DMS/Faktura?trans2edit=transpos\&c_idpos=$cttpos->{$id}->{c_id}\&c_id4trans=$c_id\&tpl_id4trans=$node_meta->{tpl_id}\&owner=$users_dms->{u_id}",-title=>"Datensatz bearbeiten"}, $q->img({-src=>"$varenv{metahost}/glyphicons/glyphicons-151-edit.png"})),"\n";
|
||||
print $q->a({-class=>"editnav",-href=>"/DMS/Faktura?trans2edit=transpos\&c_idpos=$cttpos->{$id}->{c_id}\&c_id4trans=$rel4tpl->{content_id}\&tpl_id4trans=$node_meta->{tpl_id}\&owner=$users_dms->{u_id}",-title=>"Datensatz bearbeiten"}, $q->img({-src=>"$varenv{metahost}/glyphicons/glyphicons-151-edit.png"})),"\n";
|
||||
}
|
||||
my $calpath = "Mietjournal";
|
||||
print $q->a({-class=>"linknav3", -style=>"background-color:$varenv{calendar_active_color}",-href=>"/DMS/$calpath/?cttpos_id=$cttpos->{$id}->{c_id}",-title=>"Im $calpath öffnen"},"<br /><br />ID $cttpos->{$id}->{c_id}"),"\n";
|
||||
|
@ -274,10 +234,26 @@ EOF
|
|||
if(($c_idpos == $cttpos->{$id}->{c_id}) && ($R::trans2edit && $R::trans2edit =~ /transpos/)){
|
||||
if($key =~ /ct_name/){
|
||||
print $q->td({-class=>'element',-style=>"$set_style text-align:right;"}, $q->textfield(-class=>'etxt',-style=>"text-align:right;min-width:120px;",-name=>"ct_name",-default=>"$ct_pos", -override=>'1',-size=>10,-readonly=>'1'),"\n");
|
||||
}elsif($key eq "int26"){
|
||||
my $co2saving = "";
|
||||
if($cttpos->{$id}->{int26}){
|
||||
$co2saving = "Einsparung</br>";
|
||||
my $co2diff = $pri->co2calc($cttpos->{$id});
|
||||
my $sprit_price = $pri->sprit2calc($cttpos->{$id});
|
||||
$co2saving .= "$co2diff kg CO²<br />";
|
||||
$co2saving .= "$sprit_price EUR<br />";
|
||||
$cttpos->{$id}->{int26} =~ s/\./,/;
|
||||
$co2saving .= "bei $cttpos->{$id}->{int26} KM";
|
||||
}
|
||||
print $q->td({-class=>'tdint'},"$co2saving");
|
||||
|
||||
}elsif($key =~ /int03/){
|
||||
print $q->td({-colspan=>'1',-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$menge", -override=>'1',-size=>"$isize",-maxlength=>10, -autofocus=>1),"\n");
|
||||
#TODO, autocalc Menge Preis by time-range
|
||||
#Menge
|
||||
print $q->td({-colspan=>'1',-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>10, -autofocus=>1),"\n");
|
||||
}elsif($key =~ /int02/){
|
||||
print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$einzel", -override=>'1',-size=>"$isize",-maxlength=>100),"\n");
|
||||
#Einzelpreis
|
||||
print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100),"\n");
|
||||
}elsif($key =~ /int07/){
|
||||
print $q->td({-class=>'element',-style=>"$txtstyle $set_style",-nowrap=>'1'},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100),$but->selector("int08","40px","$cttpos->{$id}->{int08}",("0.00:%","1.00:€"))),"\n";
|
||||
}elsif($key =~ /int04/){
|
||||
|
@ -286,6 +262,10 @@ EOF
|
|||
if($cttpos->{$id}->{int09} && $cttpos->{$id}->{$key} !~ /Manuell/){
|
||||
$cttpos->{$id}->{$key} .= "\nManuell bearbeitet\n";
|
||||
}
|
||||
|
||||
my ($s_yy,$s_mo,$s_dd,$s_hh,$s_mi) = $lb->split_date($cttpos->{$id}->{start_time});
|
||||
my ($e_yy,$e_mo,$e_dd,$e_hh,$e_mi) = $lb->split_date($cttpos->{$id}->{end_time});
|
||||
|
||||
print "<td class='element' style='$txtstyle $set_style;background-color: #ededed;$occupied_style;'\n>";
|
||||
print $q->textarea(-class=>'autos',-style=>"border: 1px solid #ededed;background-color: #ededed;",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-rows=>"1",-cols=>65),"<br />\n";
|
||||
|
||||
|
@ -325,17 +305,28 @@ EOF
|
|||
}else{
|
||||
print $q->td({-class=>'tdint'},"$article"),"\n";
|
||||
}
|
||||
}elsif($key eq "int26"){
|
||||
my $co2saving = "";
|
||||
if($cttpos->{$id}->{int26}){
|
||||
$co2saving = "Einsparung</br>";
|
||||
my $co2diff = $pri->co2calc($cttpos->{$id});
|
||||
my $sprit_price = $pri->sprit2calc($cttpos->{$id});
|
||||
$co2saving .= "$co2diff kg CO²<br />";
|
||||
$co2saving .= "$sprit_price EUR<br />";
|
||||
$cttpos->{$id}->{int26} =~ s/\./,/;
|
||||
$co2saving .= "bei $cttpos->{$id}->{int26} KM";
|
||||
}
|
||||
print $q->td({-class=>'tdint'},"$co2saving");
|
||||
|
||||
}elsif($key =~ /int02/){
|
||||
$einzel =~ s/\./,/;
|
||||
print $q->td({-class=>'tdint'},"$einzel"),"\n";
|
||||
$cttpos->{$id}->{$key} =~ s/\./,/;
|
||||
print $q->td({-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
|
||||
}elsif($key =~ /int03/){
|
||||
$menge =~ s/\./,/;
|
||||
print $q->td({-colspan=>'1',-class=>'tdint'},"$menge"),"\n";
|
||||
$cttpos->{$id}->{$key} =~ s/\./,/;
|
||||
print $q->td({-colspan=>'1',-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
|
||||
}elsif($key =~ /int04/){
|
||||
$gesamt =~ s/\./,/;
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$gesamt €"),"\n";
|
||||
}elsif($key =~ /int02/){
|
||||
print $q->td({-class=>'tdint'},"$einzel"),"\n";
|
||||
}elsif($key =~ /int07/){
|
||||
my $proz="";
|
||||
$proz = "%" if($cttpos->{$id}->{$key} && $cttpos->{$id}->{$key} != 0);
|
||||
|
@ -380,9 +371,11 @@ EOF
|
|||
if($cttpos->{$id}->{int06} || $cttpos->{$id}->{int04}){
|
||||
print $q->span("Start/End Station: $cttpos->{$id}->{int06} / $cttpos->{$id}->{int04}, GPS: $cttpos->{$id}->{txt06}"),"\n";
|
||||
}
|
||||
if($cttpos->{$id}->{start_time}){
|
||||
if($cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
|
||||
$cttpos->{$id}->{start_time} = $lb->time4de($cttpos->{$id}->{start_time},"1");
|
||||
$cttpos->{$id}->{end_time} = $lb->time4de($cttpos->{$id}->{end_time},"1");
|
||||
print "<br />\n";
|
||||
print $q->span({-style=>"$time_style"}, "Mietzeit: $s_dd.$s_mo.$s_yy $s_hh:$s_mi – $e_dd.$e_mo.$e_yy $e_hh:$e_mi"),"\n";
|
||||
print $q->span({-style=>"$time_style"}, "Mietzeit: $cttpos->{$id}->{start_time} – $cttpos->{$id}->{end_time}"),"\n";
|
||||
}
|
||||
print "</td>\n";
|
||||
}elsif($key =~ /txt/){
|
||||
|
@ -400,7 +393,8 @@ EOF
|
|||
$sum_umst7 = $lb->round($sum_umst7);
|
||||
}
|
||||
if($sum_parts19 != "0"){
|
||||
$sum_umst19 = $sum_parts19 / $diff19 * $umst1619;
|
||||
#$sum_umst19 = $sum_parts19 / $diff19 * $umst1619;
|
||||
$sum_umst19 = $sum_parts19 / $diff19 * 19;
|
||||
$sum_umst19 = $lb->round($sum_umst19);
|
||||
}
|
||||
my $sum_netto7 = $sum_parts7 - $sum_umst7;
|
||||
|
@ -449,7 +443,7 @@ EOF
|
|||
print $q->Tr("\n");
|
||||
print $q->td(" ");
|
||||
|
||||
if($node_name !~ /steuerfrei/){
|
||||
if($node_meta->{node_name} !~ /steuerfrei/){
|
||||
print $q->Tr("\n"); $line_count2++;
|
||||
print $q->td({-class=>'tdint'},"Nettobetrag:");
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_nettoall €");
|
||||
|
@ -466,7 +460,8 @@ EOF
|
|||
}
|
||||
if($sum_netto19 != "0"){
|
||||
print $q->Tr("\n");$line_count2++;
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$umst1619% UmSt auf $sum_netto19 €:");
|
||||
#print $q->td({-class=>'tdint',-nowrap=>"1"},"$umst1619% UmSt auf $sum_netto19 €:");
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"19% UmSt auf $sum_netto19 €:");
|
||||
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_umst19 €");
|
||||
}
|
||||
}
|
||||
|
@ -483,13 +478,13 @@ EOF
|
|||
|
||||
print $q->hidden(-name=>'owner', -override=>'1', -value=>"$users_dms->{u_id}");
|
||||
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
|
||||
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$c_id");
|
||||
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
|
||||
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
|
||||
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
|
||||
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
|
||||
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids") if($R::relids);
|
||||
|
||||
$set_main_id=$main_id if($main_id && $main_id > "300000");
|
||||
$set_main_id=$rel4tpl->{main_id} if($rel4tpl->{main_id} && $rel4tpl->{main_id} > "300000");
|
||||
print $q->hidden(-name=>'set_main_id', -value=>"$set_main_id", -override=>'1');
|
||||
|
||||
|
||||
|
@ -560,8 +555,8 @@ EOF
|
|||
print $q->div({-style=>"clear:both;padding:0.5em;font-size:0.81em;width:98%;text-align:right;color:green;"}, "Payone SEPA-Lastschrifteinzug war erfolgreich"),"\n";
|
||||
}
|
||||
|
||||
$db->updater("contenttrans","c_id","$c_id","txt20","$accounting_start - $accounting_end","","","","","no_time") if(!$int05 && $accounting_start && $accounting_end);
|
||||
$db->updater("contenttrans","c_id","$c_id","int15","$sum_preauth","","","","","no_time") if($sum_preauth || $sum_preauth == 0);
|
||||
$db->updater("contenttrans","c_id","$rel4tpl->{content_id}","txt20","$accounting_start - $accounting_end","","","","","no_time") if(!$int05 && $accounting_start && $accounting_end);
|
||||
$db->updater("contenttrans","c_id","$rel4tpl->{content_id}","int15","$sum_preauth","","","","","no_time") if($sum_preauth || $sum_preauth == 0);
|
||||
return "$line_count2";
|
||||
}
|
||||
1;
|
||||
|
|
|
@ -29,7 +29,7 @@ BEGIN {
|
|||
$syshost = $ARGV[0] || exit 1;
|
||||
}
|
||||
|
||||
use lib "/var/www/copri4/$syshost/src";
|
||||
use lib "/var/www/copri-bike/$syshost/src";
|
||||
|
||||
my $ctt_id = $ARGV[1] || "";
|
||||
my $intervall = $ARGV[2] || "1";
|
||||
|
@ -45,7 +45,7 @@ use Data::Dumper;
|
|||
use Scalar::Util qw(looks_like_number);
|
||||
|
||||
my $cf = new Config;
|
||||
my %varenv = $cf->envonline("$syshost");
|
||||
my %varenv = $cf->envonline();
|
||||
my $lb = new Libenz;
|
||||
my $dbt = new DBtank;
|
||||
my $pay = new Payment;
|
||||
|
@ -93,7 +93,7 @@ my $dbh = $dbt->dbconnect();
|
|||
print FILE "\n$i)** loop $now_dt ---> payone_cron select invoice ct.c_id:$ct4rel->{$id}->{c_id}| ca.c_id:$ct4rel->{$id}->{int10}| ct.ct_name:$ct4rel->{$id}->{ct_name}| ct.mtime:$ct4rel->{$id}->{mtime}\n";
|
||||
if($ct4rel->{$id}->{int10} && !$ct4rel->{$id}->{txt22} && $ct4rel->{$id}->{ct_name} =~ /---|^\d+$/){
|
||||
|
||||
my $umst1619 = $lb->umst_breaking($ct4rel->{$id},$now_dt);
|
||||
#my $umst1619 = $lb->umst_breaking($ct4rel->{$id},$now_dt);
|
||||
|
||||
#get Adresse from contentadr
|
||||
my $fetchadr = {
|
||||
|
@ -119,9 +119,8 @@ my $dbh = $dbt->dbconnect();
|
|||
my $sum_parts0=0;
|
||||
my $sum_parts7=0;
|
||||
my $sum_parts19=0;
|
||||
my $sum_kaution=0;
|
||||
my $diff7 = 100 + 7;
|
||||
my $diff19 = 100 + $umst1619;
|
||||
#my $diff19 = 100 + $umst1619;
|
||||
my $diff19 = 100 + 19;
|
||||
my $sum_umst7=0;
|
||||
my $sum_umst19=0;
|
||||
my $j=0;
|
||||
|
|
|
@ -80,12 +80,12 @@ sub tpl(){
|
|||
#
|
||||
#collect rentals on operators and get operator hash with dbname->uri_operator
|
||||
#$q->param(-name=>'month',-value=>"18");#disabled because changing to not invoiced positions
|
||||
my ($ctpos,$operator_hash) = $apif->user_rentals_history($q,$ctrel);
|
||||
#print Dumper($ctpos);
|
||||
my ($cttpos,$operator_hash) = $apif->user_rentals_history($q,$ctrel);
|
||||
#print Dumper($cttpos);
|
||||
|
||||
my $ctpos_count=0;
|
||||
foreach my $id (keys(%$ctpos)){
|
||||
$ctpos_count++;
|
||||
my $cttpos_count=0;
|
||||
foreach my $id (keys(%$cttpos)){
|
||||
$cttpos_count++;
|
||||
}
|
||||
|
||||
my $ctt_all = {};
|
||||
|
@ -312,9 +312,9 @@ Nach Abschluss der Registrierung erhalten Sie sowohl auf die von Ihnen hinterleg
|
|||
}
|
||||
print $q->div({-class=>'content2'}, "Nach der Mietradnutzung haben Sie hier die Möglichkeit die Mietvorgänge einzusehen und gebuchte Rechnungen als PDF herunterzuladen."),"\n";
|
||||
print $q->div({-class=>'content2'}, "Ihre Bonusnummer wurde akzeptiert. Bitte beachten Sie dass der Bonustarif im Kontext des Mietradbetreibers vergeben wird. Der Tarif wird bei der Mietrad Reservierung angezeigt."),"\n" if($R::success && $R::success eq "txt15");
|
||||
print $q->div({-class=>'content2'}, "Aktuell liegen keine Buchungen vor."),"\n" if(!$ctpos_count);
|
||||
print $q->div({-class=>'content2'}, "Aktuell liegen keine Buchungen vor."),"\n" if(!$cttpos_count);
|
||||
|
||||
}elsif($key =~ /barcode/ && $ctpos_count){
|
||||
}elsif($key =~ /barcode/ && $cttpos_count){
|
||||
|
||||
#print $q->div({-style=>'padding-top:1.5em;font-weight:bold;'},"Ihre Buchungsdaten der letzten 1 ½ Jahre im Überblick"),"\n";
|
||||
print $q->div({-style=>'padding-top:1.5em;font-weight:bold;'},"Folgende Positionen liegen zur nächsten Abbuchung vor"),"\n";
|
||||
|
@ -328,7 +328,7 @@ Nach Abschluss der Registrierung erhalten Sie sowohl auf die von Ihnen hinterleg
|
|||
print $q->start_table({-style=>'margin:15px 0;', -border=>'0', -width=>'auto',-align=>'left', -cellpadding=>'3', -cellspacing=>'0'}),"\n";
|
||||
print $q->Tr(),"\n";
|
||||
|
||||
foreach my $id (sort { lc($ctpos->{$b}->{$scol}) cmp lc($ctpos->{$a}->{$scol}) } keys(%$ctpos)){
|
||||
foreach my $id (sort { lc($cttpos->{$b}->{$scol}) cmp lc($cttpos->{$a}->{$scol}) } keys(%$cttpos)){
|
||||
$j++;
|
||||
$nx++;
|
||||
|
||||
|
@ -338,53 +338,53 @@ Nach Abschluss der Registrierung erhalten Sie sowohl auf die von Ihnen hinterleg
|
|||
|
||||
my $occupied_style = "background-color:#fcfdfb;";
|
||||
$occupied_style = "background-color:#f4f1ee;" if($nx %= 2);
|
||||
#$occupied_style = "color:#ff1493;" if($ctpos->{$id}->{txt10} =~ /occupied|requested/);
|
||||
$occupied_style = "color:#ff1493;" if($ctpos->{$id}->{int10} == 2 || $ctpos->{$id}->{int10} == 3);
|
||||
#$occupied_style = "color:#ff1493;" if($cttpos->{$id}->{txt10} =~ /occupied|requested/);
|
||||
$occupied_style = "color:#ff1493;" if($cttpos->{$id}->{int10} == 2 || $cttpos->{$id}->{int10} == 3);
|
||||
|
||||
if($key eq "txt01"){
|
||||
#print $q->td({-class=>'tdtxt', -style=>"$occupied_style"},"$ctpos->{$id}->{$key}");
|
||||
#print $q->td({-class=>'tdtxt', -style=>"$occupied_style"},"$cttpos->{$id}->{$key}");
|
||||
print "<td class='tdtxt' style='$occupied_style'>\n";
|
||||
if($ctpos->{$id}->{txt01}){
|
||||
$ctpos->{$id}->{$key} =~ s/\<br \/\>/; /g;
|
||||
print "$ctpos->{$id}->{$key}<br />\n";
|
||||
if($cttpos->{$id}->{txt01}){
|
||||
$cttpos->{$id}->{$key} =~ s/\<br \/\>/; /g;
|
||||
print "$cttpos->{$id}->{$key}<br />\n";
|
||||
}
|
||||
if($ctpos->{$id}->{start_time}){
|
||||
$ctpos->{$id}->{start_time} = $lb->time4de($ctpos->{$id}->{start_time},"1");
|
||||
$ctpos->{$id}->{end_time} = $lb->time4de($ctpos->{$id}->{end_time},"1");
|
||||
print $q->span("→ $ctpos->{$id}->{start_time}<br />← $ctpos->{$id}->{end_time}");
|
||||
if($cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
|
||||
$cttpos->{$id}->{start_time} = $lb->time4de($cttpos->{$id}->{start_time},"1");
|
||||
$cttpos->{$id}->{end_time} = $lb->time4de($cttpos->{$id}->{end_time},"1");
|
||||
print $q->span("→ $cttpos->{$id}->{start_time}<br />← $cttpos->{$id}->{end_time}");
|
||||
}
|
||||
print "</td>\n";
|
||||
}elsif($key =~ /int04/){
|
||||
if($ctpos->{$id}->{int09}){#if Tarifnr then bike
|
||||
#print $q->td({-class=>'tdint', -style=>"$occupied_style"},"Station $ctpos->{$id}->{$key}");
|
||||
if($cttpos->{$id}->{int09}){#if Tarifnr then bike
|
||||
#print $q->td({-class=>'tdint', -style=>"$occupied_style"},"Station $cttpos->{$id}->{$key}");
|
||||
print "<td class='tdtxt' style='$occupied_style'>\n";
|
||||
print $q->span("Station<br />→ $ctpos->{$id}->{txt12}$ctpos->{$id}->{int06}<br />← $ctpos->{$id}->{txt13}$ctpos->{$id}->{int04}");
|
||||
print $q->span("Station<br />→ $cttpos->{$id}->{txt12}$cttpos->{$id}->{int06}<br />← $cttpos->{$id}->{txt13}$cttpos->{$id}->{int04}");
|
||||
print "</td>\n";
|
||||
}else{
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style"},"$ctpos->{$id}->{$key}");
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style"},"$cttpos->{$id}->{$key}");
|
||||
}
|
||||
}elsif($key =~ /ct_name/){
|
||||
if($ctpos->{$id}->{int09}){#if Tarifnr then bike
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style"},"Rad<br />$ctpos->{$id}->{$key}");
|
||||
if($cttpos->{$id}->{int09}){#if Tarifnr then bike
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style"},"Rad<br />$cttpos->{$id}->{$key}");
|
||||
}else{
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style"},"$ctpos->{$id}->{$key}");
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style"},"$cttpos->{$id}->{$key}");
|
||||
}
|
||||
}elsif($key eq "int26"){
|
||||
my $co2saving = "";
|
||||
if($ctpos->{$id}->{int26}){
|
||||
if($cttpos->{$id}->{int26}){
|
||||
$co2saving = "Einsparung</br>";
|
||||
my $co2diff = $pri->co2calc($ctpos->{$id});
|
||||
my $sprit_price = $pri->sprit2calc($ctpos->{$id});
|
||||
my $co2diff = $pri->co2calc($cttpos->{$id});
|
||||
my $sprit_price = $pri->sprit2calc($cttpos->{$id});
|
||||
$co2saving .= "$co2diff kg CO²<br />";
|
||||
$co2saving .= "$sprit_price EUR<br />";
|
||||
$ctpos->{$id}->{int26} =~ s/\./,/;
|
||||
$co2saving .= "bei $ctpos->{$id}->{int26} KM";
|
||||
$cttpos->{$id}->{int26} =~ s/\./,/;
|
||||
$co2saving .= "bei $cttpos->{$id}->{int26} KM";
|
||||
}
|
||||
print $q->td({-class=>'tdint', -style=>"$occupied_style", -nowrap=>1},"$co2saving");
|
||||
}elsif($key eq "int02"){
|
||||
my $gesamt = 0;
|
||||
my $rabatt = "";
|
||||
($gesamt,$rabatt) = $pri->price2calc($ctpos->{$id});
|
||||
($gesamt,$rabatt) = $pri->price2calc($cttpos->{$id});
|
||||
$sum += $gesamt;
|
||||
$gesamt = $lb->round($gesamt);
|
||||
$gesamt = $lb->cashme($gesamt,",");
|
||||
|
|
Loading…
Add table
Reference in a new issue