summaryrefslogtreecommitdiff
path: root/LedgerSMB/RC.pm
diff options
context:
space:
mode:
Diffstat (limited to 'LedgerSMB/RC.pm')
-rwxr-xr-xLedgerSMB/RC.pm589
1 files changed, 290 insertions, 299 deletions
diff --git a/LedgerSMB/RC.pm b/LedgerSMB/RC.pm
index 48f184cd..a7aa1d1f 100755
--- a/LedgerSMB/RC.pm
+++ b/LedgerSMB/RC.pm
@@ -1,8 +1,8 @@
#=====================================================================
-# LedgerSMB
+# LedgerSMB
# Small Medium Business Accounting software
# http://www.ledgersmb.org/
-#
+#
# Copyright (C) 2006
# This work contains copyrighted information from a number of sources all used
# with permission.
@@ -33,261 +33,256 @@
package RC;
-
-sub getposlines{
- my ($self, $myconfig, $form) = @_;
- %pos_config = %{$form->{pos_config}};
- %pos_sources = %{$form->{pos_sources}};
- my $sources = '';
- foreach $key (keys %pos_sources){
- $sources .= ", '$key'";
- }
- $sources =~ s/^,\s*//;
- my $dbh = $form->{dbh};
-
- my $query = qq|
+sub getposlines {
+ my ( $self, $myconfig, $form ) = @_;
+ %pos_config = %{ $form->{pos_config} };
+ %pos_sources = %{ $form->{pos_sources} };
+ my $sources = '';
+ foreach $key ( keys %pos_sources ) {
+ $sources .= ", '$key'";
+ }
+ $sources =~ s/^,\s*//;
+ my $dbh = $form->{dbh};
+
+ my $query = qq|
SELECT sum(amount) AS amount, source FROM acc_trans
WHERE chart_id = (SELECT id FROM chart
WHERE accno = ?)
AND transdate = date 'NOW' AND cleared IS NOT TRUE
GROUP BY source|;
- my $sth = $dbh->prepare($query);
- $sth->execute($pos_config{till_accno}) || $form->dberror($query);
- while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
- push @{$form->{TB}}, $ref;
- }
- $sth->finish;
- my $query = qq|
+ my $sth = $dbh->prepare($query);
+ $sth->execute( $pos_config{till_accno} ) || $form->dberror($query);
+ while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
+ push @{ $form->{TB} }, $ref;
+ }
+ $sth->finish;
+ my $query = qq|
SELECT sum(amount) AS sum FROM acc_trans
WHERE chart_id = (SELECT id FROM chart WHERE accno = ?)
AND transdate = date 'NOW'
AND cleared IS NOT TRUE|;
- my $sth = $dbh->prepare($query);
- $sth->execute($pos_config{till_accno}) || $form->dberror($query);
- my $ref = $sth->fetchrow_hashref(NAME_lc);
- $form->{sum} = $ref->{sum};
- $sth->finish;
+ my $sth = $dbh->prepare($query);
+ $sth->execute( $pos_config{till_accno} ) || $form->dberror($query);
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ $form->{sum} = $ref->{sum};
+ $sth->finish;
}
sub clear_till {
- my ($self, $myconfig, $form) = @_;
- %pos_config = %{$form->{pos_config}};
- %pos_sources = %{$form->{pos_sources}};
- my $sources = '';
- foreach $key (keys %pos_sources){
- $sources .= ", '$key'";
- }
- $sources =~ s/^,\s//;
- my $dbh = $form->{dbh};
- my $query = qq|
+ my ( $self, $myconfig, $form ) = @_;
+ %pos_config = %{ $form->{pos_config} };
+ %pos_sources = %{ $form->{pos_sources} };
+ my $sources = '';
+ foreach $key ( keys %pos_sources ) {
+ $sources .= ", '$key'";
+ }
+ $sources =~ s/^,\s//;
+ my $dbh = $form->{dbh};
+ my $query = qq|
UPDATE acc_trans
SET cleared = TRUE
WHERE chart_id =
(SELECT id FROM chart WHERE accno = ?)
AND transdate = date 'NOW'|;
- my $sth = $dbh->prepare($query);
- $sth->execute($pos_config{till_accno}) || $form->dberror($query);
+ my $sth = $dbh->prepare($query);
+ $sth->execute( $pos_config{till_accno} ) || $form->dberror($query);
}
-sub getbalance{
- my ($self, $myconfig, $form) = @_;
- my $dbh = $form->{dbh};
+sub getbalance {
+ my ( $self, $myconfig, $form ) = @_;
+ my $dbh = $form->{dbh};
- my $query = qq|
+ my $query = qq|
SELECT sum(amount) AS balance
FROM acc_trans
WHERE chart_id = (SELECT id FROM chart WHERE accno = ?)|;
- my $sth = $dbh->prepare($query);
- $sth->execute($form->{accno}) || $form->dberror($query);
- my $ref = $sth->fetchrow_hashref(NAME_lc);
- $form->{balance} = $ref->{balance};
+ my $sth = $dbh->prepare($query);
+ $sth->execute( $form->{accno} ) || $form->dberror($query);
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ $form->{balance} = $ref->{balance};
}
-
sub paymentaccounts {
- my ($self, $myconfig, $form) = @_;
+ my ( $self, $myconfig, $form ) = @_;
- my $dbh = $form->{dbh};
+ my $dbh = $form->{dbh};
- my $query = qq|
+ my $query = qq|
SELECT accno, description
FROM chart
WHERE link LIKE '%_paid%'
AND (category = 'A' OR category = 'L')
ORDER BY accno|;
- my $sth = $dbh->prepare($query);
- $sth->execute || $form->dberror($query);
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
- while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
- push @{ $form->{PR} }, $ref;
- }
- $sth->finish;
+ while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
+ push @{ $form->{PR} }, $ref;
+ }
+ $sth->finish;
- $form->all_years($myconfig, $dbh);
+ $form->all_years( $myconfig, $dbh );
}
-
sub payment_transactions {
- my ($self, $myconfig, $form) = @_;
-
- my $dbh = $form->{dbh};
-
- my $query;
- my $sth;
-
- $query = qq|SELECT category FROM chart WHERE accno = ?|;
- $sth = $dbh->prepare($query);
- $sth->execute($form->{accno});
- ($form->{category}) = $sth->fetchrow_array();
-
- my $cleared;
-
- ($form->{fromdate}, $form->{todate})
- = $form->from_to(
- $form->{year}, $form->{month}, $form->{interval})
- if $form->{year} && $form->{month};
-
- my $transdate = qq| AND ac.transdate < date |.
- $dbh->quote($form->{fromdate});
-
- if (! $form->{fromdate}) {
- $cleared = qq| AND ac.cleared = '1'|;
- $transdate = "";
- }
-
- # get beginning balance
- $query = qq|
+ my ( $self, $myconfig, $form ) = @_;
+
+ my $dbh = $form->{dbh};
+
+ my $query;
+ my $sth;
+
+ $query = qq|SELECT category FROM chart WHERE accno = ?|;
+ $sth = $dbh->prepare($query);
+ $sth->execute( $form->{accno} );
+ ( $form->{category} ) = $sth->fetchrow_array();
+
+ my $cleared;
+
+ ( $form->{fromdate}, $form->{todate} ) =
+ $form->from_to( $form->{year}, $form->{month}, $form->{interval} )
+ if $form->{year} && $form->{month};
+
+ my $transdate =
+ qq| AND ac.transdate < date | . $dbh->quote( $form->{fromdate} );
+
+ if ( !$form->{fromdate} ) {
+ $cleared = qq| AND ac.cleared = '1'|;
+ $transdate = "";
+ }
+
+ # get beginning balance
+ $query = qq|
SELECT sum(ac.amount)
FROM acc_trans ac
JOIN chart ch ON (ch.id = ac.chart_id)
WHERE ch.accno = ? $transdate $cleared |;
- $sth = $dbh->prepare($query);
- $sth->execute($form->{accno});
- ($form->{beginningbalance}) = $sth->fetchrow_array();
+ $sth = $dbh->prepare($query);
+ $sth->execute( $form->{accno} );
+ ( $form->{beginningbalance} ) = $sth->fetchrow_array();
- $query = qq|
+ $query = qq|
SELECT sum(ac.amount)
FROM acc_trans ac
JOIN chart ch ON (ch.id = ac.chart_id)
WHERE ch.accno = ? AND ac.fx_transaction = '1'
$transdate $cleared|;
- $sth = $dbh->prepare($query);
- $sth->execute($form->{accno});
- ($form->{fx_balance}) = $sth->fetchrow_array();
-
-
- $transdate = "";
- if ($form->{todate}) {
- $transdate = qq| AND ac.transdate <= date |.
- $dbh->quote($form->{todate});
- }
-
- # get statement balance
- $query = qq|
+ $sth = $dbh->prepare($query);
+ $sth->execute( $form->{accno} );
+ ( $form->{fx_balance} ) = $sth->fetchrow_array();
+
+ $transdate = "";
+ if ( $form->{todate} ) {
+ $transdate =
+ qq| AND ac.transdate <= date | . $dbh->quote( $form->{todate} );
+ }
+
+ # get statement balance
+ $query = qq|
SELECT sum(ac.amount)
FROM acc_trans ac
JOIN chart ch ON (ch.id = ac.chart_id)
WHERE ch.accno = ? $transdate|;
- $sth = $dbh->prepare($query);
- $sth->execute($form->{accno});
- ($form->{endingbalance}) = $sth->fetchrow_array();
+ $sth = $dbh->prepare($query);
+ $sth->execute( $form->{accno} );
+ ( $form->{endingbalance} ) = $sth->fetchrow_array();
- # fx balance
- $query = qq|
+ # fx balance
+ $query = qq|
SELECT sum(ac.amount)
FROM acc_trans ac
JOIN chart ch ON (ch.id = ac.chart_id)
WHERE ch.accno = ? AND ac.fx_transaction = '1' $transdate |;
- $sth = $dbh->prepare($query);
- $sth->execute($form->{accno});
- ($form->{fx_endingbalance}) = $sth->fetchrow_array();
-
-
- $cleared = qq| AND ac.cleared = '0'| unless $form->{fromdate};
-
- if ($form->{report}) {
- $cleared = qq| AND NOT (ac.cleared = '0' OR ac.cleared = '1')|;
- if ($form->{cleared}) {
- $cleared = qq| AND ac.cleared = '1'|;
- }
- if ($form->{outstanding}) {
- $cleared =
- ($form->{cleared})
- ? ""
- : qq| AND ac.cleared = '0'|;
- }
- if (! $form->{fromdate}) {
- $form->{beginningbalance} = 0;
- $form->{fx_balance} = 0;
- }
- }
-
- my $fx_transaction;
- if ($form->{fx_transaction}) {
- $fx_transaction = qq|
+ $sth = $dbh->prepare($query);
+ $sth->execute( $form->{accno} );
+ ( $form->{fx_endingbalance} ) = $sth->fetchrow_array();
+
+ $cleared = qq| AND ac.cleared = '0'| unless $form->{fromdate};
+
+ if ( $form->{report} ) {
+ $cleared = qq| AND NOT (ac.cleared = '0' OR ac.cleared = '1')|;
+ if ( $form->{cleared} ) {
+ $cleared = qq| AND ac.cleared = '1'|;
+ }
+ if ( $form->{outstanding} ) {
+ $cleared =
+ ( $form->{cleared} )
+ ? ""
+ : qq| AND ac.cleared = '0'|;
+ }
+ if ( !$form->{fromdate} ) {
+ $form->{beginningbalance} = 0;
+ $form->{fx_balance} = 0;
+ }
+ }
+
+ my $fx_transaction;
+ if ( $form->{fx_transaction} ) {
+ $fx_transaction = qq|
AND NOT (ac.chart_id IN
(SELECT value FROM defaults
WHERE setting_key = 'fxgain_accno_id'
UNION
SELECT value FROM defaults
WHERE setting_key = 'fxloss_accno_id'))|;
- } else {
- $fx_transaction = qq|
+ }
+ else {
+ $fx_transaction = qq|
AND ac.fx_transaction = '0'|;
- }
-
-
- if ($form->{summary}) {
- $query = qq|
+ }
+
+ if ( $form->{summary} ) {
+ $query = qq|
SELECT ac.transdate, ac.source,
sum(ac.amount) AS amount, ac.cleared
FROM acc_trans ac
JOIN chart ch ON (ac.chart_id = ch.id)
- WHERE ch.accno = |.$dbh->quote($form->{accno}).qq|
+ WHERE ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND ac.amount >= 0 $fx_transaction $cleared|;
- $query .= " AND ac.transdate >= ".$dbh->quote($form->{fromdate})
- if $form->{fromdate};
- $query .= " AND ac.transdate <= ".$dbh->quote($form->{todate})
- if $form->{todate};
- $query .= " GROUP BY ac.source, ac.transdate, ac.cleared";
- $query .= qq|
+ $query .= " AND ac.transdate >= " . $dbh->quote( $form->{fromdate} )
+ if $form->{fromdate};
+ $query .= " AND ac.transdate <= " . $dbh->quote( $form->{todate} )
+ if $form->{todate};
+ $query .= " GROUP BY ac.source, ac.transdate, ac.cleared";
+ $query .= qq|
UNION ALL
SELECT ac.transdate, ac.source,
sum(ac.amount) AS amount, ac.cleared
FROM acc_trans ac
JOIN chart ch ON (ac.chart_id = ch.id)
- WHERE ch.accno = |.$dbh->quote($form->{accno}).qq|
+ WHERE ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND ac.amount < 0 $fx_transaction $cleared|;
- $query .= " AND ac.transdate >= ".$dbh->quote($form->{fromdate})
- if $form->{fromdate};
- $query .= " AND ac.transdate <= ".$dbh->quote($form->{todate})
- if $form->{todate};
- $query .= " GROUP BY ac.source, ac.transdate, ac.cleared";
-
- $query .= " ORDER BY 1,2";
-
- } else {
-
- $query = qq|
+ $query .= " AND ac.transdate >= " . $dbh->quote( $form->{fromdate} )
+ if $form->{fromdate};
+ $query .= " AND ac.transdate <= " . $dbh->quote( $form->{todate} )
+ if $form->{todate};
+ $query .= " GROUP BY ac.source, ac.transdate, ac.cleared";
+
+ $query .= " ORDER BY 1,2";
+
+ }
+ else {
+
+ $query = qq|
SELECT ac.transdate, ac.source, ac.fx_transaction,
ac.amount, ac.cleared, g.id, g.description
FROM acc_trans ac
JOIN chart ch ON (ac.chart_id = ch.id)
JOIN gl g ON (g.id = ac.trans_id)
- WHERE ch.accno = |.$dbh->quote($form->{accno}).qq|
+ WHERE ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
$fx_transaction $cleared|;
- $query .= " AND ac.transdate >= ".$dbh->quote($form->{fromdate})
- if $form->{fromdate};
- $query .= " AND ac.transdate <= ".$dbh->quote($form->{todate})
- if $form->{todate};
- $query .= qq|
+ $query .= " AND ac.transdate >= " . $dbh->quote( $form->{fromdate} )
+ if $form->{fromdate};
+ $query .= " AND ac.transdate <= " . $dbh->quote( $form->{todate} )
+ if $form->{todate};
+ $query .= qq|
UNION ALL
SELECT ac.transdate, ac.source, ac.fx_transaction,
ac.amount, ac.cleared, a.id, n.name
@@ -295,13 +290,13 @@ sub payment_transactions {
JOIN chart ch ON (ac.chart_id = ch.id)
JOIN ar a ON (a.id = ac.trans_id)
JOIN customer n ON (n.id = a.customer_id)
- WHERE ch.accno = |.$dbh->quote($form->{accno}).qq|
+ WHERE ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
$fx_transaction $cleared|;
- $query .= " AND ac.transdate >= ".$dbh->quote($form->{fromdate})
- if $form->{fromdate};
- $query .= " AND ac.transdate <= ".$dbh->quote($form->{todate})
- if $form->{todate};
- $query .= qq|
+ $query .= " AND ac.transdate >= " . $dbh->quote( $form->{fromdate} )
+ if $form->{fromdate};
+ $query .= " AND ac.transdate <= " . $dbh->quote( $form->{todate} )
+ if $form->{todate};
+ $query .= qq|
UNION ALL
SELECT ac.transdate, ac.source, ac.fx_transaction,
ac.amount, ac.cleared, a.id, n.name
@@ -309,31 +304,31 @@ sub payment_transactions {
JOIN chart ch ON (ac.chart_id = ch.id)
JOIN ap a ON (a.id = ac.trans_id)
JOIN vendor n ON (n.id = a.vendor_id)
- WHERE ch.accno = |.$dbh->quote($form->{accno}).qq|
+ WHERE ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
$fx_transaction $cleared|;
- $query .= " AND ac.transdate >= ".$dbh->quote($form->{fromdate})
- if $form->{fromdate};
- $query .= " AND ac.transdate <= ".$dbh->quote($form->{todate})
- if $form->{todate};
-
- $query .= " ORDER BY 1,2,3";
- }
-
- $sth = $dbh->prepare($query);
- $sth->execute || $form->dberror($query);
-
- my $dr;
- my $cr;
-
- if ($form->{summary}) {
- $query = qq|
+ $query .= " AND ac.transdate >= " . $dbh->quote( $form->{fromdate} )
+ if $form->{fromdate};
+ $query .= " AND ac.transdate <= " . $dbh->quote( $form->{todate} )
+ if $form->{todate};
+
+ $query .= " ORDER BY 1,2,3";
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $dr;
+ my $cr;
+
+ if ( $form->{summary} ) {
+ $query = qq|
SELECT c.name
FROM customer c
JOIN ar a ON (c.id = a.customer_id)
JOIN acc_trans ac ON (a.id = ac.trans_id)
JOIN chart ch ON (ac.chart_id = ch.id)
WHERE ac.transdate = ?
- AND ch.accno = |.$dbh->quote($form->{accno}).qq|
+ AND ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND (ac.source = ? OR ac.source IS NULL)
AND ac.amount >= 0 $cleared
UNION
@@ -343,7 +338,7 @@ sub payment_transactions {
JOIN acc_trans ac ON (a.id = ac.trans_id)
JOIN chart ch ON (ac.chart_id = ch.id)
WHERE ac.transdate = ?
- AND ch.accno = |.$dbh->quote($form->{accno}).qq|
+ AND ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND (ac.source = ? OR ac.source IS NULL)
AND ac.amount > 0 $cleared
UNION
@@ -352,21 +347,21 @@ sub payment_transactions {
JOIN acc_trans ac ON (g.id = ac.trans_id)
JOIN chart ch ON (ac.chart_id = ch.id)
WHERE ac.transdate = ?
- AND ch.accno = |.$dbh->quote($form->{accno}).qq|
+ AND ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND (ac.source = ? OR ac.source IS NULL)
AND ac.amount >= 0 $cleared|;
-
- $query .= " ORDER BY 1";
- $dr = $dbh->prepare($query);
- $query = qq|
+ $query .= " ORDER BY 1";
+ $dr = $dbh->prepare($query);
+
+ $query = qq|
SELECT c.name
FROM customer c
JOIN ar a ON (c.id = a.customer_id)
JOIN acc_trans ac ON (a.id = ac.trans_id)
JOIN chart ch ON (ac.chart_id = ch.id)
WHERE ac.transdate = ?
- AND ch.accno = |.$dbh->quote($form->{accno}).qq|
+ AND ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND (ac.source = ? OR ac.source IS NULL)
AND ac.amount < 0 $cleared
UNION
@@ -376,7 +371,7 @@ sub payment_transactions {
JOIN acc_trans ac ON (a.id = ac.trans_id)
JOIN chart ch ON (ac.chart_id = ch.id)
WHERE ac.transdate = ?
- AND ch.accno = |.$dbh->quote($form->{accno}).qq|
+ AND ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND (ac.source = ? OR ac.source IS NULL)
AND ac.amount < 0 $cleared
UNION
@@ -385,119 +380,115 @@ sub payment_transactions {
JOIN acc_trans ac ON (g.id = ac.trans_id)
JOIN chart ch ON (ac.chart_id = ch.id)
WHERE ac.transdate = ?
- AND ch.accno = |.$dbh->quote($form->{accno}).qq|
+ AND ch.accno = | . $dbh->quote( $form->{accno} ) . qq|
AND (ac.source = ? OR ac.source IS NULL)
AND ac.amount < 0 $cleared|;
-
- $query .= " ORDER BY 1";
- $cr = $dbh->prepare($query);
- }
-
- my $name;
- my $ref;
-
- while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
-
- if ($form->{summary}) {
-
- if ($ref->{amount} > 0) {
- $dr->execute(
- $ref->{transdate}, $ref->{source},
- $ref->{transdate}, $ref->{source},
- $ref->{transdate}, $ref->{source});
- $ref->{oldcleared} = $ref->{cleared};
- $ref->{name} = ();
-
- while (($name) = $dr->fetchrow_array) {
- push @{ $ref->{name} }, $name;
- }
- $dr->finish;
- } else {
-
- $cr->execute(
- $ref->{transdate}, $ref->{source},
- $ref->{transdate}, $ref->{source},
- $ref->{transdate}, $ref->{source});
- $ref->{oldcleared} = $ref->{cleared};
- $ref->{name} = ();
- while (($name) = $cr->fetchrow_array) {
- push @{ $ref->{name} }, $name;
- }
- $cr->finish;
-
- }
-
- } else {
- push @{ $ref->{name} }, $ref->{description};
- }
-
- push @{ $form->{PR} }, $ref;
-
- }
- $sth->finish;
-
- $dbh->commit;
-
-}
+ $query .= " ORDER BY 1";
+ $cr = $dbh->prepare($query);
+ }
+
+ my $name;
+ my $ref;
+
+ while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
+
+ if ( $form->{summary} ) {
+
+ if ( $ref->{amount} > 0 ) {
+ $dr->execute(
+ $ref->{transdate}, $ref->{source}, $ref->{transdate},
+ $ref->{source}, $ref->{transdate}, $ref->{source}
+ );
+ $ref->{oldcleared} = $ref->{cleared};
+ $ref->{name} = ();
+
+ while ( ($name) = $dr->fetchrow_array ) {
+ push @{ $ref->{name} }, $name;
+ }
+ $dr->finish;
+ }
+ else {
+
+ $cr->execute(
+ $ref->{transdate}, $ref->{source}, $ref->{transdate},
+ $ref->{source}, $ref->{transdate}, $ref->{source}
+ );
+ $ref->{oldcleared} = $ref->{cleared};
+ $ref->{name} = ();
+ while ( ($name) = $cr->fetchrow_array ) {
+ push @{ $ref->{name} }, $name;
+ }
+ $cr->finish;
+
+ }
+
+ }
+ else {
+ push @{ $ref->{name} }, $ref->{description};
+ }
+
+ push @{ $form->{PR} }, $ref;
+
+ }
+ $sth->finish;
+
+ $dbh->commit;
+
+}
sub reconcile {
- my ($self, $myconfig, $form) = @_;
+ my ( $self, $myconfig, $form ) = @_;
- my $dbh = $form->{dbh};
+ my $dbh = $form->{dbh};
- my $query = qq|SELECT id FROM chart
+ my $query = qq|SELECT id FROM chart
WHERE accno = '$form->{accno}'|;
- my ($chart_id) = $dbh->selectrow_array($query);
- $chart_id *= 1;
-
- $query = qq|
+ my ($chart_id) = $dbh->selectrow_array($query);
+ $chart_id *= 1;
+
+ $query = qq|
SELECT trans_id FROM acc_trans
WHERE (source = ? OR source IS NULL) AND transdate = ?
AND cleared = '0'
- AND chart_id = |.$dbh->quote($chart_id);
- my $sth = $dbh->prepare($query) || $form->dberror($query);
-
- my $i;
- my $trans_id;
+ AND chart_id = | . $dbh->quote($chart_id);
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
- $query = qq|
+ my $i;
+ my $trans_id;
+
+ $query = qq|
UPDATE acc_trans
SET cleared = '1'
WHERE cleared = '0' AND trans_id = ? AND transdate = ?
- AND chart_id = |.$dbh->quote($chart_id);
- my $tth = $dbh->prepare($query) || $form->dberror($query);
-
- # clear flags
- for $i (1 .. $form->{rowcount}) {
- if ($form->{"cleared_$i"} && ! $form->{"oldcleared_$i"}) {
- if ($form->{summary}) {
- $sth->execute(
- $form->{"source_$i"},
- $form->{"transdate_$i"}
- ) || $form->dberror;
-
- while (($trans_id) = $sth->fetchrow_array) {
- $tth->execute(
- $trans_id,
- $form->{"transdate_$i"}
- ) || $form->dberror;
- $tth->finish;
- }
- $sth->finish;
-
- } else {
-
- $tth->execute(
- $form->{"id_$i"},
- $form->{"transdate_$i"}
- ) || $form->dberror;
- $tth->finish;
- }
- }
- }
-
- $dbh->commit;
+ AND chart_id = | . $dbh->quote($chart_id);
+ my $tth = $dbh->prepare($query) || $form->dberror($query);
+
+ # clear flags
+ for $i ( 1 .. $form->{rowcount} ) {
+ if ( $form->{"cleared_$i"} && !$form->{"oldcleared_$i"} ) {
+ if ( $form->{summary} ) {
+ $sth->execute( $form->{"source_$i"}, $form->{"transdate_$i"} )
+ || $form->dberror;
+
+ while ( ($trans_id) = $sth->fetchrow_array ) {
+ $tth->execute( $trans_id, $form->{"transdate_$i"} )
+ || $form->dberror;
+ $tth->finish;
+ }
+ $sth->finish;
+
+ }
+ else {
+
+ $tth->execute( $form->{"id_$i"}, $form->{"transdate_$i"} )
+ || $form->dberror;
+ $tth->finish;
+ }
+ }
+ }
+
+ $dbh->commit;
}