Set up
This commit is contained in:
@@ -9,9 +9,10 @@ import (
|
||||
"time"
|
||||
|
||||
"cloud.o-forge.io/core/oc-lib/dbs"
|
||||
"cloud.o-forge.io/core/oc-lib/models/bill"
|
||||
"cloud.o-forge.io/core/oc-lib/models/billing"
|
||||
"cloud.o-forge.io/core/oc-lib/models/booking"
|
||||
"cloud.o-forge.io/core/oc-lib/models/common/enum"
|
||||
"cloud.o-forge.io/core/oc-lib/models/common/pricing"
|
||||
"cloud.o-forge.io/core/oc-lib/models/order"
|
||||
"cloud.o-forge.io/core/oc-lib/models/resources/purchase_resource"
|
||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||
@@ -261,6 +262,7 @@ func GenerateOrder(
|
||||
ExecutionsID: executionsID,
|
||||
Purchases: []*purchase_resource.PurchaseResource{},
|
||||
Bookings: []*booking.Booking{},
|
||||
Billing: map[pricing.BillingStrategy][]*booking.Booking{},
|
||||
Status: enum.PENDING,
|
||||
}
|
||||
for _, purch := range purchases {
|
||||
@@ -268,14 +270,17 @@ func GenerateOrder(
|
||||
scheduling_resources.FromSchedulerObject(tools.PURCHASE_RESOURCE, purch).(*purchase_resource.PurchaseResource))
|
||||
}
|
||||
for _, b := range bookings {
|
||||
newOrder.Bookings = append(newOrder.Bookings,
|
||||
scheduling_resources.FromSchedulerObject(tools.BOOKING, b).(*booking.Booking))
|
||||
bk := scheduling_resources.FromSchedulerObject(tools.BOOKING, b).(*booking.Booking)
|
||||
newOrder.Bookings = append(newOrder.Bookings, bk)
|
||||
// Groupe les bookings par stratégie de facturation pour permettre
|
||||
// à DraftFirstBill de savoir quand et comment facturer chaque item.
|
||||
newOrder.Billing[bk.BillingStrategy] = append(newOrder.Billing[bk.BillingStrategy], bk)
|
||||
}
|
||||
res, _, err := order.NewAccessor(request).StoreOne(newOrder)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if _, err := bill.DraftFirstBill(res.(*order.Order), request); err != nil {
|
||||
if _, err := billing.DraftFirstBill(res.(*order.Order), request); err != nil {
|
||||
return res.GetID(), err
|
||||
}
|
||||
return res.GetID(), nil
|
||||
|
||||
Reference in New Issue
Block a user