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