Merge branch 'dev' into 8616-fixWarningsRouteSection
gitea/salix-front/pipeline/pr-dev This commit looks good
Details
gitea/salix-front/pipeline/pr-dev This commit looks good
Details
This commit is contained in:
commit
230bd17ed5
|
@ -186,7 +186,7 @@ function fetchData([data]) {
|
||||||
ref="vnPaginateRef"
|
ref="vnPaginateRef"
|
||||||
class="show"
|
class="show"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
search-url="notes"
|
:search-url="false"
|
||||||
@on-fetch="
|
@on-fetch="
|
||||||
newNote.text = '';
|
newNote.text = '';
|
||||||
newNote.observationTypeFk = null;
|
newNote.observationTypeFk = null;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -80,7 +80,7 @@ const columns = [
|
||||||
:right-search="false"
|
:right-search="false"
|
||||||
:column-search="false"
|
:column-search="false"
|
||||||
:disable-option="{ card: true, table: true }"
|
:disable-option="{ card: true, table: true }"
|
||||||
search-url="actions"
|
:search-url="false"
|
||||||
:filter="{ where: { claimFk: $props.id } }"
|
:filter="{ where: { claimFk: $props.id } }"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:limit="0"
|
:limit="0"
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -1,12 +1,74 @@
|
||||||
describe('RoadMap', () => {
|
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(() => {
|
beforeEach(() => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
cy.login('developer');
|
cy.login('developer');
|
||||||
cy.visit(`/#/route/roadmap`);
|
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', () => {
|
it('Route list create roadmap and redirect', () => {
|
||||||
cy.addBtnClick();
|
cy.addBtnClick();
|
||||||
cy.get('input[name="name"]').type('roadMapTestOne{enter}');
|
cy.dataCy(selectors.inputRoadmap).type(`${data.roadmap}{enter}`);
|
||||||
cy.get('.q-notification__message').should('have.text', 'Data created');
|
cy.checkNotification(dataCreated);
|
||||||
cy.url().should('include', '/summary');
|
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 saveBtn = '.q-mt-lg > .q-btn--standard';
|
||||||
const contributionCode = `Representantes de comercio`;
|
const contributionCode = `Representantes de comercio`;
|
||||||
const contractType = `INDEFINIDO A TIEMPO COMPLETO`;
|
const contractType = `INDEFINIDO A TIEMPO COMPLETO`;
|
||||||
|
|
Loading…
Reference in New Issue