From 20835471a3a1c392b080f51295e0bf49c92a71cf Mon Sep 17 00:00:00 2001
From: Javier Segarra <jsegarra@verdnatura.es>
Date: Mon, 15 Jan 2024 09:14:42 +0100
Subject: [PATCH] refs #6280 feat: handle option selected from  VnLocation

---
 src/components/common/VnLocation.vue  |  4 ++--
 src/pages/Customer/CustomerCreate.vue | 18 +++++++++++++-----
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/components/common/VnLocation.vue b/src/components/common/VnLocation.vue
index 5c41144ac..e91c78430 100644
--- a/src/components/common/VnLocation.vue
+++ b/src/components/common/VnLocation.vue
@@ -98,9 +98,8 @@ function showLabel(data){
         v-model="value"
         :options="postcodesOptions"
         :label="t('Location')"
-        option-value="geoFk"
         :option-label="showLabel"
-        :placeholder="t('Min. 3 char')"
+        :placeholder="t('Search by postalCode or town (at least 3 characters')"
         v-bind="$attrs"
         emit-value
         map-options
@@ -138,4 +137,5 @@ function showLabel(data){
 <i18n>
 es:
     Location: Ubicación
+    Search by postalCode or town (at least 3 characters): Buscar por código postal o nombre ( al menos 3 letras)
 </i18n>
diff --git a/src/pages/Customer/CustomerCreate.vue b/src/pages/Customer/CustomerCreate.vue
index f6ac6a165..3afda7fac 100644
--- a/src/pages/Customer/CustomerCreate.vue
+++ b/src/pages/Customer/CustomerCreate.vue
@@ -36,9 +36,13 @@ const provincesLocationOptions = ref([]);
 const countriesOptions = ref([]);
 const postcodesOptions = ref([]);
 
-const onPostcodeCreated = async () => {
-    postcodeFetchDataRef.value.fetch();
-};
+
+function handleLocation(data, { city, postcode, provinceFk, countryFk }) {
+    data.postcode = postcode;
+    data.city = city;
+    data.provinceFk = provinceFk;
+    data.countryFk = countryFk;
+}
 </script>
 
 <template>
@@ -133,10 +137,14 @@ const onPostcodeCreated = async () => {
                 <VnRow class="row q-gutter-md q-mb-md">
                     <div class="col">
                         <VnLocation
+                            :rules="validate('Worker.postcode')"
+                            :roles-allowed-to-create="['deliveryAssistant']"
                             :options="postcodesOptions"
                             v-model="data.location"
-                        @update:model-value="(data)=> console.log(data)"
-                            >
+                            @update:model-value="
+                                (location) => handleLocation(data, location)
+                            "
+                        >
                         </VnLocation>
                     </div>
                 </VnRow>