From f71b9b78bcdb9f5801d64692e7baad7d6c75f864 Mon Sep 17 00:00:00 2001 From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de> Date: Sun, 7 May 2023 19:29:24 +0200 Subject: [PATCH] Implemented computation of amount donated so far after reading a campaign --- src/myaktion/model/campaign.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/myaktion/model/campaign.go b/src/myaktion/model/campaign.go index 2aade1c..596d6c9 100644 --- a/src/myaktion/model/campaign.go +++ b/src/myaktion/model/campaign.go @@ -12,3 +12,13 @@ type Campaign struct { AmountDonatedSoFar float64 `gorm:"-"` Account Account `gorm:"embedded;embeddedPrefix:account_"` } + +func (c *Campaign) AfterFind(tx *gorm.DB) (err error) { + var sum float64 + result := tx.Model(&Donation{}).Select("ifnull(sum(amount),0)").Where("campaign_id = ?", c.ID).Scan(&sum) + if result.Error != nil { + return result.Error + } + c.AmountDonatedSoFar = sum + return nil +} -- GitLab