From: Jan Büren Date: Thu, 8 Nov 2012 15:15:08 +0000 (+0100) Subject: Merge branch 'master' of vc.linet-services.de:public/lx-office-erp X-Git-Tag: release-3.0.0beta1~19^2 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/4a6f0b74c08f02cd04adfe2429eb9965e770c2ba?hp=347fcb5f3bba19631110d80b9ec0df7525d89b6d Merge branch 'master' of vc.linet-services.de:public/lx-office-erp --- diff --git a/SL/RP.pm b/SL/RP.pm index add30c278..0ea40ec02 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -1171,6 +1171,8 @@ sub aging { my ($invoice, $arap, $buysell, $ct, $ct_id, $ml); + # falls customer ziehen wir die offene forderungsliste + # anderfalls für die lieferanten die offenen verbindlichkeitne if ($form->{ct} eq "customer") { $invoice = "is"; $arap = "ar"; @@ -1186,12 +1188,42 @@ sub aging { } $ct_id = "${ct}_id"; - $form->{todate} = $form->current_date($myconfig) unless ($form->{todate}); - my $todate = conv_dateq($form->{todate}); - my $fromdate = conv_dateq($form->{fromdate}); + # erweiterung um einen freien zeitraum oder einen stichtag + # mit entsprechender altersstrukturliste (s.a. Bug 1842) + # eine neue variable an der oberfläche eingeführt, somit ist + # todate == freier zeitrau und fordate == stichtag - my $fromwhere = ($form->{fromdate} ne "") ? " AND (transdate >= (date $fromdate)) " : ""; + my ($review_of_aging_list, $todate, $fromdate, $fromwhere, $fordate); + if ($form->{reporttype} eq 'custom') { # altersstrukturliste + + # explizit rausschmeissen was man für diesen bericht nicht braucht + delete $form->{fromdate}; + delete $form->{todate}; + + # an der oberfläche ist das tagesaktuelle datum vorausgewählt + # falls es dennoch per Benutzereingabe gelöscht wird, lieber wieder vorbelegen + # ferner muss für die spätere DB-Abfrage muss todate gesetzt sein. + $form->{fordate} = $form->current_date($myconfig) unless ($form->{fordate}); + $fordate = conv_dateq($form->{fordate}); + $todate = $fordate; + + if ($form->{review_of_aging_list}) { # falls die liste leer ist, alles anzeigen + if ($form->{review_of_aging_list} =~ m "-") { # .. periode von bis + my @period = split(/-/, $form->{review_of_aging_list}); # ... von periode bis periode + $review_of_aging_list = " AND $period[0] < (date $fordate) - duedate + AND (date $fordate) - duedate < $period[1]"; + } else { + $form->{review_of_aging_list} =~ s/[^0-9]//g; # größer 120 das substitute ist nur für das '>' zeichen + $review_of_aging_list = " AND $form->{review_of_aging_list} < (date $fordate) - duedate"; + } + } + } else { # freier zeitraum OHNE review_of_aging_list + $form->{todate} = $form->current_date($myconfig) unless ($form->{todate}); + $todate = conv_dateq($form->{todate}); + $fromdate = conv_dateq($form->{fromdate}); + $fromwhere = ($form->{fromdate} ne "") ? " AND (transdate >= (date $fromdate)) " : ""; + } my $where = " 1 = 1 "; my ($name, $null); @@ -1209,19 +1241,7 @@ sub aging { $where .= qq| AND (a.department_id = | . conv_i($department_id, 'NULL') . qq|)|; $where_dpt = qq| AND (${arap}.department_id = | . conv_i($department_id, 'NULL') . qq|)|; } - my $review_of_aging_list; - if ($form->{review_of_aging_list}) { - if ($form->{review_of_aging_list} =~ m "-"){ - my @period = split(/-/, $form->{review_of_aging_list}); - $review_of_aging_list = " AND $period[0] < date_part('days', now() - duedate) - AND date_part('days', now() - duedate) < $period[1]"; - } else { - $form->{review_of_aging_list} =~ s/[^0-9]//g; - $review_of_aging_list = " AND $form->{review_of_aging_list} < date_part('days', now() - duedate)"; - } - } - - my $q_details = qq| + my $q_details = qq| SELECT ${ct}.id AS ctid, ${ct}.name, street, zipcode, city, country, contact, email, diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index 1068da749..bc2eab6e2 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -196,6 +196,7 @@ sub report { vc => $vc, label => $label, year => DateTime->today->year, + today => DateTime->today, nextsub => $nextsub, accrual => $::instance_conf->get_accounting_method ne 'cash', cash => $::instance_conf->get_accounting_method eq 'cash', diff --git a/locale/de/all b/locale/de/all index 3060507a3..60fab355e 100644 --- a/locale/de/all +++ b/locale/de/all @@ -1563,6 +1563,7 @@ $self->{texts} = { 'Recorded taxkey' => 'Gespeicherter Steuerschlüssel', 'Reference' => 'Referenz', 'Reference / Invoice Number' => 'Referenz / Rechnungsnummer', + 'Reference day' => 'Stichtag', 'Reference missing!' => 'Referenz fehlt!', 'Release From Stock' => 'Lagerausgang', 'Remaining' => 'Rest', @@ -2355,6 +2356,7 @@ $self->{texts} = { 'follow_up_list' => 'wiedervorlageliste', 'for' => 'für', 'for Period' => 'für den Zeitraum', + 'for date' => 'zum Stichtag', 'found' => 'Gefunden', 'from (time)' => 'von', 'general_ledger_list' => 'buchungsjournal', diff --git a/templates/webpages/rp/report.html b/templates/webpages/rp/report.html index 158c0cceb..c4e8692c3 100644 --- a/templates/webpages/rp/report.html +++ b/templates/webpages/rp/report.html @@ -83,7 +83,7 @@ [%- IF selectdepartment %] - + [%- END %] @@ -182,23 +182,32 @@ [%- IF is_aging %] - + +
[% 'Department' | $T8 %][% 'Department' | $T8 %]
[% label %][% label %] [% vc %]
+ + + + - - + - + + + +

[% 'Review of Aging list' | $T8 %][% 'Reference day' | $T8 %]  [% 'Review of Aging list' | $T8 %] + [% 'for date' | $T8 %] [% L.date_tag('fordate', today) %]
+
[% 'Free report period' | $T8 %]  [% 'From' | $T8 %] [% L.date_tag('fromdate', fromdate) %] [% 'Bis' | $T8 %] [% L.date_tag('todate') %]