+ GoodsOrder添加EarningPrice表示结算给门店的金额
This commit is contained in:
@@ -349,22 +349,39 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.
|
||||
func (c *OrderManager) updateOrderOtherInfo(order *model.GoodsOrder, db *dao.DaoDB) (err error) {
|
||||
globals.SugarLogger.Debugf("updateOrderOtherInfo orderID:%s, VendorStoreID:%s", order.VendorOrderID, order.VendorStoreID)
|
||||
|
||||
storeMap := &model.StoreMap{
|
||||
VendorID: order.VendorID,
|
||||
VendorStoreID: order.VendorStoreID,
|
||||
}
|
||||
storeMap.DeletedAt = utils.DefaultTimeValue
|
||||
if err = dao.GetEntity(db, storeMap, model.FieldVendorID, model.FieldVendorStoreID, model.FieldDeletedAt); err != nil && err != orm.ErrNoRows {
|
||||
globals.SugarLogger.Warnf("updateOrderOtherInfo GetEntity orderID:%s, VendorStoreID:%s, error:%v", order.VendorOrderID, order.VendorStoreID, err)
|
||||
storeDetail, err := dao.GetStoreDetailByVendorStoreID(db, order.VendorStoreID, order.VendorID)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Warnf("updateOrderOtherInfo GetStoreDetailByVendorStoreID orderID:%s, VendorStoreID:%s, error:%v", order.VendorOrderID, order.VendorStoreID, err)
|
||||
return err
|
||||
}
|
||||
order.JxStoreID = storeMap.StoreID
|
||||
order.JxStoreID = storeDetail.Store.ID
|
||||
if err = c.updateOrderSkuOtherInfo(order, db); err == nil {
|
||||
jxutils.RefreshOrderSkuRelated(order)
|
||||
|
||||
caculateOrderEarningPrice(order, storeDetail.PayPercentage)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// 计算结算给门店的金额
|
||||
func caculateOrderEarningPrice(order *model.GoodsOrder, storePayPercentage int) {
|
||||
order.EarningPrice = 0
|
||||
for _, v := range order.Skus {
|
||||
skuEarningPrice := v.EarningPrice
|
||||
if skuEarningPrice == 0 {
|
||||
basePrice := v.SalePrice
|
||||
if v.ShopPrice > 0 && v.ShopPrice < basePrice {
|
||||
basePrice = v.ShopPrice
|
||||
}
|
||||
if storePayPercentage <= 0 {
|
||||
storePayPercentage = model.DefaultEarningPricePercentage
|
||||
}
|
||||
skuEarningPrice = basePrice * int64(storePayPercentage) / 100
|
||||
}
|
||||
order.EarningPrice += skuEarningPrice
|
||||
}
|
||||
}
|
||||
|
||||
func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db *dao.DaoDB) (isDuplicated bool, order *model.GoodsOrder, err error) {
|
||||
globals.SugarLogger.Debugf("addOrderStatus refOrderID:%s, orderID:%s", orderStatus.RefVendorOrderID, orderStatus.VendorOrderID)
|
||||
if db == nil {
|
||||
|
||||
Reference in New Issue
Block a user