add sets up
This commit is contained in:
parent
82d25b0bee
commit
583ca2fbac
@ -26,21 +26,6 @@ type Bill struct {
|
|||||||
Total float64 `json:"total" bson:"total" validate:"required"`
|
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) {
|
func DraftBill(order *order.Order, request *tools.APIRequest) (*Bill, error) {
|
||||||
peers := map[string][]*PeerItemOrder{}
|
peers := map[string][]*PeerItemOrder{}
|
||||||
for _, p := range order.Purchases {
|
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{
|
peers[p.DestPeerID] = append(peers[p.DestPeerID], &PeerItemOrder{
|
||||||
Purchase: p,
|
Purchase: p,
|
||||||
Item: p.PricedItem,
|
Item: p.PricedItem,
|
||||||
|
Quantity: 1,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
for _, b := range order.Bookings {
|
for _, b := range order.Bookings {
|
||||||
@ -78,10 +64,9 @@ func DraftBill(order *order.Order, request *tools.APIRequest) (*Bill, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
pp := pr.(*peer.Peer)
|
|
||||||
peerOrders[peerID] = &PeerOrder{
|
peerOrders[peerID] = &PeerOrder{
|
||||||
PeerID: peerID,
|
PeerID: peerID,
|
||||||
BillingAddress: pp.WalletAddress,
|
BillingAddress: pr.(*peer.Peer).WalletAddress,
|
||||||
Items: items,
|
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
|
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) {
|
func (d *Bill) SumUpBill(request *tools.APIRequest) (*Bill, error) {
|
||||||
for _, b := range d.SubOrders {
|
for _, b := range d.SubOrders {
|
||||||
err := b.SumUpBill(request)
|
err := b.SumUpBill(request)
|
||||||
|
Loading…
Reference in New Issue
Block a user