feat: refs #7587 add 'ticketClaimed' translation and implement claims retrieval in TicketDescriptor #1533
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue