details: https://code.openbravo.com/erp/devel/pi/rev/4f71605143ec changeset: 28170:4f71605143ec user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Mon Dec 28 12:15:18 2015 +0100 summary: Fixed bug 31760: Some labels in Add Payment can't be translated
Solution partially based on ALO's one. The query for translation was wrongly using the element TRL ID instead of the Application Element ID. Avoid querying the database when language is en_US This piece of code is executed from Purchase Invoice, Sales Invoice, Payment In, Payment Out, Financial Account | Transaction, Financial Account | Match Statement. However, only in the Financial Account flows seem to be really useful, so we should think about not running it in the other places. diffstat: modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddPaymentReloadLabelsActionHandler.java | 73 ++++----- 1 files changed, 30 insertions(+), 43 deletions(-) diffs (109 lines): diff -r e9300529e34a -r 4f71605143ec modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddPaymentReloadLabelsActionHandler.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddPaymentReloadLabelsActionHandler.java Thu Dec 24 17:37:23 2015 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddPaymentReloadLabelsActionHandler.java Mon Dec 28 12:15:18 2015 +0100 @@ -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 Openbravo SLU + * All portions are Copyright (C) 2014-2015 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -21,6 +21,7 @@ import java.util.Map; +import org.apache.commons.lang.StringUtils; import org.codehaus.jettison.json.JSONObject; import org.hibernate.criterion.Restrictions; import org.openbravo.client.application.Parameter; @@ -30,6 +31,7 @@ import org.openbravo.dal.service.OBDal; import org.openbravo.erpCommon.utility.OBMessageUtils; import org.openbravo.model.ad.system.Language; +import org.openbravo.model.ad.ui.Element; import org.openbravo.model.ad.ui.ElementTrl; import org.openbravo.service.db.DbUtility; import org.slf4j.Logger; @@ -50,53 +52,38 @@ final String strFinancialAccount = (String) parameters.get("financialAccount"); final String strIssotrx = (String) parameters.get("issotrx"); boolean issotrx = "true".equals(strIssotrx) ? true : false; - final Parameter businessPartner = OBDal.getInstance() - .get(Parameter.class, strBusinessPartner); - final Parameter financialAccount = OBDal.getInstance().get(Parameter.class, - strFinancialAccount); - final Language language = OBContext.getOBContext().getLanguage(); - final OBCriteria<ElementTrl> obcBP = OBDal.getInstance().createCriteria(ElementTrl.class); - obcBP.add(Restrictions.eq(ElementTrl.PROPERTY_ID, businessPartner.getApplicationElement() - .getId())); - obcBP.add(Restrictions.eq(ElementTrl.PROPERTY_LANGUAGE, language)); - obcBP.setMaxResults(1); - final ElementTrl elementBP = (ElementTrl) obcBP.uniqueResult(); - if (elementBP != null) { - if (issotrx) { - values.put("businessPartner", elementBP.getName()); - } else { - values.put("businessPartner", elementBP.getPurchaseOrderName()); + final String labelProperty = issotrx ? Element.PROPERTY_NAME + : Element.PROPERTY_PURCHASEORDERNAME; + final Language lang = OBContext.getOBContext().getLanguage(); + + final Element businessPartnerElement = OBDal.getInstance() + .get(Parameter.class, strBusinessPartner).getApplicationElement(); + final Element financialAccountElement = OBDal.getInstance() + .get(Parameter.class, strFinancialAccount).getApplicationElement(); + + values.put("businessPartner", businessPartnerElement.get(labelProperty)); + values.put("financialAccount", financialAccountElement.get(labelProperty)); + if (!StringUtils.equals(lang.getLanguage(), "en_US")) { + final OBCriteria<ElementTrl> obcBP = OBDal.getInstance().createCriteria(ElementTrl.class); + obcBP.add(Restrictions.eq(ElementTrl.PROPERTY_APPLICATIONELEMENT, businessPartnerElement)); + obcBP.add(Restrictions.eq(ElementTrl.PROPERTY_LANGUAGE, lang)); + obcBP.setMaxResults(1); + final ElementTrl elementBP = (ElementTrl) obcBP.uniqueResult(); + if (elementBP != null) { + values.put("businessPartner", elementBP.get(labelProperty)); } - } else { - if (issotrx) { - values.put("businessPartner", businessPartner.getApplicationElement().getName()); - } else { - values.put("businessPartner", businessPartner.getApplicationElement() - .getPurchaseOrderName()); + + final OBCriteria<ElementTrl> obcFA = OBDal.getInstance().createCriteria(ElementTrl.class); + obcFA.add(Restrictions.eq(ElementTrl.PROPERTY_APPLICATIONELEMENT, financialAccountElement)); + obcFA.add(Restrictions.eq(ElementTrl.PROPERTY_LANGUAGE, lang)); + obcFA.setMaxResults(1); + final ElementTrl elementFA = (ElementTrl) obcFA.uniqueResult(); + if (elementFA != null) { + values.put("financialAccount", elementFA.get(labelProperty)); } } - final OBCriteria<ElementTrl> obcFA = OBDal.getInstance().createCriteria(ElementTrl.class); - obcFA.add(Restrictions.eq(ElementTrl.PROPERTY_ID, financialAccount.getApplicationElement() - .getId())); - obcFA.add(Restrictions.eq(ElementTrl.PROPERTY_LANGUAGE, language)); - obcFA.setMaxResults(1); - final ElementTrl elementFA = (ElementTrl) obcFA.uniqueResult(); - if (elementFA != null) { - if (issotrx) { - values.put("financialAccount", elementFA.getName()); - } else { - values.put("financialAccount", elementFA.getPurchaseOrderName()); - } - } else { - if (issotrx) { - values.put("financialAccount", financialAccount.getApplicationElement().getName()); - } else { - values.put("financialAccount", financialAccount.getApplicationElement() - .getPurchaseOrderName()); - } - } result.put("values", values); } catch (Exception e) { OBDal.getInstance().rollbackAndClose(); ------------------------------------------------------------------------------ _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits