X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FRP.pm;h=a319cf59d50090e0efddaa3be72eb152b0590eb1;hb=4486e3bc8eb00c37cf8029e663eb94b4b9c5346a;hp=add30c2787625de981556d2afa133ceb6f41f2c4;hpb=9b8c33ac6fc9badf163a4fdca1cb82b50984c980;p=kivitendo-erp.git diff --git a/SL/RP.pm b/SL/RP.pm index add30c278..a319cf59d 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, @@ -1629,7 +1649,7 @@ sub bwa { my @periods = qw(jetzt kumm); my @gesamtleistung = qw(1 3); - my @gesamtkosten = qw (10 11 12 13 14 15 16 17 18 19 20); + my @gesamtkosten = qw (10 11 12 13 14 15 16 17 18 20); my @ergebnisse = qw (rohertrag betriebrohertrag betriebsergebnis neutraleraufwand neutralerertrag ergebnisvorsteuern ergebnis gesamtleistung gesamtkosten); @@ -1664,7 +1684,7 @@ sub bwa { $form->{ "$key" . "betriebrohertrag" } - $form->{ "$key" . "gesamtkosten" }; $form->{ "$key" . "neutraleraufwand" } = - $form->{30}{$key} + $form->{31}{$key}; + $form->{19}{$key} + $form->{30}{$key} + $form->{31}{$key}; $form->{ "$key" . "neutralerertrag" } = $form->{32}{$key} + $form->{33}{$key} + $form->{34}{$key}; $form->{ "$key" . "ergebnisvorsteuern" } =