From 5462d3ce9a823b28682863fca9afd64689242813 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Mon, 5 Feb 2024 09:57:09 +0100 Subject: [PATCH 01/22] refs #6787 isLoading --- src/pages/Customer/Card/CustomerDescriptor.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pages/Customer/Card/CustomerDescriptor.vue b/src/pages/Customer/Card/CustomerDescriptor.vue index 222406d8a..833a310ad 100644 --- a/src/pages/Customer/Card/CustomerDescriptor.vue +++ b/src/pages/Customer/Card/CustomerDescriptor.vue @@ -19,16 +19,17 @@ const $props = defineProps({ default: null, }, }); - +const isLoading = ref(false); const route = useRoute(); const { t } = useI18n(); - const entityId = computed(() => { return $props.id || route.params.id; }); +isLoading.value = true; const data = ref(useCardDescription()); const setData = (entity) => (data.value = useCardDescription(entity.name, entity.id)); +isLoading.value = false; </script> <template> @@ -121,6 +122,11 @@ const setData = (entity) => (data.value = useCardDescription(entity.name, entity </QCardActions> </template> </CardDescriptor> + <QInnerLoading + :label="t('globals.pleaseWait')" + :showing="isLoading" + color="primary" + /> </template> <i18n> { From 760b2d5574a621a44a2532cbe418c47738f63917 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Mon, 5 Feb 2024 10:30:23 +0100 Subject: [PATCH 02/22] refs #6787 isLoading CardDescriptor --- src/components/ui/CardDescriptor.vue | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index 8f6ffa35d..afedfe06f 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -1,5 +1,5 @@ <script setup> -import { onMounted, useSlots, watch, computed } from 'vue'; +import { onMounted, useSlots, watch, computed, ref } from 'vue'; import { useI18n } from 'vue-i18n'; import { useQuasar } from 'quasar'; import SkeletonDescriptor from 'components/ui/SkeletonDescriptor.vue'; @@ -39,6 +39,7 @@ const quasar = useQuasar(); const slots = useSlots(); const { t } = useI18n(); const entity = computed(() => useArrayData($props.dataKey).store.data); +const isLoading = ref(false); defineExpose({ getData, @@ -60,8 +61,13 @@ async function getData() { filter: $props.filter, skip: 0, }); - const { data } = await arrayData.fetch({ append: false, updateRouter: false }); - emit('onFetch', data); + isLoading.value = true; + try { + const { data } = await arrayData.fetch({ append: false, updateRouter: false }); + emit('onFetch', data); + } finally { + isLoading.value = false; + } } const emit = defineEmits(['onFetch']); From 346fed05785fa11272e300dd658db067dc47fad8 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Tue, 6 Feb 2024 15:03:56 +0100 Subject: [PATCH 03/22] refs #6795 summary, order --- src/pages/Claim/Card/ClaimSummary.vue | 35 ++++++++++++++------------- src/pages/Claim/ClaimList.vue | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index dcd236027..6f166f2b4 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -211,14 +211,14 @@ function openDialog(dmsId) { </template> </VnLv> </QCard> - <QCard class="vn-max claimVnNotes"> + <QCard class="vn-two claimVnNotes"> <a class="header" :href="`#/claim/${entityId}/notes`"> {{ t('claim.summary.notes') }} <QIcon name="open_in_new" color="primary" /> </a> <ClaimNotes :add-note="false" style="height: 350px" order="created ASC" /> </QCard> - <QCard class="vn-max" v-if="salesClaimed.length > 0"> + <QCard class="vn-two" v-if="salesClaimed.length > 0"> <a class="header" :href="`#/claim/${entityId}/lines`"> {{ t('claim.summary.details') }} <QIcon name="open_in_new" color="primary" /> @@ -233,6 +233,21 @@ function openDialog(dmsId) { </template> </QTable> </QCard> + <QCard class="vn-two" v-if="developments.length > 0"> + <a class="header" :href="claimUrl + 'development'"> + {{ t('claim.summary.development') }} + <QIcon name="open_in_new" color="primary" /> + </a> + <QTable :columns="developmentColumns" :rows="developments" flat> + <template #header="props"> + <QTr :props="props"> + <QTh v-for="col in props.cols" :key="col.name" :props="props"> + {{ t(col.label) }} + </QTh> + </QTr> + </template> + </QTable> + </QCard> <QCard class="vn-max" v-if="claimDms.length > 0"> <a class="header" :href="`#/claim/${entityId}/photos`"> {{ t('claim.summary.photos') }} @@ -275,21 +290,7 @@ function openDialog(dmsId) { </div> </div> </QCard> - <QCard class="vn-two" v-if="developments.length > 0"> - <a class="header" :href="claimUrl + 'development'"> - {{ t('claim.summary.development') }} - <QIcon name="open_in_new" color="primary" /> - </a> - <QTable :columns="developmentColumns" :rows="developments" flat> - <template #header="props"> - <QTr :props="props"> - <QTh v-for="col in props.cols" :key="col.name" :props="props"> - {{ t(col.label) }} - </QTh> - </QTr> - </template> - </QTable> - </QCard> + <QCard class="vn-max" v-if="developments.length > 0"> <a class="header" :href="claimUrl + 'action'"> {{ t('claim.summary.actions') }} diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index 1b5979f5a..8c28b7a6a 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -75,7 +75,7 @@ function viewSummary(id) { <VnPaginate data-key="ClaimList" url="Claims/filter" - order="claimStateFk" + :order="['priority ASC', 'created DESC']" auto-load > <template #body="{ rows }"> From 5312a4e43a480dd23504ed2596c52a682a8be84c Mon Sep 17 00:00:00 2001 From: wbuezas <wbuezas@verdnatura.es> Date: Thu, 8 Feb 2024 07:24:24 -0300 Subject: [PATCH 04/22] WIP --- src/css/app.scss | 8 +++ src/pages/Travel/ExtraCommunity.vue | 78 +++++++++++------------------ 2 files changed, 38 insertions(+), 48 deletions(-) diff --git a/src/css/app.scss b/src/css/app.scss index 57031b21d..4fec9db08 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -67,6 +67,14 @@ body.body--dark { max-width: 60em; } +.bg-vn-primary-row { + background-color: var(--vn-dark); +} + +.bg-vn-secondary-row { + background-color: var(--vn-light-gray); +} + /* Estilo para el asterisco en campos requeridos */ .q-field.required .q-field__label:after { content: ' *'; diff --git a/src/pages/Travel/ExtraCommunity.vue b/src/pages/Travel/ExtraCommunity.vue index f08cc64cb..5a72dcf27 100644 --- a/src/pages/Travel/ExtraCommunity.vue +++ b/src/pages/Travel/ExtraCommunity.vue @@ -51,57 +51,55 @@ const rows = computed(() => arrayData.store.data || []); const tableColumnComponents = { id: { component: QBtn, - attrs: () => ({ flat: true, color: 'blue', class: 'col-content' }), + attrs: { flat: true, color: 'primary' }, }, cargoSupplierNickname: { component: QBtn, - attrs: () => ({ flat: true, color: 'blue', class: 'col-content' }), + attrs: { flat: true, color: 'primary', dense: true }, }, agencyModeName: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, invoiceAmount: { component: 'span', - attrs: () => ({ - class: 'col-content', - }), + attrs: {}, }, ref: { component: QField, - attrs: () => ({ readonly: true, dense: true }), + attrs: { readonly: true, dense: true, class: 'cursor-pointer' }, }, stickers: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, kg: { - component: 'span', - attrs: () => ({ class: 'col-content' }), + component: QField, + attrs: { readonly: true, dense: true, class: 'cursor-pointer' }, }, loadedKg: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, volumeKg: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, warehouseOutName: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, shipped: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, warehouseInName: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, landed: { component: 'span', - attrs: () => ({ class: 'col-content' }), + attrs: {}, }, }; @@ -110,7 +108,7 @@ const columns = computed(() => [ label: 'id', field: 'id', name: 'id', - align: 'left', + align: 'center', showValue: true, }, { @@ -161,7 +159,7 @@ const columns = computed(() => [ field: 'kg', name: 'kg', align: 'left', - showValue: true, + showValue: false, }, { label: t('physicKg'), @@ -237,7 +235,7 @@ const navigateToTravelId = (id) => { }; const stopEventPropagation = (event, col) => { - if (!['ref', 'id', 'cargoSupplierNickname'].includes(col.name)) return; + if (!['ref', 'id', 'cargoSupplierNickname', 'kg'].includes(col.name)) return; event.preventDefault(); event.stopPropagation(); }; @@ -290,13 +288,13 @@ onMounted(async () => { hide-bottom row-key="clientId" :pagination="{ rowsPerPage: 0 }" - class="full-width q-mt-md" + class="full-width" > <template #body="props"> <QTr :props="props" @click="navigateToTravelId(props.row.id)" - class="cursor-pointer" + class="cursor-pointer bg-vn-primary-row" > <QTd v-for="col in props.cols" @@ -306,8 +304,7 @@ onMounted(async () => { > <component :is="tableColumnComponents[col.name].component" - class="col-content" - v-bind="tableColumnComponents[col.name].attrs(props)" + v-bind="tableColumnComponents[col.name].attrs" > <!-- Editable 'ref' and 'kg' QField slot --> <template @@ -361,36 +358,32 @@ onMounted(async () => { v-for="entry in props.row.entries" :key="entry.id" :props="props" - class="secondary-row" + class="bg-vn-secondary-row" > - <QTd> - <QBtn flat color="blue" class="col-content">{{ entry.id }} </QBtn> + <QTd class="row justify-center"> + <QBtn flat color="primary">{{ entry.id }} </QBtn> <EntryDescriptorProxy :id="entry.id" /> </QTd> - <QTd - ><QBtn flat color="blue" class="col-content">{{ - entry.supplierName - }}</QBtn> + <QTd> + <QBtn flat color="primary" dense>{{ entry.supplierName }}</QBtn> <SupplierDescriptorProxy :id="entry.supplierFk" /> </QTd> <QTd></QTd> <QTd - ><span class="col-content">{{ - toCurrency(entry.invoiceAmount) - }}</span></QTd + ><span>{{ toCurrency(entry.invoiceAmount) }}</span></QTd > <QTd - ><span class="col-content">{{ entry.reference }}</span></QTd + ><span>{{ entry.reference }}</span></QTd > <QTd - ><span class="col-content">{{ entry.stickers }}</span></QTd + ><span>{{ entry.stickers }}</span></QTd > <QTd></QTd> <QTd - ><span class="col-content">{{ entry.loadedkg }}</span></QTd + ><span>{{ entry.loadedkg }}</span></QTd > <QTd - ><span class="col-content">{{ entry.volumeKg }}</span></QTd + ><span>{{ entry.volumeKg }}</span></QTd > <QTd></QTd> <QTd></QTd> @@ -402,17 +395,6 @@ onMounted(async () => { </QPage> </template> -<style lang="scss" scoped> -.col-content { - border-radius: 4px; - padding: 6px; -} - -.secondary-row { - background-color: var(--vn-gray); -} -</style> - <i18n> en: searchExtraCommunity: Search for extra community shipping From 2f081841f922b0fd77676a40981b6497cd2d7d60 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Thu, 8 Feb 2024 13:59:37 +0100 Subject: [PATCH 05/22] refs #6795 fix claims --- src/components/common/VnSelectFilter.vue | 4 ++-- src/components/ui/CardSummary.vue | 7 +++---- src/components/ui/VnNotes.vue | 13 +++--------- src/composables/useArrayData.js | 3 ++- src/i18n/en/index.js | 1 + src/i18n/es/index.js | 1 + src/pages/Claim/Card/ClaimDescriptor.vue | 22 ++++++++++++++++++-- src/pages/Claim/Card/ClaimNotes.vue | 9 +++++++- src/pages/Claim/Card/ClaimSummary.vue | 26 ++++++++++++++++++------ src/pages/Claim/ClaimList.vue | 6 ------ 10 files changed, 60 insertions(+), 32 deletions(-) diff --git a/src/components/common/VnSelectFilter.vue b/src/components/common/VnSelectFilter.vue index accf92fc6..794d86e6b 100644 --- a/src/components/common/VnSelectFilter.vue +++ b/src/components/common/VnSelectFilter.vue @@ -79,7 +79,7 @@ onMounted(() => { if ($props.url && $props.modelValue) fetchFilter($props.modelValue); }); -async function filter(val, options) { +function filter(val, options) { const search = val.toString().toLowerCase(); if (!search) return options; @@ -119,7 +119,7 @@ async function filterHandler(val, update) { myOptions.value = await fetchFilter(val); return; } - myOptions.value = await filter(val, myOptionsOriginal.value); + myOptions.value = filter(val, myOptionsOriginal.value); }, (ref) => { if (val !== '' && ref.options.length > 0) { diff --git a/src/components/ui/CardSummary.vue b/src/components/ui/CardSummary.vue index 33a6980d5..cb2c97746 100644 --- a/src/components/ui/CardSummary.vue +++ b/src/components/ui/CardSummary.vue @@ -90,17 +90,16 @@ watch(props, async () => { background-color: var(--vn-gray); > .q-card.vn-one { - width: 350px; flex: 1; } > .q-card.vn-two { - flex: 2; + flex: 40%; } > .q-card.vn-three { - flex: 4; + flex: 75%; } > .q-card.vn-max { - width: 100%; + flex: 100%; } > .q-card { diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue index fac74837f..0514b52e0 100644 --- a/src/components/ui/VnNotes.vue +++ b/src/components/ui/VnNotes.vue @@ -46,7 +46,7 @@ async function insert() { </slot> <QItem class="full-width justify-between items-start"> <VnUserLink - :name="`${note.worker.firstName} ${note.worker.lastName}`" + :name="`${note.worker.user.nickname}`" :worker-id="note.worker.id" /> @@ -63,15 +63,8 @@ async function insert() { </QCard> </template> </VnPaginate> - <QPageSticky position="bottom-right" :offset="[25, 25]"> - <QBtn - v-if="addNote" - color="primary" - icon="add" - size="lg" - round - @click="noteModal = true" - /> + <QPageSticky position="bottom-right" :offset="[25, 25]" v-if="addNote"> + <QBtn color="primary" icon="add" size="lg" round @click="noteModal = true" /> </QPageSticky> <QDialog v-model="noteModal" @hide="newNote = ''"> <QCard> diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js index 3f031f1d1..b6b81f2d5 100644 --- a/src/composables/useArrayData.js +++ b/src/composables/useArrayData.js @@ -105,7 +105,8 @@ export function useArrayData(key, userOptions) { for (const row of response.data) store.data.push(row); } else { store.data = response.data; - updateRouter && updateStateParams(); + if (!document.querySelectorAll('[role="dialog"]')) + updateRouter && updateStateParams(); } store.isLoading = false; diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js index 3eb47d623..01f28e5f7 100644 --- a/src/i18n/en/index.js +++ b/src/i18n/en/index.js @@ -496,6 +496,7 @@ export default { responsible: 'Responsible', worker: 'Worker', redelivery: 'Redelivery', + returnOfMaterial: 'RMA', }, basicData: { customer: 'Customer', diff --git a/src/i18n/es/index.js b/src/i18n/es/index.js index c4082cd71..793982b30 100644 --- a/src/i18n/es/index.js +++ b/src/i18n/es/index.js @@ -495,6 +495,7 @@ export default { responsible: 'Responsable', worker: 'Trabajador', redelivery: 'DevoluciĆ³n', + returnOfMaterial: 'RMA', }, basicData: { customer: 'Cliente', diff --git a/src/pages/Claim/Card/ClaimDescriptor.vue b/src/pages/Claim/Card/ClaimDescriptor.vue index deaed94f8..2fa1ae528 100644 --- a/src/pages/Claim/Card/ClaimDescriptor.vue +++ b/src/pages/Claim/Card/ClaimDescriptor.vue @@ -1,5 +1,5 @@ <script setup> -import { ref, computed } from 'vue'; +import { ref, computed, onMounted } from 'vue'; import { useRoute } from 'vue-router'; import { useI18n } from 'vue-i18n'; import { toDate, toPercentage } from 'src/filters'; @@ -10,6 +10,7 @@ import CardDescriptor from 'components/ui/CardDescriptor.vue'; import VnLv from 'src/components/ui/VnLv.vue'; import useCardDescription from 'src/composables/useCardDescription'; import VnUserLink from 'src/components/ui/VnUserLink.vue'; +import { getUrl } from 'src/composables/getUrl'; const $props = defineProps({ id: { @@ -22,7 +23,7 @@ const $props = defineProps({ const route = useRoute(); const state = useState(); const { t } = useI18n(); - +const salixUrl = ref(); const entityId = computed(() => { return $props.id || route.params.id; }); @@ -85,6 +86,9 @@ const setData = (entity) => { data.value = useCardDescription(entity.client.name, entity.id); state.set('ClaimDescriptor', entity); }; +onMounted(async () => { + salixUrl.value = await getUrl(''); +}); </script> <template> @@ -167,6 +171,20 @@ const setData = (entity) => { > <QTooltip>{{ t('claim.card.claimedTicket') }}</QTooltip> </QBtn> + <QBtn + size="md" + icon="assignment" + color="primary" + :href="salixUrl + 'ticket/' + entity.ticketFk + '/sale-tracking'" + > + </QBtn> + <QBtn + size="md" + icon="visibility" + color="primary" + :href="salixUrl + 'ticket/' + entity.ticketFk + '/tracking/index'" + > + </QBtn> </QCardActions> </template> </CardDescriptor> diff --git a/src/pages/Claim/Card/ClaimNotes.vue b/src/pages/Claim/Card/ClaimNotes.vue index eeaffc85a..ed4c2040d 100644 --- a/src/pages/Claim/Card/ClaimNotes.vue +++ b/src/pages/Claim/Card/ClaimNotes.vue @@ -19,6 +19,12 @@ const claimFilter = { relation: 'worker', scope: { fields: ['id', 'firstName', 'lastName'], + include: { + relation: 'user', + scope: { + fields: ['id', 'nickname'], + }, + }, }, }, }; @@ -30,7 +36,8 @@ const body = { </script> <template> <div class="column items-center"> - <VnNotes style="overflow-y: scroll;" + <VnNotes + style="overflow-y: scroll" :add-note="$props.addNote" :id="id" url="claimObservations" diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index 6f166f2b4..5e5105568 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -42,9 +42,9 @@ onMounted(async () => { claimUrl.value = salixUrl.value + `claim/${entityId.value}/`; }); -watch(entityId, async (id) => { - claimDmsFilter.value.where = { claimFk: id }; - await claimDmsRef.value.fetch(); +watch(entityId, async (id, old) => { + // claimDmsFilter.value.where = { claimFk: id }; + // await claimDmsRef.value.fetch(); }); const detailsColumns = ref([ @@ -170,7 +170,6 @@ function openDialog(dmsId) { :filter="claimDmsFilter" @on-fetch="(data) => setClaimDms(data)" limit="20" - auto-load ref="claimDmsRef" /> <CardSummary ref="summary" :url="`Claims/${entityId}/getSummary`"> @@ -210,8 +209,22 @@ function openDialog(dmsId) { /> </template> </VnLv> + <VnLv :label="t('claim.summary.customer')"> + <template #value> + <VnUserLink + :name="claim.client?.name" + :worker-id="claim.client?.id" + /> + </template> + </VnLv> + <VnLv :label="t('claim.summary.returnOfMaterial')" :value="claim.rma" /> + <QCheckbox + :align-items="right" + :label="t('claim.basicData.picked')" + v-model="claim.hasToPickUp" + /> </QCard> - <QCard class="vn-two claimVnNotes"> + <QCard class="vn-three claimVnNotes full-height"> <a class="header" :href="`#/claim/${entityId}/notes`"> {{ t('claim.summary.notes') }} <QIcon name="open_in_new" color="primary" /> @@ -248,6 +261,7 @@ function openDialog(dmsId) { </template> </QTable> </QCard> + <QCard class="vn-max" v-if="claimDms.length > 0"> <a class="header" :href="`#/claim/${entityId}/photos`"> {{ t('claim.summary.photos') }} @@ -291,7 +305,7 @@ function openDialog(dmsId) { </div> </QCard> - <QCard class="vn-max" v-if="developments.length > 0"> + <QCard class="vn-max"> <a class="header" :href="claimUrl + 'action'"> {{ t('claim.summary.actions') }} <QIcon name="open_in_new" color="primary" /> diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index 8c28b7a6a..945543822 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -118,12 +118,6 @@ function viewSummary(id) { </VnLv> </template> <template #actions> - <QBtn - :label="t('components.smartCard.openCard')" - @click.stop="navigate(row.id)" - class="bg-vn-dark" - outline - /> <QBtn :label="t('components.smartCard.viewDescription')" @click.stop From b3251967b803ed748c575e4c2fe00b5d1d384c92 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Fri, 9 Feb 2024 09:07:54 +0100 Subject: [PATCH 06/22] refs #6795 fix descriptor --- src/components/ui/CardDescriptor.vue | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index 8f6ffa35d..cc07b5702 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -219,11 +219,8 @@ function viewSummary(id) { margin-bottom: 15px; } .list-box { - width: 90%; background-color: var(--vn-gray); - margin: 10px auto; - padding: 10px 5px 10px 0px; - border-radius: 8px; + .q-item__label { color: var(--vn-label); } From b355d4aa0f36e0cd33968fe6f73e359805cffa1e Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Fri, 9 Feb 2024 10:15:36 +0100 Subject: [PATCH 07/22] refs #6795 remove watch --- src/pages/Claim/Card/ClaimSummary.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index 5e5105568..84ae117b7 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -42,11 +42,6 @@ onMounted(async () => { claimUrl.value = salixUrl.value + `claim/${entityId.value}/`; }); -watch(entityId, async (id, old) => { - // claimDmsFilter.value.where = { claimFk: id }; - // await claimDmsRef.value.fetch(); -}); - const detailsColumns = ref([ { name: 'item', From c87f49b86e431961c994b4e2f88b3c145a1f324b Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Fri, 9 Feb 2024 11:46:47 +0100 Subject: [PATCH 08/22] refs #6795 popup item --- src/pages/Claim/Card/ClaimLines.vue | 11 ++++++++++- src/pages/Claim/ClaimList.vue | 7 ++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/pages/Claim/Card/ClaimLines.vue b/src/pages/Claim/Card/ClaimLines.vue index 5190c9932..de0bd39ba 100644 --- a/src/pages/Claim/Card/ClaimLines.vue +++ b/src/pages/Claim/Card/ClaimLines.vue @@ -11,6 +11,8 @@ import CrudModel from 'components/CrudModel.vue'; import FetchData from 'components/FetchData.vue'; import VnDiscount from 'components/common/vnDiscount.vue'; import ClaimLinesImport from './ClaimLinesImport.vue'; +import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue'; +import item from 'src/router/modules/item'; const quasar = useQuasar(); const route = useRoute(); @@ -229,7 +231,14 @@ function showImportDialog() { </QPopupEdit> </QTd> </template> - + <template #body-cell-description="{ row, value }"> + <QTd auto-width align="right" class="text-primary"> + {{ value }} + <ItemDescriptorProxy + :id="row.sale.itemFk" + ></ItemDescriptorProxy> + </QTd> + </template> <template #body-cell-discount="{ row, value, rowIndex }"> <QTd auto-width align="right" class="text-primary"> {{ value }} diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index 91e8fdc15..c8d84b904 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -26,8 +26,9 @@ const STATE_COLOR = { function stateColor(code) { return STATE_COLOR[code]; } -function navigate(id) { - router.push({ path: `/claim/${id}` }); +function navigate(event, id) { + if (event.ctrlKey || event.metaKey) window.open(window.host); + else router.push({ path: `/claim/${id}` }); } </script> @@ -74,7 +75,7 @@ function navigate(id) { :id="row.id" :key="row.id" :title="row.clientName" - @click="navigate(row.id)" + @click="navigate($event, row.id)" v-for="row of rows" > <template #list-items> From 4810e02907b2b5b720cb146b2f60e4cefde5c3b6 Mon Sep 17 00:00:00 2001 From: wbuezas <wbuezas@verdnatura.es> Date: Fri, 9 Feb 2024 20:50:33 -0300 Subject: [PATCH 09/22] add basic order to table --- src/pages/Travel/ExtraCommunity.vue | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/pages/Travel/ExtraCommunity.vue b/src/pages/Travel/ExtraCommunity.vue index 5a72dcf27..4cbb850e1 100644 --- a/src/pages/Travel/ExtraCommunity.vue +++ b/src/pages/Travel/ExtraCommunity.vue @@ -110,6 +110,7 @@ const columns = computed(() => [ name: 'id', align: 'center', showValue: true, + sortable: true, }, { label: t('supplier.pageTitles.supplier'), @@ -117,6 +118,7 @@ const columns = computed(() => [ name: 'cargoSupplierNickname', align: 'left', showValue: true, + sortable: true, }, { label: t('globals.agency'), @@ -124,6 +126,7 @@ const columns = computed(() => [ name: 'agencyModeName', align: 'left', showValue: true, + sortable: true, }, { label: t('globals.amount'), @@ -131,6 +134,7 @@ const columns = computed(() => [ field: 'entries', align: 'left', showValue: true, + sortable: true, format: (value) => toCurrency( value @@ -146,6 +150,7 @@ const columns = computed(() => [ name: 'ref', align: 'left', showValue: false, + sortable: true, }, { label: t('globals.packages'), @@ -153,6 +158,7 @@ const columns = computed(() => [ name: 'stickers', align: 'left', showValue: true, + sortable: true, }, { label: t('kg'), @@ -160,6 +166,7 @@ const columns = computed(() => [ name: 'kg', align: 'left', showValue: false, + sortable: true, }, { label: t('physicKg'), @@ -167,6 +174,7 @@ const columns = computed(() => [ name: 'loadedKg', align: 'left', showValue: true, + sortable: true, }, { label: 'KG Vol.', @@ -174,6 +182,7 @@ const columns = computed(() => [ name: 'volumeKg', align: 'left', showValue: true, + sortable: true, }, { label: t('globals.wareHouseOut'), @@ -181,14 +190,16 @@ const columns = computed(() => [ name: 'warehouseOutName', align: 'left', showValue: true, + sortable: true, }, { label: t('shipped'), field: 'shipped', name: 'shipped', align: 'left', - format: (value) => toDate(value.substring(0, 10)), showValue: true, + sortable: true, + format: (value) => toDate(value.substring(0, 10)), }, { label: t('globals.wareHouseIn'), @@ -196,14 +207,16 @@ const columns = computed(() => [ name: 'warehouseInName', align: 'left', showValue: true, + sortable: true, }, { label: t('landed'), field: 'landed', name: 'landed', align: 'left', - format: (value) => toDate(value.substring(0, 10)), showValue: true, + sortable: true, + format: (value) => toDate(value.substring(0, 10)), }, ]); From cd2eb71efd7333bf630bca6f0cad06ef7b4d17e0 Mon Sep 17 00:00:00 2001 From: wbuezas <wbuezas@verdnatura.es> Date: Mon, 12 Feb 2024 08:14:10 -0300 Subject: [PATCH 10/22] Fix view icon --- src/router/modules/travel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/router/modules/travel.js b/src/router/modules/travel.js index a9670525f..792b393e4 100644 --- a/src/router/modules/travel.js +++ b/src/router/modules/travel.js @@ -34,7 +34,7 @@ export default { name: 'ExtraCommunity', meta: { title: 'extraCommunity', - icon: 'vn:shipment-01', + icon: 'vn:shipment', }, component: () => import('src/pages/Travel/ExtraCommunity.vue'), }, From a9c288e6eac660a9e71bcbb1e25e96b6f09bed72 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Mon, 12 Feb 2024 13:58:13 +0100 Subject: [PATCH 11/22] refs #6795 fix url, details --- src/pages/Claim/Card/ClaimSummary.vue | 20 ++++++++++++++++++++ src/pages/Claim/ClaimList.vue | 7 ++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index 84ae117b7..8bab43dc0 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -10,6 +10,7 @@ import { useSession } from 'src/composables/useSession'; import VnLv from 'src/components/ui/VnLv.vue'; import ClaimNotes from 'src/pages/Claim/Card/ClaimNotes.vue'; import VnUserLink from 'src/components/ui/VnUserLink.vue'; +import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue'; const route = useRoute(); const { t } = useI18n(); @@ -239,6 +240,25 @@ function openDialog(dmsId) { </QTh> </QTr> </template> + <template #body="props"> + <QTr :props="props"> + <QTh v-for="col in props.cols" :key="col.name" :props="props"> + <span v-if="col.name != 'description'">{{ + t(col.value) + }}</span> + <QBtn + v-if="col.name == 'description'" + flat + color="blue" + >{{ col.value }}</QBtn + > + <ItemDescriptorProxy + v-if="col.name == 'description'" + :id="2" + ></ItemDescriptorProxy> + </QTh> + </QTr> + </template> </QTable> </QCard> <QCard class="vn-two" v-if="developments.length > 0"> diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index c8d84b904..60c776618 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -12,6 +12,7 @@ import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorP import VnUserLink from 'src/components/ui/VnUserLink.vue'; import ClaimSummary from './Card/ClaimSummary.vue'; import { useSummaryDialog } from 'src/composables/useSummaryDialog'; +import { getUrl } from 'src/composables/getUrl'; const stateStore = useStateStore(); const router = useRouter(); @@ -23,11 +24,15 @@ const STATE_COLOR = { managed: 'warning', resolved: 'negative', }; +function getApiUrl() { + return new URL(window.location).origin; +} function stateColor(code) { return STATE_COLOR[code]; } function navigate(event, id) { - if (event.ctrlKey || event.metaKey) window.open(window.host); + if (event.ctrlKey || event.metaKey) + window.open(`${getApiUrl()}/#/claim/${id}/summary`); else router.push({ path: `/claim/${id}` }); } </script> From 1db827a7c84fc9c9a1c5ece5152fff5716595523 Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Tue, 13 Feb 2024 08:03:31 +0100 Subject: [PATCH 12/22] refs #6795 fix: claim paddings and colors --- src/components/ui/VnNotes.vue | 4 ++-- src/pages/Claim/Card/ClaimDescriptor.vue | 7 +++---- src/pages/Claim/Card/ClaimSummary.vue | 8 +++----- src/pages/Claim/ClaimList.vue | 6 +++--- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue index 0514b52e0..6890b52c3 100644 --- a/src/components/ui/VnNotes.vue +++ b/src/components/ui/VnNotes.vue @@ -39,7 +39,7 @@ async function insert() { ref="vnPaginateRef" > <template #body="{ rows }"> - <QCard class="q-pa-md q-mb-md" v-for="(note, index) in rows" :key="index"> + <QCard class="q-pa-xs q-mb-md" v-for="(note, index) in rows" :key="index"> <QCardSection horizontal> <slot name="picture"> <VnAvatar :descriptor="false" :worker-id="note.workerFk" /> @@ -55,7 +55,7 @@ async function insert() { </slot> </QItem> </QCardSection> - <QCardSection> + <QCardSection class="q-pa-sm"> <slot name="text"> {{ note.text }} </slot> diff --git a/src/pages/Claim/Card/ClaimDescriptor.vue b/src/pages/Claim/Card/ClaimDescriptor.vue index 2fa1ae528..3827a70d4 100644 --- a/src/pages/Claim/Card/ClaimDescriptor.vue +++ b/src/pages/Claim/Card/ClaimDescriptor.vue @@ -72,11 +72,10 @@ const filter = { }; const STATE_COLOR = { - pending: 'positive', - managed: 'warning', - resolved: 'negative', + pending: 'warning', + managed: 'info', + resolved: 'positive', }; - function stateColor(code) { return STATE_COLOR[code]; } diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index 8bab43dc0..cdc1f15be 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -97,11 +97,9 @@ const detailsColumns = ref([ ]); const STATE_COLOR = { - pending: 'positive', - - managed: 'warning', - - resolved: 'negative', + pending: 'warning', + managed: 'info', + resolved: 'positive', }; function stateColor(code) { return STATE_COLOR[code]; diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index 60c776618..e11041eb0 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -20,9 +20,9 @@ const { t } = useI18n(); const { viewSummary } = useSummaryDialog(); const STATE_COLOR = { - pending: 'positive', - managed: 'warning', - resolved: 'negative', + pending: 'warning', + managed: 'info', + resolved: 'positive', }; function getApiUrl() { return new URL(window.location).origin; From ab512e3b03c58ed1d5a9852ad03fd16cc412d5db Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Tue, 13 Feb 2024 11:50:12 +0100 Subject: [PATCH 13/22] refs #6795 fix tfront --- src/pages/Claim/Card/ClaimLines.vue | 1 - test/vitest/__tests__/pages/Claims/ClaimLines.spec.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/Claim/Card/ClaimLines.vue b/src/pages/Claim/Card/ClaimLines.vue index de0bd39ba..90dd31199 100644 --- a/src/pages/Claim/Card/ClaimLines.vue +++ b/src/pages/Claim/Card/ClaimLines.vue @@ -12,7 +12,6 @@ import FetchData from 'components/FetchData.vue'; import VnDiscount from 'components/common/vnDiscount.vue'; import ClaimLinesImport from './ClaimLinesImport.vue'; import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue'; -import item from 'src/router/modules/item'; const quasar = useQuasar(); const route = useRoute(); diff --git a/test/vitest/__tests__/pages/Claims/ClaimLines.spec.js b/test/vitest/__tests__/pages/Claims/ClaimLines.spec.js index 6dd6b89e6..2f2c0e298 100644 --- a/test/vitest/__tests__/pages/Claims/ClaimLines.spec.js +++ b/test/vitest/__tests__/pages/Claims/ClaimLines.spec.js @@ -1,6 +1,6 @@ import { vi, describe, expect, it, beforeAll, beforeEach, afterEach } from 'vitest'; import { createWrapper, axios } from 'app/test/vitest/helper'; -import ClaimLines from 'pages/Claim/Card/ClaimLines.vue'; +import ClaimLines from '/src/pages/Claim/Card/ClaimLines.vue'; describe('ClaimLines', () => { let vm; From 409bb1a13eb696ff8eeab7bdf85969b0efd4d931 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Tue, 13 Feb 2024 11:51:59 +0100 Subject: [PATCH 14/22] refs #6795 fix return --- src/pages/Claim/ClaimList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index e11041eb0..c079ec85b 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -33,7 +33,7 @@ function stateColor(code) { function navigate(event, id) { if (event.ctrlKey || event.metaKey) window.open(`${getApiUrl()}/#/claim/${id}/summary`); - else router.push({ path: `/claim/${id}` }); + return router.push({ path: `/claim/${id}` }); } </script> From 1e5638b4875a9e8b20eaa5e82b999384de815211 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Tue, 13 Feb 2024 12:44:20 +0100 Subject: [PATCH 15/22] refs #6787 fix descriptor skeleton --- src/components/ui/CardDescriptor.vue | 9 ++++- src/components/ui/SkeletonDescriptor.vue | 39 ++++++++++++++++--- .../Customer/Card/CustomerDescriptor.vue | 8 ---- 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index afedfe06f..082a93a55 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -83,7 +83,7 @@ function viewSummary(id) { <template> <div class="descriptor"> - <template v-if="entity"> + <template v-if="entity && !isLoading"> <div class="header bg-primary q-pa-sm justify-between"> <slot name="header-extra-action" /> <QBtn @@ -169,8 +169,13 @@ function viewSummary(id) { <slot name="after" /> </template> <!-- Skeleton --> - <SkeletonDescriptor v-if="!entity" /> + <SkeletonDescriptor v-if="!entity || isLoading" /> </div> + <QInnerLoading + :label="t('globals.pleaseWait')" + :showing="isLoading" + color="primary" + /> </template> <style lang="scss"> diff --git a/src/components/ui/SkeletonDescriptor.vue b/src/components/ui/SkeletonDescriptor.vue index 470d47e49..9679751f5 100644 --- a/src/components/ui/SkeletonDescriptor.vue +++ b/src/components/ui/SkeletonDescriptor.vue @@ -1,10 +1,39 @@ <template> <div id="descriptor-skeleton"> - <div class="col q-pl-sm q-pa-sm"> - <QSkeleton type="text" square height="45px" /> - <QSkeleton type="text" square height="18px" /> - <QSkeleton type="text" square height="18px" /> - <QSkeleton type="text" square height="18px" /> + <div class="row justify-between q-pa-sm"> + <QSkeleton square size="40px" /> + <QSkeleton square size="40px" /> + <QSkeleton square height="40px" width="20px" /> + </div> + <div class="col justify-between q-pa-sm q-gutter-y-xs"> + <QSkeleton square height="40px" width="150px" /> + <QSkeleton square height="30px" width="70px" /> + </div> + <div class="col q-pl-sm q-pa-sm q-mb-md"> + <div class="row justify-between"> + <QSkeleton type="text" square height="30px" width="20%" /> + <QSkeleton type="text" square height="30px" width="60%" /> + </div> + <div class="row justify-between"> + <QSkeleton type="text" square height="30px" width="20%" /> + <QSkeleton type="text" square height="30px" width="60%" /> + </div> + <div class="row justify-between"> + <QSkeleton type="text" square height="30px" width="20%" /> + <QSkeleton type="text" square height="30px" width="60%" /> + </div> + <div class="row justify-between"> + <QSkeleton type="text" square height="30px" width="20%" /> + <QSkeleton type="text" square height="30px" width="60%" /> + </div> + <div class="row justify-between"> + <QSkeleton type="text" square height="30px" width="20%" /> + <QSkeleton type="text" square height="30px" width="60%" /> + </div> + <div class="row justify-between"> + <QSkeleton type="text" square height="30px" width="20%" /> + <QSkeleton type="text" square height="30px" width="60%" /> + </div> </div> <QCardActions> diff --git a/src/pages/Customer/Card/CustomerDescriptor.vue b/src/pages/Customer/Card/CustomerDescriptor.vue index 833a310ad..2e8770fe7 100644 --- a/src/pages/Customer/Card/CustomerDescriptor.vue +++ b/src/pages/Customer/Card/CustomerDescriptor.vue @@ -19,17 +19,14 @@ const $props = defineProps({ default: null, }, }); -const isLoading = ref(false); const route = useRoute(); const { t } = useI18n(); const entityId = computed(() => { return $props.id || route.params.id; }); -isLoading.value = true; const data = ref(useCardDescription()); const setData = (entity) => (data.value = useCardDescription(entity.name, entity.id)); -isLoading.value = false; </script> <template> @@ -122,11 +119,6 @@ isLoading.value = false; </QCardActions> </template> </CardDescriptor> - <QInnerLoading - :label="t('globals.pleaseWait')" - :showing="isLoading" - color="primary" - /> </template> <i18n> { From 3c4df815794aa05478ad75cff0f0b929fdfb8467 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Thu, 15 Feb 2024 11:30:51 +0100 Subject: [PATCH 16/22] refs #6862 fixtest --- src/components/common/VnSelectFilter.vue | 4 ++-- src/pages/InvoiceIn/Card/InvoiceInBasicData.vue | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/common/VnSelectFilter.vue b/src/components/common/VnSelectFilter.vue index 659f1c3bd..31b0f16ad 100644 --- a/src/components/common/VnSelectFilter.vue +++ b/src/components/common/VnSelectFilter.vue @@ -79,7 +79,7 @@ onMounted(() => { if ($props.url && $props.modelValue) fetchFilter($props.modelValue); }); -function filter(val, options) { +async function filter(val, options) { const search = val.toString().toLowerCase(); if (!search) return options; @@ -119,7 +119,7 @@ async function filterHandler(val, update) { myOptions.value = await fetchFilter(val); return; } - myOptions.value = filter(val, myOptionsOriginal.value); + myOptions.value = await filter(val, myOptionsOriginal.value); }, (ref) => { if (val !== '' && ref.options.length > 0) { diff --git a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue index 2f8435166..8d7362679 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue @@ -186,6 +186,7 @@ async function upsert() { url="Suppliers" :fields="['id', 'nickname']" sort-by="nickname" + :is-clearable="false" > <template #option="scope"> <QItem v-bind="scope.itemProps"> From 72d51a53a80f6a6023e6c22e1b0274ca92669366 Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Thu, 15 Feb 2024 14:53:43 +0100 Subject: [PATCH 17/22] hotFix: vnSelectFilter --- src/components/common/VnSelectFilter.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/common/VnSelectFilter.vue b/src/components/common/VnSelectFilter.vue index 31b0f16ad..a5ebd80ad 100644 --- a/src/components/common/VnSelectFilter.vue +++ b/src/components/common/VnSelectFilter.vue @@ -79,7 +79,7 @@ onMounted(() => { if ($props.url && $props.modelValue) fetchFilter($props.modelValue); }); -async function filter(val, options) { +function filter(val, options) { const search = val.toString().toLowerCase(); if (!search) return options; @@ -111,15 +111,15 @@ async function fetchFilter(val) { return dataRef.value.fetch({ fields, where, order: sortBy, limit }); } -async function filterHandler(val, update) { +function filterHandler(val, update) { update( async () => { if (!$props.defaultFilter) return; - if ($props.url) { - myOptions.value = await fetchFilter(val); - return; - } - myOptions.value = await filter(val, myOptionsOriginal.value); + // if ($props.url) { + // myOptions.value = await fetchFilter(val); + // return; + // } + myOptions.value = filter(val, myOptionsOriginal.value); }, (ref) => { if (val !== '' && ref.options.length > 0) { From 87f81eb80a25b79162a105fb63189c24167b0e9e Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Thu, 15 Feb 2024 16:15:48 +0100 Subject: [PATCH 18/22] refs #6664 hotFix: multiplicatorValue updateGreuges --- src/pages/Claim/Card/ClaimAction.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Claim/Card/ClaimAction.vue b/src/pages/Claim/Card/ClaimAction.vue index 59409e432..ef45bf3dc 100644 --- a/src/pages/Claim/Card/ClaimAction.vue +++ b/src/pages/Claim/Card/ClaimAction.vue @@ -135,7 +135,7 @@ async function regularizeClaim() { message: t('globals.dataSaved'), type: 'positive', }); - await onUpdateGreugeAccept(); + if (multiplicatorValue.value) await onUpdateGreugeAccept(); } async function onUpdateGreugeAccept() { From 72e7bf0f7aa1132e41f060e9d24b9c44c6a4e323 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Fri, 16 Feb 2024 13:49:11 +0100 Subject: [PATCH 19/22] refs #6795 fix navigate --- src/pages/Claim/ClaimList.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index c079ec85b..322055b13 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -32,8 +32,8 @@ function stateColor(code) { } function navigate(event, id) { if (event.ctrlKey || event.metaKey) - window.open(`${getApiUrl()}/#/claim/${id}/summary`); - return router.push({ path: `/claim/${id}` }); + return window.open(`${getApiUrl()}/#/claim/${id}/summary`); + router.push({ path: `/claim/${id}` }); } </script> From c916bd5945a660586421d1b6a71e84e8929b135f Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Mon, 19 Feb 2024 10:50:35 +0100 Subject: [PATCH 20/22] refs #6863 fix: VnSelect + url, VnLocation --- src/components/common/VnLocation.vue | 12 +++++------- src/components/common/VnSelectFilter.vue | 16 ++++++++-------- .../invoiceIn/invoiceInBasicData.spec.js | 6 ++---- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/components/common/VnLocation.vue b/src/components/common/VnLocation.vue index b55706ad2..446bb371e 100644 --- a/src/components/common/VnLocation.vue +++ b/src/components/common/VnLocation.vue @@ -50,7 +50,10 @@ const value = computed({ return $props.modelValue; }, set(value) { - emit('update:modelValue', value); + emit( + 'update:modelValue', + postcodesOptions.value.find((p) => p.code === value) + ); }, }); @@ -101,16 +104,11 @@ function handleFetch(data) { :label="t('Location')" :placeholder="t('Search by postalcode, town, province or country')" @input-value="locationFilter" - :default-filter="true" + :default-filter="false" :input-debounce="300" :class="{ required: $attrs.required }" v-bind="$attrs" - emit-value - map-options - use-input clearable - hide-selected - fill-input > <template #form> <CreateNewPostcode @on-data-saved="locationFilter()" /> diff --git a/src/components/common/VnSelectFilter.vue b/src/components/common/VnSelectFilter.vue index a5ebd80ad..44f73bfed 100644 --- a/src/components/common/VnSelectFilter.vue +++ b/src/components/common/VnSelectFilter.vue @@ -111,15 +111,15 @@ async function fetchFilter(val) { return dataRef.value.fetch({ fields, where, order: sortBy, limit }); } -function filterHandler(val, update) { +async function filterHandler(val, update) { + if (!$props.defaultFilter) return update(); + let newOptions; + if ($props.url) { + newOptions = await fetchFilter(val); + } else newOptions = filter(val, myOptionsOriginal.value); update( - async () => { - if (!$props.defaultFilter) return; - // if ($props.url) { - // myOptions.value = await fetchFilter(val); - // return; - // } - myOptions.value = filter(val, myOptionsOriginal.value); + () => { + myOptions.value = newOptions; }, (ref) => { if (val !== '' && ref.options.length > 0) { diff --git a/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js b/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js index 7617a69d1..20f137aeb 100644 --- a/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js +++ b/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js @@ -1,6 +1,6 @@ /// <reference types="cypress" /> describe('InvoiceInBasicData', () => { - const selects = '.q-form .q-select'; + const selects = ':nth-child(1) > :nth-child(1) > .q-field'; const appendBtns = 'label button'; const dialogAppendBtns = '.q-dialog label button'; const dialogInputs = '.q-dialog input'; @@ -12,9 +12,7 @@ describe('InvoiceInBasicData', () => { }); it('should edit the provideer and supplier ref', () => { - cy.get(selects).eq(0).click(); - cy.get(selects).eq(0).type('Bros'); - cy.get(selects).eq(0).type('{enter}'); + cy.selectOption(selects, 'Bros'); cy.get('[title="Reset"]').click(); cy.get(appendBtns).eq(0).click(); From 5386c82480142ecb4c8eae6fcd93b493740f40b0 Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Mon, 19 Feb 2024 11:39:44 +0100 Subject: [PATCH 21/22] refs #6863 fix: invoiceInList e2e --- test/cypress/integration/invoiceIn/invoiceInList.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/cypress/integration/invoiceIn/invoiceInList.spec.js b/test/cypress/integration/invoiceIn/invoiceInList.spec.js index b96fd0cf2..a7d59883c 100644 --- a/test/cypress/integration/invoiceIn/invoiceInList.spec.js +++ b/test/cypress/integration/invoiceIn/invoiceInList.spec.js @@ -7,6 +7,7 @@ describe('InvoiceInList', () => { const summaryHeaders = '.summaryBody .header'; beforeEach(() => { + cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/invoice-in/list`); }); From af4927167fdc8de5297fa6a1a899e542ba5d622a Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Mon, 19 Feb 2024 11:42:19 +0100 Subject: [PATCH 22/22] refs #6863 deploy: init version 24.10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 27ba190a6..74f83334c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-front", - "version": "24.8.0", + "version": "24.10.0", "description": "Salix frontend", "productName": "Salix", "author": "Verdnatura",