X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FRP.pm;h=113e9dd42b389dd43fee56e2993902b6a3348c51;hb=8add0ccd27ab0ff17256b74dccd1f761c0d09182;hp=41cd3904166ff4416ce601d8eed5b10ba0e2ae0a;hpb=6a8787147ad643549eb26cb4f9a373b5b354b8b9;p=kivitendo-erp.git diff --git a/SL/RP.pm b/SL/RP.pm index 41cd39041..113e9dd42 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -53,6 +53,8 @@ use strict; sub get_openbalance_date { my ($closedto, $target) = map { $::locale->parse_date_to_object(\%::myconfig, $_) } @_; + return unless $closedto; + $closedto->subtract(years => 1) while ($target - $closedto)->is_negative; $closedto->add(days => 1); return $::locale->format_date(\%::myconfig, $closedto); @@ -74,7 +76,7 @@ sub balance_sheet { } # get end of financial year and convert to Date format - my ($closedto) = selectfirst_arrayref_query($form, $dbh, 'SELECT closedto FROM defaults'); + my ($closedto) = selectfirst_array_query($form, $dbh, 'SELECT closedto FROM defaults'); # get date of last opening balance my $startdate = get_openbalance_date($closedto, $form->{asofdate}); @@ -344,12 +346,10 @@ sub get_accounts { } } else { # if ($form->{method} eq 'cash') - # ich sehe keinen sinn das nochmal explizit ohne conv_i aufzurufen - # bitte prüfen und löschen jan 15.11.2009 - # if ($department_id) { - # $dpt_join = qq| JOIN dpt_trans t ON (t.trans_id = ac.trans_id) |; - # $dpt_where = qq| AND t.department_id = $department_id |; - # } + if ($department_id) { + $dpt_join = qq| JOIN dpt_trans t ON (t.trans_id = ac.trans_id) |; + $dpt_where = qq| AND t.department_id = | . conv_i($department_id); + } $query = qq| SELECT c.accno, sum(ac.amount) AS amount, c.description, c.category @@ -595,10 +595,10 @@ sub get_accounts_g { } } else { # if ($form->{method} eq 'cash') - # s.o. jan 15.11.2009 -# if ($department_id) { -# ($dpt_join, $dpt_where) = sql_department($department_id); -# } + if ($department_id) { + $dpt_join = qq| JOIN dpt_trans t ON (t.trans_id = ac.trans_id) |; + $dpt_where = qq| AND (t.department_id = | . conv_i($department_id, 'NULL') . qq|) |; + } $query = qq| SELECT sum(ac.amount * chart_category_to_sgn(c.category)) AS amount, c.$category @@ -1193,10 +1193,12 @@ sub aging { } my $dpt_join; + my $where_dpt; if ($form->{department}) { my ($null, $department_id) = split /--/, $form->{department}; $dpt_join = qq| JOIN department d ON (a.department_id = d.id) |; $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}) { @@ -1226,6 +1228,7 @@ sub aging { WHERE ((paid != amount) OR (datepaid > (date $todate) AND datepaid is not null)) AND NOT COALESCE (${arap}.storno, 'f') AND (${arap}.${ct}_id = ${ct}.id) + $where_dpt AND (${ct}.id = ?) AND (transdate <= (date $todate) $fromwhere ) $review_of_aging_list