From 56af4d37364ffa1f665d172052da810c0f175c0b Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 25 Sep 2024 14:18:34 +0200 Subject: [PATCH 01/32] feat: refs #7010 added packing type field in customer summary and ticket list --- .../components/CustomerSummaryTable.vue | 18 ++++- src/pages/Ticket/TicketList.vue | 70 +++++++++++++++---- 2 files changed, 74 insertions(+), 14 deletions(-) diff --git a/src/pages/Customer/components/CustomerSummaryTable.vue b/src/pages/Customer/components/CustomerSummaryTable.vue index 946296e67..8ebf4aabc 100644 --- a/src/pages/Customer/components/CustomerSummaryTable.vue +++ b/src/pages/Customer/components/CustomerSummaryTable.vue @@ -32,6 +32,16 @@ const filter = { }, { relation: 'invoiceOut', scope: { fields: ['id'] } }, { relation: 'agencyMode', scope: { fields: ['name'] } }, + { + relation: 'ticketSales', + scope: { + fields: ['id', 'concept', 'itemFk'], + include: { relation: 'item' }, + scope: { + fields: ['id', 'name', 'itemPackingTypeFk'], + }, + }, + }, ], where: { clientFk: route.params.id }, order: ['shipped DESC', 'id'], @@ -87,7 +97,13 @@ const columns = computed(() => [ label: t('Total'), name: 'total', }, - + { + align: 'left', + name: 'itemPackingTypeFk', + label: t('ticketSale.packaging'), + format: (row, dashIfEmpty) => + dashIfEmpty(row?.ticketSales[0]?.item.itemPackingTypeFk), + }, { align: 'right', label: '', diff --git a/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue index ad97e75c1..2a1dfd014 100644 --- a/src/pages/Ticket/TicketList.vue +++ b/src/pages/Ticket/TicketList.vue @@ -1,6 +1,6 @@ @@ -577,16 +615,16 @@ function setReference(data) { {{ row.state }} + + + {{ row.refFk }} + + + {{ row.state }} - + + From 1c99c01d1dcfe61e595cd322cde9910ac943cb87 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 26 Sep 2024 14:12:59 +0200 Subject: [PATCH 03/32] refactor: refs #7010 modified front --- src/pages/Ticket/TicketList.vue | 48 +++------------------------------ 1 file changed, 3 insertions(+), 45 deletions(-) diff --git a/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue index 2a1dfd014..fe9667bea 100644 --- a/src/pages/Ticket/TicketList.vue +++ b/src/pages/Ticket/TicketList.vue @@ -1,6 +1,6 @@ - - From bd3de77cbdde427945c1b201872ab70517df61ea Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 7 Oct 2024 09:10:20 +0200 Subject: [PATCH 09/32] fix: changes in list and filter to fix section --- src/pages/Ticket/TicketFilter.vue | 79 +++++++++++++++++++++++++++++++ src/pages/Ticket/TicketList.vue | 2 +- 2 files changed, 80 insertions(+), 1 deletion(-) diff --git a/src/pages/Ticket/TicketFilter.vue b/src/pages/Ticket/TicketFilter.vue index 8f71aad08..fee946ccf 100644 --- a/src/pages/Ticket/TicketFilter.vue +++ b/src/pages/Ticket/TicketFilter.vue @@ -20,11 +20,33 @@ const provinces = ref([]); const states = ref([]); const agencies = ref([]); const warehouses = ref([]); +const alertLevels = ref([]); +const groupedStates = ref([]); + +const getGroupedStates = () => { + for (const state of alertLevels.value) { + groupedStates.value.push({ + id: state.id, + name: t(`${state.code}`), + code: state.code, + }); + } + console.log(groupedStates.value); +}; @@ -255,6 +321,11 @@ en: provinceFk: Province agencyModeFk: Agency warehouseFk: Warehouse + FREE: Free + ON_PREPARATION: On preparation + PACKED: Packed + DELIVERED: Delivered + ON_PREVIOUS: ON_PREVIOUS es: params: search: Contiene @@ -288,4 +359,12 @@ es: Yes: Si No: No Days onward: Días adelante + Grouped state: Estado agrupado + FREE: Libre + ON_PREPARATION: En preparación + PACKED: Encajado + DELIVERED: Servido + ON_PREVIOUS: ON_PREVIOUS + Collection: Colección + Nickname: Nombre mostrado diff --git a/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue index ad97e75c1..d71ad7dfe 100644 --- a/src/pages/Ticket/TicketList.vue +++ b/src/pages/Ticket/TicketList.vue @@ -548,7 +548,7 @@ function setReference(data) { From afc52f6ceaa41fe54459926d10398a25c4f5b56a Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 7 Oct 2024 13:29:43 +0200 Subject: [PATCH 10/32] fix: changes in sale and summary --- .../Ticket/Card/TicketDescriptorMenu.vue | 9 ++- src/pages/Ticket/Card/TicketEditMana.vue | 26 +++++++ src/pages/Ticket/Card/TicketSale.vue | 19 +++++ src/pages/Ticket/Card/TicketSummary.vue | 71 ++++++++++++++----- src/pages/Ticket/TicketFilter.vue | 12 ++-- 5 files changed, 110 insertions(+), 27 deletions(-) diff --git a/src/pages/Ticket/Card/TicketDescriptorMenu.vue b/src/pages/Ticket/Card/TicketDescriptorMenu.vue index 73104fe27..caf82ed24 100644 --- a/src/pages/Ticket/Card/TicketDescriptorMenu.vue +++ b/src/pages/Ticket/Card/TicketDescriptorMenu.vue @@ -3,7 +3,7 @@ import axios from 'axios'; import { ref, toRefs } from 'vue'; import { useQuasar } from 'quasar'; import { useI18n } from 'vue-i18n'; -import { useRouter } from 'vue-router'; +import { useRoute, useRouter } from 'vue-router'; import { usePrintService } from 'composables/usePrintService'; import SendEmailDialog from 'components/common/SendEmailDialog.vue'; import VnConfirm from 'components/ui/VnConfirm.vue'; @@ -23,6 +23,7 @@ const props = defineProps({ required: true, }, }); +const route = useRoute(); const { push, currentRoute } = useRouter(); const { dialog, notify } = useQuasar(); @@ -334,7 +335,11 @@ async function handleInvoiceOutData() { {{ toPercentage(row.discount / 100) }} diff --git a/src/pages/Ticket/Card/TicketSummary.vue b/src/pages/Ticket/Card/TicketSummary.vue index 2ca0b5727..ef5024e36 100644 --- a/src/pages/Ticket/Card/TicketSummary.vue +++ b/src/pages/Ticket/Card/TicketSummary.vue @@ -19,6 +19,7 @@ import VnTitle from 'src/components/common/VnTitle.vue'; import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue'; import ZoneDescriptorProxy from 'src/pages/Zone/Card/ZoneDescriptorProxy.vue'; import VnSelect from 'src/components/common/VnSelect.vue'; +import TicketDescriptorMenu from './TicketDescriptorMenu.vue'; const route = useRoute(); const { notify } = useNotify(); @@ -68,7 +69,7 @@ function isEditable() { async function changeState(value) { try { - stateBtnDropdownRef.value.hide(); + stateBtnDropdownRef.value?.hide(); const formData = { ticketFk: entityId.value, code: value, @@ -108,6 +109,10 @@ function getNoteValue(description) { function toTicketUrl(section) { return '#/ticket/' + entityId.value + '/' + section; } +function isOnTicketCard() { + const currentPath = route.path; + return currentPath.startsWith('/ticket'); +}