details:   https://code.openbravo.com/erp/devel/pi/rev/53f710de3c59
changeset: 13835:53f710de3c59
user:      Mikel Irurita <mikel.irurita <at> openbravo.com>
date:      Mon Sep 26 13:04:20 2011 +0200
summary:   Fixes issue 18419: inconsistent payment created automatically when 
PM belongs to FA of different orgs

diffstat:

 
modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml
 |  16 ++++++---
 1 files changed, 11 insertions(+), 5 deletions(-)

diffs (33 lines):

diff -r e2cb1c71b1d5 -r 53f710de3c59 
modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml
--- 
a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml
     Fri Sep 23 13:58:33 2011 +0200
+++ 
b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml
     Mon Sep 26 13:04:20 2011 +0200
@@ -56,6 +56,7 @@
 v_reversalinvoice_id VARCHAR2(32);
 v_delete_paymentplan BOOLEAN := FALSE;
 v_Financial_Account_ID FIN_FINANCIAL_ACCOUNT.FIN_FINANCIAL_ACCOUNT_ID%TYPE;
+v_Financial_Account_Org VARCHAR2(32);
 v_CreatePayment CHAR(1):='N';
 v_CreateFinTransaction CHAR(1):='N';
 v_PaymentDocType_ID FIN_PAYMENT.C_DOCTYPE_ID%TYPE;
@@ -532,11 +533,16 @@
       WHERE C_BPARTNER_ID = v_BPartner_ID;
 
       -- Automatic creation of payment and financial transaction
-      SELECT CASE WHEN v_IsSOTrx='Y' THEN FIN_FINANCIAL_ACCOUNT_ID ELSE 
PO_FINANCIAL_ACCOUNT_ID END
-        INTO v_Financial_Account_ID
-      FROM C_BPARTNER
-      WHERE C_BPARTNER_ID = v_BPartner_ID;
-      IF(v_Financial_Account_ID IS NOT NULL) THEN
+      SELECT CASE WHEN v_IsSOTrx='Y' THEN c_bpartner.FIN_FINANCIAL_ACCOUNT_ID 
ELSE C_BPARTNER.PO_FINANCIAL_ACCOUNT_ID END,
+             CASE WHEN v_IsSOTrx='Y' THEN facustomer.ad_org_id ELSE 
favendor.ad_org_id END
+        INTO v_Financial_Account_ID, v_Financial_Account_Org
+      FROM c_bpartner LEFT JOIN FIN_FINANCIAL_ACCOUNT facustomer ON 
(c_bpartner.fin_financial_account_id = facustomer.fin_financial_account_id)
+                      LEFT JOIN FIN_FINANCIAL_ACCOUNT favendor ON 
(c_bpartner.po_financial_account_id = favendor.fin_financial_account_id)
+      WHERE c_bpartner.c_bpartner_id = v_BPartner_ID;
+      
+      -- Organization of the financial account must be in the natural 
organization tree of the invoice org.
+      IF (v_Financial_Account_ID IS NOT NULL AND
+          (AD_ISORGINCLUDED(v_Financial_Account_Org, v_Org_ID, v_Client_ID) <> 
-1 OR AD_ISORGINCLUDED(v_Org_ID, v_Financial_Account_Org, v_Client_ID) <> -1)) 
THEN
         SELECT MIN(em_aprm_payment_desc) INTO v_payment_desc
         FROM ad_orginfo
         WHERE ad_org_id = v_Org_ID

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to