feat: refs #7587 add 'ticketClaimed' translation and implement claims retrieval in TicketDescriptor #1533

Merged
jtubau merged 12 commits from 7587-addClaimedTicketRefToRefundTicket into dev 2025-03-11 11:07:48 +00:00
3 changed files with 31 additions and 5 deletions

View File

@ -531,6 +531,7 @@ ticket:
customerCard: Customer card customerCard: Customer card
ticketList: Ticket List ticketList: Ticket List
newOrder: New Order newOrder: New Order
ticketClaimed: Claimed ticket
boxing: boxing:
expedition: Expedition expedition: Expedition
created: Created created: Created

View File

@ -538,6 +538,7 @@ ticket:
customerCard: Ficha del cliente customerCard: Ficha del cliente
ticketList: Listado de tickets ticketList: Listado de tickets
newOrder: Nuevo pedido newOrder: Nuevo pedido
ticketClaimed: Ticket reclamado
boxing: boxing:
expedition: Expedición expedition: Expedición
created: Creado created: Creado

View File

@ -11,6 +11,7 @@ import { toDateTimeFormat } from 'src/filters/date';
import filter from './TicketFilter.js'; import filter from './TicketFilter.js';
import FetchData from 'src/components/FetchData.vue'; import FetchData from 'src/components/FetchData.vue';
import TicketProblems from 'src/components/TicketProblems.vue'; import TicketProblems from 'src/components/TicketProblems.vue';
import axios from 'axios';
const $props = defineProps({ const $props = defineProps({
id: { id: {
@ -31,23 +32,37 @@ const entityId = computed(() => {
return $props.id || route.params.id; return $props.id || route.params.id;
}); });
const problems = ref({}); const problems = ref({});
const originalTicket = ref();
function ticketFilter(ticket) { function ticketFilter(ticket) {
return JSON.stringify({ clientFk: ticket.clientFk }); return JSON.stringify({ clientFk: ticket.clientFk });
} }
async function getClaims() {
const userFilter = { where: { refundTicketFk: entityId.value } };
const { data } = await axios.get(`TicketRefunds`, {
params: { filter: JSON.stringify(userFilter) },
});
if (!data) return;
originalTicket.value = data[0]?.originalTicketFk;
}
async function getProblems() {
const { data } = await axios.get(`Tickets/${entityId.value}/getTicketProblems`);
if (!data) return;
problems.value = data[0];
}
function getInfo() {
getClaims();
getProblems();
}
</script> </script>
<template> <template>
<FetchData
:url="`Tickets/${entityId}/getTicketProblems`"
auto-load
@on-fetch="(data) => ([problems] = data)"
/>
<CardDescriptor <CardDescriptor
:url="`Tickets/${entityId}`" :url="`Tickets/${entityId}`"
:filter="filter" :filter="filter"
data-key="Ticket" data-key="Ticket"
:summary="$props.summary" :summary="$props.summary"
@on-fetch="getInfo"
width="lg-width" width="lg-width"
> >
<template #menu="{ entity }"> <template #menu="{ entity }">
@ -129,6 +144,15 @@ function ticketFilter(ticket) {
> >
<QTooltip>{{ t('ticket.card.newOrder') }}</QTooltip> <QTooltip>{{ t('ticket.card.newOrder') }}</QTooltip>
</QBtn> </QBtn>
<QBtn
v-if="originalTicket"
size="md"
icon="vn:claims"
color="primary"
:to="{ name: 'TicketCard', params: { id: originalTicket } }"
>
<QTooltip>{{ t('ticket.card.ticketClaimed') }}</QTooltip>
</QBtn>
</QCardActions> </QCardActions>
</template> </template>
</CardDescriptor> </CardDescriptor>