X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/6cf3f7762efd40bee49a2b8f11bb4ab6915d9071..de8868c:/bin/mozilla/rp.pl diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index 9862f30fb..062c44f4e 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -146,8 +146,8 @@ sub report { $form->{title} = $locale->text($title{ $form->{report} }); - my $accrual = ($main::eur) ? "" : "checked"; - my $cash = ($main::eur) ? "checked" : ""; + my $accrual = $::instance_conf->get_accounting_method eq 'cash' ? "" : "checked"; + my $cash = $::instance_conf->get_accounting_method eq 'cash' ? "checked" : ""; my $year = (localtime)[5] + 1900; @@ -176,7 +176,7 @@ sub report { } my $projectnumber = - NTI($main::cgi->popup_menu('-name' => "project_id", + NTI($::request->{cgi}->popup_menu('-name' => "project_id", '-values' => \@project_values, '-labels' => \%project_labels)); @@ -265,14 +265,14 @@ sub report { - +
$form->{title}
- +
$department |; @@ -805,6 +805,18 @@ $jsscript + + + + |; - if ($myconfig{printer} && $main::latex_templates && $form->{media} ne 'email') { + if ($myconfig{printer} && $::lx_office_conf{print_templates}->{latex} && $form->{media} ne 'email') { $output .= qq| @@ -2712,6 +2735,7 @@ sub generate_bwa { last SWITCH; }; } + hotfix_reformat_date(); } else { # die konvertierungen nur dann durchführen, wenn auch daten gesetzt sind. # ansonsten ist die prüfung in RP.pm @@ -2719,12 +2743,12 @@ sub generate_bwa { # immer wahr if ($form->{fromdate}){ my ($yy, $mm, $dd) = $locale->parse_date(\%myconfig, $form->{fromdate}); - $form->{fromdate} = "${dd}.${mm}.${yy}"; - $form->{comparefromdate} = "01.01.$yy"; + 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}){ - my ($yy, $mm, $dd) = $locale->parse_date(\%myconfig, $form->{todate}); - $form->{todate} = "${dd}.${mm}.${yy}"; $form->{comparetodate} = $form->{todate}; } } @@ -2771,5 +2795,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 @@ -1052,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); @@ -1282,6 +1295,7 @@ sub generate_trial_balance { last SWITCH; }; } + hotfix_reformat_date(); } @@ -1356,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}"; @@ -1370,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}; @@ -1507,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); @@ -1517,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) { @@ -1647,7 +1663,7 @@ sub aging { my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; - my $cgi = $main::cgi; + my $cgi = $::request->{cgi}; my $report = SL::ReportGenerator->new(\%myconfig, $form); @@ -1707,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; @@ -1763,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(); @@ -2016,7 +2032,7 @@ sub print_form { $form->{ $form->{ct} } = $form->{name}; $form->{"$form->{ct}_id"} = $ref->{ctid}; - map { $form->{$_} = () } qw(invnumber invdate duedate); + map { $form->{$_} = () } qw(invnumber invdate duedate amount open); $form->{total} = 0; foreach my $item (qw(c0 c30 c60 c90)) { $form->{$item} = (); @@ -2055,7 +2071,7 @@ sub print_form { $form->{attachment_filename} = $locale->quote_special_chars('filenames', $locale->text("Statement") . "_$form->{todate}.$attachment_suffix"); $form->{attachment_filename} =~ s/\s+/_/g; - $form->parse_template(\%myconfig, $main::userspath); + $form->parse_template(\%myconfig); } } @@ -2085,11 +2101,16 @@ sub statement_details { push @{ $form->{invnumber} }, $ref->{invnumber}; push @{ $form->{invdate} }, $ref->{transdate}; push @{ $form->{duedate} }, $ref->{duedate}; + push @{ $form->{amount} }, $form->format_amount(\%myconfig, $ref->{amount} / $ref->{exchangerate}, 2); + push @{ $form->{open} }, $form->format_amount(\%myconfig, $ref->{open} / $ref->{exchangerate}, 2); foreach my $item (qw(c0 c30 c60 c90)) { if ($ref->{exchangerate} * 1) { - $ref->{$item} = - $form->round_amount($ref->{$item} / $ref->{exchangerate}, 2); + # add only the open amount of the invoice to the aging, not the total amount + $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} < 30 and $item eq 'c0'; + $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 30 and $ref->{overduedays} < 60 and $item eq 'c30'; + $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 60 and $ref->{overduedays} < 90 and $item eq 'c60'; + $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 90 and $item eq 'c90'; } $form->{"${item}total"} += $ref->{$item}; $form->{total} += $ref->{$item}; @@ -2421,6 +2442,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); @@ -2524,14 +2547,14 @@ sub print_options { } else { $media = qq| | . $locale->text('Copies') . qq| {copies}>