取消订单退费
This commit is contained in:
@@ -254,7 +254,7 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
|
|||||||
}
|
}
|
||||||
|
|
||||||
//门店发单的订单,取消后要退回配送费
|
//门店发单的订单,取消后要退回配送费
|
||||||
resetCreateWaybillFee(db, order)
|
ResetCreateWaybillFee(db, order)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,7 +444,7 @@ func filterOrderInfo(order *model.GoodsOrder) {
|
|||||||
order.ConsigneeAddress = strings.ReplaceAll(order.ConsigneeAddress, "·", "")
|
order.ConsigneeAddress = strings.ReplaceAll(order.ConsigneeAddress, "·", "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func resetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
|
func ResetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
|
||||||
store, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
|
store, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
|
||||||
if store != nil && store.CreateDeliveryType == model.YES { // 门店发单(非京西品牌)
|
if store != nil && store.CreateDeliveryType == model.YES { // 门店发单(非京西品牌)
|
||||||
// 无运单不参与退款
|
// 无运单不参与退款
|
||||||
@@ -484,7 +484,7 @@ func resetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取品牌的支付记录
|
// 获取品牌的支付记录
|
||||||
orderBill, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, order.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
|
orderBill, _ := dao.GetBrandBill(db, store.BrandID, order.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
|
||||||
if len(orderBill) != model.YES {
|
if len(orderBill) != model.YES {
|
||||||
return errors.New("订单支出数据异常,应该为一条数据")
|
return errors.New("订单支出数据异常,应该为一条数据")
|
||||||
}
|
}
|
||||||
@@ -500,7 +500,7 @@ func resetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
|
|||||||
OrderID: orderBill[0].OrderID,
|
OrderID: orderBill[0].OrderID,
|
||||||
}
|
}
|
||||||
dao.WrapAddIDCULEntity(newBill, "")
|
dao.WrapAddIDCULEntity(newBill, "")
|
||||||
err = dao.CreateEntity(dao.GetDB(), newBill)
|
err = dao.CreateEntity(db, newBill)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package basesch
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
@@ -121,6 +122,7 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName
|
|||||||
if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && !strings.Contains(err.Error(), "1047") && !strings.Contains(err.Error(), "301251")) {
|
if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && !strings.Contains(err.Error(), "1047") && !strings.Contains(err.Error(), "301251")) {
|
||||||
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
||||||
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
||||||
|
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}, "SelfDeliverDelivering orderID:%s", order.VendorOrderID)
|
}, "SelfDeliverDelivering orderID:%s", order.VendorOrderID)
|
||||||
@@ -150,6 +152,7 @@ func (c *BaseScheduler) SelfDeliverDelivered(order *model.GoodsOrder, userName s
|
|||||||
if err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivered(order, userName); err != nil {
|
if err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivered(order, userName); err != nil {
|
||||||
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
||||||
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
||||||
|
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}, "SelfDeliverDelivered orderID:%s", order.VendorOrderID)
|
}, "SelfDeliverDelivered orderID:%s", order.VendorOrderID)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package basesch
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
|
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@@ -200,9 +201,16 @@ func (c *BaseScheduler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model
|
|||||||
|
|
||||||
func (c *BaseScheduler) CancelWaybillByID(ctx *jxcontext.Context, vendorWaybillID string, waybillVendorID int, cancelReasonID int, cancelReason string) (err error) {
|
func (c *BaseScheduler) CancelWaybillByID(ctx *jxcontext.Context, vendorWaybillID string, waybillVendorID int, cancelReasonID int, cancelReason string) (err error) {
|
||||||
bill, err := partner.CurOrderManager.LoadWaybill(vendorWaybillID, waybillVendorID)
|
bill, err := partner.CurOrderManager.LoadWaybill(vendorWaybillID, waybillVendorID)
|
||||||
if err == nil {
|
if err != nil {
|
||||||
err = c.CancelWaybill(bill, cancelReasonID, cancelReason)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := c.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
order, err := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
|
||||||
|
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -813,9 +813,11 @@ func (s *DefScheduler) cancelWaybillNotInStoreOpentime(savedOrderInfo *WatchOrde
|
|||||||
time4 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now())
|
time4 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now())
|
||||||
if time.Now().Sub(time3) < 0 || time.Now().Sub(time4.Add(time.Minute*30)) > 0 {
|
if time.Now().Sub(time3) < 0 || time.Now().Sub(time4.Add(time.Minute*30)) > 0 {
|
||||||
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
||||||
|
s.reverseBrandAccount(storeDetail, bill)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
||||||
|
s.reverseBrandAccount(storeDetail, bill)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1450,6 +1452,7 @@ func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Wa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 取消退费
|
||||||
func (s *DefScheduler) reverseBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
|
func (s *DefScheduler) reverseBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
|
||||||
globals.SugarLogger.Debugf("reverseBrandAccount bill: %v", utils.Format4Output(bill, true))
|
globals.SugarLogger.Debugf("reverseBrandAccount bill: %v", utils.Format4Output(bill, true))
|
||||||
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
|
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
|
||||||
@@ -1633,6 +1636,7 @@ func (s *DefScheduler) ProxyCancelWaybill(order *model.GoodsOrder, bill *model.W
|
|||||||
if cancelReasonID != partner.CancelWaybillReasonNotAcceptIntime {
|
if cancelReasonID != partner.CancelWaybillReasonNotAcceptIntime {
|
||||||
if storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode); storeDetail != nil {
|
if storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode); storeDetail != nil {
|
||||||
s.reverseBrandAccount(storeDetail, bill)
|
s.reverseBrandAccount(storeDetail, bill)
|
||||||
|
//orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user