/// <summary> /// 计算运费 /// </summary> /// <param name="soInfo"></param> public virtual void CalculateShipPrice(SOInfo soInfo) { //电子卡订单运费为零 if (soInfo.BaseInfo.SOType == SOType.ElectronicCard) { soInfo.BaseInfo.ShipPrice = null; return; } //手工设置运费 if (soInfo.BaseInfo.ManualShipPrice.HasValue && soInfo.BaseInfo.ManualShipPrice > 0) { soInfo.BaseInfo.ShipPrice = soInfo.BaseInfo.ManualShipPrice.Value; return; } //计算订单中商品单件最大重量 int soSingelMaxWeight = SOCommon.GetSOSingleMaxWeight(soInfo.Items); int soTotalWeight = SOCommon.GetTotalWeight(soInfo.Items); #warning 这里注销掉了关于Ozzo优先逻辑 //bool isUseDiscount = false; soInfo.BaseInfo.ShipPrice = SODA.CaclShipPrice( soTotalWeight , soInfo.BaseInfo.SOAmount , soInfo.ShippingInfo.ShipTypeSysNo , soInfo.ReceiverInfo.AreaSysNo , soInfo.BaseInfo.CustomerSysNo , soSingelMaxWeight , soInfo.BaseInfo.CompanyCode); soInfo.BaseInfo.ShipPrice = decimal.Round(soInfo.BaseInfo.ShipPrice.Value, 2); if (soInfo.BaseInfo.ShipPrice == 0) { soInfo.BaseInfo.ShipPrice = null; } }