commit
230bd17ed5
src
components/ui
i18n/locale
pages
test/cypress/integration
|
@ -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;
|
||||
|
|
|
@ -531,6 +531,7 @@ ticket:
|
|||
customerCard: Customer card
|
||||
ticketList: Ticket List
|
||||
newOrder: New Order
|
||||
ticketClaimed: Claimed ticket
|
||||
boxing:
|
||||
expedition: Expedition
|
||||
created: Created
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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`;
|
||||
|
|
Loading…
Reference in New Issue