X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FRC.pm;h=89904d868a1418fa46228d53f607ddfe1da5e1f9;hb=590708a7a8d02ecd60267271f276e975c08d56c6;hp=aa0b49214576261fe1691f43c5276237ce6ff1b0;hpb=6ff01fdb61880344c2826c86955ef4c1e8f47db4;p=kivitendo-erp.git diff --git a/SL/RC.pm b/SL/RC.pm index aa0b49214..89904d868 100644 --- a/SL/RC.pm +++ b/SL/RC.pm @@ -36,6 +36,8 @@ package RC; use SL::DBUtils; +use strict; + sub paymentaccounts { $main::lxdebug->enter_sub(); @@ -91,13 +93,11 @@ sub payment_transactions { ($form->{beginningbalance}, $form->{category}) = selectrow_query($form, $dbh, $query, @values); - my %oid = ('Pg' => 'ac.acc_trans_id', - 'Oracle' => 'ac.rowid'); @values = (); $query = qq|SELECT c.name, ac.source, ac.transdate, ac.cleared, | . qq| ac.fx_transaction, ac.amount, a.id, | . - qq| $oid{$myconfig->{dbdriver}} AS oid | . + qq| ac.acc_trans_id AS oid | . qq|FROM customer c, acc_trans ac, ar a, chart ch | . qq|WHERE c.id = a.customer_id | . qq| AND ac.cleared = '0' | . @@ -116,12 +116,27 @@ sub payment_transactions { push(@values, conv_date($form->{todate})); } + if($form->{additional_fromdate}) { + $query .= qq| AND ac.transdate >= ? |; + push(@values, conv_date($form->{additional_fromdate})); + } + + if($form->{additional_todate}){ + $query .= qq| AND ac.transdate <= ? |; + push(@values, conv_date($form->{additional_todate})); + } + + if($form->{filter_amount}){ + $query .= qq| AND ac.amount = ? |; + push(@values, conv_i($form->{filter_amount})); + } + $query .= qq|UNION | . qq|SELECT v.name, ac.source, ac.transdate, ac.cleared, | . qq| ac.fx_transaction, ac.amount, a.id, | . - qq| $oid{$myconfig->{dbdriver}} AS oid | . + qq| ac.acc_trans_id AS oid | . qq|FROM vendor v, acc_trans ac, ap a, chart ch | . qq|WHERE v.id = a.vendor_id | . qq| AND ac.cleared = '0' | . @@ -141,12 +156,27 @@ sub payment_transactions { push(@values, conv_date($form->{todate})); } + if($form->{additional_fromdate}) { + $query .= qq| AND ac.transdate >= ? |; + push(@values, conv_date($form->{additional_fromdate})); + } + + if($form->{additional_todate}){ + $query .= qq| AND ac.transdate <= ? |; + push(@values, conv_date($form->{additional_todate})); + } + + if($form->{filter_amount}){ + $query .= qq| AND ac.amount = ? |; + push(@values, conv_i($form->{filter_amount})); + } + $query .= qq|UNION | . qq|SELECT g.description, ac.source, ac.transdate, ac.cleared, | . qq| ac.fx_transaction, ac.amount, g.id, | . - qq| $oid{$myconfig->{dbdriver}} AS oid | . + qq| ac.acc_trans_id AS oid | . qq|FROM gl g, acc_trans ac, chart ch | . qq|WHERE g.id = ac.trans_id | . qq| AND ac.cleared = '0' | . @@ -166,7 +196,22 @@ sub payment_transactions { push(@values, conv_date($form->{todate})); } - $query .= " ORDER BY 3,7,8"; + if($form->{additional_fromdate}) { + $query .= qq| AND ac.transdate >= ? |; + push(@values, conv_date($form->{additional_fromdate})); + } + + if($form->{additional_todate}){ + $query .= qq| AND ac.transdate <= ? |; + push(@values, conv_date($form->{additional_todate})); + } + + if($form->{filter_amount}){ + $query .= qq| AND ac.amount = ? |; + push(@values, conv_i($form->{filter_amount})); + } + + $query .= " ORDER BY 3,7,8 LIMIT 6"; $form->{PR} = selectall_hashref_query($form, $dbh, $query, @values); @@ -184,22 +229,20 @@ sub reconcile { my $dbh = $form->dbconnect($myconfig); my ($query, $i); - my %oid = ('Pg' => 'acc_trans_id', - 'Oracle' => 'rowid'); # clear flags for $i (1 .. $form->{rowcount}) { if ($form->{"cleared_$i"}) { $query = qq|UPDATE acc_trans SET cleared = '1' | . - qq|WHERE $oid{$myconfig->{dbdriver}} = ?|; + qq|WHERE acc_trans_id = ?|; do_query($form, $dbh, $query, $form->{"oid_$i"}); # clear fx_transaction if ($form->{"fxoid_$i"}) { $query = qq|UPDATE acc_trans SET cleared = '1' | . - qq|WHERE $oid{$myconfig->{dbdriver}} = ?|; + qq|WHERE acc_trans_id = ?|; do_query($form, $dbh, $query, $form->{"fxoid_$i"}); } } @@ -210,4 +253,33 @@ sub reconcile { $main::lxdebug->leave_sub(); } +sub get_statement_balance { + $main::lxdebug->enter_sub(); + + my ($self, $myconfig, $form) = @_; + + # connect to database, turn AutoCommit off + my $dbh = $form->dbconnect_noauto($myconfig); + + my ($query, @values); + + $query = qq|SELECT sum(amount) FROM acc_trans where chart_id=45 AND cleared='1'|; + + if($form->{fromdate}) { + $query .= qq| AND transdate >= ? |; + push(@values, conv_date($form->{fromdate})); + } + + if($form->{todate}){ + $query .= qq| AND transdate <= ? |; + push(@values, conv_date($form->{todate})); + } + + ($form->{statement_balance}) = selectrow_query($form, $dbh, $query, @values); + + $dbh->disconnect; + + $main::lxdebug->leave_sub(); +} + 1;