diff --git a/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue b/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue
index 1fd9f3e92..8be928134 100644
--- a/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue
+++ b/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue
@@ -163,10 +163,14 @@ const showExportationLetter = () => {
- {{ t('Send PDF') }}
+
+ {{ t('Send PDF') }}
+
- {{ t('Send CSV') }}
+
+ {{ t('Send CSV') }}
+
diff --git a/src/pages/InvoiceOut/locale/en.yml b/src/pages/InvoiceOut/locale/en.yml
index 9dd31d186..f1baef432 100644
--- a/src/pages/InvoiceOut/locale/en.yml
+++ b/src/pages/InvoiceOut/locale/en.yml
@@ -24,6 +24,7 @@ invoiceOut:
min: Min
max: Max
hasPdf: Has PDF
+ search: Contains
card:
issued: Issued
customerCard: Customer card
diff --git a/src/pages/InvoiceOut/locale/es.yml b/src/pages/InvoiceOut/locale/es.yml
index 79ceb4aa8..afca27871 100644
--- a/src/pages/InvoiceOut/locale/es.yml
+++ b/src/pages/InvoiceOut/locale/es.yml
@@ -24,6 +24,7 @@ invoiceOut:
min: Min
max: Max
hasPdf: Tiene PDF
+ search: Contiene
card:
issued: Fecha emisión
customerCard: Ficha del cliente
diff --git a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js
index 82f0fa3b6..d3a84d226 100644
--- a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js
+++ b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js
@@ -1,6 +1,16 @@
///
describe('InvoiceOut list', () => {
const serial = 'Española rapida';
+ const columnCheckbox =
+ '.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner';
+ const firstRowDescriptor =
+ 'tbody > :nth-child(1) > [data-col-field="clientFk"] > .no-padding > .link';
+ const firstRowCheckbox =
+ 'tbody > :nth-child(1) > :nth-child(1) > .q-checkbox > .q-checkbox__inner ';
+ const summaryPopupIcon = '.header > :nth-child(2) > .q-btn__content > .q-icon';
+ const filterBtn = '.q-scrollarea__content > .q-btn--standard > .q-btn__content';
+ const firstSummaryIcon =
+ ':nth-child(1) > .text-right > [data-cy="tableAction-0"] > .q-btn__content > .q-icon';
beforeEach(() => {
cy.viewport(1920, 1080);
@@ -9,18 +19,32 @@ describe('InvoiceOut list', () => {
cy.typeSearchbar('{enter}');
});
- it('should search and filter an invoice and enter to the summary', () => {
- cy.typeSearchbar('1{enter}');
- cy.get('.q-virtual-scroll__content > :nth-child(2) > :nth-child(7)').click();
- cy.get('.header > a.q-btn > .q-btn__content').click();
- cy.typeSearchbar('{enter}');
- cy.dataCy('InvoiceOutFilterAmountBtn').find('input').type('8.88{enter}');
+ it('should download one pdf from the subtoolbar button', () => {
+ cy.get(firstRowCheckbox).click();
+ cy.dataCy('InvoiceOutDownloadPdfBtn').click();
});
it('should download all pdfs', () => {
- cy.get('.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner').click();
+ cy.get(columnCheckbox).click();
cy.dataCy('InvoiceOutDownloadPdfBtn').click();
- cy.get('.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner').click();
+ });
+
+ it('should open the invoice descriptor from table icon', () => {
+ cy.get(firstSummaryIcon).click();
+ cy.get('.cardSummary').should('be.visible');
+ cy.get('.summaryHeader > div').should('include.text', 'A1111111');
+ });
+
+ it('should open the client descriptor', () => {
+ cy.get(firstRowDescriptor).click();
+ cy.get(summaryPopupIcon).click();
+ });
+
+ it('should filter the results by client ID, then check the first result is correct', () => {
+ cy.dataCy('Customer ID_input').type('1103');
+ cy.get(filterBtn).click();
+ cy.get(firstRowDescriptor).click();
+ cy.get('.q-item > .q-item__label').should('include.text', '1103');
});
it('should give an error when manual invoicing a ticket that is already invoiced', () => {
@@ -31,11 +55,14 @@ describe('InvoiceOut list', () => {
cy.checkNotification('This ticket is already invoiced');
});
- it('should create a manual invoice and enter to its summary', () => {
+ it('should create a manual invoice and enter to its summary, then delete that invoice', () => {
cy.dataCy('vnTableCreateBtn').click();
- cy.dataCy('InvoiceOutCreateTicketinput').type(8);
+ cy.dataCy('InvoiceOutCreateTicketinput').type(9);
cy.selectOption('[data-cy="InvoiceOutCreateSerialSelect"]', serial);
cy.dataCy('FormModelPopup_save').click();
cy.checkNotification('Data created');
+ cy.dataCy('descriptor-more-opts').click();
+ cy.get('.q-menu > .q-list > :nth-child(4)').click();
+ cy.dataCy('VnConfirm_confirm').click();
});
});
diff --git a/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js b/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js
index 02b7fbb43..4d530de05 100644
--- a/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js
+++ b/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js
@@ -1,11 +1,26 @@
///
describe('InvoiceOut negative bases', () => {
+ const getDescriptors = (opt) =>
+ `:nth-child(1) > [data-col-field="${opt}"] > .no-padding > .link`;
+
beforeEach(() => {
cy.viewport(1920, 1080);
cy.login('developer');
cy.visit(`/#/invoice-out/negative-bases`);
});
+ it('should open the posible descriptors', () => {
+ cy.get(getDescriptors('clientId')).click();
+ cy.get('.descriptor').should('be.visible');
+ cy.get('.q-item > .q-item__label').should('include.text', '1101');
+ cy.get(getDescriptors('ticketFk')).click();
+ cy.get('.descriptor').should('be.visible');
+ cy.get('.q-item > .q-item__label').should('include.text', '23');
+ cy.get(getDescriptors('workerName')).click();
+ cy.get('.descriptor').should('be.visible');
+ cy.get('.q-item > .q-item__label').should('include.text', '18');
+ });
+
it('should filter and download as CSV', () => {
cy.get('input[name="ticketFk"]').type('23{enter}');
cy.get('#subToolbar > .q-btn').click();
diff --git a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js
index 44b0a9961..333f7e2c4 100644
--- a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js
+++ b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js
@@ -5,40 +5,91 @@ describe('InvoiceOut summary', () => {
Type: { val: 'Error in customer data', type: 'select' },
};
+ const firstRowDescriptors = (opt) =>
+ `tbody > :nth-child(1) > :nth-child(${opt}) > .q-btn`;
+ const toCustomerSummary = '[href="#/customer/1101"]';
+ const toTicketList = '[href="#/ticket/list?table={%22refFk%22:%22T1111111%22}"]';
+ const selectMenuOption = (opt) => `.q-menu > .q-list > :nth-child(${opt})`;
+ const confirmSend = '.q-btn--unelevated';
+
beforeEach(() => {
cy.viewport(1920, 1080);
cy.login('developer');
- cy.visit(`/#/invoice-out/list`);
+ cy.visit(`/#/invoice-out/1/summary`);
});
- it('should generate the invoice PDF', () => {
- cy.typeSearchbar('T1111111{enter}');
- cy.dataCy('descriptor-more-opts').click();
- cy.get('.q-menu > .q-list > :nth-child(6)').click();
- cy.dataCy('VnConfirm_confirm').click();
- cy.checkNotification('The invoice PDF document has been regenerated');
+ it('open the descriptors', () => {
+ cy.get(firstRowDescriptors(1)).click();
+ cy.get('.descriptor').should('be.visible');
+ cy.get('.q-item > .q-item__label').should('include.text', '1');
+ cy.get(firstRowDescriptors(2)).click();
+ cy.get('.descriptor').should('be.visible');
+ cy.get('.q-item > .q-item__label').should('include.text', '1101');
});
- it('should refund the invoice ', () => {
+
+ it('should open the client summary and the ticket list', () => {
+ cy.get(toCustomerSummary).click();
+ cy.get('.descriptor').should('be.visible');
+ cy.get('.q-item > .q-item__label').should('include.text', '1101');
+ });
+
+ it('should open the ticket list', () => {
+ cy.get(toTicketList).click();
+ cy.get('.descriptor').should('be.visible');
+ cy.dataCy('vnFilterPanelChip').should('include.text', 'T1111111');
+ });
+
+ it('should transfer the invoice ', () => {
cy.typeSearchbar('T1111111{enter}');
cy.dataCy('descriptor-more-opts').click();
- cy.get('.q-menu > .q-list > :nth-child(7)').click();
- cy.get('#q-portal--menu--3 > .q-menu > .q-list > :nth-child(2)').click();
- cy.checkNotification('The following refund ticket have been created');
+ cy.get(selectMenuOption(1)).click();
+ cy.fillInForm(transferInvoice);
+ cy.get('.q-mt-lg > .q-btn').click();
+ cy.checkNotification('Transferred invoice');
+ });
+
+ it('should send the invoice as PDF', () => {
+ cy.dataCy('descriptor-more-opts').click();
+ cy.get(selectMenuOption(3)).click();
+ cy.dataCy('InvoiceOutDescriptorMenuSendPdfOption').click();
+ cy.get(confirmSend).click();
+ cy.checkNotification('Notification sent');
+ });
+
+ it('should send the invoice as CSV', () => {
+ cy.dataCy('descriptor-more-opts').click();
+ cy.get(selectMenuOption(3)).click();
+ cy.dataCy('InvoiceOutDescriptorMenuSendCsvOption').click();
+ cy.get(confirmSend).click();
+ cy.checkNotification('Notification sent');
});
it('should delete an invoice ', () => {
cy.typeSearchbar('T2222222{enter}');
cy.dataCy('descriptor-more-opts').click();
- cy.get('.q-menu > .q-list > :nth-child(4)').click();
+ cy.get(selectMenuOption(4)).click();
cy.dataCy('VnConfirm_confirm').click();
cy.checkNotification('InvoiceOut deleted');
});
- it('should transfer the invoice ', () => {
- cy.typeSearchbar('T1111111{enter}');
+
+ it('should book the invoice', () => {
cy.dataCy('descriptor-more-opts').click();
- cy.get('.q-menu > .q-list > :nth-child(1)').click();
- cy.fillInForm(transferInvoice);
- cy.get('.q-mt-lg > .q-btn').click();
- cy.checkNotification('Transferred invoice');
+ cy.get(selectMenuOption(5)).click();
+ cy.dataCy('VnConfirm_confirm').click();
+ cy.checkNotification('InvoiceOut booked');
+ });
+
+ it('should generate the invoice PDF', () => {
+ cy.dataCy('descriptor-more-opts').click();
+ cy.get(selectMenuOption(6)).click();
+ cy.dataCy('VnConfirm_confirm').click();
+ cy.checkNotification('The invoice PDF document has been regenerated');
+ });
+
+ it('should refund the invoice ', () => {
+ cy.dataCy('descriptor-more-opts').click();
+ cy.get(selectMenuOption(7)).click();
+ cy.get('#q-portal--menu--3 > .q-menu > .q-list > :nth-child(2)').click();
+ cy.checkNotification('The following refund ticket have been created');
});
});