refactor(ticket): usar nuevo api en lugar de japi en TicketView
gitea/hedera-web/pipeline/pr-beta This commit looks good Details

This commit is contained in:
Guido 2025-04-24 17:54:38 -03:00
parent aa66c086f2
commit 65b715078e
1 changed files with 77 additions and 14 deletions

View File

@ -2,6 +2,7 @@
import { onMounted, inject, ref } from 'vue'; import { onMounted, inject, ref } from 'vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { formatDate } from 'src/lib/filters.js';
import TicketDetails from 'src/pages/Ecomerce/TicketDetails.vue'; import TicketDetails from 'src/pages/Ecomerce/TicketDetails.vue';
@ -10,7 +11,7 @@ import { storeToRefs } from 'pinia';
import { usePrintService } from 'src/composables/usePrintService'; import { usePrintService } from 'src/composables/usePrintService';
const { t } = useI18n(); const { t } = useI18n();
const jApi = inject('jApi'); const api = inject('api');
const route = useRoute(); const route = useRoute();
const appStore = useAppStore(); const appStore = useAppStore();
const { isHeaderMounted } = storeToRefs(appStore); const { isHeaderMounted } = storeToRefs(appStore);
@ -20,21 +21,83 @@ const ticket = ref({});
const rows = ref([]); const rows = ref([]);
const services = ref(null); const services = ref(null);
const packages = ref(null); const packages = ref(null);
const dateFormat = 'DD/MM/YYYY';
const fetchTicketData = async ticketId => {
const { data } = await api.post('applications/myTicket_get/execute-proc', {
schema: 'hedera',
params: [ticketId]
});
return data?.[0] || null;
};
const fetchTicketRows = async ticketId => {
const { data } = await api.post(
'applications/myTicket_getRows/execute-proc',
{
schema: 'hedera',
params: [ticketId]
}
);
return data || [];
};
const fetchTicketServices = async ticketId => {
const { data } = await api.post(
'applications/myTicket_getServices/execute-proc',
{
schema: 'hedera',
params: [ticketId]
}
);
return data || null;
};
const fetchTicketPackages = async ticketId => {
const { data } = await api.post(
'applications/myTicket_getPackages/execute-proc',
{
schema: 'hedera',
params: [ticketId]
}
);
return data || null;
};
const formatTicketDates = ticketData => {
if (!ticketData) return;
const dateFields = ['landed', 'shipped'];
dateFields.forEach(field => {
if (ticketData[field]) {
ticketData[field] = formatDate(ticketData[field], dateFormat);
}
});
};
onMounted(async () => { onMounted(async () => {
const params = { const ticketId = parseInt(route.params.id);
ticket: parseInt(route.params.id)
}; try {
ticket.value = await jApi.getObject('CALL myTicket_get(#ticket)', params); const [ticketData, rowsData, servicesData, packagesData] =
rows.value = await jApi.query('CALL myTicket_getRows(#ticket)', params); await Promise.all([
services.value = await jApi.query( fetchTicketData(ticketId),
'CALL myTicket_getServices(#ticket)', fetchTicketRows(ticketId),
params fetchTicketServices(ticketId),
); fetchTicketPackages(ticketId)
packages.value = await jApi.query( ]);
'CALL myTicket_getPackages(#ticket)',
params if (ticketData) {
); formatTicketDates(ticketData);
ticket.value = ticketData;
}
rows.value = rowsData;
services.value = servicesData;
packages.value = packagesData;
} catch (error) {
console.error('Error fetching ticket data:', error);
}
}); });
const onPrintClick = () => const onPrintClick = () =>