From 32d36cda21edc883c3260ce4b1c78791440a0133 Mon Sep 17 00:00:00 2001 From: jgallego Date: Fri, 23 Aug 2024 14:28:25 +0200 Subject: [PATCH] feat: refs #7710 pr revision --- .../11197-aquaSalal/00-firstScript.sql | 24 +++++++++++++++++++ .../methods/invoiceOut/transferInvoice.js | 2 +- .../ticket/back/methods/ticket/cloneAll.js | 13 ++++------ 3 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 db/versions/11197-aquaSalal/00-firstScript.sql diff --git a/db/versions/11197-aquaSalal/00-firstScript.sql b/db/versions/11197-aquaSalal/00-firstScript.sql new file mode 100644 index 0000000000..f07368d3e1 --- /dev/null +++ b/db/versions/11197-aquaSalal/00-firstScript.sql @@ -0,0 +1,24 @@ +DELETE FROM `salix`.`ACL` + WHERE `model` = 'Ticket' + AND `property` = 'refund' + AND `accessType` = 'WRITE' + AND `permission` = 'ALLOW' + AND `principalType` = 'ROLE' + AND `principalId` = 'salesAssistant'; + +UPDATE `salix`.`ACL` + SET `property` = 'cloneAll' + WHERE `model` = 'Ticket' + AND `property` = 'refund' + AND `accessType` = 'WRITE' + AND `permission` = 'ALLOW' + AND `principalType` = 'ROLE' + AND `principalId` IN ('invoicing', 'claimManager', 'logistic'); + +DELETE FROM `salix`.`ACL` + WHERE `model` = 'Ticket' + AND `property` = 'clone' + AND `accessType` = 'WRITE' + AND `permission` = 'ALLOW' + AND `principalType` = 'ROLE' + AND `principalId` = 'administrative'; diff --git a/modules/invoiceOut/back/methods/invoiceOut/transferInvoice.js b/modules/invoiceOut/back/methods/invoiceOut/transferInvoice.js index 220695fc9e..c31f381d9d 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/transferInvoice.js +++ b/modules/invoiceOut/back/methods/invoiceOut/transferInvoice.js @@ -82,7 +82,7 @@ module.exports = Self => { myOptions.transaction = tx; } try { - const tickets = await models.Ticket.find({where: {refFk: refFk}}, myOptions); + const tickets = await models.Ticket.find({where: {refFk}}, myOptions); const ticketsIds = tickets.map(ticket => ticket.id); const refundTickets = await models.Ticket.cloneAll(ctx, ticketsIds, false, true, myOptions); diff --git a/modules/ticket/back/methods/ticket/cloneAll.js b/modules/ticket/back/methods/ticket/cloneAll.js index cc3672083d..cf99a7edc7 100644 --- a/modules/ticket/back/methods/ticket/cloneAll.js +++ b/modules/ticket/back/methods/ticket/cloneAll.js @@ -19,7 +19,7 @@ module.exports = Self => { arg: 'negative', type: 'boolean', required: true, - description: 'Whether to invert quantities (for credit notes)' + description: 'true: invert quantities; false: keep as is.' } ], returns: { @@ -35,12 +35,9 @@ module.exports = Self => { Self.cloneAll = async(ctx, ticketsIds, withWarehouse, negative, options) => { const models = Self.app.models; - const myOptions = {}; + const myOptions = typeof options == 'object' ? {...options} : {}; let tx; - if (typeof options == 'object') - Object.assign(myOptions, options); - if (!myOptions.transaction) { tx = await Self.beginTransaction({}); myOptions.transaction = tx; @@ -55,9 +52,9 @@ module.exports = Self => { models.TicketPackaging.find(filter, myOptions) ]); - const salesIds = sales.map(sale => sale.id); - const servicesIds = services.map(service => service.id); - const ticketPackagingIds = ticketPackaging.map(packaging => packaging.id); + const salesIds = sales.map(({id}) => id); + const servicesIds = services.map(({id}) => id); + const ticketPackagingIds = ticketPackaging.map(({id}) => id); const clonedTickets = await models.Sale.clone( ctx,