diff --git a/src/pages/Ecomerce/CheckoutView.vue b/src/pages/Ecomerce/CheckoutView.vue index 2ffb86cd..a8471b35 100644 --- a/src/pages/Ecomerce/CheckoutView.vue +++ b/src/pages/Ecomerce/CheckoutView.vue @@ -7,6 +7,7 @@ import VnSelect from 'src/components/common/VnSelect.vue'; import { formatDateTitle, formatDate } from 'src/lib/filters.js'; import useNotify from 'src/composables/useNotify.js'; +import { onUserId } from 'src/utils/onUserId'; import { useAppStore } from 'stores/app'; import { storeToRefs } from 'pinia'; @@ -149,15 +150,47 @@ const validateStep = (formField, errorMessage) => { return validation; }; -const getAddresses = async () => { +const getAddresses = async (clientFk) => { try { - addresses.value = await jApi.query( - `SELECT a.id, a.nickname, p.name province, a.city, a.street, a.isActive, c.name - FROM myAddress a - LEFT JOIN vn.province p ON p.id = a.provinceFk - JOIN vn.country c ON c.id = p.countryFk - WHERE a.isActive` - ); + const filter = { + where: { + clientFk, + isActive: true, + }, + include: [ + { + relation: 'province', + scope: { + fields: ['name', 'countryFk'], + include: [ + 'country', + { + relation: 'country', + scope: { + fields: ['name'], + }, + }, + ], + }, + }, + ], + fields: [ + 'id', + 'nickname', + 'city', + 'street', + 'isActive', + 'provinceFk', + ] + }; + + const { data: myAddresses } = await api.get('Addresses', { + params: { + filter: JSON.stringify(filter) + } + }); + + addresses.value = myAddresses; } catch (error) { console.error('Error getting addresses:', error); } @@ -325,10 +358,10 @@ onMounted(async () => { const [_defaultValues] = await getDefaultValues(); if (_defaultValues) defaultValues.value = _defaultValues; } - - getAddresses(); }); +onUserId(getAddresses); + watch( () => orderForm.value.method, () => {