diff --git a/copri4/main/src/Mod/DBtank.pm b/copri4/main/src/Mod/DBtank.pm
index 57bccee..a2f17be 100755
--- a/copri4/main/src/Mod/DBtank.pm
+++ b/copri4/main/src/Mod/DBtank.pm
@@ -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){
diff --git a/copri4/main/src/Mod/Printpreview.pm b/copri4/main/src/Mod/Printpreview.pm
index 7a53cbf..c3f63b5 100755
--- a/copri4/main/src/Mod/Printpreview.pm
+++ b/copri4/main/src/Mod/Printpreview.pm
@@ -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
\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/\
/; /g;
print "$cttpos->{$id}->{$key}
\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 "
\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 "\n";
}
-
+ if($key eq "int26"){
+ my $co2saving = "";
+ if($cttpos->{$id}->{int26}){
+ $co2saving = "Einsparung";
+ my $co2diff = $pri->co2calc($cttpos->{$id});
+ my $sprit_price = $pri->sprit2calc($cttpos->{$id});
+ $co2saving .= "$co2diff kg CO²
";
+ $co2saving .= "$sprit_price EUR
";
+ $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 "
\n";
- print "$payment_text | \n";
+ print "$payment_text | \n";
print "\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 " | \n";
print "
\n";
- }
print $q->end_table,"\n";
print "\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";
diff --git a/copri4/main/src/Mod/Shareework.pm b/copri4/main/src/Mod/Shareework.pm
index 6b05216..975aa07 100755
--- a/copri4/main/src/Mod/Shareework.pm
+++ b/copri4/main/src/Mod/Shareework.pm
@@ -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"
#
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,"");
diff --git a/copri4/main/src/Tpl/Address3.pm b/copri4/main/src/Tpl/Address3.pm
index afa4fe6..17b9ff1 100755
--- a/copri4/main/src/Tpl/Address3.pm
+++ b/copri4/main/src/Tpl/Address3.pm
@@ -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\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 "
\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 " |
\n";
###end Edit Parts
diff --git a/copri4/main/src/Tpl/TransPositionen.pm b/copri4/main/src/Tpl/TransPositionen.pm
index b42d6c4..edd1a29 100755
--- a/copri4/main/src/Tpl/TransPositionen.pm
+++ b/copri4/main/src/Tpl/TransPositionen.pm
@@ -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<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"},"
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";
+ my $co2diff = $pri->co2calc($cttpos->{$id});
+ my $sprit_price = $pri->sprit2calc($cttpos->{$id});
+ $co2saving .= "$co2diff kg CO²
";
+ $co2saving .= "$sprit_price EUR
";
+ $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 "";
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)," \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";
+ my $co2diff = $pri->co2calc($cttpos->{$id});
+ my $sprit_price = $pri->sprit2calc($cttpos->{$id});
+ $co2saving .= "$co2diff kg CO² ";
+ $co2saving .= "$sprit_price EUR ";
+ $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 " \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 " | \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;
diff --git a/copri4/main/src/scripts/payone_cron.pl b/copri4/main/src/scripts/payone_cron.pl
index 05c9a0a..f0aa097 100755
--- a/copri4/main/src/scripts/payone_cron.pl
+++ b/copri4/main/src/scripts/payone_cron.pl
@@ -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;
diff --git a/copri4/shareeapp-operator/src/Tpl/FormEdit.pm b/copri4/shareeapp-operator/src/Tpl/FormEdit.pm
index 4d5bf3c..52e3625 100755
--- a/copri4/shareeapp-operator/src/Tpl/FormEdit.pm
+++ b/copri4/shareeapp-operator/src/Tpl/FormEdit.pm
@@ -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 "\n";
- if($ctpos->{$id}->{txt01}){
- $ctpos->{$id}->{$key} =~ s/\ /; /g;
- print "$ctpos->{$id}->{$key} \n";
+ if($cttpos->{$id}->{txt01}){
+ $cttpos->{$id}->{$key} =~ s/\ /; /g;
+ print "$cttpos->{$id}->{$key} \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} ← $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} ← $cttpos->{$id}->{end_time}");
}
print " | \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 "\n";
- print $q->span("Station → $ctpos->{$id}->{txt12}$ctpos->{$id}->{int06} ← $ctpos->{$id}->{txt13}$ctpos->{$id}->{int04}");
+ print $q->span("Station → $cttpos->{$id}->{txt12}$cttpos->{$id}->{int06} ← $cttpos->{$id}->{txt13}$cttpos->{$id}->{int04}");
print " | \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
$ctpos->{$id}->{$key}");
+ if($cttpos->{$id}->{int09}){#if Tarifnr then bike
+ print $q->td({-class=>'tdint', -style=>"$occupied_style"},"Rad
$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";
- 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²
";
$co2saving .= "$sprit_price EUR
";
- $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,",");