diff --git a/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterConverter.java b/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterConverter.java index 13d725b10..10cfa8a95 100644 --- a/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterConverter.java +++ b/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterConverter.java @@ -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"; @@ -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) + ")"; } @@ -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) + ")"; } @@ -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) + ")"; } @@ -164,8 +165,9 @@ private static Optional 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); diff --git a/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterDescriptorsProvider.java b/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterDescriptorsProvider.java index 75daf463d..127dc91f3 100644 --- a/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterDescriptorsProvider.java +++ b/src/main/java/de/metas/ui/web/document/filter/provider/locationAreaSearch/LocationAreaSearchDocumentFilterDescriptorsProvider.java @@ -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))