# if l_ob is selected l_cb is always ignored
if ( $form->{l_ob} ) {
- $where .= ' AND ob_transaction is true '
+ $where .= ' AND ac.ob_transaction is true '
} elsif ( not $form->{l_cb} ) {
- $where .= ' AND cb_transaction is false ';
+ $where .= ' AND ac.cb_transaction is false ';
};
if ($fromdate) {
my $inwhere = "";
my $item;
- $where .= ' AND cb_transaction is false ' unless $form->{l_cb};
+ $where .= ' AND ac.cb_transaction is false ' unless $form->{l_cb};
if ($fromdate) {
$fromdate = conv_dateq($fromdate);
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)
)
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
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
+ $where_dpt
AND (${ct}.id = ?)
AND (transdate <= (date $todate) $fromwhere )
$review_of_aging_list