X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Frp.pl;h=25e62594e0ebe2c9353efa972f148d9c4c3456f4;hb=ef92528c3f875dee2b456418adb214ccebb97361;hp=5164b7f10bbd1cc067f15526f7381e237a0f12b0;hpb=9bd3030a376850c427c102c6e0c54f19bd19332e;p=kivitendo-erp.git diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index 5164b7f10..25e62594e 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -85,6 +85,8 @@ use strict; # $locale->text('Trial Balance') # $locale->text('AR Aging') # $locale->text('AP Aging') +# $locale->text('Search AR Aging') +# $locale->text('Search AP Aging') # $locale->text('Tax collected') # $locale->text('Tax paid') # $locale->text('Receipts') @@ -92,6 +94,7 @@ use strict; # $locale->text('Project Transactions') # $locale->text('Non-taxable Sales') # $locale->text('Non-taxable Purchases') +# $locale->text('Business evaluation') # $form->parse_html_template('rp/html_report_susa') @@ -107,10 +110,6 @@ my $rp_access_map = { 'balance_sheet' => 'report', }; -# subs use these pretty freely, so declare them here -our (%column_data, @column_index); -our ($subtotalnetamount, $subtotaltax, $subtotal); - sub check_rp_access { my $form = $main::form; @@ -133,8 +132,8 @@ sub report { 'balance_sheet' => 'Balance Sheet', 'income_statement' => 'Income Statement', 'trial_balance' => 'Trial Balance', - 'ar_aging' => 'AR Aging', - 'ap_aging' => 'Offene Verbindlichkeiten', + 'ar_aging' => 'Search AR Aging', + 'ap_aging' => 'Search AP Aging', 'tax_collected' => 'Tax collected', 'tax_paid' => 'Tax paid', 'nontaxable_sales' => 'Non-taxable Sales', @@ -142,7 +141,7 @@ sub report { 'receipts' => 'Receipts', 'payments' => 'Payments', 'projects' => 'Project Transactions', - 'bwa' => 'Betriebswirtschaftliche Auswertung', + 'bwa' => 'Business evaluation', ); $form->{title} = $locale->text($title{ $form->{report} }); @@ -266,14 +265,14 @@ sub report { - +
$form->{title}
- +
$department |; @@ -806,6 +805,18 @@ $jsscript + + + + |; $column_data{invnumber} = qq||; @@ -2288,9 +2299,10 @@ sub generate_tax_report { } if ($form->{l_subtotal} eq 'Y') { - &tax_subtotal; + tax_subtotal(\@column_index, \$subtotalnetamount, \$subtotaltax, \$subtotal); } + my %column_data; map { $column_data{$_} = qq|| } @column_index; print qq| @@ -2328,27 +2340,30 @@ sub generate_tax_report { 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; - map { $column_data{$_} = "" } @column_index; + 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, " "); + $$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} = ""; - $column_data{tax} = ""; - $column_data{amount} = ""; + $column_data{netamount} = ""; + $column_data{tax} = ""; + $column_data{amount} = ""; - $subtotalnetamount = 0; - $subtotaltax = 0; + $$subtotalnetamount = 0; + $$subtotaltax = 0; print qq| |; - map { print "\n$column_data{$_}" } @column_index; + map { print "\n$column_data{$_}" } @{ $column_index }; print qq| @@ -2422,6 +2437,8 @@ sub list_payments { ); $report->set_options_from_form(); + $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv'; + $report->set_columns(%column_defs); $report->set_column_order(@columns); @@ -2713,13 +2730,22 @@ sub generate_bwa { last SWITCH; }; } + hotfix_reformat_date(); } else { - my ($yy, $mm, $dd) = $locale->parse_date(\%myconfig, $form->{fromdate}); - $form->{fromdate} = "${dd}.${mm}.${yy}"; - ($yy, $mm, $dd) = $locale->parse_date(\%myconfig, $form->{todate}); - $form->{todate} = "${dd}.${mm}.${yy}"; - $form->{comparefromdate} = "01.01.$yy"; - $form->{comparetodate} = $form->{todate}; + # die konvertierungen nur dann durchführen, wenn auch daten gesetzt sind. + # ansonsten ist die prüfung in RP.pm + # if (defined ($form->{fromdate|todate}=='..')) + # immer wahr + if ($form->{fromdate}){ + my ($yy, $mm, $dd) = $locale->parse_date(\%myconfig, $form->{fromdate}); + my $datetime = $locale->parse_date_to_object(\%myconfig, $form->{fromdate}); + $datetime->set( month => 1, + day => 1); + $form->{comparefromdate} = $locale->format_date(\%::myconfig, $datetime); + } + if ($form->{todate}){ + $form->{comparetodate} = $form->{todate}; + } } RP->bwa(\%myconfig, \%$form); @@ -2764,5 +2790,32 @@ sub generate_bwa { $main::lxdebug->leave_sub(); } +### +# Hotfix, um das Datumsformat, die unten hart auf deutsches Datumsformat eingestellt +# sind, entsprechend mit anderem Formaten (z.B. iso-kodiert) zum Laufen zu bringen (S.a.: Bug 1388) +sub hotfix_reformat_date { + + $main::lxdebug->enter_sub(); + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + if ($myconfig{dateformat} ne 'dd.mm.yyyy'){ + my $current_dateformat = $myconfig{dateformat}; + $myconfig{dateformat} = 'dd.mm.yyyy'; + $form->{fromdate} = $main::locale->reformat_date(\%myconfig, $form->{fromdate}, $current_dateformat); + $form->{todate} = $main::locale->reformat_date(\%myconfig, $form->{todate}, $current_dateformat); + $form->{comparefromdate} = $main::locale->reformat_date(\%myconfig, $form->{comparefromdate}, $current_dateformat) + unless (!defined ($form->{comparefromdate})); + $form->{comparetodate} = $main::locale->reformat_date(\%myconfig, $form->{comparetodate}, $current_dateformat) + unless (!defined ($form->{comparetodate})); + + # Und wieder zurücksetzen + $myconfig{dateformat} = $current_dateformat; #'dd.mm.yyyy'; + } # Ende Hotifx Bug 1388 + + $main::lxdebug->leave_sub(); + +} 1;
| . $locale->text($label) . qq| $vc
| . $locale->text('Review of Aging list') . qq| +
| . $locale->text('From') . qq|  $button1 @@ -1053,7 +1064,8 @@ sub generate_income_statement { last SWITCH; }; } - } + hotfix_reformat_date(); + } # Ende Bericht für vorgewählten Zeitraum (warum auch immer die Prüfung (custom eq true) ist ... RP->income_statement(\%myconfig, \%$form); @@ -1112,46 +1124,40 @@ sub generate_income_statement { } sub generate_balance_sheet { - $main::lxdebug->enter_sub(); - - $main::auth->assert('report'); + $::lxdebug->enter_sub; + $::auth->assert('report'); - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - $form->{decimalplaces} = $form->{decimalplaces} * 1 || 2; - $form->{padding} = "  "; - $form->{bold} = ""; - $form->{endbold} = ""; - $form->{br} = "
"; + $::form->{decimalplaces} = $::form->{decimalplaces} * 1 || 2; + $::form->{padding} = "  "; + $::form->{bold} = ""; + $::form->{endbold} = ""; + $::form->{br} = "
"; - my $data = RP->balance_sheet(\%myconfig, \%$form); + my $data = RP->balance_sheet(\%::myconfig, $::form); - $form->{asofdate} = $form->current_date(\%myconfig) unless $form->{asofdate}; - $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1); + $::form->{asofdate} ||= $::form->current_date; + $::form->{period} = $::locale->date(\%::myconfig, $::form->current_date, 1); - ($form->{department}) = split /--/, $form->{department}; + ($::form->{department}) = split /--/, $::form->{department}; # define Current Earnings account - my $padding = ($form->{l_heading}) ? $form->{padding} : ""; - push(@{ $form->{equity_account} }, $padding . $locale->text('Current Earnings')); + my $padding = $::form->{l_heading} ? $::form->{padding} : ""; + push @{ $::form->{equity_account} }, $padding . $::locale->text('Current Earnings'); - $form->{this_period} = $locale->date(\%myconfig, $form->{asofdate}, 0); - $form->{last_period} = $locale->date(\%myconfig, $form->{compareasofdate}, 0); + $::form->{this_period} = $::locale->date(\%::myconfig, $::form->{asofdate}, 0); + $::form->{last_period} = $::locale->date(\%::myconfig, $::form->{compareasofdate}, 0); - $form->{IN} = "balance_sheet.html"; +# $::form->{IN} = "balance_sheet.html"; # setup company variables for the form - map { $form->{$_} = $myconfig{$_}; } (qw(company address businessnumber nativecurr)); + map { $::form->{$_} = $::myconfig{$_} } qw(company address businessnumber nativecurr); - $form->{templates} = $myconfig{templates}; + $::form->{templates} = $::myconfig{templates}; - $form->header(); - print $form->parse_html_template('rp/balance_sheet', $data); -# $form->parse_template(); + $::form->header; + print $::form->parse_html_template('rp/balance_sheet', $data); - $main::lxdebug->leave_sub(); + $::lxdebug->leave_sub; } sub generate_projects { @@ -1289,6 +1295,7 @@ sub generate_trial_balance { last SWITCH; }; } + hotfix_reformat_date(); } @@ -1363,6 +1370,7 @@ sub generate_trial_balance { 'pdf_template' => 'rp/html_report_susa', ); $report->set_options_from_form(); + $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv'; # add sort and escape callback, this one we use for the add sub $form->{callback} = $href .= "&sort=$form->{sort}"; @@ -1377,7 +1385,7 @@ sub generate_trial_balance { my $edit_url = build_std_url('action=edit', 'type', 'vc'); my $idx; - foreach my $accno (@{ $form->{TB} }) { + foreach my $accno (@{ $form->{TB} || [] }) { $accno->{soll} = $accno->{debit}; $accno->{haben} = $accno->{credit}; @@ -1514,6 +1522,7 @@ sub list_accounts { 'std_column_visibility' => 1, ); $report->set_options_from_form(); + $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv'; $report->set_columns(%column_defs); $report->set_column_order(@columns); @@ -1524,7 +1533,7 @@ sub list_accounts { my %subtotals = map { $_ => 0 } @totals_columns; my %totals = map { $_ => 0 } @totals_columns; my $found_heading = 0; - my @tb = sort { $a->{accno} cmp $b->{accno} } @{ $form->{TB} }; + my @tb = sort { $a->{accno} cmp $b->{accno} } @{ $form->{TB} || [] }; # sort the whole thing by account numbers and display foreach my $idx (0 .. scalar(@tb) - 1) { @@ -1666,8 +1675,8 @@ sub aging { 'invnumber' => { 'text' => $locale->text('Invoice'), }, 'transdate' => { 'text' => $locale->text('Date'), }, 'duedate' => { 'text' => $locale->text('Due'), }, - 'amount' => { 'text' => $locale->text('Amount'), }, - 'open' => { 'text' => $locale->text('Open'), }, + 'amount' => { 'text' => $locale->text('Amount'), }, + 'open' => { 'text' => $locale->text('Open'), }, ); my %column_alignment = ('statement' => 'center', @@ -1714,6 +1723,8 @@ sub aging { 'title' => $form->{title}, 'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time), ); + $report->set_options_from_form(); + $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv'; my $previous_ctid = 0; my $row_idx = 0; @@ -1770,8 +1781,6 @@ sub aging { 'raw_bottom_info_text' => $raw_bottom_info_text); } - $report->set_options_from_form(); - $report->generate_with_headers(); $main::lxdebug->leave_sub(); @@ -2072,7 +2081,7 @@ sub print_form { $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; $form->{addition} = "PRINTED"; $form->{what_done} = $form->{type}; - $form->save_history($form->dbconnect(\%myconfig)); + $form->save_history; } # /saving the history $main::lxdebug->leave_sub(); @@ -2121,19 +2130,19 @@ sub generate_tax_report { my $descvar = "$form->{accno}_description"; my $description = $form->escape($form->{$descvar}); my $ratevar = "$form->{accno}_rate"; - our $taxrate; # most likely error + 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&$ratevar=$taxrate&report=$form->{report}"; + "$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&$ratevar=$taxrate&report=$form->{report}"; + "$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"; @@ -2144,6 +2153,7 @@ sub generate_tax_report { 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") { @@ -2248,7 +2258,7 @@ sub generate_tax_report { if ($form->{l_subtotal} eq 'Y') { if ($sameitem ne $ref->{ $form->{sort} }) { - &tax_subtotal; + tax_subtotal(\@column_index, \$subtotalnetamount, \$subtotaltax, \$subtotal); $sameitem = $ref->{ $form->{sort} }; } } @@ -2264,6 +2274,7 @@ sub generate_tax_report { $ref->{$_} = $form->format_amount(\%myconfig, $ref->{$_}, 2, " "); } qw(netamount tax amount); + my %column_data; $column_data{id} = qq|
$ref->{id}{id}&callback=$callback>$ref->{invnumber}   $subtotalnetamount$subtotaltax$subtotal$$subtotalnetamount$$subtotaltax$$subtotal