diff --git a/models/bill/bill.go b/models/bill/bill.go index 653e6a8..0b56d11 100644 --- a/models/bill/bill.go +++ b/models/bill/bill.go @@ -26,21 +26,6 @@ type Bill struct { Total float64 `json:"total" bson:"total" validate:"required"` } -func (r *Bill) StoreDraftDefault() { - r.IsDraft = true -} - -func (r *Bill) CanUpdate(set utils.DBObject) (bool, utils.DBObject) { - if !r.IsDraft && r.Status != set.(*Bill).Status { - return true, &Bill{Status: set.(*Bill).Status} // only state can be updated - } - return r.IsDraft, set -} - -func (r *Bill) CanDelete() bool { - return r.IsDraft // only draft order can be deleted -} - func DraftBill(order *order.Order, request *tools.APIRequest) (*Bill, error) { peers := map[string][]*PeerItemOrder{} for _, p := range order.Purchases { @@ -51,6 +36,7 @@ func DraftBill(order *order.Order, request *tools.APIRequest) (*Bill, error) { peers[p.DestPeerID] = append(peers[p.DestPeerID], &PeerItemOrder{ Purchase: p, Item: p.PricedItem, + Quantity: 1, }) } for _, b := range order.Bookings { @@ -78,10 +64,9 @@ func DraftBill(order *order.Order, request *tools.APIRequest) (*Bill, error) { if err != nil { return nil, err } - pp := pr.(*peer.Peer) peerOrders[peerID] = &PeerOrder{ PeerID: peerID, - BillingAddress: pp.WalletAddress, + BillingAddress: pr.(*peer.Peer).WalletAddress, Items: items, } } @@ -101,6 +86,21 @@ func (d *Bill) GetAccessor(request *tools.APIRequest) utils.Accessor { return NewAccessor(request) // Create a new instance of the accessor } +func (r *Bill) StoreDraftDefault() { + r.IsDraft = true +} + +func (r *Bill) CanUpdate(set utils.DBObject) (bool, utils.DBObject) { + if !r.IsDraft && r.Status != set.(*Bill).Status { + return true, &Bill{Status: set.(*Bill).Status} // only state can be updated + } + return r.IsDraft, set +} + +func (r *Bill) CanDelete() bool { + return r.IsDraft // only draft order can be deleted +} + func (d *Bill) SumUpBill(request *tools.APIRequest) (*Bill, error) { for _, b := range d.SubOrders { err := b.SumUpBill(request)