}
$sth->finish;
- # get currencies and closedto
- $query = qq|SELECT curr, closedto FROM defaults|;
- ($form->{currencies}, $form->{closedto}) =
- selectrow_query($form, $dbh, $query);
+ # get closedto
+ $query = qq|SELECT closedto FROM defaults|;
+ ($form->{closedto}) = selectrow_query($form, $dbh, $query);
$dbh->disconnect;
my $buysell = $form->{vc} eq 'customer' ? "buy" : "sell";
my $arap = $form->{arap} eq "ar" ? "ar" : "ap";
+ my @values = (conv_i($form->{"${vc}_id"}), "$form->{currency}");
+ my $whereinvoice = '';
+ if ($::form->{invnumber}) {
+ $whereinvoice = ' AND a.invnumber LIKE ? ';
+ push @values, $::form->{invnumber};
+ }
+
my $query =
- qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, a.curr | .
+ qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, cu.name AS curr | .
qq|FROM $arap a | .
- qq|WHERE (a.${vc}_id = ?) AND (COALESCE(a.curr, '') = ?) AND NOT (a.amount = a.paid)| .
+ qq|LEFT JOIN currencies cu ON (cu.id=a.currency_id)| .
+ qq|WHERE (a.${vc}_id = ?) AND cu.name = ? AND NOT (a.amount = a.paid)| .
+ $whereinvoice .
qq|ORDER BY a.id|;
- my $sth = prepare_execute_query($form, $dbh, $query,
- conv_i($form->{"${vc}_id"}),
- "$form->{currency}");
+
+ my $sth = prepare_execute_query($form, $dbh, $query, @values);
$form->{PR} = [];
while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
SELECT COUNT(*)
FROM $arap
WHERE (${vc}_id = ?)
- AND (COALESCE(curr, '') <> ?)
+ AND ((SELECT cu.name FROM currencies cu WHERE cu.id=${arap}.currency_id) <> ?)
AND (amount <> paid)
SQL
($form->{openinvoices_other_currencies}) = selectfirst_array_query($form, $dbh, $query, conv_i($form->{"${vc}_id"}), "$form->{currency}");
qq|SELECT $buysell | .
qq|FROM exchangerate e | .
qq|JOIN ${arap} a ON (a.transdate = e.transdate) | .
- qq|WHERE (e.curr = ?) AND (a.id = ?)|;
+ qq|WHERE (e.currency_id = (SELECT id FROM currencies WHERE name = ?)) AND (a.id = ?)|;
my ($exchangerate) =
selectrow_query($form, $dbh, $query,
$form->{currency}, $form->{"id_$i"});