From 97a0f242e5783ed77a845744ddf1fee87e500de2 Mon Sep 17 00:00:00 2001 From: TheBestPessimist Date: Tue, 7 May 2019 11:45:20 +0300 Subject: [PATCH 1/3] Pass city as well for the location search https://github.com/metasfresh/metasfresh/issues/5101 --- .../LocationAreaSearchDocumentFilterConverter.java | 1 + 1 file changed, 1 insertion(+) 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..67f24e926 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 @@ -166,6 +166,7 @@ private static Optional createGeoCoordinatesRequest(final .countryCode2(countryCode2) .postal(filter.getParameterValueAsString(PARAM_Postal, null)) .address(filter.getParameterValueAsString(PARAM_Address1, null)) +// .city(filter.getParameterValueAsString()) // TODO @teo: can we add the city here? .build(); return Optional.of(request); From 3ea6395d5920c9a29eb2f6e1ad1f53e2498ad720 Mon Sep 17 00:00:00 2001 From: TheBestPessimist Date: Thu, 9 May 2019 14:06:27 +0300 Subject: [PATCH 2/3] Pass city as well for the location search https://github.com/metasfresh/metasfresh/issues/5101 --- .../LocationAreaSearchDocumentFilterConverter.java | 7 ++++--- ...ocationAreaSearchDocumentFilterDescriptorsProvider.java | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) 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 67f24e926..10d12e5f9 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"; @@ -164,9 +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)) -// .city(filter.getParameterValueAsString()) // TODO @teo: can we add the city here? + .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)) From a7589888ea94de38121af9bc72df6c21fc25977f Mon Sep 17 00:00:00 2001 From: TheBestPessimist Date: Mon, 13 May 2019 15:24:04 +0300 Subject: [PATCH 3/3] Fix query with hardcoded columns. https://github.com/metasfresh/me03/issues/1235 --- .../LocationAreaSearchDocumentFilterConverter.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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 10d12e5f9..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 @@ -89,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) + ")"; } @@ -98,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) + ")"; } @@ -109,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) + ")"; }