Invoice refactoring

This commit is contained in:
ragu 2022-05-01 18:31:03 +02:00
parent 74ecbbd2a8
commit b3fb4e2143
9 changed files with 220 additions and 441 deletions

View file

@ -85,7 +85,7 @@ td {
}
.tdtxt {
font-size:1em;
font-size:0.91em;
padding:0.1em 0.5em;
vertical-align: top;
text-align: left;
@ -107,7 +107,7 @@ td {
}
.tdint {
font-size:1em;
font-size:0.91em;
padding:0.1em 0.5em;
vertical-align: top;
text-align: right;
@ -342,11 +342,11 @@ td {
#my $umst1619 = $lb->umst_breaking($ctt,"");
my @tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=Mietzeit","int03=Menge","int02=Preis","int07=Rabatt","int04=Gesamt");
my @tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=Mietzeit","int03=Menge (Std:Min)","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");
@tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=Mietzeit","int26=Einsparung","int03=Menge (Std:Min)","int02=Preis","int07=Rabatt","int04=Gesamt");
}
}
@ -387,6 +387,8 @@ td {
#Tablecontent (ct_name(primary key))
my $sum_parts19=0;
my $diff19 = 100 + 19;
my $sum_umst19=0;
my $j=0;
my $k=0;
my $nullcount=0;
@ -396,28 +398,33 @@ td {
my $gesamt = 0;
my $rabatt = "";
my $einzel = $cttpos->{$id}->{int02};
my $menge = $cttpos->{$id}->{int03} || 0;
my $unit = $cttpos->{$id}->{txt03};
my $pricing = {};
my $counting = {};
my $rental_feed = {};
($gesamt,$rabatt) = $pri->price2calc($cttpos->{$id});
if($cttpos->{$id}->{int35} && $cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
($pricing,$counting) = $pri->counting_rental(\%varenv,$cttpos->{$id},"calc_price");
$rental_feed = $pri->fetch_rentalfeed(\%varenv,$cttpos->{$id},$counting);
$rabatt = $pricing->{discount};
$sum_parts19 += $pricing->{total_price};
$gesamt = $pri->round($pricing->{total_price});
$gesamt = sprintf('%.2f', $gesamt);
}else{
($gesamt,$rabatt) = $pri->price2calc($cttpos->{$id});
$sum_parts19 += $gesamt;
$gesamt = $pri->round($gesamt);
$gesamt = sprintf('%.2f', $gesamt);
}
if($gesamt == 0){
$nullcount++;
}
if($gesamt != 0){
$gesamt = $lb->round($gesamt);
$gesamt = $lb->cashme($gesamt,",");
$j++;
if($j<=$max_table_wc || $break_table_wc){
($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){
#print "$j|";
@ -446,15 +453,17 @@ td {
if($key =~ /txt01/){
print "<td class='tdtxt'>\n";
if($cttpos->{$id}->{$key}){
$cttpos->{$id}->{$key} =~ s/\<br \/\>/; &nbsp; /g;
print "$cttpos->{$id}->{$key}<br />\n";
$cttpos->{$id}->{$key} =~ s/\<br \/\>/, &nbsp; /g;
my $tariff = "";
$tariff = "<br />Tarif: $cttpos->{$id}->{int09} $cttpos->{$id}->{txt04}" if($cttpos->{$id}->{txt04});
print "$cttpos->{$id}->{$key} $tariff<br />\n";
}
if($cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
#print "<br />\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 $q->span("$cttpos->{$id}->{start_time} $cttpos->{$id}->{end_time}"),"\n";
}
print "</td>\n";
}
@ -472,25 +481,36 @@ td {
print $q->td({-class=>'tdint',-nowrap=>'1'},"$co2saving");
}
if($key =~ /int03/){
$cttpos->{$id}->{$key} =~ s/\./,/;
print $q->td({-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
if($cttpos->{$id}->{int35} && $cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
print $q->td({-class=>'tdint',-nowrap=>1},"$pricing->{real_clock} $pricing->{freed_time}"),"\n";
}else{
$cttpos->{$id}->{$key} =~ s/\./,/;
print $q->td({-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
}
}
if($key =~ /int02/){
if($cttpos->{$id}->{$key} == "0"){
$cttpos->{$id}->{$key}="";
if($key =~ /int02/){
if($cttpos->{$id}->{int35} && $cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
print "<td class='tdint' nowrap>\n";
foreach my $fid (sort keys(%{ $rental_feed->{tariff_description2} })){
if(ref($rental_feed->{tariff_description2}->{$fid}) eq "ARRAY"){
print "$rental_feed->{tariff_description2}->{$fid}[0]: $rental_feed->{tariff_description2}->{$fid}[1]<br />\n";
}
}
print "</td>\n";
}else{
$cttpos->{$id}->{$key} =~ s/\./,/;
}
print $q->td({-nowrap=>'1',-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
}
$cttpos->{$id}->{$key} =~ s/\./,/;
print $q->td({-class=>'tdint',-nowrap=>1},"$cttpos->{$id}->{$key} €"),"\n";
}
}
if($key =~ /int04/){
$gesamt .= " €";
if($key =~ /int04/){
$gesamt =~ s/\./,/;
if($rabatt != 0){
print $q->td({-nowrap=>'1',-class=>'tdint'},"(Rabatt $rabatt) $gesamt"),"\n";
$rabatt =~ s/\./,/;
print $q->td({-nowrap=>'1',-class=>'tdint'},"$rabatt $gesamt €"),"\n";
}else{
print $q->td({-nowrap=>'1',-class=>'tdint'},"$gesamt"),"\n";
print $q->td({-nowrap=>'1',-class=>'tdint'},"$gesamt"),"\n";
}
}
}
@ -516,18 +536,23 @@ td {
}
}
my $diff19 = 100 + 19;
my $sum_umst19 = $sum_parts19 / $diff19 * 19;
$sum_umst19 = $lb->round($sum_umst19);
if($sum_parts19 && $sum_parts19 != 0){
$sum_umst19 = $sum_parts19 / $diff19 * 19;
$sum_umst19 = $pri->round($sum_umst19);
}
my $sum_netto19 = $sum_parts19 - $sum_umst19;
$sum_netto19 = $lb->cashme($sum_netto19);
my $sum_nettoall = $sum_netto19;
$sum_nettoall = $lb->cashme($sum_nettoall,",");
$sum_netto19 = sprintf('%.2f', $sum_netto19);
$sum_netto19 =~ s/\./,/;
my $sum_paid = $sum_parts19;
$sum_parts19 = $lb->cashme($sum_parts19,",");
$sum_umst19 = $lb->cashme($sum_umst19,",");
$sum_paid = $lb->cashme($sum_paid,",");
$sum_paid = $pri->round($sum_paid);
my $sum_preauth = $sum_paid || 0;
$sum_paid = sprintf('%.2f', $sum_paid);
$sum_paid =~ s/\./,/;
$sum_parts19 = sprintf('%.2f', $sum_parts19);
$sum_umst19 = sprintf('%.2f', $sum_umst19);
$sum_umst19 =~ s/\./,/;
print $q->Tr(),"\n";
@ -549,7 +574,7 @@ td {
if($ctt->{txt00} !~ /steuerfrei/){#dirty hack
print $q->Tr(),"\n";
print $q->td({-class=>'tdint'},"Betrag Netto:"),"\n";
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_nettoall €"),"\n";
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_netto19 €"),"\n";
if($sum_parts19 != "0"){
print $q->Tr();
print $q->td({-class=>'tdint',-nowrap=>"1"},"19% UmSt auf $sum_netto19 €:"),"\n";