From: Sven Schöling Date: Thu, 24 Nov 2011 14:01:12 +0000 (+0100) Subject: rp.pl::tax_report nach template ausgelagert. X-Git-Tag: release-2.7.0beta1~162 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=886784c7110d11a8163a1c517f07cd82d790f4be;p=kivitendo-erp.git rp.pl::tax_report nach template ausgelagert. --- diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index 01ae84fdb..e15ac78f4 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -1349,259 +1349,138 @@ sub statement_details { } sub generate_tax_report { - $main::lxdebug->enter_sub(); - - $main::auth->assert('report'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; + $::lxdebug->enter_sub; + $::auth->assert('report'); - RP->tax_report(\%myconfig, \%$form); + RP->tax_report(\%::myconfig, $::form); - my $descvar = "$form->{accno}_description"; - my $description = $form->escape($form->{$descvar}); - my $ratevar = "$form->{accno}_rate"; + my $descvar = "$::form->{accno}_description"; my ($subtotalnetamount, $subtotaltax, $subtotal) = (0, 0, 0); - my $department = $form->escape($form->{department}); - # construct href - my $href = - "$form->{script}?&action=generate_tax_report&fromdate=$form->{fromdate}&todate=$form->{todate}&db=$form->{db}&method=$form->{method}&accno=$form->{accno}&$descvar=$description&department=$department&report=$form->{report}"; - - # construct callback - $description = $form->escape($form->{$descvar}, 1); - $department = $form->escape($form->{department}, 1); - my $callback = - "$form->{script}?&action=generate_tax_report&fromdate=$form->{fromdate}&todate=$form->{todate}&db=$form->{db}&method=$form->{method}&accno=$form->{accno}&$descvar=$description&department=$department&report=$form->{report}"; - - my $title = $form->escape($form->{title}); - $href .= "&title=$title"; - $title = $form->escape($form->{title}, 1); - $callback .= "&title=$title"; + my $href = + my $callback = build_std_url('action=generate_tax_report', $descvar, + qw(fromdate todate db method accno department report title)); - $form->{title} = qq|$form->{title} $form->{"$form->{accno}_description"} |; - - my @columns = - $form->sort_columns(qw(id transdate invnumber name netamount tax amount)); + my @columns = $::form->sort_columns(qw(id transdate invnumber name netamount tax amount)); my @column_index; - foreach my $item (@columns) { - if ($form->{"l_$item"} eq "Y") { - push @column_index, $item; - - # add column to href and callback + for my $item (@columns, 'subtotal') { + if ($::form->{"l_$item"} eq "Y") { $callback .= "&l_$item=Y"; $href .= "&l_$item=Y"; } } - if ($form->{l_subtotal} eq 'Y') { - $callback .= "&l_subtotal=Y"; - $href .= "&l_subtotal=Y"; + for my $item (@columns) { + if ($::form->{"l_$item"} eq "Y") { + push @column_index, $item; + } } - my $option; - if ($form->{department}) { - ($department) = split /--/, $form->{department}; - $option = $locale->text('Department') . " : $department"; + my @options; + if ($::form->{department}) { + my ($department) = split /--/, $::form->{department}; + push @options, $::locale->text('Department') . " : $department"; } - my ($fromdate, $todate); # if there are any dates - if ($form->{fromdate} || $form->{todate}) { - if ($form->{fromdate}) { - $fromdate = $locale->date(\%myconfig, $form->{fromdate}, 1); - } - if ($form->{todate}) { - $todate = $locale->date(\%myconfig, $form->{todate}, 1); - } - - $form->{period} = "$fromdate - $todate"; + if ($::form->{fromdate} || $::form->{todate}) { + my $fromdate = $::locale->date(\%::myconfig, $::form->{fromdate}, 1) if $::form->{fromdate}; + my $todate = $::locale->date(\%::myconfig, $::form->{todate}, 1) if $::form->{todate}; + push @options, "$fromdate - $todate"; } else { - $form->{period} = - $locale->date(\%myconfig, $form->current_date(\%myconfig), 1); + push @options, $::locale->date(\%::myconfig, $::form->current_date, 1); } my ($name, $invoice, $arap); - if ($form->{db} eq 'ar') { - $name = $locale->text('Customer'); + if ($::form->{db} eq 'ar') { + $name = $::locale->text('Customer'); $invoice = 'is.pl'; $arap = 'ar.pl'; } - if ($form->{db} eq 'ap') { - $name = $locale->text('Vendor'); + if ($::form->{db} eq 'ap') { + $name = $::locale->text('Vendor'); $invoice = 'ir.pl'; $arap = 'ap.pl'; } - $option .= "
" if $option; - $option .= "$form->{period}"; - - my %column_header; - $column_header{id} = qq|| . $locale->text('ID') . qq||; - $column_header{invnumber} = qq|| . $locale->text('Invoice') . qq||; - $column_header{transdate} = qq|| . $locale->text('Date') . qq||; - $column_header{netamount} = qq|| . $locale->text('Amount') . qq||; - $column_header{tax} = qq|| . $locale->text('Tax') . qq||; - $column_header{amount} = qq|| . $locale->text('Total') . qq||; - - $column_header{name} = qq|$name|; - - $form->header; - - print qq| - - - - - - - - - - - - - - - - -
$form->{title}
$option
- - -|; - - map { print "$column_header{$_}\n" } @column_index; + my %column_header = ( + id => $::locale->text('ID'), + invnumber => $::locale->text('Invoice'), + transdate => $::locale->text('Date'), + netamount => $::locale->text('Amount'), + tax => $::locale->text('Tax'), + amount => $::locale->text('Total'), + name => $name, + ); - print qq| - -|; + my %column_sorted = map { $_ => 1 } qw(id invnumber transdate); - # add sort and escape callback - $callback = $form->escape($callback . "&sort=$form->{sort}"); + $callback .= "&sort=$::form->{sort}"; my $sameitem; - if (@{ $form->{TR} }) { - $sameitem = $form->{TR}->[0]->{ $form->{sort} }; + if (@{ $::form->{TR} }) { + $sameitem = $::form->{TR}->[0]->{ $::form->{sort} }; } - my ($totalnetamount, $totaltax); - my ($i); - foreach my $ref (@{ $form->{TR} }) { + my ($totalnetamount, $totaltax, @data); + for my $ref (@{ $::form->{TR} }) { my $module = ($ref->{invoice}) ? $invoice : $arap; - if ($form->{l_subtotal} eq 'Y') { - if ($sameitem ne $ref->{ $form->{sort} }) { - tax_subtotal(\@column_index, \$subtotalnetamount, \$subtotaltax, \$subtotal); - $sameitem = $ref->{ $form->{sort} }; + if ($::form->{l_subtotal} eq 'Y') { + if ($sameitem ne $ref->{ $::form->{sort} }) { + push @data, { + subtotal => 1, + netamount => $subtotalnetamount, + tax => $subtotaltax, + amount => $subtotal, + }; + $subtotalnetamount = 0; + $subtotaltax = 0; + $sameitem = $ref->{ $::form->{sort} }; } } - $totalnetamount += $ref->{netamount}; - $totaltax += $ref->{tax}; - $ref->{amount} = $ref->{netamount} + $ref->{tax}; - $subtotalnetamount += $ref->{netamount}; $subtotaltax += $ref->{tax}; + $totalnetamount += $ref->{netamount}; + $totaltax += $ref->{tax}; + $ref->{amount} = $ref->{netamount} + $ref->{tax}; - map { - $ref->{$_} = $form->format_amount(\%myconfig, $ref->{$_}, 2, " "); - } qw(netamount tax amount); - - my %column_data; - $column_data{id} = qq||; - $column_data{invnumber} = - qq||; - $column_data{transdate} = qq||; - $column_data{name} = qq||; - - map { $column_data{$_} = qq|| } - qw(netamount tax amount); - - $i++; - $i %= 2; - print qq| - -|; - - map { print "$column_data{$_}\n" } @column_index; - - print qq| - -|; - + push @data, { map { $_ => { data => $ref->{$_} } } keys %$ref }; + $data[-1]{invnumber}{link} = "$module?action=edit&id=$ref->{id}&callback=$callback"; + $data[-1]{$_}{numeric} = 1 for qw(netamount tax amount); } - if ($form->{l_subtotal} eq 'Y') { - tax_subtotal(\@column_index, \$subtotalnetamount, \$subtotaltax, \$subtotal); + if ($::form->{l_subtotal} eq 'Y') { + push @data, { + subtotal => 1, + netamount => $subtotalnetamount, + tax => $subtotaltax, + amount => $subtotal, + }; } - my %column_data; - map { $column_data{$_} = qq|| } @column_index; - - print qq| - - -|; - - my $total = $form->format_amount(\%myconfig, $totalnetamount + $totaltax, 2, " "); - $totalnetamount = $form->format_amount(\%myconfig, $totalnetamount, 2, " "); - $totaltax = $form->format_amount(\%myconfig, $totaltax, 2, " "); - - $column_data{netamount} = qq||; - $column_data{tax} = qq||; - $column_data{amount} = qq||; - - map { print "$column_data{$_}\n" } @column_index; - - print qq| - -
$ref->{id}{id}&callback=$callback>$ref->{invnumber}$ref->{transdate}$ref->{name} $ref->{$_}
 
$totalnetamount$totaltax$total
-

- - - -|; - - $main::lxdebug->leave_sub(); -} - -sub tax_subtotal { - $main::lxdebug->enter_sub(); - - my ($column_index, $subtotalnetamount, $subtotaltax, $subtotal) = @_; - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - my %column_data; - map { $column_data{$_} = " " } @{ $column_index }; - - $$subtotalnetamount = $form->format_amount(\%myconfig, $$subtotalnetamount, 2, " "); - $$subtotaltax = $form->format_amount(\%myconfig, $$subtotaltax, 2, " "); - $$subtotal = $form->format_amount(\%myconfig, $$subtotalnetamount + $$subtotaltax, 2, " "); - - $column_data{netamount} = "$$subtotalnetamount"; - $column_data{tax} = "$$subtotaltax"; - $column_data{amount} = "$$subtotal"; - - $$subtotalnetamount = 0; - $$subtotaltax = 0; - - print qq| - -|; - map { print "\n$column_data{$_}" } @{ $column_index }; + push @data, { + total => 1, + netamount => $totalnetamount, + tax => $totaltax, + amount => $totalnetamount + $totaltax, + }; - print qq| - -|; + $::form->header; + print $::form->parse_html_template('rp/tax_report', { + column_index => \@column_index, + column_header => \%column_header, + column_sorted => \%column_sorted, + sort_base => $href, + DATA => \@data, + options => \@options, + }); - $main::lxdebug->leave_sub(); + $::lxdebug->leave_sub; } sub list_payments { diff --git a/templates/webpages/rp/tax_report.html b/templates/webpages/rp/tax_report.html new file mode 100644 index 000000000..4ff5b5010 --- /dev/null +++ b/templates/webpages/rp/tax_report.html @@ -0,0 +1,62 @@ +[%- USE L %] +[%- USE HTML %] +[%- USE LxERP %] +[%- USE T8 %] + +[% BLOCK sub_total %] + + [% FOREACH col IN column_index %] + + [%- SWITCH col %] + [%- CASE [ 'netamount', 'tax', 'amount' ] %][% LxERP.format_amount(row.$col, 2) %] + [%- CASE %] [% END %] + + [% END %] + +[% END %] + + + +

[% title %] [% SET tax_report__accno_title = accno _ '_description' %][% GET $tax_report__accno_title %]

+ +

+ [% FOREACH option IN options %][% option %][% '
' UNLESS loop.last %][% END %] +

+ + + + [%- FOREACH col IN column_index %] + + [%- END %] + + +[%- FOREACH row IN DATA %] + [% IF row.subtotal %] + [% PROCESS sub_total class='listsubtotal' %] + [% ELSIF row.total %] + [% PROCESS sub_total class='listtotal' %] + [% ELSE %] + + [%- FOREACH col IN column_index %] + + [%- IF row.$col.link %][% END %] + [%- IF row.$col.numeric %] + [%- LxERP.format_amount(row.$col.data, 2) | html %] + [%- ELSE %] + [%- row.$col.data | html %] + [%- END %] + [%- IF row.$col.link %][% END %] + + [%- END %] + + [% END %] +[%- END %] +
+ [%- IF column_sorted.$col %][% END %] + [%- column_header.$col %] + [%- IF column_sorted.$col %][% END %] +
+
+ + +