From 4ce58eb5dfb6118abe261fb72f3f16aeb343a69a Mon Sep 17 00:00:00 2001
From: meskio <meskio@sindominio.net>
Date: Tue, 10 Nov 2020 17:52:56 +0100
Subject: [PATCH] Save order purchase on update

---
 api/db/order.go   | 7 +++++++
 api/order_test.go | 3 +++
 2 files changed, 10 insertions(+)

diff --git a/api/db/order.go b/api/db/order.go
index e00e4b8..72936c0 100644
--- a/api/db/order.go
+++ b/api/db/order.go
@@ -173,6 +173,13 @@ func (d *DB) updateOrderPurchase(memberNum int, transaction *Transaction, total
 		if err != nil {
 			return err
 		}
+
+		for _, p := range transaction.OrderPurchase {
+			err = tx.Save(&p).Error
+			if err != nil {
+				return err
+			}
+		}
 		return tx.Save(&transaction).Error
 	})
 }
diff --git a/api/order_test.go b/api/order_test.go
index f8ceb39..53da7de 100644
--- a/api/order_test.go
+++ b/api/order_test.go
@@ -401,6 +401,9 @@ func TestUpdateOrderPurchase(t *testing.T) {
 	if transactions[0].Total != -total {
 		t.Fatal("Wrong total", transactions[0].Total)
 	}
+	if transactions[0].OrderPurchase[0].Amount != 2 {
+		t.Fatal("Wrong amount", transactions[0].OrderPurchase)
+	}
 
 	resp = tapi.do("GET", "/order/active", nil, &orders)
 	if resp.StatusCode != http.StatusOK {
-- 
GitLab