Skip to content

Commit

Permalink
Improve location search (maybe) (#1193)
Browse files Browse the repository at this point in the history
Improve location search (maybe)
  • Loading branch information
metas-ts committed May 14, 2019
2 parents 53d36d8 + a758988 commit e2bc37c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
Expand Up @@ -52,6 +52,7 @@ public class LocationAreaSearchDocumentFilterConverter implements SqlDocumentFil

public static final String PARAM_LocationAreaSearchDescriptor = "LocationAreaSearchDescriptor";
public static final String PARAM_Address1 = "Address1";
public static final String PARAM_City = "City";
public static final String PARAM_Postal = "Postal";
public static final String PARAM_CountryId = "C_Country_ID";
public static final String PARAM_Distance = "Distance";
Expand Down Expand Up @@ -88,7 +89,7 @@ public String getSql(
+ " SELECT 1"
+ " FROM " + I_C_Location.Table_Name + " l"
+ " WHERE "
+ " l.C_Location_ID=" + sqlOpts.getTableNameOrAlias() + "." + descriptor.getLocationColumnName()
+ " l." + I_C_Location.COLUMNNAME_C_Location_ID + "=" + sqlOpts.getTableNameOrAlias() + "." + descriptor.getLocationColumnName()
+ " AND " + sqlGeographicalDistance(sqlParamsOut, "l", addressCoordinates, distanceInKm)
+ ")";
}
Expand All @@ -97,9 +98,9 @@ else if (LocationColumnNameType.BPartnerLocationId.equals(descriptor.getType()))
return "EXISTS ("
+ " SELECT 1"
+ " FROM " + I_C_BPartner_Location.Table_Name + " bpl"
+ " INNER JOIN " + I_C_Location.Table_Name + " l ON l.C_Location_ID=bpl.C_Location_ID"
+ " INNER JOIN " + I_C_Location.Table_Name + " l ON l." + I_C_Location.COLUMNNAME_C_Location_ID + "=bpl." + I_C_BPartner_Location.COLUMNNAME_C_Location_ID
+ " WHERE "
+ " bpl.C_BPartner_Location_ID=" + sqlOpts.getTableNameOrAlias() + "." + descriptor.getLocationColumnName()
+ " bpl." + I_C_BPartner_Location.COLUMNNAME_C_BPartner_Location_ID + "=" + sqlOpts.getTableNameOrAlias() + "." + descriptor.getLocationColumnName()
+ " AND " + sqlGeographicalDistance(sqlParamsOut, "l", addressCoordinates, distanceInKm)
+ ")";
}
Expand All @@ -108,11 +109,11 @@ else if (LocationColumnNameType.BPartnerId.equals(descriptor.getType()))
return "EXISTS ("
+ " SELECT 1"
+ " FROM " + I_C_BPartner.Table_Name + " bp"
+ " INNER JOIN " + I_C_BPartner_Location.Table_Name + " bpl ON bpl.C_BPartner_Location_ID=bp.C_BPartner_Location_ID"
+ " INNER JOIN " + I_C_Location.Table_Name + " l ON l.C_Location_ID=bpl.C_Location_ID"
+ " INNER JOIN " + I_C_BPartner_Location.Table_Name + " bpl ON bpl." + I_C_BPartner_Location.COLUMNNAME_C_BPartner_ID + "=bp." + I_C_BPartner.COLUMNNAME_C_BPartner_ID
+ " INNER JOIN " + I_C_Location.Table_Name + " l ON l." + I_C_Location.COLUMNNAME_C_Location_ID + "=bpl." + I_C_BPartner_Location.COLUMNNAME_C_Location_ID
+ " WHERE "
+ " bp.C_BPartner_ID=" + sqlOpts.getTableNameOrAlias() + "." + descriptor.getLocationColumnName()
+ " AND bpl.IsActive='Y'"
+ " bp." + I_C_BPartner.COLUMNNAME_C_BPartner_ID + "=" + sqlOpts.getTableNameOrAlias() + "." + descriptor.getLocationColumnName()
+ " AND bpl." + I_C_BPartner_Location.COLUMNNAME_IsActive + "='Y'"
+ " AND " + sqlGeographicalDistance(sqlParamsOut, "l", addressCoordinates, distanceInKm)
+ ")";
}
Expand Down Expand Up @@ -164,8 +165,9 @@ private static Optional<GeoCoordinatesRequest> createGeoCoordinatesRequest(final

final GeoCoordinatesRequest request = GeoCoordinatesRequest.builder()
.countryCode2(countryCode2)
.postal(filter.getParameterValueAsString(PARAM_Postal, null))
.address(filter.getParameterValueAsString(PARAM_Address1, null))
.postal(filter.getParameterValueAsString(PARAM_Postal, ""))
.address(filter.getParameterValueAsString(PARAM_Address1, ""))
.city(filter.getParameterValueAsString(PARAM_City, ""))
.build();

return Optional.of(request);
Expand Down
Expand Up @@ -86,6 +86,10 @@ private DocumentFilterDescriptor createDocumentFilterDescriptor()
.setFieldName(LocationAreaSearchDocumentFilterConverter.PARAM_Postal)
.setDisplayName(msgBL.translatable(LocationAreaSearchDocumentFilterConverter.PARAM_Postal))
.setWidgetType(DocumentFieldWidgetType.Text))
.addParameter(DocumentFilterParamDescriptor.builder()
.setFieldName(LocationAreaSearchDocumentFilterConverter.PARAM_City)
.setDisplayName(msgBL.translatable(LocationAreaSearchDocumentFilterConverter.PARAM_City))
.setWidgetType(DocumentFieldWidgetType.Text))
.addParameter(DocumentFilterParamDescriptor.builder()
.setFieldName(LocationAreaSearchDocumentFilterConverter.PARAM_CountryId)
.setDisplayName(msgBL.translatable(LocationAreaSearchDocumentFilterConverter.PARAM_CountryId))
Expand Down

0 comments on commit e2bc37c

Please sign in to comment.