diff --git a/modules/ticket/back/methods/ticket/transferSales.js b/modules/ticket/back/methods/ticket/transferSales.js
index 9d39453be1..c2257bf092 100644
--- a/modules/ticket/back/methods/ticket/transferSales.js
+++ b/modules/ticket/back/methods/ticket/transferSales.js
@@ -62,11 +62,14 @@ module.exports = Self => {
for (const sale of originalSales)
map.set(sale.id, sale);
-
for (const sale of sales) {
const originalSale = map.get(sale.id);
-
- let originalSaleQuantity = originalSale.quantity;
+ const originalSaleData = { // <-- Loopback modifies original instance on save
+ itemFk: originalSale.itemFk,
+ quantity: originalSale.quantity,
+ concept: originalSale.concept,
+ ticketFk: originalSale.ticketFk
+ };
if (sale.quantity == originalSale.quantity) {
await models.Sale.updateAll({
@@ -77,39 +80,47 @@ module.exports = Self => {
ticketId, originalSale, sale, options);
}
- let logTicketOrigin = {
+ // Log to original ticket
+ await models.TicketLog.create({
originFk: id,
userFk: userId,
action: 'update',
changedModel: 'Ticket',
- changedModelId: ticketId,
- oldInstance: {item: sale.itemFk,
- quantity: 0,
- concept: sale.concept,
- ticket: ticketId},
- newInstance: {item: sale.itemFk,
+ changedModelId: id,
+ oldInstance: {
+ item: originalSaleData.itemFk,
+ quantity: originalSaleData.quantity,
+ concept: originalSaleData.concept,
+ ticket: originalSaleData.ticketFk
+ },
+ newInstance: {
+ item: sale.itemFk,
quantity: sale.quantity,
concept: sale.concept,
- ticket: ticketId}
- };
- await models.TicketLog.create(logTicketOrigin, options);
+ ticket: ticketId
+ }
+ }, options);
- let logTicketDestination = {
+ // Log to destination ticket
+ await models.TicketLog.create({
originFk: ticketId,
userFk: userId,
action: 'update',
changedModel: 'Ticket',
changedModelId: ticketId,
- oldInstance: {item: sale.itemFk,
- quantity: originalSaleQuantity,
+ oldInstance: {
+ item: originalSaleData.itemFk,
+ quantity: originalSaleData.quantity,
+ concept: originalSaleData.concept,
+ ticket: originalSaleData.ticketFk
+ },
+ newInstance: {
+ item: sale.itemFk,
+ quantity: sale.quantity,
concept: sale.concept,
- ticket: id},
- newInstance: {item: sale.itemFk,
- quantity: originalSaleQuantity - sale.quantity,
- concept: sale.concept,
- ticket: id}
- };
- await models.TicketLog.create(logTicketDestination, options);
+ ticket: ticketId
+ }
+ }, options);
}
const isTicketEmpty = await models.Ticket.isEmpty(id, options);
@@ -146,9 +157,9 @@ module.exports = Self => {
// Update original sale
const rest = originalSale.quantity - sale.quantity;
- const updatedSale = await models.Sale.updateAll({
- id: sale.id
- }, {quantity: rest}, options);
+ const originalInstance = await models.Sale.findById(sale.id, options);
+ await originalInstance.updateAttribute('quantity', rest, options);
+
// Clone sale with new quantity
const newSale = originalSale;
newSale.id = undefined;
@@ -169,6 +180,6 @@ module.exports = Self => {
await models.SaleComponent.create(newComponents, options);
- return updatedSale;
+ return originalInstance;
}
};
diff --git a/modules/ticket/front/sale/index.html b/modules/ticket/front/sale/index.html
index 42699d8d12..224392debc 100644
--- a/modules/ticket/front/sale/index.html
+++ b/modules/ticket/front/sale/index.html
@@ -323,19 +323,19 @@
-