hotfix_ticketNegative #1590
|
@ -775,7 +775,7 @@ const rowCtrlClickFunction = computed(() => {
|
|||
:data-col-field="col?.name"
|
||||
>
|
||||
<div
|
||||
class="no-padding no-margin peter"
|
||||
class="no-padding no-margin"
|
||||
style="
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -944,6 +944,7 @@ const rowCtrlClickFunction = computed(() => {
|
|||
:key="index"
|
||||
:title="btn.title"
|
||||
:icon="btn.icon"
|
||||
data-cy="cardBtn"
|
||||
class="q-pa-xs"
|
||||
:class="
|
||||
btn.isPrimary
|
||||
|
|
|
@ -913,3 +913,8 @@ months:
|
|||
oct: October
|
||||
nov: November
|
||||
dec: December
|
||||
bulkEdit:
|
||||
completed: Bulk edit completed
|
||||
failed: Bulk edit failed
|
||||
edit: Bulk edit
|
||||
inProgress: Bulk edit in progress
|
||||
|
|
|
@ -1000,3 +1000,9 @@ months:
|
|||
oct: Octubre
|
||||
nov: Noviembre
|
||||
dec: Diciembre
|
||||
bulkEdit:
|
||||
completed: Edición masiva completada
|
||||
failed: Edición masiva fallida
|
||||
edit: Edición masiva
|
||||
inProgress: Edición masiva en progreso
|
||||
openTable: Abrir resultados
|
||||
|
|
|
@ -9,7 +9,7 @@ import axios from 'axios';
|
|||
import { showResultsAsTable } from 'src/composables/showResultsTable';
|
||||
import FetchData from 'components/FetchData.vue';
|
||||
const { openTable } = showResultsAsTable();
|
||||
import HandleSplitDialog from 'src/pages/Ticket/Negative/components/HandleSplitDialog.vue';
|
||||
import HandleLackDialog from 'src/pages/Ticket/Negative/components/HandleLackDialog.vue';
|
||||
const MATCH = 'match';
|
||||
|
||||
const { t } = useI18n();
|
||||
|
@ -212,7 +212,7 @@ async function change({ itemFk: substitutionFk }) {
|
|||
});
|
||||
const results = await Promise.allSettled(promises);
|
||||
|
||||
openTable(HandleSplitDialog, results, 'ticketFk', 'changeItem');
|
||||
openTable(HandleLackDialog, results, 'ticketFk', 'changeItem');
|
||||
emit('itemReplaced', {
|
||||
type: 'refresh',
|
||||
itemProposal: proposalSelected.value[0],
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import axios from 'axios';
|
||||
import { showResultsAsTable } from 'src/composables/showResultsTable';
|
||||
import HandleSplitDialog from 'src/pages/Ticket/Negative/components/HandleSplitDialog.vue';
|
||||
import HandleLackDialog from 'src/pages/Ticket/Negative/components/HandleLackDialog.vue';
|
||||
export function splitTicket() {
|
||||
const { openTable } = showResultsAsTable();
|
||||
|
||||
|
@ -18,7 +18,7 @@ export function splitTicket() {
|
|||
const promises = reducedData.map((params) => axios.post(`Tickets/split`, params));
|
||||
|
||||
const result = await Promise.allSettled(promises);
|
||||
openTable(HandleSplitDialog, result, 'ticket', 'split');
|
||||
openTable(HandleLackDialog, result, 'ticket', 'split');
|
||||
}
|
||||
return { split };
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import axios from 'axios';
|
|||
|
||||
import VnSelect from 'src/components/common/VnSelect.vue';
|
||||
import { showResultsAsTable } from 'src/composables/showResultsTable';
|
||||
import HandleSplitDialog from './HandleSplitDialog.vue';
|
||||
import HandleLackDialog from './HandleLackDialog.vue';
|
||||
const { openTable } = showResultsAsTable();
|
||||
const emit = defineEmits(['update-item']);
|
||||
|
||||
|
@ -30,7 +30,7 @@ const updateItem = async () => {
|
|||
);
|
||||
const result = await Promise.allSettled(rowsToUpdate);
|
||||
|
||||
openTable(HandleSplitDialog, result, 'ticketFk', 'changeItem');
|
||||
openTable(HandleLackDialog, result, 'ticketFk', 'changeItem');
|
||||
emit('update-item', newItem.value);
|
||||
} catch (err) {
|
||||
console.error('Error updating item:', err);
|
||||
|
|
|
@ -3,7 +3,7 @@ import { ref } from 'vue';
|
|||
import axios from 'axios';
|
||||
import VnInput from 'src/components/common/VnInput.vue';
|
||||
import { showResultsAsTable } from 'src/composables/showResultsTable';
|
||||
import HandleSplitDialog from './HandleSplitDialog.vue';
|
||||
import HandleLackDialog from './HandleLackDialog.vue';
|
||||
const { openTable } = showResultsAsTable();
|
||||
const showChangeQuantityDialog = ref(false);
|
||||
const newQuantity = ref(null);
|
||||
|
@ -24,7 +24,7 @@ const updateQuantity = async () => {
|
|||
);
|
||||
|
||||
const result = await Promise.allSettled(rowsToUpdate);
|
||||
openTable(HandleSplitDialog, result, 'ticketFk', 'changeQuantity');
|
||||
openTable(HandleLackDialog, result, 'ticketFk', 'changeQuantity');
|
||||
emit('update-quantity', newQuantity.value);
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -4,7 +4,7 @@ import axios from 'axios';
|
|||
import VnSelect from 'src/components/common/VnSelect.vue';
|
||||
import FetchData from 'components/FetchData.vue';
|
||||
import { showResultsAsTable } from 'src/composables/showResultsTable';
|
||||
import HandleSplitDialog from './HandleSplitDialog.vue';
|
||||
import HandleLackDialog from './HandleLackDialog.vue';
|
||||
const { openTable } = showResultsAsTable();
|
||||
|
||||
const emit = defineEmits(['update-state']);
|
||||
|
@ -18,18 +18,18 @@ const $props = defineProps({
|
|||
},
|
||||
});
|
||||
const updateState = async () => {
|
||||
showChangeStateDialog.value = true;
|
||||
const rowsToUpdate = $props.selectedRows.map(({ ticketFk }) =>
|
||||
axios.post(`Tickets/state`, {
|
||||
ticketFk,
|
||||
code: newState.value,
|
||||
}),
|
||||
);
|
||||
showChangeStateDialog.value = true;
|
||||
const rowsToUpdate = $props.selectedRows.map(({ ticketFk }) =>
|
||||
axios.post(`Tickets/state`, {
|
||||
ticketFk,
|
||||
code: newState.value,
|
||||
}),
|
||||
);
|
||||
|
||||
const result = await Promise.allSettled(rowsToUpdate);
|
||||
const result = await Promise.allSettled(rowsToUpdate);
|
||||
|
||||
openTable(HandleSplitDialog, result, 'ticketFk', 'changeState');
|
||||
emit('update-state', newState.value);
|
||||
openTable(HandleLackDialog, result, 'ticketFk', 'changeState');
|
||||
emit('update-state', newState.value);
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ function openLinesDialog(row) {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<QDialog ref="dialogRef" @hide="onDialogHide" data-cy="handleSplitDialog" persistent>
|
||||
<QDialog ref="dialogRef" @hide="onDialogHide" data-cy="HandleLackDialog" persistent>
|
||||
<FetchData
|
||||
v-if="$props.action === 'changeState'"
|
||||
url="States"
|
|
@ -218,7 +218,8 @@ ticketList:
|
|||
negative:
|
||||
hour: Hora
|
||||
id: Id Articulo
|
||||
longName: Articulo
|
||||
longName: Artículo
|
||||
itemFk: Artículo
|
||||
supplier: Productor
|
||||
colour: Color
|
||||
size: Medida
|
||||
|
|
|
@ -65,13 +65,13 @@ describe('Ticket Lack detail', () => {
|
|||
|
||||
clickNotificationAction();
|
||||
|
||||
cy.dataCy('handleSplitDialog').should('be.visible');
|
||||
cy.dataCy('handleSplitDialog').find('tbody > tr > :nth-child(1) > .q-icon');
|
||||
cy.dataCy('handleSplitDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('handleSplitDialog')
|
||||
cy.dataCy('HandleLackDialog').should('be.visible');
|
||||
cy.dataCy('HandleLackDialog').find('tbody > tr > :nth-child(1) > .q-icon');
|
||||
cy.dataCy('HandleLackDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('HandleLackDialog')
|
||||
.find(`${findTr(2)}.link > div > span`)
|
||||
.should('have.text', `${ticketId} `);
|
||||
cy.dataCy('handleSplitDialog').find(findTr(3)).should('have.text', 'noSplit');
|
||||
cy.dataCy('HandleLackDialog').find(findTr(3)).should('have.text', 'noSplit');
|
||||
});
|
||||
});
|
||||
describe('Change Item', () => {
|
||||
|
@ -86,13 +86,13 @@ describe('Ticket Lack detail', () => {
|
|||
|
||||
clickNotificationAction();
|
||||
|
||||
cy.dataCy('handleSplitDialog').should('be.visible');
|
||||
cy.dataCy('handleSplitDialog').find('tbody > tr > :nth-child(1) > .q-icon');
|
||||
cy.dataCy('handleSplitDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('handleSplitDialog')
|
||||
cy.dataCy('HandleLackDialog').should('be.visible');
|
||||
cy.dataCy('HandleLackDialog').find('tbody > tr > :nth-child(1) > .q-icon');
|
||||
cy.dataCy('HandleLackDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('HandleLackDialog')
|
||||
.find(`${findTr(2)}.link > span`)
|
||||
.should('have.text', `${ticketId}`);
|
||||
cy.dataCy('handleSplitDialog')
|
||||
cy.dataCy('HandleLackDialog')
|
||||
.find(findTr(3))
|
||||
.should('have.text', 'price retrieval failed');
|
||||
});
|
||||
|
@ -109,14 +109,14 @@ describe('Ticket Lack detail', () => {
|
|||
|
||||
clickNotificationAction();
|
||||
|
||||
cy.dataCy('handleSplitDialog')
|
||||
cy.dataCy('HandleLackDialog')
|
||||
.should('be.visible')
|
||||
.find('tbody > tr > :nth-child(1) > .q-icon');
|
||||
cy.dataCy('handleSplitDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('handleSplitDialog')
|
||||
cy.dataCy('HandleLackDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('HandleLackDialog')
|
||||
.find(`${findTr(2)}.link > div > span`)
|
||||
.should('have.text', `${ticketId} `);
|
||||
cy.dataCy('handleSplitDialog').find(findTr(3)).should('have.text', 'OK');
|
||||
cy.dataCy('HandleLackDialog').find(findTr(3)).should('have.text', 'OK');
|
||||
});
|
||||
});
|
||||
describe('change quantity', () => {
|
||||
|
@ -132,14 +132,14 @@ describe('Ticket Lack detail', () => {
|
|||
|
||||
clickNotificationAction();
|
||||
|
||||
cy.dataCy('handleSplitDialog')
|
||||
cy.dataCy('HandleLackDialog')
|
||||
.should('be.visible')
|
||||
.find('tbody > tr > :nth-child(1) > .q-icon');
|
||||
cy.dataCy('handleSplitDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('handleSplitDialog')
|
||||
cy.dataCy('HandleLackDialog').find(findTr(2)).should('have.class', 'link');
|
||||
cy.dataCy('HandleLackDialog')
|
||||
.find(`${findTr(2)}.link > div > span`)
|
||||
.should('have.text', `${ticketId} `);
|
||||
cy.dataCy('handleSplitDialog').find(findTr(3)).should('have.text', '10');
|
||||
cy.dataCy('HandleLackDialog').find(findTr(3)).should('have.text', '10');
|
||||
});
|
||||
});
|
||||
describe('Item proposal', () => {
|
||||
|
|
|
@ -321,9 +321,7 @@ Cypress.Commands.add('clickButtonDescriptor', (id) => {
|
|||
});
|
||||
|
||||
Cypress.Commands.add('openUserPanel', () => {
|
||||
cy.get(
|
||||
'.column > .q-avatar > .q-avatar__content > .q-img > .q-img__container > .q-img__image',
|
||||
).click();
|
||||
cy.dataCy('userPanel_btn').click();
|
||||
});
|
||||
|
||||
Cypress.Commands.add('checkNotification', (text) => {
|
||||
|
@ -379,7 +377,13 @@ Cypress.Commands.add('clickButtonWith', (type, value) => {
|
|||
}
|
||||
});
|
||||
Cypress.Commands.add('clickButtonWithIcon', (iconClass) => {
|
||||
cy.get(`.q-icon.${iconClass}`).parent().click();
|
||||
cy.waitForElement('[data-cy="descriptor_actions"]');
|
||||
cy.get('[data-cy="loading-spinner"]', { timeout: 10000 }).should('not.be.visible');
|
||||
cy.get('.q-btn')
|
||||
.filter((index, el) => Cypress.$(el).find('.q-icon.' + iconClass).length > 0)
|
||||
.then(($btn) => {
|
||||
cy.wrap($btn).click();
|
||||
});
|
||||
});
|
||||
Cypress.Commands.add('clickButtonWithText', (buttonText) => {
|
||||
cy.get('.q-btn').contains(buttonText).click();
|
||||
|
|
|
@ -27,7 +27,17 @@ function randomNumber(options = { length: 10 }) {
|
|||
|
||||
function randomizeValue(characterSet, options) {
|
||||
return Array.from({ length: options.length }, () =>
|
||||
characterSet.charAt(Math.floor(Math.random() * characterSet.length))
|
||||
characterSet.charAt(Math.floor(Math.random() * characterSet.length)),
|
||||
).join('');
|
||||
}
|
||||
|
||||
const style = document.createElement('style');
|
||||
style.innerHTML = `
|
||||
* {
|
||||
transition: none !important;
|
||||
animation: none !important;
|
||||
}
|
||||
`;
|
||||
document.head.appendChild(style);
|
||||
|
||||
export { randomString, randomNumber, randomizeValue };
|
||||
|
|
Loading…
Reference in New Issue