details:   https://code.openbravo.com/erp/stable/2.50/rev/59de9c3ad920
changeset: 9682:59de9c3ad920
user:      Mikel Irurita <mikel.irurita <at> openbravo.com>
date:      Fri Sep 23 14:38:48 2011 +0200
summary:   Fixes issue 18606: Bank Statement document gets locked when trying 
to post

details:   https://code.openbravo.com/erp/stable/2.50/rev/34255df416df
changeset: 9683:34255df416df
user:      Mikel Irurita <mikel.irurita <at> openbravo.com>
date:      Wed Oct 05 17:04:41 2011 +0200
summary:   Fixes issue 18656: Improve message when trying to create invoice 
using automatic PM not available

diffstat:

 src-db/database/sourcedata/AD_MESSAGE.xml                        |   2 +-
 src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java |  27 
++++++---
 src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java    |   1 +
 3 files changed, 20 insertions(+), 10 deletions(-)

diffs (118 lines):

diff -r 4ea4016ee815 -r 34255df416df src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Thu Oct 06 11:08:51 2011 +0200
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Wed Oct 05 17:04:41 2011 +0200
@@ -33252,7 +33252,7 @@
 <!--B506C3346CDB44EEB33592003DCA14B2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--B506C3346CDB44EEB33592003DCA14B2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--B506C3346CDB44EEB33592003DCA14B2-->  
<VALUE><![CDATA[PaymentmethodNotbelongsFinAccount]]></VALUE>
-<!--B506C3346CDB44EEB33592003DCA14B2-->  <MSGTEXT><![CDATA[Automatic actions 
could not be performed: selected payment method does not belong to the business 
partner default financial account.]]></MSGTEXT>
+<!--B506C3346CDB44EEB33592003DCA14B2-->  <MSGTEXT><![CDATA[Automatic actions 
could not be performed: selected payment method does not belong to the business 
partner default financial account or the default financial account is not 
accessible for the invoice's organization.]]></MSGTEXT>
 <!--B506C3346CDB44EEB33592003DCA14B2-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--B506C3346CDB44EEB33592003DCA14B2-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--B506C3346CDB44EEB33592003DCA14B2--></AD_MESSAGE>
diff -r 4ea4016ee815 -r 34255df416df 
src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java
--- a/src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java  Thu Oct 
06 11:08:51 2011 +0200
+++ b/src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java  Wed Oct 
05 17:04:41 2011 +0200
@@ -28,6 +28,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.secureApp.HttpSecureAppServlet;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.dal.core.OBContext;
@@ -71,13 +72,15 @@
       String strIsSOTrx = Utility.getContext(this, vars, "isSOTrx", 
strWindowId);
       String strTabId = vars.getStringParameter("inpTabId");
       String strfinPaymentmethodId = 
vars.getStringParameter("inpfinPaymentmethodId");
+      String strOrgId = vars.getStringParameter("inpadOrgId");
 
       try {
         if ("inpfinPaymentmethodId".equals(strChanged)) { // Payment Method 
changed
-          printPagePaymentMethod(response, vars, strBPartner, strIsSOTrx, 
strfinPaymentmethodId);
+          printPagePaymentMethod(response, vars, strBPartner, strIsSOTrx, 
strfinPaymentmethodId,
+              strOrgId);
         } else {
           printPage(response, vars, strBPartner, strDocType, strIsSOTrx, 
strWindowId, strLocation,
-              strContact, strProjectId, strTabId);
+              strContact, strProjectId, strTabId, strOrgId);
         }
       } catch (ServletException ex) {
         pageErrorCallOut(response);
@@ -88,7 +91,8 @@
 
   private void printPage(HttpServletResponse response, VariablesSecureApp 
vars, String strBPartner,
       String strDocType, String strIsSOTrx, String strWindowId, String 
strLocation,
-      String strContact, String strProjectId, String strTabId) throws 
IOException, ServletException {
+      String strContact, String strProjectId, String strTabId, String 
strOrgId) throws IOException,
+      ServletException {
     if (log4j.isDebugEnabled())
       log4j.debug("Output: dataSheet");
     XmlDocument xmlDocument = xmlEngine.readXmlTemplate(
@@ -246,7 +250,7 @@
           && strIsSOTrx.equals("Y")) {
         String creditLimitExceed = "" + 
Double.parseDouble(data[0].creditavailable) * -1;
         String automationPaymentMethod = isAutomaticCombination(vars, 
strBPartner, strIsSOTrx,
-            strFinPaymentMethodId);
+            strFinPaymentMethodId, strOrgId);
         resultado.append(", new Array('MESSAGE', \""
             + Utility.messageBD(this, "CreditLimitOver", vars.getLanguage()) + 
creditLimitExceed
             + "<br/>" + automationPaymentMethod + "\")");
@@ -264,13 +268,14 @@
   }
 
   private void printPagePaymentMethod(HttpServletResponse response, 
VariablesSecureApp vars,
-      String strBPartnerId, String strIsSOTrx, String strfinPaymentmethodId) 
throws IOException,
-      ServletException {
+      String strBPartnerId, String strIsSOTrx, String strfinPaymentmethodId, 
String strOrgId)
+      throws IOException, ServletException {
     XmlDocument xmlDocument = xmlEngine.readXmlTemplate(
         "org/openbravo/erpCommon/ad_callouts/CallOut").createXmlDocument();
     StringBuilder result = new StringBuilder();
 
-    String message = isAutomaticCombination(vars, strBPartnerId, strIsSOTrx, 
strfinPaymentmethodId);
+    String message = isAutomaticCombination(vars, strBPartnerId, strIsSOTrx, 
strfinPaymentmethodId,
+        strOrgId);
 
     result.append("var calloutName='SE_Invoice_BPartner';\n\n");
     result.append("var respuesta = new Array(new Array(\"MESSAGE\", ");
@@ -301,7 +306,7 @@
    *         financial account of the given business partner.
    */
   private String isAutomaticCombination(VariablesSecureApp vars, String 
strBPartnerId,
-      String strIsSOTrx, String strfinPaymentmethodId) {
+      String strIsSOTrx, String strfinPaymentmethodId, String strOrgId) {
     BusinessPartner bpartner = OBDal.getInstance().get(BusinessPartner.class, 
strBPartnerId);
     FIN_PaymentMethod selectedPaymentMethod = 
OBDal.getInstance().get(FIN_PaymentMethod.class,
         strfinPaymentmethodId);
@@ -313,14 +318,18 @@
 
       // Only applies if the APRM module is installed
       if (isAlternativeFinancialFlow()) {
-        if (bpartner != null && selectedPaymentMethod != null) {
+        if (bpartner != null && selectedPaymentMethod != null && 
!"".equals(strOrgId)) {
           account = (isSales) ? bpartner.getAccount() : 
bpartner.getPOFinancialAccount();
           if (account != null) {
             OBCriteria<FinAccPaymentMethod> obc = 
OBDal.getInstance().createCriteria(
                 FinAccPaymentMethod.class);
+            obc.setFilterOnReadableOrganization(false);
             obc.add(Expression.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, 
account));
             obc.add(Expression
                 .eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, 
selectedPaymentMethod));
+            obc.add(Restrictions.in(FinAccPaymentMethod.PROPERTY_ORGANIZATION 
+ ".id", OBContext
+                
.getOBContext().getOrganizationStructureProvider().getNaturalTree(strOrgId)));
+
             if (obc.list() == null || obc.list().size() == 0) {
               message = Utility.messageBD(this, 
"PaymentmethodNotbelongsFinAccount", vars
                   .getLanguage());
diff -r 4ea4016ee815 -r 34255df416df 
src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java
--- a/src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java     Thu Oct 
06 11:08:51 2011 +0200
+++ b/src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java     Wed Oct 
05 17:04:41 2011 +0200
@@ -161,6 +161,7 @@
         return true;
       }
     }
+    setStatus(STATUS_DocumentDisabled);
     return false;
   }
 

------------------------------------------------------------------------------
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