details:   https://code.openbravo.com/erp/devel/pi/rev/521a71d024ed
changeset: 15206:521a71d024ed
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Tue Jan 24 16:43:18 2012 +0100
summary:   Fixes issue 19260: You can use credit generated from other 
organization.
with this change the credit generated for BP is only available in the first 
organization that it is a legal entity (first legal entity father) or her sons.

details:   https://code.openbravo.com/erp/devel/pi/rev/f18a19d0e4f2
changeset: 15207:f18a19d0e4f2
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Wed Jan 25 16:49:21 2012 +0100
summary:   Fisex issue 19499: Error when you create a BP
with the functionality 'Create Account for Business Partner' checked.
Now the application check if the account exists and put a clear message

diffstat:

 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
         |   6 ++-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
     |  19 +++++++--
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
 |  12 +++++-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
                     |  17 +++++++-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
                |   4 +-
 src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml                   
                                      |  16 ++++++-
 src-db/database/sourcedata/AD_MESSAGE.xml                                      
                                      |  11 +++++
 7 files changed, 70 insertions(+), 15 deletions(-)

diffs (212 lines):

diff -r 717accbc6781 -r f18a19d0e4f2 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
      Wed Jan 25 16:46:03 2012 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
      Wed Jan 25 16:49:21 2012 +0100
@@ -292,8 +292,10 @@
     if (payment.getBusinessPartner() != null) {
       xmlDocument.setParameter("businessPartner", 
payment.getBusinessPartner().getIdentifier());
       xmlDocument.setParameter("businessPartnerId", 
payment.getBusinessPartner().getId());
-      xmlDocument.setParameter("credit",
-          dao.getCustomerCredit(payment.getBusinessPartner(), 
payment.isReceipt()).toString());
+      xmlDocument.setParameter(
+          "credit",
+          dao.getCustomerCredit(payment.getBusinessPartner(), 
payment.isReceipt(),
+              payment.getOrganization()).toString());
       xmlDocument.setParameter("customerBalance",
           payment.getBusinessPartner().getCreditUsed() != null ? 
payment.getBusinessPartner()
               .getCreditUsed().toString() : BigDecimal.ZERO.toString());
diff -r 717accbc6781 -r f18a19d0e4f2 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
  Wed Jan 25 16:46:03 2012 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
  Wed Jan 25 16:49:21 2012 +0100
@@ -298,7 +298,16 @@
     xmlDocument.setParameter("orgId", strOrgId);
     xmlDocument.setParameter("invoiceId", strInvoiceId);
     xmlDocument.setParameter("isReceipt", (isReceipt ? "Y" : "N"));
-    xmlDocument.setParameter("credit", dao.getCustomerCredit(bp, 
isReceipt).toString());
+
+    try {
+      OBContext.setAdminMode(true);
+      xmlDocument.setParameter(
+          "credit",
+          dao.getCustomerCredit(bp, isReceipt,
+              OBDal.getInstance().get(Organization.class, 
strOrgId)).toString());
+    } finally {
+      OBContext.restorePreviousMode();
+    }
 
     // get DocumentNo
     final List<Object> parameters = new ArrayList<Object>();
@@ -339,10 +348,10 @@
     }
     xmlDocument.setParameter("sectionDetailFinancialAccount", 
finAccountComboHtml);
 
-    if (account != null){
-     if (!financialAccounts.contains(account)){
-        strFinancialAccountId = financialAccounts.get(0).getId();
-     }
+    if (account != null) {
+      if (!financialAccounts.contains(account)) {
+        strFinancialAccountId = financialAccounts.get(0).getId();
+      }
     }
     // Currency
     xmlDocument.setParameter("CurrencyId", strCurrencyId);
diff -r 717accbc6781 -r f18a19d0e4f2 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
      Wed Jan 25 16:46:03 2012 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
      Wed Jan 25 16:49:21 2012 +0100
@@ -128,8 +128,16 @@
     } else if (vars.commandIn("LOADCREDIT")) {
       final String strBusinessPartnerId = 
vars.getRequiredStringParameter("inpcBpartnerId");
       final boolean isReceipt = 
"Y".equals(vars.getRequiredStringParameter("isReceipt"));
-      BigDecimal customerCredit = dao.getCustomerCredit(
-          OBDal.getInstance().get(BusinessPartner.class, 
strBusinessPartnerId), isReceipt);
+      final String strOrgId = vars.getRequiredStringParameter("inpadOrgId");
+      BigDecimal customerCredit;
+      try {
+        OBContext.setAdminMode(true);
+        customerCredit = dao.getCustomerCredit(
+            OBDal.getInstance().get(BusinessPartner.class, 
strBusinessPartnerId), isReceipt, OBDal
+                .getInstance().get(Organization.class, strOrgId));
+      } finally {
+        OBContext.restorePreviousMode();
+      }
       response.setContentType("text/html; charset=UTF-8");
       response.setHeader("Cache-Control", "no-cache");
       PrintWriter out = response.getWriter();
diff -r 717accbc6781 -r f18a19d0e4f2 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
  Wed Jan 25 16:46:03 2012 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
  Wed Jan 25 16:49:21 2012 +0100
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
 import org.hibernate.criterion.Criterion;
@@ -1407,6 +1408,7 @@
     return ppfiCriteria.list();
   }
 
+  @Deprecated
   public BigDecimal getCustomerCredit(BusinessPartner bp, boolean isReceipt) {
     BigDecimal creditAmount = BigDecimal.ZERO;
     for (FIN_Payment payment : getCustomerPaymentsWithCredit(bp, isReceipt))
@@ -1415,6 +1417,15 @@
     return creditAmount;
   }
 
+  public BigDecimal getCustomerCredit(BusinessPartner bp, boolean isReceipt, 
Organization Org) {
+    BigDecimal creditAmount = BigDecimal.ZERO;
+    for (FIN_Payment payment : getCustomerPaymentsWithCredit(Org, bp, 
isReceipt))
+      creditAmount = creditAmount.add(payment.getGeneratedCredit()).subtract(
+          payment.getUsedCredit());
+    return creditAmount;
+  }
+
+  @Deprecated
   public List<FIN_Payment> getCustomerPaymentsWithCredit(BusinessPartner bp, 
boolean isReceipt) {
     OBCriteria<FIN_Payment> obcPayment = 
OBDal.getInstance().createCriteria(FIN_Payment.class);
     obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, bp));
@@ -1451,8 +1462,10 @@
       
obcPayment.add(Restrictions.neProperty(FIN_Payment.PROPERTY_GENERATEDCREDIT,
           FIN_Payment.PROPERTY_USEDCREDIT));
       final Organization legalEntity = FIN_Utility.getLegalEntityOrg(org);
-      obcPayment.add(Restrictions.in("organization.id", 
OBContext.getOBContext()
-          
.getOrganizationStructureProvider().getNaturalTree(legalEntity.getId())));
+      Set<String> orgIds = 
OBContext.getOBContext().getOrganizationStructureProvider()
+          .getChildOrg(legalEntity.getId());
+      orgIds.add(legalEntity.getId());
+      obcPayment.add(Restrictions.in("organization.id", orgIds));
       obcPayment.addOrderBy(FIN_Payment.PROPERTY_PAYMENTDATE, true);
       obcPayment.addOrderBy(FIN_Payment.PROPERTY_DOCUMENTNO, true);
       return obcPayment.list();
diff -r 717accbc6781 -r f18a19d0e4f2 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
     Wed Jan 25 16:46:03 2012 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
     Wed Jan 25 16:49:21 2012 +0100
@@ -41,6 +41,7 @@
 import org.openbravo.erpCommon.utility.Utility;
 import org.openbravo.model.common.businesspartner.BusinessPartner;
 import org.openbravo.model.common.currency.ConversionRateDoc;
+import org.openbravo.model.common.enterprise.Organization;
 import org.openbravo.model.common.invoice.Invoice;
 import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction;
 import org.openbravo.model.financialmgmt.payment.FIN_Payment;
@@ -733,8 +734,9 @@
       final BigDecimal usedAmount = newPayment.getUsedCredit();
       final BusinessPartner bp = newPayment.getBusinessPartner();
       final boolean isReceipt = newPayment.isReceipt();
+      final Organization Org = newPayment.getOrganization();
 
-      List<FIN_Payment> creditPayments = dao.getCustomerPaymentsWithCredit(bp, 
isReceipt);
+      List<FIN_Payment> creditPayments = 
dao.getCustomerPaymentsWithCredit(Org, bp, isReceipt);
       BigDecimal pendingToAllocateAmount = usedAmount;
       for (FIN_Payment creditPayment : creditPayments) {
         BigDecimal availableAmount = 
creditPayment.getGeneratedCredit().subtract(
diff -r 717accbc6781 -r f18a19d0e4f2 
src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml
--- a/src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml      Wed Jan 
25 16:46:03 2012 +0100
+++ b/src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml      Wed Jan 
25 16:49:21 2012 +0100
@@ -56,6 +56,7 @@
        v_UpdateSequence                          CHAR;
        tmp_Subaccout_no                          VARCHAR(32) :=null;   
--OBTG:varchar2--
        v_C_ElementValue_ID                     VARCHAR(32) :=null;     
--OBTG:varchar2--
+       v_Exist                                 NUMBER;
        
 BEGIN
   IF (p_orginal_validcombination IS NULL) THEN
@@ -85,15 +86,24 @@
                FROM C_ValidCombination, C_ElementValue 
                WHERE C_ValidCombination.Account_ID = 
C_ElementValue.C_ElementValue_ID
                AND C_ValidCombination_ID =p_Orginal_Validcombination;
-
+       
        -- Logic for generating the New Sub account number from Original 
Accounts.
        v_Acct_No_For_SubAccount:=SUBSTR(v_Default_Account_No,1,p_Acct_Length);
        tmp_Subaccout_no := p_Subacct_Length - p_Acct_Length;
        v_Seq_No_For_Subaccount_No:= lpad(p_SequenceNo,cast(tmp_Subaccout_no as 
integer),'0');
        v_New_Subaccount_No:= v_Acct_No_For_SubAccount || 
v_Seq_No_For_Subaccount_No;
-  /*
+
+       --Checking if the new account already exists
+       SELECT count(*)
+       INTO v_Exist
+       FROM C_ElementValue WHERE VALUE =v_New_Subaccount_No;
+        IF (v_Exist > 0) THEN
+          RAISE NO_DATA_FOUND;  --OBTG:-20000--
+        END IF;
+       /*
                Inserting the new element value for new account for Business 
Partner Or Product.        
        */
+
        INSERT INTO C_ElementValue
                (
                C_ElementValue_ID,
@@ -183,7 +193,7 @@
                FROM ad_treenode WHERE AD_TREE_ID = v_AD_TREE_ID
                AND NODE_ID = v_Node_ID ), SEQNO =  v_SEQNO
                 WHERE NODE_ID = V_C_ElementValue_ID;
-                
+
        /*
                Function call to Retrieve the new account NUMBER for Business 
Partner or Product. */                                    
                C_ValidCombination_Insert(p_Result, 
v_Default_Account_Client_ID, v_Org_ID, v_C_AcctSchema_ID, v_C_ElementValue_ID, 
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
NULL, NULL);
diff -r 717accbc6781 -r f18a19d0e4f2 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Wed Jan 25 16:46:03 2012 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Wed Jan 25 16:49:21 2012 +0100
@@ -19682,6 +19682,17 @@
 <!--ED94DA7D967E401B93DDFFE86C9715A9-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--ED94DA7D967E401B93DDFFE86C9715A9--></AD_MESSAGE>
 
+<!--EDF01D2A44964901BD465666A655A54B--><AD_MESSAGE>
+<!--EDF01D2A44964901BD465666A655A54B-->  
<AD_MESSAGE_ID><![CDATA[EDF01D2A44964901BD465666A655A54B]]></AD_MESSAGE_ID>
+<!--EDF01D2A44964901BD465666A655A54B-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--EDF01D2A44964901BD465666A655A54B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--EDF01D2A44964901BD465666A655A54B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--EDF01D2A44964901BD465666A655A54B-->  
<VALUE><![CDATA[DuplicateAccount]]></VALUE>
+<!--EDF01D2A44964901BD465666A655A54B-->  <MSGTEXT><![CDATA[Duplicated account 
has been created, the length of accounts or subaccounts in organization window 
is wrong defined]]></MSGTEXT>
+<!--EDF01D2A44964901BD465666A655A54B-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--EDF01D2A44964901BD465666A655A54B-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--EDF01D2A44964901BD465666A655A54B--></AD_MESSAGE>
+
 <!--EE302684C25A4CD89ECEC171E624475F--><AD_MESSAGE>
 <!--EE302684C25A4CD89ECEC171E624475F-->  
<AD_MESSAGE_ID><![CDATA[EE302684C25A4CD89ECEC171E624475F]]></AD_MESSAGE_ID>
 <!--EE302684C25A4CD89ECEC171E624475F-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to