details: https://code.openbravo.com/erp/devel/pi/rev/05bda9b0567e
changeset: 21124:05bda9b0567e
user: Pandeeswari Ramakrishnan <pandeeswari.ramakrishnan <at>
openbravo.com>
date: Sun Sep 15 12:24:30 2013 +0530
summary: Fixes Issue 24564: Wrong Payment posting
The payment is posted with wrong accounting entry when the related invoice is
linked to a reactivated order
diffstat:
modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
| 21 ++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diffs (45 lines):
diff -r ceeb08524ec9 -r 05bda9b0567e
modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
---
a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
Fri Sep 13 08:10:02 2013 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
Sun Sep 15 12:24:30 2013 +0530
@@ -182,6 +182,8 @@
-- check there is not any paid payment
DECLARE
Cur_PaymentScheduleDetail RECORD;
+ v_FinPaymentScheduleDetailId VARCHAR2(32);
+ v_payment_schedule_invoice VARCHAR2(32);
BEGIN
SELECT count(*) INTO v_count
FROM fin_payment_schedule
@@ -198,6 +200,10 @@
AND ps.c_order_id = p_record_id
) LOOP
IF (cur_paymentscheduledetail.fin_payment_schedule_invoice IS NOT
NULL) THEN
+ IF cur_paymentscheduledetail.fin_payment_schedule_order IS NOT NULL
THEN
+
v_FinPaymentScheduleDetailId:=cur_paymentscheduledetail.fin_payment_scheduledetail_id;
+
v_payment_schedule_invoice:=cur_paymentscheduledetail.fin_payment_schedule_invoice;
+ END IF;
UPDATE fin_payment_scheduledetail
SET fin_payment_schedule_order = null
WHERE fin_payment_scheduledetail_id =
cur_paymentscheduledetail.fin_payment_scheduledetail_id;
@@ -210,6 +216,21 @@
v_resultstr:='Delete scheduled payments';
DELETE FROM fin_payment_schedule
WHERE c_order_id = p_record_id;
+
+ -- When there are more than one payment schedule for the invoice related
to the order, merge the payment schedules
+ IF v_FinPaymentScheduleDetailId IS NOT NULL THEN
+ UPDATE fin_payment_scheduledetail
+ SET amount = (SELECT SUM(amount)
+ FROM fin_payment_scheduledetail
+ WHERE fin_payment_schedule_invoice =
v_payment_schedule_invoice
+ AND fin_payment_schedule_order IS NULL)
+ WHERE fin_payment_scheduledetail_id = v_FinPaymentScheduleDetailId;
+
+ DELETE FROM fin_payment_scheduledetail
+ WHERE fin_payment_scheduledetail_id <> v_FinPaymentScheduleDetailId
+ AND fin_payment_schedule_invoice = v_payment_schedule_invoice
+ AND fin_payment_schedule_order IS NULL;
+ END IF;
END;
ELSIF (p_docaction = 'CL') THEN
DECLARE
------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/22/13.
http://pubads.g.doubleclick.net/gampad/clk?id=64545871&iu=/4140/ostg.clktrk
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits