Merge branch 'dev' into 8616-fixWarningsRouteSection

This commit is contained in:
Pablo Natek 2025-03-11 12:26:48 +00:00
commit 230bd17ed5
7 changed files with 99 additions and 11 deletions
src
components/ui
i18n/locale
pages
test/cypress/integration

View File

@ -186,7 +186,7 @@ function fetchData([data]) {
ref="vnPaginateRef"
class="show"
v-bind="$attrs"
search-url="notes"
:search-url="false"
@on-fetch="
newNote.text = '';
newNote.observationTypeFk = null;

View File

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

View File

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

View File

@ -80,7 +80,7 @@ const columns = [
:right-search="false"
:column-search="false"
:disable-option="{ card: true, table: true }"
search-url="actions"
:search-url="false"
:filter="{ where: { claimFk: $props.id } }"
:columns="columns"
:limit="0"

View File

@ -11,6 +11,7 @@ import { toDateTimeFormat } from 'src/filters/date';
import filter from './TicketFilter.js';
import FetchData from 'src/components/FetchData.vue';
import TicketProblems from 'src/components/TicketProblems.vue';
import axios from 'axios';
const $props = defineProps({
id: {
@ -31,23 +32,37 @@ const entityId = computed(() => {
return $props.id || route.params.id;
});
const problems = ref({});
const originalTicket = ref();
function ticketFilter(ticket) {
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>
<template>
<FetchData
:url="`Tickets/${entityId}/getTicketProblems`"
auto-load
@on-fetch="(data) => ([problems] = data)"
/>
<CardDescriptor
:url="`Tickets/${entityId}`"
:filter="filter"
data-key="Ticket"
:summary="$props.summary"
@on-fetch="getInfo"
width="lg-width"
>
<template #menu="{ entity }">
@ -129,6 +144,15 @@ function ticketFilter(ticket) {
>
<QTooltip>{{ t('ticket.card.newOrder') }}</QTooltip>
</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>
</template>
</CardDescriptor>

View File

@ -1,12 +1,74 @@
describe('RoadMap', () => {
const getSelector = (colField) =>
`tr:last-child > [data-col-field="${colField}"] > .no-padding`;
const selectors = {
roadmap: getSelector('name'),
id: getSelector('id'),
etd: getSelector('etd'),
summaryHeader: '.summaryHeader > :nth-child(2)',
summaryGoToSummaryBtn: '.summaryHeader > a > .q-icon',
summaryBtn: 'tableAction-0',
inputRoadmap: 'Roadmap_input',
checkbox: '.q-virtual-scroll__content tr:last-child .q-checkbox',
cloneFormBtn: '.q-card__actions > .q-btn--standard',
cloneBtn: '#subToolbar > :nth-child(3)',
deleteBtn: ':nth-child(4) > .q-btn__content',
confirmBtn: 'VnConfirm_confirm',
inputEtd: 'ETD_inputDate',
};
const data = {
roadmap: 'TEST-ROADMAP',
etd: '01/01/2025',
};
const dataCreated = 'Data created';
const summaryUrl = '/summary';
beforeEach(() => {
cy.viewport(1920, 1080);
cy.login('developer');
cy.visit(`/#/route/roadmap`);
cy.typeSearchbar('{enter}');
});
it('Should list roadmaps', () => {
cy.get('.q-table')
.children()
.should('be.visible')
.should('have.length.greaterThan', 0);
});
it('Route list create roadmap and redirect', () => {
cy.addBtnClick();
cy.get('input[name="name"]').type('roadMapTestOne{enter}');
cy.get('.q-notification__message').should('have.text', 'Data created');
cy.url().should('include', '/summary');
cy.dataCy(selectors.inputRoadmap).type(`${data.roadmap}{enter}`);
cy.checkNotification(dataCreated);
cy.url().should('include', summaryUrl);
});
it('open summary', () => {
cy.dataCy(selectors.summaryBtn).last().click();
cy.get(selectors.summaryHeader).should('contain', data.roadmap);
cy.get(selectors.summaryGoToSummaryBtn).click();
cy.get(selectors.summaryHeader).should('contain', data.roadmap);
});
it('Should clone selected roadmap with new ETD', () => {
cy.get(selectors.checkbox).click();
cy.get(selectors.cloneBtn).click();
cy.dataCy(selectors.inputEtd).click().type(`${data.etd}{enter}`);
cy.get(selectors.cloneFormBtn).click();
cy.get(selectors.etd).should('contain', data.etd);
});
it('Should delete selected roadmap', () => {
cy.get(selectors.id).then(($el) => {
cy.get(selectors.checkbox).click();
cy.get(selectors.deleteBtn).click();
cy.dataCy(selectors.confirmBtn).click();
cy.typeSearchbar('{enter}');
cy.get(selectors.id).should('not.have.text', $el.text);
});
});
});

View File

@ -1,4 +1,4 @@
describe('WorkerBusiness', () => {
describe.skip('WorkerBusiness', () => {
const saveBtn = '.q-mt-lg > .q-btn--standard';
const contributionCode = `Representantes de comercio`;
const contractType = `INDEFINIDO A TIEMPO COMPLETO`;