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

Reply via email to