# HG changeset patch
# User Adrián Romero <adrianromero@openbravo.com>
# Date 1571072653 -7200
#      Mon Oct 14 19:04:13 2019 +0200
# Node ID 19c34982bd626e40d25725bc13f66809cb58928e
# Parent  0e0996d71f697c214b568b2f059de97ac8406ebc
Related to issue 0041890: StringBuffer/Builder in Retail modules should be replaced by String
* Replace StringBuilder/StringBuffer by String in simple cases
* Replace StringBuffer by StringBuilder
* Fixes copyright year
* Other small refactors

diff --git a/src/org/openbravo/retail/posterminal/AutoRegisterHWM.java b/src/org/openbravo/retail/posterminal/AutoRegisterHWM.java
--- a/src/org/openbravo/retail/posterminal/AutoRegisterHWM.java
+++ b/src/org/openbravo/retail/posterminal/AutoRegisterHWM.java
@@ -85,8 +85,8 @@
 
   private HardwareManager syncHardwareManager(Organization org, String hardwareUrl,
       String hardwareName, Boolean receiptPrinter, Boolean pdfPrinter) {
-    OBCriteria<HardwareManager> hardwareQuery = OBDal.getInstance().createCriteria(
-        HardwareManager.class);
+    OBCriteria<HardwareManager> hardwareQuery = OBDal.getInstance()
+        .createCriteria(HardwareManager.class);
     hardwareQuery.add(Restrictions.eq(HardwareManager.PROPERTY_ORGANIZATION, org));
     hardwareQuery.add(Restrictions.eq(HardwareManager.PROPERTY_HARDWAREURL, hardwareUrl));
     hardwareQuery.setMaxResults(1);
@@ -117,8 +117,8 @@
   }
 
   private void syncTerminalTypes(Organization org, HardwareManager hardwaremng) {
-    OBCriteria<TerminalType> terminaltypeQuery = OBDal.getInstance().createCriteria(
-        TerminalType.class);
+    OBCriteria<TerminalType> terminaltypeQuery = OBDal.getInstance()
+        .createCriteria(TerminalType.class);
     terminaltypeQuery.add(Restrictions.eq(TerminalType.PROPERTY_ORGANIZATION, org));
     terminaltypeQuery.add(Restrictions.eq(TerminalType.PROPERTY_AUTOREGISTERHWMURL, true));
     final ScrollableResults terminalScroller = terminaltypeQuery.scroll(ScrollMode.FORWARD_ONLY);
@@ -146,7 +146,8 @@
     }
   }
 
-  private void saveHardwareUrl(TerminalType termtype, Organization org, HardwareManager hardwaremng) {
+  private void saveHardwareUrl(TerminalType termtype, Organization org,
+      HardwareManager hardwaremng) {
     HardwareURL hardwareurl = OBProvider.getInstance().get(HardwareURL.class);
     hardwareurl.setClient(termtype.getClient());
     hardwareurl.setOrganization(termtype.getOrganization());
@@ -156,13 +157,14 @@
   }
 
   private JSONObject getParameters(HttpServletRequest request) {
-    StringBuffer params = new StringBuffer();
+    StringBuilder params = new StringBuilder();
     String line = null;
     JSONObject parameters = null;
     try {
       BufferedReader reader = request.getReader();
-      while ((line = reader.readLine()) != null)
+      while ((line = reader.readLine()) != null) {
         params.append(line);
+      }
       parameters = new JSONObject(params.toString());
     } catch (JSONException | IOException e) {
       throw new IllegalArgumentException("Parameters are mandatory");
@@ -185,4 +187,4 @@
       throws Exception {
 
   }
-}
\ No newline at end of file
+}
diff --git a/src/org/openbravo/retail/posterminal/LoginUtilsServlet.java b/src/org/openbravo/retail/posterminal/LoginUtilsServlet.java
--- a/src/org/openbravo/retail/posterminal/LoginUtilsServlet.java
+++ b/src/org/openbravo/retail/posterminal/LoginUtilsServlet.java
@@ -494,14 +494,11 @@
       if (server.isAllorgs()) {
         respArray.put(createServerJSON(server));
       } else {
-        StringBuilder hql = new StringBuilder();
-        hql.append("select mso from " + MobileServerOrganization.ENTITY_NAME + " as mso ");
-        hql.append("where mso." + MobileServerOrganization.PROPERTY_OBMOBCSERVERDEFINITION
-            + " = :serverDefinition ");
-        hql.append("and mso." + MobileServerOrganization.PROPERTY_SERVERORG + " = :org");
-        Query<Object> query = OBDal.getInstance()
-            .getSession()
-            .createQuery(hql.toString(), Object.class);
+        String hql = "select mso from " + MobileServerOrganization.ENTITY_NAME + " as mso " //
+            + "where mso." + MobileServerOrganization.PROPERTY_OBMOBCSERVERDEFINITION
+            + " = :serverDefinition " //
+            + "and mso." + MobileServerOrganization.PROPERTY_SERVERORG + " = :org";
+        Query<Object> query = OBDal.getInstance().getSession().createQuery(hql, Object.class);
 
         query.setParameter("serverDefinition", server);
         query.setParameter("org", terminal.getOrganization());
diff --git a/src/org/openbravo/retail/posterminal/PaidReceiptsFilter.java b/src/org/openbravo/retail/posterminal/PaidReceiptsFilter.java
--- a/src/org/openbravo/retail/posterminal/PaidReceiptsFilter.java
+++ b/src/org/openbravo/retail/posterminal/PaidReceiptsFilter.java
@@ -92,27 +92,25 @@
         orderTypeHql = "";
     }
 
-    final StringBuilder hqlPaidReceipts = new StringBuilder();
-    hqlPaidReceipts.append("select ");
-    hqlPaidReceipts.append(receiptsHQLProperties.getHqlSelect());
-    hqlPaidReceipts.append(" from Order as ord");
-    hqlPaidReceipts.append(" where $filtersCriteria and $hqlCriteria");
-    hqlPaidReceipts.append(orderTypeHql);
-    hqlPaidReceipts.append(" and ord.client.id = $clientId");
-    hqlPaidReceipts.append(getOganizationFilter(jsonsent));
-    hqlPaidReceipts.append(
-        " and ord.obposIsDeleted = false and ord.obposApplications is not null and ord.documentStatus <> 'CJ' ");
-    hqlPaidReceipts.append(" and ord.documentStatus <> 'CA' ");
+    String hqlPaidReceipts = "select " //
+        + receiptsHQLProperties.getHqlSelect() //
+        + " from Order as ord" //
+        + " where $filtersCriteria and $hqlCriteria" //
+        + orderTypeHql //
+        + " and ord.client.id = $clientId" //
+        + getOganizationFilter(jsonsent) //
+        + " and ord.obposIsDeleted = false and ord.obposApplications is not null and ord.documentStatus <> 'CJ' " //
+        + " and ord.documentStatus <> 'CA' ";
     if (!isPayOpenTicket) {
-      hqlPaidReceipts.append(" and (ord.documentStatus <> 'CL' or ord.iscancelled = true) ");
+      hqlPaidReceipts += " and (ord.documentStatus <> 'CL' or ord.iscancelled = true) ";
     }
     if ((jsonsent.has("orderByClause") && jsonsent.get("orderByClause") != JSONObject.NULL)
         || (jsonsent.has("orderByProperties")
             && jsonsent.get("orderByProperties") != JSONObject.NULL)) {
-      hqlPaidReceipts.append(" $orderByCriteria");
+      hqlPaidReceipts += " $orderByCriteria";
     }
 
-    return Arrays.asList(new String[] { hqlPaidReceipts.toString() });
+    return Arrays.asList(hqlPaidReceipts);
   }
 
   protected static String getOrderTypeFilter(JSONObject jsonsent) {
@@ -132,19 +130,12 @@
         ? org.getOBRETCOCrossStoreOrganization().getId()
         : "";
 
-    final StringBuilder orgFilter = new StringBuilder();
-    if (StringUtils.isNotEmpty(documentNoFilter) && StringUtils.isNotEmpty(crossStoreId)) {
-      final String crossStoreList = StringCollectionUtils
-          .commaSeparated(POSUtils.getOrgListByCrossStoreId(crossStoreId), true);
-
-      orgFilter.append(" and ord.organization.id in (");
-      orgFilter.append(crossStoreList);
-      orgFilter.append(" )");
-    } else {
-      orgFilter.append(" and ord.$orgId");
-    }
-
-    return orgFilter.toString();
+    return StringUtils.isNotEmpty(documentNoFilter) && StringUtils.isNotEmpty(crossStoreId) //
+        ? " and ord.organization.id in (" //
+            + StringCollectionUtils.commaSeparated(POSUtils.getOrgListByCrossStoreId(crossStoreId),
+                true) //
+            + " )" //
+        : " and ord.$orgId";
   }
 
   private static String getColumnFilterValue(JSONObject jsonsent, final String columnFilter) {
diff --git a/src/org/openbravo/retail/posterminal/master/BPTaxCategory.java b/src/org/openbravo/retail/posterminal/master/BPTaxCategory.java
--- a/src/org/openbravo/retail/posterminal/master/BPTaxCategory.java
+++ b/src/org/openbravo/retail/posterminal/master/BPTaxCategory.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2018 Openbravo S.L.U.
+ * Copyright (C) 2018-2019 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -20,16 +20,15 @@
   @Override
   protected List<String> getQuery(JSONObject jsonsent) throws JSONException {
 
-    StringBuilder queryBuilder = new StringBuilder();
-    queryBuilder.append("select bpTaxCategory.id as id, ");
-    queryBuilder.append("  bpTaxCategory.name as name ");
-    queryBuilder.append("from BusinessPartnerTaxCategory as bpTaxCategory ");
-    queryBuilder.append("where (bpTaxCategory.$incrementalUpdateCriteria) ");
-    queryBuilder.append("  AND ($naturalOrgCriteria) and $readableClientCriteria ");
-    queryBuilder.append("  AND bpTaxCategory.active=true ");
-    queryBuilder.append("order by bpTaxCategory.id asc");
+    final String hql = "select bpTaxCategory.id as id, " //
+        + "  bpTaxCategory.name as name " //
+        + "from BusinessPartnerTaxCategory as bpTaxCategory " //
+        + "where (bpTaxCategory.$incrementalUpdateCriteria) " //
+        + "  AND ($naturalOrgCriteria) and $readableClientCriteria " //
+        + "  AND bpTaxCategory.active=true " //
+        + "order by bpTaxCategory.id asc"; //
 
-    return Arrays.asList(queryBuilder.toString());
+    return Arrays.asList(hql);
   }
 
   @Override
diff --git a/src/org/openbravo/retail/posterminal/master/Brand.java b/src/org/openbravo/retail/posterminal/master/Brand.java
--- a/src/org/openbravo/retail/posterminal/master/Brand.java
+++ b/src/org/openbravo/retail/posterminal/master/Brand.java
@@ -74,30 +74,27 @@
   }
 
   private String getBrandHqlString(final HQLPropertyList brandHQLProperties) {
-    final StringBuilder query = new StringBuilder();
-    query.append(" select");
-    query.append(brandHQLProperties.getHqlSelect());
-    query.append(" from Brand brand");
-    query.append(" where $filtersCriteria");
-    query.append(" and $hqlCriteria");
-    query.append(" and $incrementalUpdateCriteria");
-    query.append(" and brand.active = true");
-    query.append(" and exists (");
-    query.append("   select 1");
-    query.append("   from Product p");
-    query.append("   join p.oBRETCOProlProductList assort");
-    query.append("   where p.brand.id = brand.id");
-    query.append("   and assort.obretcoProductlist.id in :productListIds");
-    query.append(" )");
-    query.append(" and exists (");
-    query.append("   select 1");
-    query.append("   from Organization o");
-    query.append("   where o.id in :orgIds");
-    query.append(
-        "   and ad_org_isinnaturaltree(brand.organization.id, o.id, brand.client.id) = 'Y'");
-    query.append(" )");
-    query.append(" order by brand.name, brand.id");
-    return query.toString();
+    return " select" //
+        + brandHQLProperties.getHqlSelect() //
+        + " from Brand brand" //
+        + " where $filtersCriteria" //
+        + " and $hqlCriteria" //
+        + " and $incrementalUpdateCriteria" //
+        + " and brand.active = true" //
+        + " and exists (" //
+        + "   select 1" //
+        + "   from Product p" //
+        + "   join p.oBRETCOProlProductList assort" //
+        + "   where p.brand.id = brand.id" //
+        + "   and assort.obretcoProductlist.id in :productListIds" //
+        + " )" //
+        + " and exists (" //
+        + "   select 1" //
+        + "   from Organization o" //
+        + "   where o.id in :orgIds" //
+        + "   and ad_org_isinnaturaltree(brand.organization.id, o.id, brand.client.id) = 'Y'" //
+        + " )" //
+        + " order by brand.name, brand.id";
   }
 
   private static boolean isCrossStoreSearch(final JSONObject jsonsent) {
diff --git a/src/org/openbravo/retail/posterminal/process/SearchRelatedReceipts.java b/src/org/openbravo/retail/posterminal/process/SearchRelatedReceipts.java
--- a/src/org/openbravo/retail/posterminal/process/SearchRelatedReceipts.java
+++ b/src/org/openbravo/retail/posterminal/process/SearchRelatedReceipts.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2018 Openbravo S.L.U.
+ * Copyright (C) 2018-2019 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -25,22 +25,21 @@
   protected List<String> getQuery(JSONObject jsonsent) throws JSONException {
 
     // Getting orderId for the documentNo
-    final StringBuffer hqlRelatedReceipts = new StringBuffer();
-    hqlRelatedReceipts.append("SELECT o.id AS id, o.documentNo AS documentNo, ");
-    hqlRelatedReceipts.append("o.orderDate AS orderDate, o.grandTotalAmount AS amount, ");
-    hqlRelatedReceipts.append("sum(psd.amount) AS pending ");
-    hqlRelatedReceipts.append("FROM FIN_Payment_ScheduleDetail AS psd ");
-    hqlRelatedReceipts.append("JOIN psd.orderPaymentSchedule AS ps ");
-    hqlRelatedReceipts.append("JOIN ps.order AS o ");
-    hqlRelatedReceipts.append("WHERE o.documentStatus <> 'CL' ");
-    hqlRelatedReceipts.append("AND psd.paymentDetails IS NULL ");
-    hqlRelatedReceipts.append("AND o.businessPartner.id = :bp ");
-    hqlRelatedReceipts.append("AND o.id <> :currentOrder ");
-    hqlRelatedReceipts.append("AND o.$readableSimpleCriteria AND o.$naturalOrgCriteria ");
-    hqlRelatedReceipts.append("GROUP BY o.id, o.documentNo, o.orderDate, o.grandTotalAmount ");
-    hqlRelatedReceipts.append("ORDER BY o.orderDate");
+    final String hqlRelatedReceipts = "SELECT o.id AS id, o.documentNo AS documentNo, " //
+        + "o.orderDate AS orderDate, o.grandTotalAmount AS amount, " //
+        + "sum(psd.amount) AS pending " //
+        + "FROM FIN_Payment_ScheduleDetail AS psd " //
+        + "JOIN psd.orderPaymentSchedule AS ps " //
+        + "JOIN ps.order AS o " //
+        + "WHERE o.documentStatus <> 'CL' " //
+        + "AND psd.paymentDetails IS NULL " //
+        + "AND o.businessPartner.id = :bp " //
+        + "AND o.id <> :currentOrder " //
+        + "AND o.$readableSimpleCriteria AND o.$naturalOrgCriteria " //
+        + "GROUP BY o.id, o.documentNo, o.orderDate, o.grandTotalAmount " //
+        + "ORDER BY o.orderDate"; //
 
-    return Arrays.asList(new String[] { hqlRelatedReceipts.toString() });
+    return Arrays.asList(hqlRelatedReceipts);
   }
 
   @Override
diff --git a/src/org/openbravo/retail/posterminal/utility/OBPOSPrintTemplateReader.java b/src/org/openbravo/retail/posterminal/utility/OBPOSPrintTemplateReader.java
--- a/src/org/openbravo/retail/posterminal/utility/OBPOSPrintTemplateReader.java
+++ b/src/org/openbravo/retail/posterminal/utility/OBPOSPrintTemplateReader.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2018 Openbravo S.L.U.
+ * Copyright (C) 2018-2019 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -39,7 +39,7 @@
 
   public String getPrintTemplatesIdentifier() {
     if (printTemplateIdentifier == null) {
-      final StringBuffer sb = new StringBuffer();
+      final StringBuilder sb = new StringBuilder();
       OBCriteria<PrintTemplate> criteria = OBDal.getInstance().createCriteria(PrintTemplate.class);
       criteria.addOrderBy(PrintTemplate.PROPERTY_ID, true);
       for (PrintTemplate template : criteria.list()) {
