PR-CUSTOMER #186

Merged
jsegarra merged 105 commits from :PR-CUSTOMER into dev 2024-04-19 15:55:53 +00:00
1 changed files with 56 additions and 17 deletions
Showing only changes of commit 980904a382 - Show all commits

View File

@ -3,6 +3,8 @@ import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute, useRouter } from 'vue-router';
import axios from 'axios';
import FetchData from 'components/FetchData.vue';
import VnPaginate from 'src/components/ui/VnPaginate.vue';
@ -10,6 +12,7 @@ const { t } = useI18n();
const route = useRoute();
const router = useRouter();
const addresses = ref([]);
const client = ref(null);
const provincesLocation = ref([]);
@ -45,6 +48,11 @@ const addressFilter = {
],
};
const setRows = (data) => {
addresses.value = data;
sortAddresses();
};
const setProvince = (provinceFk) => {
const result = provincesLocation.value.filter(
(province) => province.id === provinceFk
@ -56,6 +64,24 @@ const isDefaultAddress = (address) => {
return client?.value?.defaultAddressFk === address.id ? 1 : 0;
};
const setDefault = (address) => {
const url = `Clients/${route.params.id}`;
const payload = { defaultAddressFk: address.id };
axios.patch(url, payload).then((res) => {
if (res.data) {
client.value.defaultAddressFk = res.data.defaultAddressFk;
sortAddresses();
}
});
};
const sortAddresses = () => {
if (!client.value || !addresses.value) return;
addresses.value = addresses.value.sort((a, b) => {
return isDefaultAddress(b) - isDefaultAddress(a);
});
};
const toCustomerAddressCreate = () => {
router.push({ name: 'CustomerAddressCreate' });
};
@ -72,6 +98,12 @@ const toCustomerAddressEdit = (addressId) => {
</script>
<template>
<FetchData
@on-fetch="setRows"
auto-load
:filter="addressFilter"
:url="`Clients/${route.params.id}/addresses`"
/>

Los consignatarios se ordenan poniendo el predeterminado (star filled) el primero y el resto despues, mirar orden en salix.
La estrella tiene un evento click que sirve para marcar como predeterminado otro de los consignatarios, mirar funcionamiento en salix.

Los consignatarios se ordenan poniendo el predeterminado (star filled) el primero y el resto despues, mirar orden en salix. La estrella tiene un evento click que sirve para marcar como predeterminado otro de los consignatarios, mirar funcionamiento en salix.

Corregido: 980904a382

Corregido: 980904a382

@cfonseca El funcionamiento que reportaba Javi, está OK.

Sin embargo, falta revisar el layout de address/:id/edit:

  1. Hay una label que no coincide
  2. El grid no está igual,

Ver imagen de chat

@cfonseca El funcionamiento que reportaba Javi, está OK. Sin embargo, falta revisar el layout de address/:id/edit: 1. Hay una label que no coincide 2. El grid no está igual, Ver imagen de chat

Corregido: 7eca27b8af

Corregido: 7eca27b8af

Mmm...falta revisar VnLocation porque no está cargando el valor.

Si quieres nos juntamos en post-daily y lo vemos.

Mmm...falta revisar VnLocation porque no está cargando el valor. Si quieres nos juntamos en post-daily y lo vemos.

He hecho la prueba y se actualiza el campo correctamente. También carga el valor correctamente

He hecho la prueba y se actualiza el campo correctamente. También carga el valor correctamente
<FetchData
@on-fetch="(data) => (client = data)"
auto-load
@ -83,21 +115,15 @@ const toCustomerAddressEdit = (addressId) => {
url="Provinces/location"
/>
<QCard class="q-pa-lg">
<VnPaginate
data-key="CustomerAddress"
:url="`Clients/${route.params.id}/addresses`"
order="id"
auto-load
:filter="addressFilter"
>
<template #body="{ rows }">
<QCard
v-for="(item, index) in rows"
<div class="full-width flex justify-center">
<QCard class="card-width q-pa-lg" v-if="addresses.length">
<QCardSection>
<div
v-for="(item, index) in addresses"
:key="index"
:class="{
'address-card': true,
'q-mb-md': index < rows.length - 1,
'q-mb-md': index < addresses.length - 1,
'item-disabled': !item.isActive,
}"
@click="toCustomerAddressEdit(item.id)"
@ -112,7 +138,18 @@ const toCustomerAddressEdit = (addressId) => {
color="primary"
name="star"
size="md"
/>
@click.stop="!isDefaultAddress(item) && setDefault(item)"
>
<QTooltip>
{{
t(
isDefaultAddress(item)
? 'Default address'
: 'Set as default'
)
}}
</QTooltip>
</QIcon>
</div>
<div>
<div class="text-weight-bold q-mb-sm">
@ -156,10 +193,10 @@ const toCustomerAddressEdit = (addressId) => {
<div>{{ observation.description }}</div>
</div>
</div>
</QCard>
</template>
</VnPaginate>
</QCard>
</div>
</QCardSection>
</QCard>
</div>
<QPageSticky :offset="[18, 18]">
<QBtn @click.stop="toCustomerAddressCreate()" color="primary" fab icon="add" />
@ -192,4 +229,6 @@ es:
Is equalizated: Recargo de equivalencia
Is logiflora allowed: Compra directa en Holanda
New consignee: Nuevo consignatario
Default address: Consignatario predeterminado
Set as default: Establecer como predeterminado
</i18n>