diff --git a/pkg/cart/cart-grain.go b/pkg/cart/cart-grain.go index 8682d4d..a4fb4b3 100644 --- a/pkg/cart/cart-grain.go +++ b/pkg/cart/cart-grain.go @@ -249,19 +249,22 @@ func (c *CartGrain) UpdateTotals() { for _, item := range c.Items { rowTotal := MultiplyPrice(item.Price, int64(item.Quantity)) - item.TotalPrice = *rowTotal - - c.TotalPrice.Add(*rowTotal) - if item.OrgPrice != nil { diff := NewPrice() diff.Add(*item.OrgPrice) diff.Subtract(item.Price) + diff.Multiply(int64(item.Quantity)) + rowTotal.Subtract(*diff) + item.Discount = diff if diff.IncVat > 0 { c.TotalDiscount.Add(*diff) } } + item.TotalPrice = *rowTotal + + c.TotalPrice.Add(*rowTotal) + } for _, delivery := range c.Deliveries { c.TotalPrice.Add(delivery.Price)