X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FRP.pm;h=bbfb098666dbf7fd7b37dd27a076cac961862048;hb=6f92326a8f2c1f9205a062d32ed8f1abdaa4b7b5;hp=d875fb162c97ace9205522d3a9d7c0294de8114e;hpb=3a94f4d2dd9a835d4a7007e1b999ea00b3c4e1cd;p=kivitendo-erp.git diff --git a/SL/RP.pm b/SL/RP.pm index d875fb162..bbfb09866 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -211,6 +211,13 @@ sub get_accounts { $sth->finish; + # if l_ob is selected l_cb is always ignored + if ( $form->{l_ob} ) { + $where .= ' AND ac.ob_transaction is true ' + } elsif ( not $form->{l_cb} ) { + $where .= ' AND ac.cb_transaction is false '; + }; + if ($fromdate) { $fromdate = conv_dateq($fromdate); if ($form->{method} eq 'cash') { @@ -464,6 +471,8 @@ sub get_accounts_g { my $inwhere = ""; my $item; + $where .= ' AND ac.cb_transaction is false ' unless $form->{l_cb}; + if ($fromdate) { $fromdate = conv_dateq($fromdate); if ($form->{method} eq 'cash') { @@ -507,13 +516,13 @@ sub get_accounts_g { if ($form->{method} eq 'cash') { $query = qq| - SELECT SUM( ac.amount * + SELECT SUM( ac.amount * CASE WHEN COALESCE((SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ), 0) != 0 THEN (SELECT SUM(acc.amount) * -1 FROM acc_trans acc INNER JOIN chart c ON (acc.chart_id = c.id AND c.link LIKE '%AR_paid%') WHERE 1=1 $inwhere AND acc.trans_id = ac.trans_id) - / (SELECT amount FROM ar WHERE id = ac.trans_id) - ) AS amount, c.pos_eur + / (SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ) ELSE 1 END + ) AS amount, c.$category FROM acc_trans ac LEFT JOIN chart c ON (c.id = ac.chart_id) LEFT JOIN ar ON (ar.id = ac.trans_id) @@ -526,7 +535,7 @@ sub get_accounts_g { ) WHERE ac.trans_id IN (SELECT DISTINCT trans_id FROM acc_trans WHERE 1=1 $subwhere) - GROUP BY c.pos_eur + GROUP BY c.$category /* SELECT SUM(ac.amount * chart_category_to_sgn(c.category)) AS amount, c.$category @@ -1193,10 +1202,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}) { @@ -1217,7 +1228,7 @@ sub aging { phone as customerphone, fax as customerfax, ${ct}number, "invnumber", "transdate", (amount - COALESCE((SELECT sum(amount)*$ml FROM acc_trans LEFT JOIN chart ON (acc_trans.chart_id=chart.id) WHERE link ilike '%paid%' AND acc_trans.trans_id=${arap}.id AND acc_trans.transdate <= (date $todate)),0)) as "open", "amount", - "duedate", invoice, ${arap}.id, + "duedate", invoice, ${arap}.id, date_part('days', now() - duedate) as overduedays, (SELECT $buysell FROM exchangerate WHERE (${arap}.curr = exchangerate.curr) @@ -1226,6 +1237,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 @@ -1290,27 +1302,6 @@ sub get_customer { $main::lxdebug->leave_sub(); } -sub get_taxaccounts { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form) = @_; - - # connect to database - my $dbh = $form->dbconnect($myconfig); - - # get tax accounts - my $query = - qq|SELECT c.accno, c.description, t.rate - FROM chart c, tax t - WHERE (c.link LIKE '%CT_tax%') AND (c.id = t.chart_id) - ORDER BY c.accno|; - $form->{taxaccounts} = selectall_hashref_quert($form, $dbh, $query); - - $dbh->disconnect; - - $main::lxdebug->leave_sub(); -} - sub tax_report { $main::lxdebug->enter_sub();