From 46c4f4786a0925443f5bfa3849c4721367871a0e Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 18 Dec 2024 12:03:48 +0100 Subject: [PATCH 1/9] feat: refs #6702 saleCloned --- loopback/locale/es.json | 2 +- modules/ticket/back/methods/sale/updatePrice.js | 4 +++- modules/ticket/back/models/sale.js | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index a81f2574f..68514b9f3 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketClone}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index d4f128082..b6276c99a 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -113,6 +113,7 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const ticketWeekly = await models.Sale.ticketClone(sale.id); const message = $t('Changed sale price', { ticketId: sale.ticket().id, itemId: sale.itemFk, @@ -121,7 +122,8 @@ module.exports = Self => { oldPrice: oldPrice, newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, - itemUrl: `${url}item/${sale.itemFk}/summary` + itemUrl: `${url}item/${sale.itemFk}/summary`, + ticketCloned: ticketWeekly && $t('Is cloned', ticketWeekly) }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 3aa4cbf2a..2550d76b4 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -136,4 +136,12 @@ module.exports = Self => { if (!saleGrouping?.newPrice || saleGrouping.newPrice > instance.price) throw new UserError('The price of the item changed'); }); + + Self.isCloned = async function(saleId) { + // let userId = ctx.req.accessToken.userId; + // return await Self.findById(userId, { + // fields: ['id', 'name', 'nickname'] + // }); + // return ticketId + }; }; From 0652d1111292eb7081064e09ff745d36939f002d Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 19 Dec 2024 10:29:50 +0100 Subject: [PATCH 2/9] feat: refs #6702 updatePrice message --- loopback/locale/es.json | 6 ++++-- .../ticket/back/methods/sale/updatePrice.js | 5 +++-- modules/ticket/back/models/sale.js | 20 +++++++++++++------ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 68514b9f3..9136d3d01 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketClone}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketWeekly}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -393,5 +393,7 @@ "There are tickets to be invoiced": "Hay tickets para esta zona, borralos primero", "Price cannot be blank": "Price cannot be blank", "An item type with the same code already exists": "Un tipo con el mismo código ya existe", - "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles" + "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", + "Is cloned": "Is cloned", + "Is cloned from": "Is cloned from" } diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index b6276c99a..f1568380b 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -113,7 +113,8 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); - const ticketWeekly = await models.Sale.ticketClone(sale.id); + const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + const message = $t('Changed sale price', { ticketId: sale.ticket().id, itemId: sale.itemFk, @@ -123,7 +124,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketCloned: ticketWeekly && $t('Is cloned', ticketWeekly) + ticketWeekly: ticketWeekly ? `Is cloned from ticket ${ticketWeekly} de ` : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 2550d76b4..d916794d4 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -137,11 +137,19 @@ module.exports = Self => { throw new UserError('The price of the item changed'); }); - Self.isCloned = async function(saleId) { - // let userId = ctx.req.accessToken.userId; - // return await Self.findById(userId, { - // fields: ['id', 'name', 'nickname'] - // }); - // return ticketId + Self.ticketWeekly = async function(saleId) { + const SaleCloned = Self.app.models.SaleCloned; + + const saleCloned2 = await SaleCloned.findOne({ + where: { + saleClonedFk: saleId + }, + include: { + relation: 'saleOriginal' + } + }); + + return saleCloned2.saleOriginal()?.ticketFk; }; }; + From 9b2fb7a43061abdae76d57051468dc3b12d917e7 Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 19 Dec 2024 11:32:15 +0100 Subject: [PATCH 3/9] feat: refs #6702 sale fix Self.ticketWeekly --- modules/ticket/back/models/sale.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index d916794d4..3ed4ddb52 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -148,8 +148,7 @@ module.exports = Self => { relation: 'saleOriginal' } }); - - return saleCloned2.saleOriginal()?.ticketFk; + return saleCloned2?.saleOriginal()?.ticketFk || null; }; }; From eca2ff84ef4f4f8f2b6d5129c32f84f97247f2f3 Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 2 Jan 2025 07:49:49 +0100 Subject: [PATCH 4/9] feat: refs #6702 changes --- loopback/locale/es.json | 6 +++--- modules/ticket/back/methods/sale/updatePrice.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 9136d3d01..eb5b9a90a 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketWeekly}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}} ", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -394,6 +394,6 @@ "Price cannot be blank": "Price cannot be blank", "An item type with the same code already exists": "Un tipo con el mismo código ya existe", "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", - "Is cloned": "Is cloned", - "Is cloned from": "Is cloned from" + "Is cloned from": "Is cloned from", + "Is cloned from ticket {{ticketWeekly}} de": "Is cloned from ticket {{ticketWeekly}} de" } diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index f1568380b..011243231 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -124,7 +124,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketWeekly: ticketWeekly ? `Is cloned from ticket ${ticketWeekly} de ` : null + ticketWeekly: ticketWeekly ? $t('Is cloned from ticket {{ticketWeekly}}', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } From 1e18e48f8cbed7996c618aa4dc052723fe3c9f00 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 31 Jan 2025 07:09:42 +0100 Subject: [PATCH 5/9] feat: refs #6702 es.json delete changes --- loopback/locale/es.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index eb5b9a90a..c730d662a 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}} ", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -393,7 +393,5 @@ "There are tickets to be invoiced": "Hay tickets para esta zona, borralos primero", "Price cannot be blank": "Price cannot be blank", "An item type with the same code already exists": "Un tipo con el mismo código ya existe", - "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", - "Is cloned from": "Is cloned from", - "Is cloned from ticket {{ticketWeekly}} de": "Is cloned from ticket {{ticketWeekly}} de" + "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles" } From 948bdbd2c6d1e2dd85f12bb1e215b7eb53082537 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 31 Jan 2025 08:19:39 +0100 Subject: [PATCH 6/9] feat: refs #6702 refs #6701 changes --- loopback/locale/en.json | 7 ++++--- loopback/locale/es.json | 8 +++++--- modules/ticket/back/methods/sale/updatePrice.js | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 06428475f..4906288be 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -60,7 +60,7 @@ "Added sale to ticket": "I have added the following line to the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "I have created the claim [{{claimId}}]({{{claimUrl}}}) for the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}}", "Changed sale quantity": "I have changed {{changes}} of the ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "the quantity of [{{itemId}} {{concept}}]({{{itemUrl}}}) from {{oldQuantity}} ➔ *{{newQuantity}}*", "Changed sale reserved state": "I have changed the following lines reserved state from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", @@ -253,5 +253,6 @@ "Sales already moved": "Sales already moved", "Holidays to past days not available": "Holidays to past days not available", "Incorrect delivery order alert on route": "Incorrect delivery order alert on route: {{ route }} zone: {{ zone }}", - "Ticket has been delivered out of order": "The ticket {{ticket}} {{{fullUrl}}} has been delivered out of order." -} \ No newline at end of file + "Ticket has been delivered out of order": "The ticket {{ticket}} {{{fullUrl}}} has been delivered out of order.", + "clonedFromTicketWeekly": "Is cloned from ticket: {{ticketWeekly}}" +} diff --git a/loopback/locale/es.json b/loopback/locale/es.json index f79dad236..a2b6c5215 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}} ", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -396,5 +396,7 @@ "There are tickets to be invoiced": "La zona tiene tickets por facturar", "Incorrect delivery order alert on route": "Alerta de orden de entrega incorrecta en ruta: {{ route }} zona: {{ zone }}", "Ticket has been delivered out of order": "El ticket {{ticket}} {{{fullUrl}}} no ha sigo entregado en su orden.", - "Price cannot be blank": "El precio no puede estar en blanco" -} + "Price cannot be blank": "El precio no puede estar en blanco", + "clonedFromTicketWeekly": "Está clonado del ticket {{ticketWeekly}}", + "ticketWeekly": "ticketWeekly" +} \ No newline at end of file diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index 011243231..4ad431242 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -114,6 +114,7 @@ module.exports = Self => { if (salesPerson) { const url = await Self.app.models.Url.getUrl(); const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + console.log('ticketWeekly: ', ticketWeekly); const message = $t('Changed sale price', { ticketId: sale.ticket().id, @@ -124,7 +125,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketWeekly: ticketWeekly ? $t('Is cloned from ticket {{ticketWeekly}}', {ticketWeekly}) : null + ticketWeekly: ticketWeekly ? $t('ticketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } From 9d3a4257b78ada65061961f4d970d0ae27790fe3 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 31 Jan 2025 12:53:48 +0100 Subject: [PATCH 7/9] feat: refs #6702 translations --- loopback/locale/en.json | 8 ++++---- loopback/locale/es.json | 11 +++++------ modules/ticket/back/methods/sale/updatePrice.js | 3 +-- modules/ticket/back/methods/sale/updateQuantity.js | 2 ++ modules/ticket/back/methods/ticket/updateDiscount.js | 6 +++++- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 4906288be..ea2d83dbc 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -58,10 +58,10 @@ "Swift / BIC can't be empty": "Swift / BIC can't be empty", "Deleted sales from ticket": "I have deleted the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", "Added sale to ticket": "I have added the following line to the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", - "Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}} {{ticketWeekly}}", "Created claim": "I have created the claim [{{claimId}}]({{{claimUrl}}}) for the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}}", - "Changed sale quantity": "I have changed {{changes}} of the ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}}", + "Changed sale quantity": "I have changed {{changes}} of the ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}}", "Changes in sales": "the quantity of [{{itemId}} {{concept}}]({{{itemUrl}}}) from {{oldQuantity}} ➔ *{{newQuantity}}*", "Changed sale reserved state": "I have changed the following lines reserved state from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Bought units from buy request": "Bought {{quantity}} units of [{{itemId}} {{concept}}]({{{urlItem}}}) for the ticket id [{{ticketId}}]({{{url}}})", @@ -254,5 +254,5 @@ "Holidays to past days not available": "Holidays to past days not available", "Incorrect delivery order alert on route": "Incorrect delivery order alert on route: {{ route }} zone: {{ zone }}", "Ticket has been delivered out of order": "The ticket {{ticket}} {{{fullUrl}}} has been delivered out of order.", - "clonedFromTicketWeekly": "Is cloned from ticket: {{ticketWeekly}}" + "clonedFromTicketWeekly": ", that is a cloned sale from ticket {{ ticketWeekly }}" } diff --git a/loopback/locale/es.json b/loopback/locale/es.json index a2b6c5215..c3035585b 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -121,10 +121,10 @@ "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", - "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}} {{ticketWeekly}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}} ", - "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}} ", + "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}}", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", "regular": "normal", @@ -397,6 +397,5 @@ "Incorrect delivery order alert on route": "Alerta de orden de entrega incorrecta en ruta: {{ route }} zona: {{ zone }}", "Ticket has been delivered out of order": "El ticket {{ticket}} {{{fullUrl}}} no ha sigo entregado en su orden.", "Price cannot be blank": "El precio no puede estar en blanco", - "clonedFromTicketWeekly": "Está clonado del ticket {{ticketWeekly}}", - "ticketWeekly": "ticketWeekly" -} \ No newline at end of file + "clonedFromTicketWeekly": ", que es una linea clonada del ticket {{ticketWeekly}}" +} diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index 4ad431242..c51cef6f5 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -114,7 +114,6 @@ module.exports = Self => { if (salesPerson) { const url = await Self.app.models.Url.getUrl(); const ticketWeekly = await models.Sale.ticketWeekly(sale.id); - console.log('ticketWeekly: ', ticketWeekly); const message = $t('Changed sale price', { ticketId: sale.ticket().id, @@ -125,7 +124,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketWeekly: ticketWeekly ? $t('ticketWeekly', {ticketWeekly}) : null + ticketWeekly: ticketWeekly ? $t('clonedFromTicketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } diff --git a/modules/ticket/back/methods/sale/updateQuantity.js b/modules/ticket/back/methods/sale/updateQuantity.js index 4de1bcbd6..f6be171ce 100644 --- a/modules/ticket/back/methods/sale/updateQuantity.js +++ b/modules/ticket/back/methods/sale/updateQuantity.js @@ -72,6 +72,7 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const ticketWeekly = await models.Sale.ticketWeekly(sale.id); const change = $t('Changes in sales', { itemId: sale.itemFk, concept: sale.concept, @@ -84,6 +85,7 @@ module.exports = Self => { ticketId: sale.ticket().id, changes: JSON.stringify(change), ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, + ticketWeekly: ticketWeekly ? $t('clonedFromTicketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); diff --git a/modules/ticket/back/methods/ticket/updateDiscount.js b/modules/ticket/back/methods/ticket/updateDiscount.js index 2e8bec27a..9baec5c84 100644 --- a/modules/ticket/back/methods/ticket/updateDiscount.js +++ b/modules/ticket/back/methods/ticket/updateDiscount.js @@ -166,10 +166,14 @@ module.exports = Self => { const salesPerson = ticket.client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const saleId = sales[0].id; + const ticketWeekly = await models.Sale.ticketWeekly(saleId); + const message = $t('Changed sale discount', { ticketId: id, ticketUrl: `${url}ticket/${id}/sale`, - changes: changesMade + changes: changesMade, + ticketWeekly: ticketWeekly ? $t('clonedFromTicketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } From 0646d2e817bb44d7477c98a548cc8fe891a1fa1d Mon Sep 17 00:00:00 2001 From: robert Date: Mon, 3 Feb 2025 12:41:51 +0100 Subject: [PATCH 8/9] feat: refs #6702 changes request --- modules/ticket/back/methods/sale/updatePrice.js | 6 +++++- modules/ticket/back/methods/sale/updateQuantity.js | 7 ++++++- .../ticket/back/methods/ticket/updateDiscount.js | 6 +++++- modules/ticket/back/models/sale.js | 14 -------------- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index c51cef6f5..287a6a922 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -113,7 +113,11 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); - const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + + const saleCloned = await Self.app.models.SaleCloned.findById(sale.id, { + include: 'saleOriginal', + }); + const ticketWeekly = saleCloned?.saleOriginal()?.ticketFk || null; const message = $t('Changed sale price', { ticketId: sale.ticket().id, diff --git a/modules/ticket/back/methods/sale/updateQuantity.js b/modules/ticket/back/methods/sale/updateQuantity.js index f6be171ce..5561c77ef 100644 --- a/modules/ticket/back/methods/sale/updateQuantity.js +++ b/modules/ticket/back/methods/sale/updateQuantity.js @@ -72,7 +72,12 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); - const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + + const saleCloned = await Self.app.models.SaleCloned.findById(sale.id, { + include: 'saleOriginal', + }); + const ticketWeekly = saleCloned?.saleOriginal()?.ticketFk || null; + const change = $t('Changes in sales', { itemId: sale.itemFk, concept: sale.concept, diff --git a/modules/ticket/back/methods/ticket/updateDiscount.js b/modules/ticket/back/methods/ticket/updateDiscount.js index 9baec5c84..0175e43c5 100644 --- a/modules/ticket/back/methods/ticket/updateDiscount.js +++ b/modules/ticket/back/methods/ticket/updateDiscount.js @@ -166,8 +166,12 @@ module.exports = Self => { const salesPerson = ticket.client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const saleId = sales[0].id; - const ticketWeekly = await models.Sale.ticketWeekly(saleId); + const saleCloned = await Self.app.models.SaleCloned.findById(saleId, { + include: 'saleOriginal', + }); + const ticketWeekly = saleCloned?.saleOriginal()?.ticketFk || null; const message = $t('Changed sale discount', { ticketId: id, diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 3ed4ddb52..dd2de6af0 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -136,19 +136,5 @@ module.exports = Self => { if (!saleGrouping?.newPrice || saleGrouping.newPrice > instance.price) throw new UserError('The price of the item changed'); }); - - Self.ticketWeekly = async function(saleId) { - const SaleCloned = Self.app.models.SaleCloned; - - const saleCloned2 = await SaleCloned.findOne({ - where: { - saleClonedFk: saleId - }, - include: { - relation: 'saleOriginal' - } - }); - return saleCloned2?.saleOriginal()?.ticketFk || null; - }; }; From d79c19d92a4ab7dec14697e65bb28790da293b89 Mon Sep 17 00:00:00 2001 From: robert Date: Mon, 3 Feb 2025 12:42:38 +0100 Subject: [PATCH 9/9] feat: refs #6702 delete line --- modules/ticket/back/models/sale.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index dd2de6af0..3aa4cbf2a 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -137,4 +137,3 @@ module.exports = Self => { throw new UserError('The price of the item changed'); }); }; -