From 2e020b5ebba85ff27ff30f656143fa42e1e8d4cd Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 4 May 2023 09:02:23 +0200 Subject: [PATCH 1/4] fix(): correct version --- CHANGELOG.md | 6 +- db/changes/231801/00-aclClientInforma.sql | 3 + db/changes/231801/00-clientInforma.sql | 16 +++++ db/changes/231801/00-client_setRatingAcl.sql | 64 ++++++++++++++++++++ db/changes/231801/00-deleteProcs_refund.sql | 2 + db/changes/231801/00-kkearEntryNotes.sql | 1 + db/changes/231801/00-newCompanyI18n.sql | 9 +++ db/changes/231801/00-newTableWeb.sql | 1 + db/changes/231801/00-observationEmailACL.sql | 3 + db/changes/231801/00-updateIsVies.sql | 5 ++ db/changes/231801/00-updateisViesClient.sql | 5 ++ db/changes/231801/00-userAcl.sql | 21 +++++++ db/changes/231801/00-userRoleLog.sql | 4 ++ package-lock.json | 4 +- package.json | 2 +- 15 files changed, 141 insertions(+), 5 deletions(-) create mode 100644 db/changes/231801/00-aclClientInforma.sql create mode 100644 db/changes/231801/00-clientInforma.sql create mode 100644 db/changes/231801/00-client_setRatingAcl.sql create mode 100644 db/changes/231801/00-deleteProcs_refund.sql create mode 100644 db/changes/231801/00-kkearEntryNotes.sql create mode 100644 db/changes/231801/00-newCompanyI18n.sql create mode 100644 db/changes/231801/00-newTableWeb.sql create mode 100644 db/changes/231801/00-observationEmailACL.sql create mode 100644 db/changes/231801/00-updateIsVies.sql create mode 100644 db/changes/231801/00-updateisViesClient.sql create mode 100644 db/changes/231801/00-userAcl.sql create mode 100644 db/changes/231801/00-userRoleLog.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index 1be03b733..fa318a908 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,17 +5,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [2316.01] - 2023-05-04 +## [2318.01] - 2023-05-04 ### Added - (Usuarios -> Histórico) Nueva sección - (Roles -> Histórico) Nueva sección +- (General -> Traducciones) Correo de bienvenida a clientes al portugués y al francés ### Changed - (Artículo -> Precio fijado) Modificado el buscador superior por uno lateral ### Fixed -- +- (Ticket -> Boxing) Arreglado selección de horas + ## [2314.01] - 2023-04-20 diff --git a/db/changes/231801/00-aclClientInforma.sql b/db/changes/231801/00-aclClientInforma.sql new file mode 100644 index 000000000..6222d2632 --- /dev/null +++ b/db/changes/231801/00-aclClientInforma.sql @@ -0,0 +1,3 @@ +INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) +VALUES ('ClientInforma', '*', 'READ', 'ALLOW', 'ROLE', 'employee'), + ('ClientInforma', '*', 'WRITE', 'ALLOW', 'ROLE', 'financial'); diff --git a/db/changes/231801/00-clientInforma.sql b/db/changes/231801/00-clientInforma.sql new file mode 100644 index 000000000..9bf757fc3 --- /dev/null +++ b/db/changes/231801/00-clientInforma.sql @@ -0,0 +1,16 @@ +ALTER TABLE `vn`.`client` ADD rating INT UNSIGNED DEFAULT NULL NULL COMMENT 'información proporcionada por Informa'; +ALTER TABLE `vn`.`client` ADD recommendedCredit INT UNSIGNED DEFAULT NULL NULL COMMENT 'información proporcionada por Informa'; + +CREATE TABLE `vn`.`clientInforma` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `clientFk` int(11) NOT NULL, + `rating` int(10) unsigned DEFAULT NULL, + `recommendedCredit` int(10) unsigned DEFAULT NULL, + `workerFk` int(10) unsigned NOT NULL, + `created` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `informaWorkers_fk_idx` (`workerFk`), + KEY `informaClientFk` (`clientFk`), + CONSTRAINT `informa_ClienteFk` FOREIGN KEY (`clientFk`) REFERENCES `client` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `informa_workers_fk` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='información proporcionada por Informa, se actualiza desde el hook de client (salix)'; diff --git a/db/changes/231801/00-client_setRatingAcl.sql b/db/changes/231801/00-client_setRatingAcl.sql new file mode 100644 index 000000000..b041b131a --- /dev/null +++ b/db/changes/231801/00-client_setRatingAcl.sql @@ -0,0 +1,64 @@ +DELETE FROM `salix`.`ACL` WHERE id=7; + +INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) + VALUES + ('Client', 'setRating', 'WRITE', 'ALLOW', 'ROLE', 'financial'); + +INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) + VALUES + ('Client', '*', 'READ', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'addressesPropagateRe', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'canBeInvoiced', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'canCreateTicket', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'consumption', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'createAddress', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'createWithUser', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'extendedListFilter', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'getAverageInvoiced', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'getCard', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'getDebt', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'getMana', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'transactions', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'hasCustomerRole', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'isValidClient', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'lastActiveTickets', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'sendSms', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'setPassword', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'summary', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'updateAddress', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'updateFiscalData', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'updateUser', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'uploadFile', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'campaignMetricsPdf', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'campaignMetricsEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'clientWelcomeHtml', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'clientWelcomeEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'printerSetupHtml', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'printerSetupEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'sepaCoreEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'letterDebtorPdf', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'letterDebtorStHtml', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'letterDebtorStEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'letterDebtorNdHtml', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'letterDebtorNdEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'clientDebtStatementPdf', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'clientDebtStatementHtml', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'clientDebtStatementEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'creditRequestPdf', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'creditRequestHtml', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'creditRequestEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'incotermsAuthorizationPdf', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'incotermsAuthorizationHtml', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'incotermsAuthorizationEmail', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'consumptionSendQueued', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'filter', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'getClientOrSupplierReference', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'upsert', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'create', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'replaceById', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'updateAttributes', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'updateAttributes', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'deleteById', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'replaceOrCreate', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'updateAll', '*', 'ALLOW', 'ROLE', 'employee'), + ('Client', 'upsertWithWhere', '*', 'ALLOW', 'ROLE', 'employee'); diff --git a/db/changes/231801/00-deleteProcs_refund.sql b/db/changes/231801/00-deleteProcs_refund.sql new file mode 100644 index 000000000..8bf8982f4 --- /dev/null +++ b/db/changes/231801/00-deleteProcs_refund.sql @@ -0,0 +1,2 @@ +DROP PROCEDURE `vn`.`refund`; +DROP PROCEDURE `vn`.`ticket_doRefund`; diff --git a/db/changes/231801/00-kkearEntryNotes.sql b/db/changes/231801/00-kkearEntryNotes.sql new file mode 100644 index 000000000..ff5c7ce29 --- /dev/null +++ b/db/changes/231801/00-kkearEntryNotes.sql @@ -0,0 +1 @@ +ALTER TABLE `vn`.`entry` DROP COLUMN `notes`; \ No newline at end of file diff --git a/db/changes/231801/00-newCompanyI18n.sql b/db/changes/231801/00-newCompanyI18n.sql new file mode 100644 index 000000000..948b9cb08 --- /dev/null +++ b/db/changes/231801/00-newCompanyI18n.sql @@ -0,0 +1,9 @@ +-- vn.companyI18n definition +CREATE TABLE `vn`.`companyI18n` ( + `companyFk` smallint(5) unsigned NOT NULL, + `lang` char(2) CHARACTER SET utf8mb3 NOT NULL, + `footnotes` longtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + PRIMARY KEY (`companyFk`,`lang`), + CONSTRAINT `companyI18n_FK` FOREIGN KEY (`companyFk`) REFERENCES `company` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; + diff --git a/db/changes/231801/00-newTableWeb.sql b/db/changes/231801/00-newTableWeb.sql new file mode 100644 index 000000000..1a2402956 --- /dev/null +++ b/db/changes/231801/00-newTableWeb.sql @@ -0,0 +1 @@ +ALTER TABLE `vn`.`company` ADD `web` varchar(100) NULL; \ No newline at end of file diff --git a/db/changes/231801/00-observationEmailACL.sql b/db/changes/231801/00-observationEmailACL.sql new file mode 100644 index 000000000..1a5d475e8 --- /dev/null +++ b/db/changes/231801/00-observationEmailACL.sql @@ -0,0 +1,3 @@ +INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) + VALUES + ('Defaulter', 'observationEmail', 'WRITE', 'ALLOW', 'ROLE', 'employee'); diff --git a/db/changes/231801/00-updateIsVies.sql b/db/changes/231801/00-updateIsVies.sql new file mode 100644 index 000000000..4e5277559 --- /dev/null +++ b/db/changes/231801/00-updateIsVies.sql @@ -0,0 +1,5 @@ + UPDATE `vn`.`supplier` s + JOIN `vn`.`country` c ON c.id = s.countryFk + SET s.nif = MID(REPLACE(s.nif, ' ', ''), 3, LENGTH(REPLACE(s.nif, ' ', '')) - 1) + WHERE s.isVies = TRUE + AND c.code = LEFT(REPLACE(s.nif, ' ', ''), 2); diff --git a/db/changes/231801/00-updateisViesClient.sql b/db/changes/231801/00-updateisViesClient.sql new file mode 100644 index 000000000..a153c5219 --- /dev/null +++ b/db/changes/231801/00-updateisViesClient.sql @@ -0,0 +1,5 @@ +UPDATE IGNORE `vn`.`client` c + JOIN `vn`.`country` co ON co.id = c.countryFk + SET c.fi = MID(REPLACE(c.fi, ' ', ''), 3, LENGTH(REPLACE(c.fi, ' ', '')) - 1) + WHERE c.isVies = TRUE + AND co.code = LEFT(REPLACE(c.fi, ' ', ''), 2); diff --git a/db/changes/231801/00-userAcl.sql b/db/changes/231801/00-userAcl.sql new file mode 100644 index 000000000..64803bf18 --- /dev/null +++ b/db/changes/231801/00-userAcl.sql @@ -0,0 +1,21 @@ +INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) + VALUES + ('VnUser', '*', '*', 'ALLOW', 'ROLE', 'employee'), + ('VnUser','acl','READ','ALLOW','ROLE','account'), + ('VnUser','getCurrentUserData','READ','ALLOW','ROLE','account'), + ('VnUser','changePassword', 'WRITE', 'ALLOW', 'ROLE', 'account'), + ('Account','exists','READ','ALLOW','ROLE','account'); + +INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) + VALUES + ('Account','exists','READ','ALLOW','ROLE','account'); + +DELETE FROM `salix`.`ACL` WHERE (model, property) = ('Account', 'acl'); +DELETE FROM `salix`.`ACL` WHERE (model, property) = ('Account', 'getCurrentUserData'); +DELETE FROM `salix`.`ACL` WHERE (model, property) = ('Account', 'changePassword'); +DELETE FROM `salix`.`ACL` WHERE model = 'UserAccount'; + +UPDATE `hedera`.`imageCollection` t +SET t.model = 'VnUser' +WHERE t.id = 6; + diff --git a/db/changes/231801/00-userRoleLog.sql b/db/changes/231801/00-userRoleLog.sql new file mode 100644 index 000000000..ae5da13cb --- /dev/null +++ b/db/changes/231801/00-userRoleLog.sql @@ -0,0 +1,4 @@ +INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) + VALUES + ('UserLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee'), + ('RoleLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee'); diff --git a/package-lock.json b/package-lock.json index fae8837fa..d373248fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "salix-back", - "version": "23.16.01", - "lockfileVersion": 2, + "version": "23.18.01", + "lockfileVersion": 1, "requires": true, "packages": { "": { diff --git a/package.json b/package.json index 8d6c5340b..fee164f44 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-back", - "version": "23.16.01", + "version": "23.18.01", "author": "Verdnatura Levante SL", "description": "Salix backend", "license": "GPL-3.0", From 68b1b6c5bd1ce930d913aed9af19f7f9139edd09 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Mon, 8 May 2023 12:03:27 +0200 Subject: [PATCH 2/4] refs #5517 E2E fixes --- e2e/helpers/selectors.js | 24 --- e2e/paths/02-client/14_balance.spec.js | 147 ++++++++---------- .../02-client/23_send_compensation.spec.js | 13 +- e2e/paths/04-item/03_tax.spec.js | 8 - .../05-ticket/01-sale/02_edit_sale.spec.js | 16 +- e2e/paths/05-ticket/18_index_payout.spec.js | 40 ++--- e2e/paths/07-order/01_summary.spec.js | 67 +++----- e2e/paths/08-route/04_tickets.spec.js | 7 - e2e/paths/12-entry/03_latestBuys.spec.js | 14 -- front/core/components/popover/index.spec.js | 24 --- loopback/locale/en.json | 3 +- .../client/front/balance/create/index.html | 18 ++- 12 files changed, 137 insertions(+), 244 deletions(-) diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 9181e9d9c..b19db24d7 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -285,21 +285,6 @@ export default { clientMandate: { firstMandateText: 'vn-client-mandate vn-card vn-table vn-tbody > vn-tr' }, - clientBalance: { - company: 'vn-client-balance-index vn-autocomplete[ng-model="$ctrl.companyId"]', - newPaymentButton: `vn-float-button`, - newPaymentBank: '.vn-dialog.shown vn-autocomplete[ng-model="$ctrl.bankFk"]', - newPaymentAmount: '.vn-dialog.shown vn-input-number[ng-model="$ctrl.amountPaid"]', - newDescription: 'vn-textfield[ng-model="$ctrl.receipt.description"]', - deliveredAmount: '.vn-dialog vn-input-number[ng-model="$ctrl.deliveredAmount"]', - refundAmount: '.vn-dialog vn-input-number[ng-model="$ctrl.amountToReturn"]', - saveButton: '.vn-dialog.shown [response="accept"]', - anyBalanceLine: 'vn-client-balance-index vn-tbody > vn-tr', - firstLineBalance: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(8)', - firstLineReference: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td-editable', - firstLineReferenceInput: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td-editable > div > field > vn-textfield', - compensationButton: 'vn-client-balance-index vn-icon-button[vn-dialog="send_compensation"]' - }, webPayment: { confirmFirstPaymentButton: 'vn-client-web-payment vn-tr:nth-child(1) vn-icon-button[icon="done_all"]', firstPaymentConfirmed: 'vn-client-web-payment vn-tr:nth-child(1) vn-icon[icon="check"]' @@ -841,15 +826,6 @@ export default { landedDatePicker: 'vn-date-picker[label="Landed"]', createButton: 'button[type=submit]' }, - orderSummary: { - id: 'vn-order-summary vn-one:nth-child(1) > vn-label-value:nth-child(1) span', - alias: 'vn-order-summary vn-one:nth-child(1) > vn-label-value:nth-child(2) span', - consignee: 'vn-order-summary vn-one:nth-child(2) > vn-label-value:nth-child(6) span', - subtotal: 'vn-order-summary vn-one.taxes > p:nth-child(1)', - vat: 'vn-order-summary vn-one.taxes > p:nth-child(2)', - total: 'vn-order-summary vn-one.taxes > p:nth-child(3)', - sale: 'vn-order-summary vn-tbody > vn-tr', - }, orderCatalog: { plantRealmButton: 'vn-order-catalog > vn-side-menu vn-icon[icon="icon-plant"]', type: 'vn-order-catalog vn-autocomplete[data="$ctrl.itemTypes"]', diff --git a/e2e/paths/02-client/14_balance.spec.js b/e2e/paths/02-client/14_balance.spec.js index d3de842e3..b1c0f7eea 100644 --- a/e2e/paths/02-client/14_balance.spec.js +++ b/e2e/paths/02-client/14_balance.spec.js @@ -1,6 +1,17 @@ import selectors from '../../helpers/selectors'; import getBrowser from '../../helpers/puppeteer'; +const $ = { + company: 'vn-client-balance-index vn-autocomplete[ng-model="$ctrl.companyId"]', + newPaymentButton: `vn-float-button`, + newPayment: '.vn-dialog.shown', + refundAmount: '.vn-dialog.shown [vn-name="amountToReturn"]', + saveButton: '.vn-dialog.shown [response="accept"]', + firstLineBalance: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(8)', + firstLineReference: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td-editable', + firstLineReferenceInput: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td-editable vn-textfield', +}; + describe('Client balance path', () => { let browser; let page; @@ -18,125 +29,100 @@ describe('Client balance path', () => { it('should now edit the local user config data', async() => { await page.waitToClick(selectors.globalItems.userMenuButton); await page.autocompleteSearch(selectors.globalItems.userLocalCompany, 'CCs'); - const message = await page.waitForSnackbar(); + const companyMessage = await page.waitForSnackbar(); - expect(message.text).toContain('Data saved!'); - }); - - it('should access to the balance section to check the data shown matches the local settings', async() => { await page.accessToSection('client.card.balance.index'); - let result = await page.waitToGetProperty(selectors.clientBalance.company, 'value'); + const company = await page.getValue($.company); - expect(result).toEqual('CCs'); - }); - - it('should now clear the user local settings', async() => { await page.waitToClick(selectors.globalItems.userMenuButton); await page.clearInput(selectors.globalItems.userConfigThirdAutocomplete); const message = await page.waitForSnackbar(); - expect(message.text).toContain('Data saved!'); - }); - - it('should reload the section', async() => { await page.closePopup(); await page.reloadSection('client.card.balance.index'); + + expect(companyMessage.isSuccess).toBeTrue(); + expect(company).toEqual('CCs'); + expect(message.isSuccess).toBeTrue(); }); it('should create a new payment that clears the debt', async() => { - await page.closePopup(); - await page.waitToClick(selectors.clientBalance.newPaymentButton); - await page.autocompleteSearch(selectors.clientBalance.newPaymentBank, 'Cash'); - await page.clearInput(selectors.clientBalance.newDescription); - await page.write(selectors.clientBalance.newDescription, 'Description'); - await page.waitToClick(selectors.clientBalance.saveButton); + await page.waitToClick($.newPaymentButton); + await page.fillForm($.newPayment, { + bank: 'Cash', + description: 'Description', + viewReceipt: false + }); + await page.respondToDialog('accept'); const message = await page.waitForSnackbar(); - expect(message.text).toContain('Data saved!'); + expect(message.isSuccess).toBeTrue(); }); - it('should edit the 1st line reference', async() => { - await page.waitToClick(selectors.clientBalance.firstLineReference); - await page.write(selectors.clientBalance.firstLineReferenceInput, 'Miscellaneous payment'); + it('should edit the 1st line reference and check data', async() => { + await page.waitToClick($.firstLineReference); + await page.write($.firstLineReferenceInput, 'Miscellaneous payment'); await page.keyboard.press('Enter'); const message = await page.waitForSnackbar(); - expect(message.text).toContain('Data saved!'); - }); - - it('should check balance is now 0, the reference was saved and the company is now VNL becouse the user local settings were removed', async() => { await page.waitForSpinnerLoad(); - let company = await page - .waitToGetProperty(selectors.clientBalance.company, 'value'); - - let reference = await page - .waitToGetProperty(selectors.clientBalance.firstLineReference, 'innerText'); - - let firstBalanceLine = await page - .waitToGetProperty(selectors.clientBalance.firstLineBalance, 'innerText'); + let company = await page.getValue($.company); + let reference = await page.innerText($.firstLineReference); + let firstBalanceLine = await page.innerText($.firstLineBalance); + expect(message.isSuccess).toBeTrue(); expect(company).toEqual('VNL'); expect(reference).toEqual('Miscellaneous payment'); expect(firstBalanceLine).toContain('0.00'); }); - it('should create a new payment and check the cash comparison works correctly', async() => { - const amountPaid = '100'; - const cashHanded = '500'; - const expectedRefund = '400'; - - await page.waitToClick(selectors.clientBalance.newPaymentButton); - await page.write(selectors.clientBalance.newPaymentAmount, amountPaid); - await page.clearInput(selectors.clientBalance.newDescription); - await page.write(selectors.clientBalance.newDescription, 'Payment'); - await page.write(selectors.clientBalance.deliveredAmount, cashHanded); - const refund = await page.waitToGetProperty(selectors.clientBalance.refundAmount, 'value'); - await page.waitToClick(selectors.clientBalance.saveButton); + it('should create a new payment, check the cash comparison works correctly and balance value is -100', async() => { + await page.waitToClick($.newPaymentButton); + await page.fillForm($.newPayment, { + amountPaid: 100, + description: 'Payment', + deliveredAmount: 500, + viewReceipt: false + }); + const refund = await page.getValue($.refundAmount); + await page.respondToDialog('accept'); const message = await page.waitForSnackbar(); - expect(refund).toEqual(expectedRefund); - expect(message.text).toContain('Data saved!'); - }); - - it('should check the balance value is now -100', async() => { - let result = await page - .waitToGetProperty(selectors.clientBalance.firstLineBalance, 'innerText'); + const result = await page.innerText($.firstLineBalance); + expect(refund).toEqual('400'); + expect(message.isSuccess).toBeTrue(); expect(result).toContain('-€100.00'); }); it('should create a new payment and check the cash exceeded the maximum', async() => { - const amountPaid = '1001'; - - await page.closePopup(); - await page.waitToClick(selectors.clientBalance.newPaymentButton); - await page.autocompleteSearch(selectors.clientBalance.newPaymentBank, 'Cash'); - await page.write(selectors.clientBalance.newPaymentAmount, amountPaid); - await page.clearInput(selectors.clientBalance.newDescription); - await page.write(selectors.clientBalance.newDescription, 'Payment'); - await page.waitToClick(selectors.clientBalance.saveButton); + await page.waitToClick($.newPaymentButton); + await page.fillForm($.newPayment, { + bank: 'Cash', + amountPaid: 1001, + description: 'Payment' + }); + await page.waitToClick($.saveButton); const message = await page.waitForSnackbar(); expect(message.text).toContain('Amount exceeded'); }); - it('should create a new payment that sets the balance back to the original negative value', async() => { + it('should create a new payment that sets the balance back to negative value and check it', async() => { await page.closePopup(); - await page.waitToClick(selectors.clientBalance.newPaymentButton); - await page.autocompleteSearch(selectors.clientBalance.newPaymentBank, 'Pay on receipt'); - await page.overwrite(selectors.clientBalance.newPaymentAmount, '-150'); - await page.clearInput(selectors.clientBalance.newDescription); - await page.write(selectors.clientBalance.newDescription, 'Description'); - await page.waitToClick(selectors.clientBalance.saveButton); + await page.waitToClick($.newPaymentButton); + + await page.fillForm($.newPayment, { + bank: 'Pay on receipt', + amountPaid: -150, + description: 'Description' + }); + await page.respondToDialog('accept'); const message = await page.waitForSnackbar(); - expect(message.text).toContain('Data saved!'); - }); - - it('should check balance is now 50', async() => { - let result = await page - .waitToGetProperty(selectors.clientBalance.firstLineBalance, 'innerText'); + const result = await page.innerText($.firstLineBalance); + expect(message.isSuccess).toBeTrue(); expect(result).toEqual('€50.00'); }); @@ -149,12 +135,9 @@ describe('Client balance path', () => { await page.waitForState('client.index'); }); - it('should now search for the user Petter Parker', async() => { + it('should now search for the user Petter Parker not check the payment button is not present', async() => { await page.accessToSearchResult('Petter Parker'); await page.accessToSection('client.card.balance.index'); - }); - - it('should not be able to click the new payment button as it isnt present', async() => { - await page.waitForSelector(selectors.clientBalance.newPaymentButton, {hidden: true}); + await page.waitForSelector($.newPaymentButton, {hidden: true}); }); }); diff --git a/e2e/paths/02-client/23_send_compensation.spec.js b/e2e/paths/02-client/23_send_compensation.spec.js index 6ec8936a8..7ab2d0bac 100644 --- a/e2e/paths/02-client/23_send_compensation.spec.js +++ b/e2e/paths/02-client/23_send_compensation.spec.js @@ -1,6 +1,11 @@ -import selectors from '../../helpers/selectors'; import getBrowser from '../../helpers/puppeteer'; +const $ = { + company: 'vn-client-balance-index vn-autocomplete[ng-model="$ctrl.companyId"]', + compensationButton: 'vn-client-balance-index vn-icon-button[vn-dialog="send_compensation"]', + saveButton: '.vn-dialog.shown [response="accept"]' +}; + describe('Client Send balance compensation', () => { let browser; let page; @@ -17,9 +22,9 @@ describe('Client Send balance compensation', () => { }); it(`should click on send compensation button`, async() => { - await page.autocompleteSearch(selectors.clientBalance.company, 'VNL'); - await page.waitToClick(selectors.clientBalance.compensationButton); - await page.waitToClick(selectors.clientBalance.saveButton); + await page.autocompleteSearch($.company, 'VNL'); + await page.waitToClick($.compensationButton); + await page.waitToClick($.saveButton); const message = await page.waitForSnackbar(); expect(message.text).toContain('Notification sent!'); diff --git a/e2e/paths/04-item/03_tax.spec.js b/e2e/paths/04-item/03_tax.spec.js index 8b3b0f8b1..83f4e6bee 100644 --- a/e2e/paths/04-item/03_tax.spec.js +++ b/e2e/paths/04-item/03_tax.spec.js @@ -53,12 +53,4 @@ describe('Item edit tax path', () => { expect(firstVatType).toEqual('Reduced VAT'); }); - - // # #2680 Undo changes button bugs - xit(`should now click the undo changes button and see the form is restored`, async() => { - await page.waitToClick(selectors.itemTax.undoChangesButton); - const firstVatType = await page.waitToGetProperty(selectors.itemTax.firstClass, 'value'); - - expect(firstVatType).toEqual('General VAT'); - }); }); diff --git a/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js b/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js index 1b3204046..2c9646708 100644 --- a/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js +++ b/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js @@ -316,7 +316,7 @@ describe('Ticket Edit sale path', () => { it('should confirm the transfered quantity is the correct one', async() => { const result = await page.waitToGetProperty(selectors.ticketSales.secondSaleQuantityCell, 'innerText'); - expect(result).toContain('20'); + expect(result).toContain('10'); }); it('should go back to the original ticket sales section', async() => { @@ -425,20 +425,6 @@ describe('Ticket Edit sale path', () => { expect(result).toBeFalsy(); }); - // tickets no longer update their totals instantly, a task performed ever 5-10 mins does it. disabled this test until it changes. - xit('should update all sales discount', async() => { - await page.closePopup(); - await page.waitToClick(selectors.ticketSales.moreMenu); - await page.waitToClick(selectors.ticketSales.moreMenuUpdateDiscount); - await page.waitForSelector(selectors.ticketSales.moreMenuUpdateDiscountInput); - await page.type(selectors.ticketSales.moreMenuUpdateDiscountInput, '100'); - await page.keyboard.press('Enter'); - await page.waitForTextInElement(selectors.ticketSales.totalImport, '0.00'); - const result = await page.waitToGetProperty(selectors.ticketSales.totalImport, 'innerText'); - - expect(result).toContain('0.00'); - }); - it('should log in as Production role and go to a target ticket summary', async() => { await page.loginAndModule('production', 'ticket'); await page.accessToSearchResult('13'); diff --git a/e2e/paths/05-ticket/18_index_payout.spec.js b/e2e/paths/05-ticket/18_index_payout.spec.js index 220dacf61..7e5201d11 100644 --- a/e2e/paths/05-ticket/18_index_payout.spec.js +++ b/e2e/paths/05-ticket/18_index_payout.spec.js @@ -1,5 +1,10 @@ import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; +const $ = { + newPayment: '.vn-dialog.shown', + anyBalanceLine: 'vn-client-balance-index vn-tbody > vn-tr', + firstLineReference: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td-editable' +}; describe('Ticket index payout path', () => { let browser; @@ -8,17 +13,14 @@ describe('Ticket index payout path', () => { beforeAll(async() => { browser = await getBrowser(); page = browser.page; + await page.loginAndModule('administrative', 'ticket'); + await page.waitForState('ticket.index'); }); afterAll(async() => { await browser.close(); }); - it('should navigate to the ticket index', async() => { - await page.loginAndModule('administrative', 'ticket'); - await page.waitForState('ticket.index'); - }); - it('should check the second ticket from a client and 1 of another', async() => { await page.waitToClick(selectors.globalItems.searchButton); await page.waitToClick(selectors.ticketsIndex.thirdTicketCheckbox); @@ -42,27 +44,27 @@ describe('Ticket index payout path', () => { await page.waitForSelector(selectors.ticketsIndex.payoutCompany); }); - it('should fill the company and bank to perform a payout', async() => { - await page.autocompleteSearch(selectors.ticketsIndex.payoutCompany, 'VNL'); - await page.autocompleteSearch(selectors.ticketsIndex.payoutBank, 'cash'); - await page.write(selectors.clientBalance.newPaymentAmount, '100'); - await page.write(selectors.ticketsIndex.payoutDescription, 'Payment'); - await page.waitToClick(selectors.ticketsIndex.submitPayout); + it('should fill the company and bank to perform a payout and check a new balance line was entered', async() => { + await page.fillForm($.newPayment, { + company: 'VNL', + bank: 'cash', + amountPaid: 100, + description: 'Payment', + viewReceipt: false + }); + await page.respondToDialog('accept'); const message = await page.waitForSnackbar(); - expect(message.text).toContain('Data saved!'); - }); - - it('should navigate to the client balance section and check a new balance line was entered', async() => { await page.waitToClick(selectors.globalItems.homeButton); await page.selectModule('client'); await page.accessToSearchResult('1101'); await page.accessToSection('client.card.balance.index'); - await page.waitForSelector(selectors.clientBalance.anyBalanceLine); - const count = await page.countElement(selectors.clientBalance.anyBalanceLine); - const reference = await page.waitToGetProperty(selectors.clientBalance.firstLineReference, 'innerText'); + await page.waitForSelector($.anyBalanceLine); + const count = await page.countElement($.anyBalanceLine); + const reference = await page.innerText($.firstLineReference); + expect(message.isSuccess).toBeTrue(); expect(count).toEqual(4); - expect(reference).toContain('Cash, Albaran: 7, 8Payment'); + expect(reference).toContain('Payment'); }); }); diff --git a/e2e/paths/07-order/01_summary.spec.js b/e2e/paths/07-order/01_summary.spec.js index 922d5eeee..9df481ef6 100644 --- a/e2e/paths/07-order/01_summary.spec.js +++ b/e2e/paths/07-order/01_summary.spec.js @@ -1,6 +1,15 @@ -import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; +const $ = { + id: 'vn-order-summary vn-one:nth-child(1) > vn-label-value:nth-child(1) span', + alias: 'vn-order-summary vn-one:nth-child(1) > vn-label-value:nth-child(2) span', + consignee: 'vn-order-summary vn-one:nth-child(2) > vn-label-value:nth-child(6) span', + subtotal: 'vn-order-summary vn-one.taxes > p:nth-child(1)', + vat: 'vn-order-summary vn-one.taxes > p:nth-child(2)', + total: 'vn-order-summary vn-one.taxes > p:nth-child(3)', + sale: 'vn-order-summary vn-tbody > vn-tr', +}; + describe('Order summary path', () => { let browser; let page; @@ -15,49 +24,23 @@ describe('Order summary path', () => { await browser.close(); }); - it('should reach the order summary section', async() => { + it('should reach the order summary section and check data', async() => { await page.waitForState('order.card.summary'); - }); - it('should check the summary contains the order id', async() => { - const result = await page.waitToGetProperty(selectors.orderSummary.id, 'innerText'); + const id = await page.innerText($.id); + const alias = await page.innerText($.alias); + const consignee = await page.innerText($.consignee); + const subtotal = await page.innerText($.subtotal); + const vat = await page.innerText($.vat); + const total = await page.innerText($.total); + const sale = await page.countElement($.sale); - expect(result).toEqual('16'); - }); - - it('should check the summary contains the order alias', async() => { - const result = await page.waitToGetProperty(selectors.orderSummary.alias, 'innerText'); - - expect(result).toEqual('Many places'); - }); - - it('should check the summary contains the order consignee', async() => { - const result = await page.waitToGetProperty(selectors.orderSummary.consignee, 'innerText'); - - expect(result).toEqual('address 26 - Gotham (Province one)'); - }); - - it('should check the summary contains the order subtotal', async() => { - const result = await page.waitToGetProperty(selectors.orderSummary.subtotal, 'innerText'); - - expect(result.length).toBeGreaterThan(1); - }); - - it('should check the summary contains the order vat', async() => { - const result = await page.waitToGetProperty(selectors.orderSummary.vat, 'innerText'); - - expect(result.length).toBeGreaterThan(1); - }); - - it('should check the summary contains the order total', async() => { - const result = await page.waitToGetProperty(selectors.orderSummary.total, 'innerText'); - - expect(result.length).toBeGreaterThan(1); - }); - - it('should check the summary contains the order sales', async() => { - const result = await page.countElement(selectors.orderSummary.sale); - - expect(result).toBeGreaterThan(0); + expect(id).toEqual('16'); + expect(alias).toEqual('Many places'); + expect(consignee).toEqual('address 26 - Gotham (Province one)'); + expect(subtotal.length).toBeGreaterThan(1); + expect(vat.length).toBeGreaterThan(1); + expect(total.length).toBeGreaterThan(1); + expect(sale).toBeGreaterThan(0); }); }); diff --git a/e2e/paths/08-route/04_tickets.spec.js b/e2e/paths/08-route/04_tickets.spec.js index 950e11d3e..ccd5562c2 100644 --- a/e2e/paths/08-route/04_tickets.spec.js +++ b/e2e/paths/08-route/04_tickets.spec.js @@ -57,11 +57,4 @@ describe('Route tickets path', () => { it('should now count how many tickets are in route to find one less', async() => { await page.waitForNumberOfElements(selectors.routeTickets.anyTicket, 0); }); - - // #2862 updateVolume() route descriptor no actualiza volumen - xit('should confirm the route volume on the descriptor has been updated by the changes made', async() => { - const result = await page.waitToGetProperty(selectors.routeDescriptor.volume, 'innerText'); - - expect(result).toEqual('0 / 50 m³'); - }); }); diff --git a/e2e/paths/12-entry/03_latestBuys.spec.js b/e2e/paths/12-entry/03_latestBuys.spec.js index a73e12659..9ec072912 100644 --- a/e2e/paths/12-entry/03_latestBuys.spec.js +++ b/e2e/paths/12-entry/03_latestBuys.spec.js @@ -42,20 +42,6 @@ describe('Entry lastest buys path', () => { expect(httpRequests.find(req => req.includes(('typeFk')))).toBeDefined(); }); - it('should filter by from date', async() => { - await page.pickDate(selectors.entryLatestBuys.fromInput, new Date()); - await page.waitToClick(selectors.entryLatestBuys.chip); - - expect(httpRequests.find(req => req.includes(('from')))).toBeDefined(); - }); - - it('should filter by to date', async() => { - await page.pickDate(selectors.entryLatestBuys.toInput, new Date()); - await page.waitToClick(selectors.entryLatestBuys.chip); - - expect(httpRequests.find(req => req.includes(('to')))).toBeDefined(); - }); - it('should filter by sales person', async() => { await page.autocompleteSearch(selectors.entryLatestBuys.salesPersonInput, 'buyerNick'); await page.waitToClick(selectors.entryLatestBuys.chip); diff --git a/front/core/components/popover/index.spec.js b/front/core/components/popover/index.spec.js index dc6e3b23f..4590a8e24 100644 --- a/front/core/components/popover/index.spec.js +++ b/front/core/components/popover/index.spec.js @@ -36,30 +36,6 @@ describe('Component vnPopover', () => { expect(controller.emit).not.toHaveBeenCalledWith('open'); }); - - // #1615 migrar karma a jest (this doesn't work anymore, needs fixing) - xit(`should check that popover is visible into the screen`, () => { - $parent.css({ - backgroundColor: 'red', - position: 'absolute', - width: '50px', - height: '50px', - top: '0', - left: '100px' - }); - controller.show($parent[0]); - - let rect = controller.popover.getBoundingClientRect(); - let style = controller.window.getComputedStyle(controller.element); - - expect(style.visibility).toEqual('visible'); - expect(style.display).not.toEqual('none'); - - expect(0).toBeLessThanOrEqual(rect.top); - expect(0).toBeLessThanOrEqual(rect.left); - expect(controller.window.innerHeight).toBeGreaterThan(rect.bottom); - expect(controller.window.innerWidth).toBeGreaterThan(rect.right); - }); }); describe('hide()', () => { diff --git a/loopback/locale/en.json b/loopback/locale/en.json index ae0da8170..cffedd891 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -170,5 +170,6 @@ "comercialName": "Comercial", "Added observation": "Added observation", "Comment added to client": "Comment added to client", - "This ticket is already a refund": "This ticket is already a refund" + "This ticket is already a refund": "This ticket is already a refund", + "A claim with that sale already exists": "A claim with that sale already exists" } \ No newline at end of file diff --git a/modules/client/front/balance/create/index.html b/modules/client/front/balance/create/index.html index 524b2b2ef..27b182c9a 100644 --- a/modules/client/front/balance/create/index.html +++ b/modules/client/front/balance/create/index.html @@ -13,6 +13,7 @@ @@ -33,6 +35,7 @@ fields="['accountingTypeFk']" include="{relation: 'accountingType'}" ng-model="$ctrl.bankFk" + vn-name="bank" search-function="$ctrl.bankSearchFunc($search)" selection="$ctrl.bankSelection" order="id" @@ -43,6 +46,7 @@ vn-focus label="Amount" ng-model="$ctrl.amountPaid" + vn-name="amountPaid" step="0.01" required="true" max="$ctrl.maxAmount"> @@ -52,6 +56,7 @@
Compensation
@@ -60,6 +65,7 @@ @@ -70,23 +76,27 @@ + step="0.01" + vn-name="deliveredAmount"> + label="Amount to return" + vn-name="amountToReturn"> + ng-model="$ctrl.viewReceipt" + vn-name="viewReceipt"> + ng-model="$ctrl.sendEmail" + vn-name="sendEmail"> From 90465c275a28146d4ded5dfa95b3dbb3476a39e0 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 8 May 2023 12:21:20 +0200 Subject: [PATCH 3/4] correct folder --- db/changes/231601/00-aclClientInforma.sql | 3 - db/changes/231601/00-clientInforma.sql | 16 ----- db/changes/231601/00-client_setRatingAcl.sql | 64 ------------------- db/changes/231601/00-deleteProcs_refund.sql | 2 - db/changes/231601/00-kkearEntryNotes.sql | 1 - db/changes/231601/00-newCompanyI18n.sql | 9 --- db/changes/231601/00-newTableWeb.sql | 1 - db/changes/231601/00-observationEmailACL.sql | 3 - db/changes/231601/00-updateIsVies.sql | 5 -- db/changes/231601/00-updateisViesClient.sql | 5 -- db/changes/231601/00-userAcl.sql | 21 ------ db/changes/231601/00-userRoleLog.sql | 4 -- .../{231601 => 231801}/00-saleTracking.sql | 0 13 files changed, 134 deletions(-) delete mode 100644 db/changes/231601/00-aclClientInforma.sql delete mode 100644 db/changes/231601/00-clientInforma.sql delete mode 100644 db/changes/231601/00-client_setRatingAcl.sql delete mode 100644 db/changes/231601/00-deleteProcs_refund.sql delete mode 100644 db/changes/231601/00-kkearEntryNotes.sql delete mode 100644 db/changes/231601/00-newCompanyI18n.sql delete mode 100644 db/changes/231601/00-newTableWeb.sql delete mode 100644 db/changes/231601/00-observationEmailACL.sql delete mode 100644 db/changes/231601/00-updateIsVies.sql delete mode 100644 db/changes/231601/00-updateisViesClient.sql delete mode 100644 db/changes/231601/00-userAcl.sql delete mode 100644 db/changes/231601/00-userRoleLog.sql rename db/changes/{231601 => 231801}/00-saleTracking.sql (100%) diff --git a/db/changes/231601/00-aclClientInforma.sql b/db/changes/231601/00-aclClientInforma.sql deleted file mode 100644 index 6222d2632..000000000 --- a/db/changes/231601/00-aclClientInforma.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) -VALUES ('ClientInforma', '*', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('ClientInforma', '*', 'WRITE', 'ALLOW', 'ROLE', 'financial'); diff --git a/db/changes/231601/00-clientInforma.sql b/db/changes/231601/00-clientInforma.sql deleted file mode 100644 index 9bf757fc3..000000000 --- a/db/changes/231601/00-clientInforma.sql +++ /dev/null @@ -1,16 +0,0 @@ -ALTER TABLE `vn`.`client` ADD rating INT UNSIGNED DEFAULT NULL NULL COMMENT 'información proporcionada por Informa'; -ALTER TABLE `vn`.`client` ADD recommendedCredit INT UNSIGNED DEFAULT NULL NULL COMMENT 'información proporcionada por Informa'; - -CREATE TABLE `vn`.`clientInforma` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `clientFk` int(11) NOT NULL, - `rating` int(10) unsigned DEFAULT NULL, - `recommendedCredit` int(10) unsigned DEFAULT NULL, - `workerFk` int(10) unsigned NOT NULL, - `created` timestamp NOT NULL DEFAULT current_timestamp(), - PRIMARY KEY (`id`), - KEY `informaWorkers_fk_idx` (`workerFk`), - KEY `informaClientFk` (`clientFk`), - CONSTRAINT `informa_ClienteFk` FOREIGN KEY (`clientFk`) REFERENCES `client` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `informa_workers_fk` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE -) ENGINE=InnoDB CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='información proporcionada por Informa, se actualiza desde el hook de client (salix)'; diff --git a/db/changes/231601/00-client_setRatingAcl.sql b/db/changes/231601/00-client_setRatingAcl.sql deleted file mode 100644 index b041b131a..000000000 --- a/db/changes/231601/00-client_setRatingAcl.sql +++ /dev/null @@ -1,64 +0,0 @@ -DELETE FROM `salix`.`ACL` WHERE id=7; - -INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) - VALUES - ('Client', 'setRating', 'WRITE', 'ALLOW', 'ROLE', 'financial'); - -INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) - VALUES - ('Client', '*', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'addressesPropagateRe', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'canBeInvoiced', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'canCreateTicket', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'consumption', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'createAddress', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'createWithUser', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'extendedListFilter', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'getAverageInvoiced', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'getCard', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'getDebt', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'getMana', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'transactions', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'hasCustomerRole', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'isValidClient', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'lastActiveTickets', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'sendSms', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'setPassword', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'summary', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'updateAddress', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'updateFiscalData', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'updateUser', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'uploadFile', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'campaignMetricsPdf', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'campaignMetricsEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'clientWelcomeHtml', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'clientWelcomeEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'printerSetupHtml', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'printerSetupEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'sepaCoreEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'letterDebtorPdf', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'letterDebtorStHtml', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'letterDebtorStEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'letterDebtorNdHtml', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'letterDebtorNdEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'clientDebtStatementPdf', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'clientDebtStatementHtml', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'clientDebtStatementEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'creditRequestPdf', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'creditRequestHtml', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'creditRequestEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'incotermsAuthorizationPdf', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'incotermsAuthorizationHtml', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'incotermsAuthorizationEmail', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'consumptionSendQueued', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'filter', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'getClientOrSupplierReference', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'upsert', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'create', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'replaceById', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'updateAttributes', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'updateAttributes', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'deleteById', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'replaceOrCreate', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'updateAll', '*', 'ALLOW', 'ROLE', 'employee'), - ('Client', 'upsertWithWhere', '*', 'ALLOW', 'ROLE', 'employee'); diff --git a/db/changes/231601/00-deleteProcs_refund.sql b/db/changes/231601/00-deleteProcs_refund.sql deleted file mode 100644 index 8bf8982f4..000000000 --- a/db/changes/231601/00-deleteProcs_refund.sql +++ /dev/null @@ -1,2 +0,0 @@ -DROP PROCEDURE `vn`.`refund`; -DROP PROCEDURE `vn`.`ticket_doRefund`; diff --git a/db/changes/231601/00-kkearEntryNotes.sql b/db/changes/231601/00-kkearEntryNotes.sql deleted file mode 100644 index ff5c7ce29..000000000 --- a/db/changes/231601/00-kkearEntryNotes.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `vn`.`entry` DROP COLUMN `notes`; \ No newline at end of file diff --git a/db/changes/231601/00-newCompanyI18n.sql b/db/changes/231601/00-newCompanyI18n.sql deleted file mode 100644 index 948b9cb08..000000000 --- a/db/changes/231601/00-newCompanyI18n.sql +++ /dev/null @@ -1,9 +0,0 @@ --- vn.companyI18n definition -CREATE TABLE `vn`.`companyI18n` ( - `companyFk` smallint(5) unsigned NOT NULL, - `lang` char(2) CHARACTER SET utf8mb3 NOT NULL, - `footnotes` longtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, - PRIMARY KEY (`companyFk`,`lang`), - CONSTRAINT `companyI18n_FK` FOREIGN KEY (`companyFk`) REFERENCES `company` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; - diff --git a/db/changes/231601/00-newTableWeb.sql b/db/changes/231601/00-newTableWeb.sql deleted file mode 100644 index 1a2402956..000000000 --- a/db/changes/231601/00-newTableWeb.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `vn`.`company` ADD `web` varchar(100) NULL; \ No newline at end of file diff --git a/db/changes/231601/00-observationEmailACL.sql b/db/changes/231601/00-observationEmailACL.sql deleted file mode 100644 index 1a5d475e8..000000000 --- a/db/changes/231601/00-observationEmailACL.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) - VALUES - ('Defaulter', 'observationEmail', 'WRITE', 'ALLOW', 'ROLE', 'employee'); diff --git a/db/changes/231601/00-updateIsVies.sql b/db/changes/231601/00-updateIsVies.sql deleted file mode 100644 index 83fde7352..000000000 --- a/db/changes/231601/00-updateIsVies.sql +++ /dev/null @@ -1,5 +0,0 @@ - UPDATE vn.supplier s - JOIN vn.country c ON c.id = s.countryFk - SET s.nif = MID(REPLACE(s.nif, ' ', ''), 3, LENGTH(REPLACE(s.nif, ' ', '')) - 1) - WHERE s.isVies = TRUE - AND c.code = LEFT(REPLACE(s.nif, ' ', ''), 2); \ No newline at end of file diff --git a/db/changes/231601/00-updateisViesClient.sql b/db/changes/231601/00-updateisViesClient.sql deleted file mode 100644 index bdf62d7a8..000000000 --- a/db/changes/231601/00-updateisViesClient.sql +++ /dev/null @@ -1,5 +0,0 @@ -UPDATE IGNORE vn.client c - JOIN vn.country co ON co.id = c.countryFk - SET c.fi = MID(REPLACE(c.fi, ' ', ''), 3, LENGTH(REPLACE(c.fi, ' ', '')) - 1) - WHERE c.isVies = TRUE - AND co.code = LEFT(REPLACE(c.fi, ' ', ''), 2); \ No newline at end of file diff --git a/db/changes/231601/00-userAcl.sql b/db/changes/231601/00-userAcl.sql deleted file mode 100644 index 64803bf18..000000000 --- a/db/changes/231601/00-userAcl.sql +++ /dev/null @@ -1,21 +0,0 @@ -INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) - VALUES - ('VnUser', '*', '*', 'ALLOW', 'ROLE', 'employee'), - ('VnUser','acl','READ','ALLOW','ROLE','account'), - ('VnUser','getCurrentUserData','READ','ALLOW','ROLE','account'), - ('VnUser','changePassword', 'WRITE', 'ALLOW', 'ROLE', 'account'), - ('Account','exists','READ','ALLOW','ROLE','account'); - -INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) - VALUES - ('Account','exists','READ','ALLOW','ROLE','account'); - -DELETE FROM `salix`.`ACL` WHERE (model, property) = ('Account', 'acl'); -DELETE FROM `salix`.`ACL` WHERE (model, property) = ('Account', 'getCurrentUserData'); -DELETE FROM `salix`.`ACL` WHERE (model, property) = ('Account', 'changePassword'); -DELETE FROM `salix`.`ACL` WHERE model = 'UserAccount'; - -UPDATE `hedera`.`imageCollection` t -SET t.model = 'VnUser' -WHERE t.id = 6; - diff --git a/db/changes/231601/00-userRoleLog.sql b/db/changes/231601/00-userRoleLog.sql deleted file mode 100644 index ae5da13cb..000000000 --- a/db/changes/231601/00-userRoleLog.sql +++ /dev/null @@ -1,4 +0,0 @@ -INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) - VALUES - ('UserLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('RoleLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee'); diff --git a/db/changes/231601/00-saleTracking.sql b/db/changes/231801/00-saleTracking.sql similarity index 100% rename from db/changes/231601/00-saleTracking.sql rename to db/changes/231801/00-saleTracking.sql From e019ab4160d68181661baf259ccbade0cea9f4f1 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 8 May 2023 12:40:52 +0200 Subject: [PATCH 4/4] deploy(232001): add changes folder, package and changelog --- CHANGELOG.md | 15 ++++++++++++++- db/changes/232001/.gitkeep | 0 package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 db/changes/232001/.gitkeep diff --git a/CHANGELOG.md b/CHANGELOG.md index fa318a908..5ff575175 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [2318.01] - 2023-05-04 +## [2320.01] - 2023-05-25 + +### Added +- + +### Changed +- + +### Fixed +- + + + +## [2318.01] - 2023-05-08 ### Added - (Usuarios -> Histórico) Nueva sección diff --git a/db/changes/232001/.gitkeep b/db/changes/232001/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/package.json b/package.json index fee164f44..4b4f552ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-back", - "version": "23.18.01", + "version": "23.20.01", "author": "Verdnatura Levante SL", "description": "Salix backend", "license": "GPL-3.0",