projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://lx-office/~/lx-office-erp
[kivitendo-erp.git]
/
SL
/
CP.pm
diff --git
a/SL/CP.pm
b/SL/CP.pm
index
64fd988
..
f6c8c1a
100644
(file)
--- a/
SL/CP.pm
+++ b/
SL/CP.pm
@@
-160,16
+160,14
@@
sub get_openinvoices {
my $buysell = $form->{vc} eq 'customer' ? "buy" : "sell";
my $arap = $form->{arap} eq "ar" ? "ar" : "ap";
my $buysell = $form->{vc} eq 'customer' ? "buy" : "sell";
my $arap = $form->{arap} eq "ar" ? "ar" : "ap";
- my $curr_null = $form->{curreny} ? '' : ' OR a.curr IS NULL'; # fix: after sql-injection fix, curr is inserted as NULL, before that as ''
-
my $query =
qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, a.curr | .
qq|FROM $arap a | .
my $query =
qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, a.curr | .
qq|FROM $arap a | .
- qq|WHERE (a.${vc}_id = ?) AND (
a.curr = ? $curr_null) AND NOT (a.amount =
paid)| .
+ qq|WHERE (a.${vc}_id = ?) AND (
COALESCE(a.curr, '') = ?) AND NOT (a.amount = a.
paid)| .
qq|ORDER BY a.id|;
my $sth = prepare_execute_query($form, $dbh, $query,
conv_i($form->{"${vc}_id"}),
qq|ORDER BY a.id|;
my $sth = prepare_execute_query($form, $dbh, $query,
conv_i($form->{"${vc}_id"}),
-
$form->{currency}
);
+
"$form->{currency}"
);
$form->{PR} = [];
while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
$form->{PR} = [];
while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
@@
-182,6
+180,16
@@
sub get_openinvoices {
}
$sth->finish;
}
$sth->finish;
+
+ $query = <<SQL;
+ SELECT COUNT(*)
+ FROM $arap
+ WHERE (${vc}_id = ?)
+ AND (COALESCE(curr, '') <> ?)
+ AND (amount <> paid)
+SQL
+ ($form->{openinvoices_other_currencies}) = selectfirst_array_query($form, $dbh, $query, conv_i($form->{"${vc}_id"}), "$form->{currency}");
+
$dbh->disconnect;
$main::lxdebug->leave_sub();
$dbh->disconnect;
$main::lxdebug->leave_sub();
@@
-358,14
+366,11
@@
sub process_payment {
}
}
}
}
- # record a AR/AP with a payment
- if ($form->round_amount($paymentamount, 2) > 0) {
- $form->{invnumber} = "";
- OP::overpayment("", $myconfig, $form, $dbh, $paymentamount, $ml, 1);
- }
-
my $rc;
if ($form->round_amount($paymentamount, 2) < 0) {
my $rc;
if ($form->round_amount($paymentamount, 2) < 0) {
+ # Hier werden negativen Zahlungseingänge abgefangen
+ # Besser: in Oberfläche schon prüfen
+ # Zahlungsein- und ausgänge sind immer positiv
$dbh->rollback;
$rc = 0;
}
$dbh->rollback;
$rc = 0;
}