details:   https://code.openbravo.com/erp/devel/pi/rev/04a655291985
changeset: 32126:04a655291985
user:      Nono Carballo <nonofce <at> gmail.com>
date:      Tue May 09 13:28:14 2017 -0400
summary:   Fixes issue 35433: Aging Balance Organization and GL fields

* The default value of parameter Organization is the one selected when login,
if is transaction allowed, otherwise, the first one in the list of Organizations
with transaction allowed.

* When parameter Organization changes, the selected value of General Ledger
selector is set accordingly.

details:   https://code.openbravo.com/erp/devel/pi/rev/b069f040ba10
changeset: 32127:b069f040ba10
user:      Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
date:      Wed May 17 21:46:10 2017 +0200
summary:   Related to issue 35433: Code review improvements

- Fix copyrights.
- Improve Account Schema Selector filter expression.
- Improve AgingOrganizationFilterExpression class.

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-onchange-functions.js
 |  19 ++-
 src-db/database/sourcedata/OBUIAPP_PARAMETER.xml                               
                                     |  10 +-
 src-db/database/sourcedata/OBUISEL_SELECTOR.xml                                
                                     |   1 +
 
src/org/openbravo/common/actionhandler/AgingGeneralLedgerByOrganizationActionHandler.java
                           |  70 ++++++++++
 
src/org/openbravo/common/filterexpression/AgingGeneralLedgerFilterExpression.java
                                   |  42 ++++++
 
src/org/openbravo/common/filterexpression/AgingOrganizationFilterExpression.java
                                    |  67 +++++++++
 6 files changed, 204 insertions(+), 5 deletions(-)

diffs (290 lines):

diff -r 2f8dba119a61 -r b069f040ba10 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-onchange-functions.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-onchange-functions.js
       Mon May 15 00:24:10 2017 +0530
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-onchange-functions.js
       Wed May 17 21:46:10 2017 +0200
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2014-2016 Openbravo SLU
+ * All portions are Copyright (C) 2014-2017 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -56,4 +56,21 @@
   } else {
     view.messageBar.hide();
   }
+};
+
+//**  {{{OB.OnChange.agingProcessDefinitionOrganization}}}**
+//Used to select the General Ledger in use by the selected Organization
+OB.OnChange.agingProcessDefinitionOrganization = function (item, view, form, 
grid) {
+  var organization = form.getItem('Organization');
+  var gl = form.getItem('AccSchema');
+  var callbackGetGLbyOrganization;
+  callbackGetGLbyOrganization = function (response, data, request) {
+    gl.valueMap = gl.valueMap || {};
+    gl.valueMap[data.response.value] = data.response.identifier;
+    gl.setValue(data.response.value);
+  };
+
+  
OB.RemoteCallManager.call('org.openbravo.common.actionhandler.AgingGeneralLedgerByOrganizationActionHandler',
 {
+    organization: organization.getValue()
+  }, {}, callbackGetGLbyOrganization);
 };
\ No newline at end of file
diff -r 2f8dba119a61 -r b069f040ba10 
src-db/database/sourcedata/OBUIAPP_PARAMETER.xml
--- a/src-db/database/sourcedata/OBUIAPP_PARAMETER.xml  Mon May 15 00:24:10 
2017 +0530
+++ b/src-db/database/sourcedata/OBUIAPP_PARAMETER.xml  Wed May 17 21:46:10 
2017 +0200
@@ -1125,13 +1125,14 @@
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
-<!--97DA0EA642004F0BA82A5189A5851CF3-->  
<DEFAULTVALUE><![CDATA[OB.getSession().getAttribute('#AD_ORG_ID')]]></DEFAULTVALUE>
+<!--97DA0EA642004F0BA82A5189A5851CF3-->  
<DEFAULTVALUE><![CDATA[OB.getFilterExpression('org.openbravo.common.filterexpression.AgingOrganizationFilterExpression')]]></DEFAULTVALUE>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<AD_ELEMENT_ID><![CDATA[314D557225BB42C2BE1F312928AB6FFA]]></AD_ELEMENT_ID>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  <ISFIXED><![CDATA[N]]></ISFIXED>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<EVALUATEFIXEDVALUE><![CDATA[N]]></EVALUATEFIXEDVALUE>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<OBUIAPP_PROCESS_ID><![CDATA[0D37A9F6109549DEB058373EF2DAEB6A]]></OBUIAPP_PROCESS_ID>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<STARTINNEWLINE><![CDATA[N]]></STARTINNEWLINE>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  <NUMCOLUMN><![CDATA[1]]></NUMCOLUMN>
+<!--97DA0EA642004F0BA82A5189A5851CF3-->  
<ONCHANGEFUNCTION><![CDATA[OB.OnChange.agingProcessDefinitionOrganization]]></ONCHANGEFUNCTION>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<DISPLAYEDROWS><![CDATA[5]]></DISPLAYEDROWS>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<DISPLAYTITLE><![CDATA[Y]]></DISPLAYTITLE>
 <!--97DA0EA642004F0BA82A5189A5851CF3-->  
<ATT_SHOWINDESCRIPTION><![CDATA[N]]></ATT_SHOWINDESCRIPTION>
@@ -1351,7 +1352,7 @@
 <!--B7C489A91D25438E901C191559781438-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
 <!--B7C489A91D25438E901C191559781438-->  
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--B7C489A91D25438E901C191559781438-->  
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
-<!--B7C489A91D25438E901C191559781438-->  
<DEFAULTVALUE><![CDATA[OB.getSession().getAttribute('$C_ACCTSCHEMA_ID')]]></DEFAULTVALUE>
+<!--B7C489A91D25438E901C191559781438-->  
<DEFAULTVALUE><![CDATA[OB.getFilterExpression('org.openbravo.common.filterexpression.AgingGeneralLedgerFilterExpression')]]></DEFAULTVALUE>
 <!--B7C489A91D25438E901C191559781438-->  
<AD_ELEMENT_ID><![CDATA[A9C578B487FB4BE6A048D88A01E4BC1D]]></AD_ELEMENT_ID>
 <!--B7C489A91D25438E901C191559781438-->  <ISFIXED><![CDATA[N]]></ISFIXED>
 <!--B7C489A91D25438E901C191559781438-->  
<EVALUATEFIXEDVALUE><![CDATA[N]]></EVALUATEFIXEDVALUE>
@@ -1550,7 +1551,7 @@
 <!--D2496ACB03A446D1920045A374CAAE4A-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
 <!--D2496ACB03A446D1920045A374CAAE4A-->  
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--D2496ACB03A446D1920045A374CAAE4A-->  
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
-<!--D2496ACB03A446D1920045A374CAAE4A-->  
<DEFAULTVALUE><![CDATA[OB.getSession().getAttribute('$C_ACCTSCHEMA_ID')]]></DEFAULTVALUE>
+<!--D2496ACB03A446D1920045A374CAAE4A-->  
<DEFAULTVALUE><![CDATA[OB.getFilterExpression('org.openbravo.common.filterexpression.AgingGeneralLedgerFilterExpression')]]></DEFAULTVALUE>
 <!--D2496ACB03A446D1920045A374CAAE4A-->  
<AD_ELEMENT_ID><![CDATA[A9C578B487FB4BE6A048D88A01E4BC1D]]></AD_ELEMENT_ID>
 <!--D2496ACB03A446D1920045A374CAAE4A-->  <ISFIXED><![CDATA[N]]></ISFIXED>
 <!--D2496ACB03A446D1920045A374CAAE4A-->  
<EVALUATEFIXEDVALUE><![CDATA[N]]></EVALUATEFIXEDVALUE>
@@ -1626,13 +1627,14 @@
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
-<!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<DEFAULTVALUE><![CDATA[OB.getSession().getAttribute('#AD_ORG_ID')]]></DEFAULTVALUE>
+<!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<DEFAULTVALUE><![CDATA[OB.getFilterExpression('org.openbravo.common.filterexpression.AgingOrganizationFilterExpression')]]></DEFAULTVALUE>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<AD_ELEMENT_ID><![CDATA[314D557225BB42C2BE1F312928AB6FFA]]></AD_ELEMENT_ID>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  <ISFIXED><![CDATA[N]]></ISFIXED>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<EVALUATEFIXEDVALUE><![CDATA[N]]></EVALUATEFIXEDVALUE>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<OBUIAPP_PROCESS_ID><![CDATA[EB4C4053F3B94A17A08D1DD7E89CEB7E]]></OBUIAPP_PROCESS_ID>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<STARTINNEWLINE><![CDATA[N]]></STARTINNEWLINE>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  <NUMCOLUMN><![CDATA[1]]></NUMCOLUMN>
+<!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<ONCHANGEFUNCTION><![CDATA[OB.OnChange.agingProcessDefinitionOrganization]]></ONCHANGEFUNCTION>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<DISPLAYEDROWS><![CDATA[5]]></DISPLAYEDROWS>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<DISPLAYTITLE><![CDATA[Y]]></DISPLAYTITLE>
 <!--D6991F7834DD4073AC4E5F72A8A5065D-->  
<ATT_SHOWINDESCRIPTION><![CDATA[N]]></ATT_SHOWINDESCRIPTION>
diff -r 2f8dba119a61 -r b069f040ba10 
src-db/database/sourcedata/OBUISEL_SELECTOR.xml
--- a/src-db/database/sourcedata/OBUISEL_SELECTOR.xml   Mon May 15 00:24:10 
2017 +0530
+++ b/src-db/database/sourcedata/OBUISEL_SELECTOR.xml   Wed May 17 21:46:10 
2017 +0200
@@ -502,6 +502,7 @@
 <!--784A05D3FE67483A85C8CB77AAEC5910-->  <NAME><![CDATA[Account Schema 
Selector]]></NAME>
 <!--784A05D3FE67483A85C8CB77AAEC5910-->  
<AD_REFERENCE_ID><![CDATA[2185627D3D2440DA8D6E4983C7E53638]]></AD_REFERENCE_ID>
 <!--784A05D3FE67483A85C8CB77AAEC5910-->  
<AD_TABLE_ID><![CDATA[265]]></AD_TABLE_ID>
+<!--784A05D3FE67483A85C8CB77AAEC5910-->  <FILTER_EXPRESSION><![CDATA["EXISTS 
(SELECT 1 FROM OrganizationAcctSchema s WHERE s.accountingSchema.id = e.id AND 
AD_ISORGINCLUDED('"+OB.getParameters().get('Organization')+"', 
e.organization.id, @AD_CLIENT_ID@) <> -1)"]]></FILTER_EXPRESSION>
 <!--784A05D3FE67483A85C8CB77AAEC5910-->  
<OBCLKER_TEMPLATE_ID><![CDATA[9314DE8599AD44E7BFC4CC50699042AB]]></OBCLKER_TEMPLATE_ID>
 <!--784A05D3FE67483A85C8CB77AAEC5910-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--784A05D3FE67483A85C8CB77AAEC5910-->  
<SUGGESTIONTEXTMATCHSTYLE><![CDATA[startsWith]]></SUGGESTIONTEXTMATCHSTYLE>
diff -r 2f8dba119a61 -r b069f040ba10 
src/org/openbravo/common/actionhandler/AgingGeneralLedgerByOrganizationActionHandler.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/src/org/openbravo/common/actionhandler/AgingGeneralLedgerByOrganizationActionHandler.java
 Wed May 17 21:46:10 2017 +0200
@@ -0,0 +1,70 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2017 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.common.actionhandler;
+
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.codehaus.jettison.json.JSONException;
+import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.client.kernel.BaseActionHandler;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.erpCommon.utility.OBLedgerUtils;
+import org.openbravo.model.financialmgmt.accounting.coa.AcctSchema;
+
+public class AgingGeneralLedgerByOrganizationActionHandler extends 
BaseActionHandler {
+
+  private static final Logger log = Logger
+      .getLogger(AgingGeneralLedgerByOrganizationActionHandler.class);
+
+  @Override
+  protected JSONObject execute(Map<String, Object> parameters, String content) 
{
+    JSONObject resultMessage = new JSONObject();
+    JSONObject errorMessage = new JSONObject();
+    try {
+
+      JSONObject jsonContent = new JSONObject(content);
+      JSONObject data = new JSONObject(content);
+      String orgId = jsonContent.getString("organization");
+
+      String generalLedgerId = OBLedgerUtils.getOrgLedger(orgId);
+      AcctSchema generalLedger = OBDal.getInstance().get(AcctSchema.class, 
generalLedgerId);
+
+      data.put("value", generalLedgerId);
+      data.put("identifier", generalLedger.getName());
+      resultMessage.put("response", data);
+
+    } catch (JSONException e) {
+      log.error("Error creating JSON Object ", e);
+      e.printStackTrace();
+      try {
+        errorMessage = new JSONObject();
+        errorMessage.put("severity", "error");
+        errorMessage.put("title", "Error");
+        errorMessage.put("text", e.getMessage());
+        resultMessage.put("message", errorMessage);
+      } catch (JSONException e1) {
+        log.error("Error creating JSON Object ", e);
+      }
+    }
+
+    return resultMessage;
+  }
+
+}
diff -r 2f8dba119a61 -r b069f040ba10 
src/org/openbravo/common/filterexpression/AgingGeneralLedgerFilterExpression.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/src/org/openbravo/common/filterexpression/AgingGeneralLedgerFilterExpression.java
 Wed May 17 21:46:10 2017 +0200
@@ -0,0 +1,42 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2017 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.common.filterexpression;
+
+import java.util.Map;
+
+import org.openbravo.client.application.FilterExpression;
+import org.openbravo.client.application.ParameterUtils;
+import org.openbravo.client.kernel.RequestContext;
+import org.openbravo.erpCommon.utility.OBLedgerUtils;
+
+public class AgingGeneralLedgerFilterExpression implements FilterExpression {
+
+  @Override
+  public String getExpression(Map<String, String> requestMap) {
+    try {
+      String defaultOrg = (String) ParameterUtils
+          .getJSExpressionResult(requestMap, RequestContext.get().getSession(),
+              
"OB.getFilterExpression('org.openbravo.common.filterexpression.AgingOrganizationFilterExpression')");
+      return OBLedgerUtils.getOrgLedger(defaultOrg);
+    } catch (Exception e) {
+      return null;
+    }
+  }
+
+}
diff -r 2f8dba119a61 -r b069f040ba10 
src/org/openbravo/common/filterexpression/AgingOrganizationFilterExpression.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/src/org/openbravo/common/filterexpression/AgingOrganizationFilterExpression.java
  Wed May 17 21:46:10 2017 +0200
@@ -0,0 +1,67 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2017 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.common.filterexpression;
+
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.openbravo.client.application.FilterExpression;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.dal.service.OBQuery;
+import org.openbravo.model.common.enterprise.Organization;
+import org.openbravo.model.common.enterprise.OrganizationType;
+
+public class AgingOrganizationFilterExpression implements FilterExpression {
+
+  @Override
+  public String getExpression(Map<String, String> requestMap) {
+    try {
+      String contextOrgId = 
OBContext.getOBContext().getCurrentOrganization().getId();
+      String orgId = getValidOrganization(contextOrgId);
+      if (StringUtils.isEmpty(orgId)) {
+        orgId = getValidOrganization(null);
+      }
+      return orgId;
+    } catch (Exception e) {
+      return null;
+    }
+  }
+
+  private String getValidOrganization(String contextOrgId) {
+    StringBuilder hqlQuery = new StringBuilder();
+    hqlQuery.append(" as o");
+    hqlQuery.append(" join o." + Organization.PROPERTY_ORGANIZATIONTYPE + " as 
ot");
+    hqlQuery.append(" where ot." + 
OrganizationType.PROPERTY_TRANSACTIONSALLOWED + " = true");
+    hqlQuery.append(" and o." + Organization.PROPERTY_READY + " = true");
+    if (StringUtils.isNotEmpty(contextOrgId)) {
+      hqlQuery.append(" and o." + Organization.PROPERTY_ID + " = 
:contextOrgId");
+    }
+    hqlQuery.append(" order by o." + Organization.PROPERTY_NAME);
+    final OBQuery<Organization> query = 
OBDal.getInstance().createQuery(Organization.class,
+        hqlQuery.toString());
+    if (StringUtils.isNotEmpty(contextOrgId)) {
+      query.setNamedParameter("contextOrgId", contextOrgId);
+    }
+    query.setMaxResult(1);
+    Organization org = query.uniqueResult();
+    return org != null ? org.getId() : null;
+  }
+
+}

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to