diff -r 209be185dd3b src/org/openbravo/retail/posterminal/master/BusinessPartner.java
--- a/src/org/openbravo/retail/posterminal/master/BusinessPartner.java	Wed Aug 28 13:59:49 2013 +0200
+++ b/src/org/openbravo/retail/posterminal/master/BusinessPartner.java	Thu Aug 29 09:31:50 2013 +0200
@@ -13,74 +13,62 @@
 
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.openbravo.dal.core.OBContext;
-import org.openbravo.model.common.enterprise.Organization;
-import org.openbravo.retail.posterminal.POSUtils;
 import org.openbravo.retail.posterminal.ProcessHQLQuery;
 
 public class BusinessPartner extends ProcessHQLQuery {
 
   @Override
   protected List<String> getQuery(JSONObject jsonsent) throws JSONException {
-
-    Organization org = POSUtils.getOrganization(OBContext.getOBContext().getCurrentOrganization()
-        .getId());
     return Arrays
-        .asList(new String[] { "SELECT bpl.businessPartner.id as id, bpl.businessPartner.organization.id as organization, bpl.businessPartner.name as name, bpl.businessPartner.name as _identifier, "
-            + "bpl.businessPartner.searchKey as searchKey, bpl.businessPartner.description as description, bpl.businessPartner.taxID as taxID, "
-            + "bpl.businessPartner.sOBPTaxCategory.id as taxCategory, bpl.businessPartner.priceList.id as priceList, "
-            + "bpl.businessPartner.paymentMethod.id as paymentMethod, bpl.businessPartner.paymentTerms.id as paymentTerms, "
-            + "bpl.businessPartner.invoiceTerms as invoiceTerms, bpl.id as locId, max(bpl.locationAddress.addressLine1) as locName, ulist.email as email, "
-            + "ulist.id as contactId, "
-            + "ulist.phone as phone, bpl.locationAddress.cityName as cityName, bpl.locationAddress.postalCode as postalCode, "
-            + "bpl.businessPartner.businessPartnerCategory.id as businessPartnerCategory, "
-            + "bpl.businessPartner.businessPartnerCategory.name as businessPartnerCategory_name, "
-            + "bpl.businessPartner.creditLimit as creditLimit, "
-            + "bpl.businessPartner.creditUsed as creditUsed "
-            + "FROM BusinessPartnerLocation AS bpl left outer join bpl.businessPartner.aDUserList AS ulist "
-            + "WHERE (bpl.$incrementalUpdateCriteria or bpl.businessPartner.$incrementalUpdateCriteria or bpl.locationAddress.$incrementalUpdateCriteria) AND bpl.businessPartner.active=true AND ("
-            + "(bpl.id = '"
-            + org.getObretcoCBpLocation().getId()
-            + "')"
-            + " OR "
-            + "(bpl.businessPartner.id <> '"
-            + org.getObretcoCBpartner().getId()
-            + "' AND "
-            + "bpl.invoiceToAddress = true AND "
-            + "bpl.businessPartner.customer = true AND "
-            + "bpl.businessPartner.priceList IS NOT NULL AND "
-            + "bpl.$readableClientCriteria AND "
-            + "bpl.$naturalOrgCriteria "
-            + "))"
-            // This section is added to prevent more than one row for each business partner from
-            // being
-            // selected (check issues 22249 and 22256)
-            + " AND bpl.id in (SELECT max(bpl2.id)"
-            + "FROM BusinessPartnerLocation AS bpl2 "
-            + "WHERE (bpl2.$incrementalUpdateCriteria or bpl2.businessPartner.$incrementalUpdateCriteria or bpl2.locationAddress.$incrementalUpdateCriteria) AND ("
-            + "(bpl2.id = '"
-            + org.getObretcoCBpLocation().getId()
-            + "')"
-            + " OR "
-            + "(bpl2.businessPartner.id <> '"
-            + org.getObretcoCBpartner().getId()
-            + "' AND "
-            + "bpl2.invoiceToAddress = true AND "
-            + "bpl2.businessPartner.customer = true AND "
-            + "bpl2.$readableClientCriteria AND "
-            + "bpl2.$naturalOrgCriteria "
-            + ")) GROUP BY bpl2.businessPartner.id)"
-            + " AND (ulist is null or ulist.id in (select max(ulist2.id) from ADUser as ulist2 where ulist2.businessPartner is not null group by ulist2.businessPartner))"
-            // Here the section to prevent the same business partner from being selected more than
-            // once
-            // ends
-            + "GROUP BY bpl.businessPartner.id, bpl.businessPartner.organization.id, bpl.businessPartner.name, bpl.businessPartner.name, bpl.businessPartner.searchKey, bpl.businessPartner.description, bpl.businessPartner.taxID, bpl.businessPartner.sOBPTaxCategory.id, bpl.businessPartner.priceList.id, bpl.businessPartner.paymentMethod.id, bpl.businessPartner.paymentTerms.id, bpl.businessPartner.invoiceTerms, bpl.id, ulist.email, ulist.id, ulist.phone,bpl.locationAddress.cityName, bpl.locationAddress.postalCode, bpl.businessPartner.businessPartnerCategory.id, bpl.businessPartner.businessPartnerCategory.name, bpl.businessPartner.creditLimit, bpl.businessPartner.creditUsed "
-            + "ORDER BY bpl.businessPartner.name" });
-    // probar los casos con varias loc para un mismo BP
-    // return "select bp as BusinessPartner, loc as BusinessPartnerLocation "
-    // + "from BusinessPartner bp, BusinessPartnerLocation loc "
-    // +
-    // "where bp.id = loc.businessPartner.id and bp.customer = true and bp.$readableClientCriteria and bp.$naturalOrgCriteria";
+        .asList(new String[] {
+            "SELECT bpl.businessPartner.id as id, bpl.businessPartner.organization.id as organization, bpl.businessPartner.name as name, bpl.businessPartner.name as _identifier, "
+                + "bpl.businessPartner.searchKey as searchKey, bpl.businessPartner.description as description, bpl.businessPartner.taxID as taxID, "
+                + "bpl.businessPartner.sOBPTaxCategory.id as taxCategory, bpl.businessPartner.priceList.id as priceList, "
+                + "bpl.businessPartner.paymentMethod.id as paymentMethod, bpl.businessPartner.paymentTerms.id as paymentTerms, "
+                + "bpl.businessPartner.invoiceTerms as invoiceTerms, bpl.id as locId, max(bpl.locationAddress.addressLine1) as locName, ulist.email as email, "
+                + "ulist.id as contactId, "
+                + "ulist.phone as phone, bpl.locationAddress.cityName as cityName, bpl.locationAddress.postalCode as postalCode, "
+                + "bpl.businessPartner.businessPartnerCategory.id as businessPartnerCategory, "
+                + "bpl.businessPartner.businessPartnerCategory.name as businessPartnerCategory_name, "
+                + "bpl.businessPartner.creditLimit as creditLimit, "
+                + "bpl.businessPartner.creditUsed as creditUsed "
+                + "FROM BusinessPartnerLocation AS bpl left outer join bpl.businessPartner.aDUserList AS ulist "
+                + "WHERE "
+                + "bpl.invoiceToAddress = true AND "
+                + "bpl.businessPartner.customer = true AND "
+                + "bpl.businessPartner.priceList IS NOT NULL AND "
+                + "bpl.$readableClientCriteria AND "
+                + "bpl.$naturalOrgCriteria AND"
+                + "(bpl.$incrementalUpdateCriteria or bpl.businessPartner.$incrementalUpdateCriteria or bpl.locationAddress.$incrementalUpdateCriteria or ulist.$incrementalUpdateCriteria) AND bpl.businessPartner.active=true"
+                + " and bpl.id in (select max(bpls.id) as bpLocId from BusinessPartnerLocation AS bpls where bpls.$readableClientCriteria AND "
+                + " bpls.$naturalOrgCriteria group by bpls.businessPartner.id)"
+                + " and ulist.id is null "
+                + " GROUP BY bpl.businessPartner.id, bpl.businessPartner.organization.id, bpl.businessPartner.name, bpl.businessPartner.name, bpl.businessPartner.searchKey, bpl.businessPartner.description, bpl.businessPartner.taxID, bpl.businessPartner.sOBPTaxCategory.id, bpl.businessPartner.priceList.id, bpl.businessPartner.paymentMethod.id, bpl.businessPartner.paymentTerms.id, bpl.businessPartner.invoiceTerms, ulist.email, ulist.phone,bpl.locationAddress.cityName, bpl.locationAddress.postalCode, bpl.businessPartner.businessPartnerCategory.id, bpl.businessPartner.businessPartnerCategory.name, bpl.businessPartner.creditLimit, bpl.businessPartner.creditUsed, bpl.id , ulist.id  "
+                + " ORDER BY bpl.businessPartner.name",
+            "SELECT bpl.businessPartner.id as id, bpl.businessPartner.organization.id as organization, bpl.businessPartner.name as name, bpl.businessPartner.name as _identifier, "
+                + "bpl.businessPartner.searchKey as searchKey, bpl.businessPartner.description as description, bpl.businessPartner.taxID as taxID, "
+                + "bpl.businessPartner.sOBPTaxCategory.id as taxCategory, bpl.businessPartner.priceList.id as priceList, "
+                + "bpl.businessPartner.paymentMethod.id as paymentMethod, bpl.businessPartner.paymentTerms.id as paymentTerms, "
+                + "bpl.businessPartner.invoiceTerms as invoiceTerms, bpl.id as locId, max(bpl.locationAddress.addressLine1) as locName, ulist.email as email, "
+                + "ulist.id as contactId, "
+                + "ulist.phone as phone, bpl.locationAddress.cityName as cityName, bpl.locationAddress.postalCode as postalCode, "
+                + "bpl.businessPartner.businessPartnerCategory.id as businessPartnerCategory, "
+                + "bpl.businessPartner.businessPartnerCategory.name as businessPartnerCategory_name, "
+                + "bpl.businessPartner.creditLimit as creditLimit, "
+                + "bpl.businessPartner.creditUsed as creditUsed "
+                + "FROM BusinessPartnerLocation AS bpl left outer join bpl.businessPartner.aDUserList AS ulist "
+                + "WHERE "
+                + "bpl.invoiceToAddress = true AND "
+                + "bpl.businessPartner.customer = true AND "
+                + "bpl.businessPartner.priceList IS NOT NULL AND "
+                + "bpl.$readableClientCriteria AND "
+                + "bpl.$naturalOrgCriteria AND"
+                + " (bpl.$incrementalUpdateCriteria or bpl.businessPartner.$incrementalUpdateCriteria or bpl.locationAddress.$incrementalUpdateCriteria or ulist.$incrementalUpdateCriteria) AND bpl.businessPartner.active=true"
+                + " and bpl.id in (select max(bpls.id) as bpLocId from BusinessPartnerLocation AS bpls where bpls.$readableClientCriteria AND "
+                + " bpls.$naturalOrgCriteria group by bpls.businessPartner.id)"
+                + " and (ulist.id in (select max(ulist2.id) from ADUser as ulist2 where ulist2.businessPartner is not null group by ulist2.businessPartner))"
+                + " GROUP BY bpl.businessPartner.id, bpl.businessPartner.organization.id, bpl.businessPartner.name, bpl.businessPartner.name, bpl.businessPartner.searchKey, bpl.businessPartner.description, bpl.businessPartner.taxID, bpl.businessPartner.sOBPTaxCategory.id, bpl.businessPartner.priceList.id, bpl.businessPartner.paymentMethod.id, bpl.businessPartner.paymentTerms.id, bpl.businessPartner.invoiceTerms, ulist.email, ulist.phone,bpl.locationAddress.cityName, bpl.locationAddress.postalCode, bpl.businessPartner.businessPartnerCategory.id, bpl.businessPartner.businessPartnerCategory.name, bpl.businessPartner.creditLimit, bpl.businessPartner.creditUsed, bpl.id , ulist.id  "
+                + " ORDER BY bpl.businessPartner.name" });
   }
 
   @Override
