more
This commit is contained in:
@@ -87,24 +87,25 @@ type ConfirmationStatus struct {
|
||||
}
|
||||
|
||||
type CheckoutGrain struct {
|
||||
mu sync.RWMutex
|
||||
lastDeliveryId uint32
|
||||
lastGiftcardId uint32
|
||||
lastAccess time.Time
|
||||
lastChange time.Time
|
||||
Version uint32 `json:"version"`
|
||||
Id CheckoutId `json:"id"`
|
||||
CartId cart.CartId `json:"cartId"`
|
||||
CartVersion uint64 `json:"cartVersion"`
|
||||
CartState *cart.CartGrain `json:"cartState"` // snapshot of items
|
||||
CartTotalPrice *cart.Price `json:"cartTotalPrice"`
|
||||
OrderId *string `json:"orderId"`
|
||||
Deliveries []*CheckoutDelivery `json:"deliveries,omitempty"`
|
||||
PaymentInProgress uint16 `json:"paymentInProgress"`
|
||||
InventoryReserved bool `json:"inventoryReserved"`
|
||||
Confirmation *ConfirmationStatus `json:"confirmationViewed,omitempty"`
|
||||
Payments []*Payment `json:"payments,omitempty"`
|
||||
ContactDetails *ContactDetails `json:"contactDetails,omitempty"`
|
||||
mu sync.RWMutex
|
||||
lastDeliveryId uint32
|
||||
lastGiftcardId uint32
|
||||
lastAccess time.Time
|
||||
lastChange time.Time
|
||||
Version uint32 `json:"version"`
|
||||
Id CheckoutId `json:"id"`
|
||||
CartId cart.CartId `json:"cartId"`
|
||||
CartVersion uint64 `json:"cartVersion"`
|
||||
CartState *cart.CartGrain `json:"cartState"` // snapshot of items
|
||||
CartTotalPrice *cart.Price `json:"cartTotalPrice"`
|
||||
OrderId *string `json:"orderId"`
|
||||
Deliveries []*CheckoutDelivery `json:"deliveries,omitempty"`
|
||||
PaymentInProgress uint16 `json:"paymentInProgress"`
|
||||
AmountInCentsRemaining int64 `json:"amountRemaining"`
|
||||
InventoryReserved bool `json:"inventoryReserved"`
|
||||
Confirmation *ConfirmationStatus `json:"confirmationViewed,omitempty"`
|
||||
Payments []*Payment `json:"payments,omitempty"`
|
||||
ContactDetails *ContactDetails `json:"contactDetails,omitempty"`
|
||||
}
|
||||
|
||||
func NewCheckoutGrain(id uint64, cartId cart.CartId, cartVersion uint64, ts time.Time, cartState *cart.CartGrain) *CheckoutGrain {
|
||||
|
||||
@@ -47,6 +47,7 @@ func HandleInitializeCheckout(g *CheckoutGrain, m *messages.InitializeCheckout)
|
||||
}
|
||||
|
||||
g.CartTotalPrice = g.CartState.TotalPrice
|
||||
g.AmountInCentsRemaining = g.CartTotalPrice.IncVat
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -36,6 +36,12 @@ func HandlePaymentCompleted(g *CheckoutGrain, m *messages.PaymentCompleted) erro
|
||||
|
||||
// Update checkout status
|
||||
g.PaymentInProgress--
|
||||
sum := g.CartState.TotalPrice.IncVat
|
||||
|
||||
for _, payment := range g.SettledPayments() {
|
||||
sum -= payment.Amount
|
||||
}
|
||||
g.AmountInCentsRemaining = sum
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user