From 63fa908d50efb485ddacbbe614fecc8e2dfd52f4 Mon Sep 17 00:00:00 2001
From: meskio <meskio@sindominio.net>
Date: Mon, 22 Feb 2021 19:39:24 +0100
Subject: [PATCH] Fetch the right purchase ID

---
 api/db/order.go | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/api/db/order.go b/api/db/order.go
index 4f37ef9..c6bbff3 100644
--- a/api/db/order.go
+++ b/api/db/order.go
@@ -114,11 +114,14 @@ func (d *DB) UpdateOrder(memberNum int, id int, order *Order) error {
 		totalSum := 0
 		for i, t := range dbOrder.Transactions {
 			var transaction Transaction
-			err = tx.Preload("OrderPurchase.OrderProduct").First(&transaction, id).Error
+			err = tx.Preload("OrderPurchase.OrderProduct").First(&transaction, t.ID).Error
+			if err != nil {
+				return err
+			}
+			total, err := calculateOrderPurchaseTotal(transaction.OrderPurchase, order.Products)
 			if err != nil {
 				return err
 			}
-			total, _ := calculateOrderPurchaseTotal(transaction.OrderPurchase, order.Products)
 			err = updateOrderPurchase(tx, t.MemberNum, &dbOrder.Transactions[i], total, t.OrderPurchase)
 			if err != nil {
 				return err
@@ -309,7 +312,7 @@ func calculateOrderPurchaseTotal(purchase []OrderPurchase, products []OrderProdu
 		}
 
 		if !found {
-			log.Printf("Order purchase product %d not in order: %v", p.OrderProductID, purchase)
+			log.Printf("Order purchase product %d not in order: %v", p.OrderProductID, products)
 			err = ErrorInvalidRequest
 		}
 	}
-- 
GitLab