From 939b2613acea28190a853083bd29e3791f0ed835 Mon Sep 17 00:00:00 2001
From: Philip Reetz
Date: Thu, 9 Jul 2009 12:53:22 +0200
Subject: [PATCH] Fehler in der Funktion "Zahlung buchen" bei Kreditoren- und
Debitorenbuchungen. Zahlungsdatum wurde nicht in der Datenbank gespeichert.
---
SL/AP.pm | 4 ++--
SL/AR.pm | 3 ++-
sql/Pg-upgrade2/update_date_paid.sql | 5 +++++
3 files changed, 9 insertions(+), 3 deletions(-)
create mode 100644 sql/Pg-upgrade2/update_date_paid.sql
diff --git a/SL/AP.pm b/SL/AP.pm
index 206b9fd7a..50afccb52 100644
--- a/SL/AP.pm
+++ b/SL/AP.pm
@@ -346,8 +346,8 @@ sub post_transaction {
}
if ($payments_only) {
- $query = qq|UPDATE ap SET paid = ? WHERE id = ?|;
- do_query($form, $dbh, $query, $form->{invpaid}, conv_i($form->{id}));
+ $query = qq|UPDATE ap SET paid = ?, datepaid = ? WHERE id = ?|;
+ do_query($form, $dbh, $query, $form->{invpaid}, $form->{invpaid} ? conv_date($form->{datepaid}) : undef, conv_i($form->{id}));
}
my $rc = 1;
diff --git a/SL/AR.pm b/SL/AR.pm
index 68b9c1cbf..7ee12fad2 100644
--- a/SL/AR.pm
+++ b/SL/AR.pm
@@ -196,7 +196,8 @@ sub post_transaction {
} else {
# Record paid amount.
- do_query($form, $dbh, qq|UPDATE ar SET paid = ? WHERE id = ?|, $form->{paid}, conv_i($form->{id}));
+ $query = qq|UPDATE ar SET paid = ?, datepaid = ? WHERE id = ?|;
+ do_query($form, $dbh, $query, $form->{paid}, $form->{paid} ? conv_date($form->{datepaid}) : undef, conv_i($form->{id}));
}
# add paid transactions
diff --git a/sql/Pg-upgrade2/update_date_paid.sql b/sql/Pg-upgrade2/update_date_paid.sql
new file mode 100644
index 000000000..30b251f06
--- /dev/null
+++ b/sql/Pg-upgrade2/update_date_paid.sql
@@ -0,0 +1,5 @@
+-- @tag: update_date_paid
+-- @description: Aktualisieren des Zahldatums in der Datenbank bei Kreditoren- und Debitorenbuchungen, wo die Funktion "Zahlung buchen" verwendet wurde
+-- @depends: release_2_6_0
+UPDATE ap a SET datepaid = (SELECT max(ac.transdate) FROM acc_trans ac LEFT JOIN chart c ON (ac.chart_id = c.id) WHERE ac.trans_id=a.id AND c.link LIKE '%paid%') WHERE paid > 0 AND datepaid IS null AND NOT invoice;
+UPDATE ar a SET datepaid = (SELECT max(ac.transdate) FROM acc_trans ac LEFT JOIN chart c ON (ac.chart_id = c.id) WHERE ac.trans_id=a.id AND c.link LIKE '%paid%') WHERE paid > 0 AND datepaid IS null AND NOT invoice;
--
2.20.1