控制器:

/// <summary>
        /// 根据id查询所有商品
        /// </summary>
        /// <param name="id">订单编号</param>
        /// <returns></returns>
        [Privilege(PrivilegeCode.None)]
        public ActionResult GetOrderItem(int id, string deliveryTypeName)
        {
            //取商品信息
            int orderId = id.GetHashCode();
            ViewBag.deliveryTypeName = deliveryTypeName;
            var listItem = Hyt.BLL.Web.SoOrderBo.Instance.GetOrderItemListByOrderSysNo(orderId);
            return View("_OrderShipDialog",listItem);
        }

 

发货按钮控制器:

 /// <summary>
        /// 订单发货
        /// </summary>
        /// <param name="id">订单发货</param>
        /// <returns>视图</returns>
        [Privilege(PrivilegeCode.SO1001101, PrivilegeCode.OR1001982)]
        public JsonResult Ship(int orderId, string expressNo, string productList, string fstatus)
        {
            
            var result = new Result
            {
                Status = false
            };
            if (productList == "[]")
            {
                result.Status = false;
                result.Message = "请勾选商品!";
                return Json(result, JsonRequestBehavior.AllowGet);
            }
            using (var tran = new TransactionScope())
            {
                if (fstatus == "1")
                {
                    //全部发货
                    result = BLL.Order.SoOrderBo.Instance.Ship(orderId, expressNo);
                }
                else
                {
                    //部分发货
                    result = BLL.Order.SoOrderBo.Instance.SomeShip(orderId, expressNo, productList, fstatus);
                }

                if (!result.Status)
                {
                    return Json(result, JsonRequestBehavior.AllowGet);
                }
                if (result.Status)
                {
                    //修改主订单状态
                    OrderBLL.Instance.GetIsOrderShip(orderId);
                    result.Message = "发货成功!";
                    #region 利嘉(你他购)推送订单状态
                    int type = 2;//绑数据类型:2:订单
                    string state = "7";//订单状态,7:已经发货待确认中
                    var model = BLL.Web.MKNitagoDateBindBo.Instance.Select(type, orderId);
                    if (model != null)
                    {
                        NitagaPostOrderState orderstate = new NitagaPostOrderState();
                        string sAPIResult = orderstate.OrderState(model.NitagoDateSysNo, state);
                        JsonData returnDate = JsonMapper.ToObject(sAPIResult);
                        int backcode = 0;
                        if (((System.Collections.IDictionary)returnDate).Contains("backcode"))
                        {
                            backcode = Convert.ToInt32(returnDate["backcode"].ToString());
                            if (backcode == 0)
                            {
                                if (((System.Collections.IDictionary)returnDate).Contains("error"))
                                {
                                    string error = (string)returnDate["error"];
                                    BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.外部应用, "推送订单状态:" + orderId + "到你他购失败!" + error, new Exception());
                                }
                            }
                        }
                    }
                    #endregion
                }
                tran.Complete();
            }
            return Json(result, JsonRequestBehavior.AllowGet);
        }


BLL:

     /// <summary>
        /// 发货
        /// </summary>
        /// <param name="orderSysNo">订单编号</param>
        /// <param name="expressNo">快递单号</param>
        /// <returns></returns>
        public Result Ship(int orderSysNo, string expressNo)
        {
            //获取的订单详情
            var orderInfo = BLL.Web.SoOrderBo.Instance.GetEntity(orderSysNo);
            return Ship(orderSysNo, expressNo, orderInfo);
        }

        /// <summary>
        /// 部分发货
        /// </summary>
        /// <param name="orderSysNo">订单编号</param>
        /// <param name="expressNo">快递单号</param>
        /// <param name="productList">商品详情</param>
        /// <param name="fstatus">发货状态</param>
        /// <returns></returns>
        /// <remarks>2018-05-21 创建</remarks>
        public Result SomeShip(int orderSysNo, string expressNo, string productList, string fstatus)
        {
            //获取的商品详情
            var orderInfo = BLL.Web.SoOrderBo.Instance.GetEntity(orderSysNo);
            var orderiteminfo = orderInfo.OrderItemList;
            List<DismantlingPara> dplist = new List<DismantlingPara>();
            List<SoOrderItem> ordernewitem = new List<SoOrderItem>();
            SoOrderItem sitem = new SoOrderItem();
            dplist = JsonSerializationHelper.JSONStringToList<DismantlingPara>(productList);
            foreach (var item in dplist)
            {
                sitem = orderiteminfo.Where(p => p.SysNo == item.sysNo).FirstOrDefault();
                sitem.RealStockOutQuantity = item.quantity;
                ordernewitem.Add(sitem);
            }
            orderInfo.OrderItemList = ordernewitem;
            //orderiteminfo.Clear();
            
            return SomeShip(orderSysNo, expressNo, orderInfo);
        }

创建出库单:

#region 创建出库单
        /// <summary>
        /// 创建出库单
        /// </summary>
        /// <param name="data">出库商品列表</param>
        /// <param name="warehouseSysNo">仓库编号</param>
        /// <param name="deliveryTypeSysNo">出库单配送方式</param>
        /// <returns>操作是否成功</returns>
        /// <remarks>2016-03-22 杨浩 创建</remarks>
        public Result CreateOutStock(IList<SoOrderItem> data, int warehouseSysNo, int? deliveryTypeSysNo)
        {
            var res = new Hyt.Model.Result<WhStockOut> { Status = true };
            var identity = string.Format("创建订单{0}的出库单", data[0].OrderSysNo);
            if (YwbUtil.Enter(identity) == false)
            {
                res.Status = false;
                res.Message = "其它人正在处理这个订单,请稍后重试";
                res.StatusCode = 0;
                return res;
            }

            try
            {
                SyUser syUser = new SyUser();
                if(BLL.Authentication.AdminAuthenticationBo.Instance.Current!=null)
                {
                    syUser=BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base;
                }
                var outStock = SoOrderBo.Instance.CreateOutStock(data, warehouseSysNo, syUser, deliveryTypeSysNo);
                res.Data = outStock;
                res.StatusCode = outStock.SysNo;
                SysLog.Instance.Info(LogStatus.系统日志来源.后台, "创建出库单", LogStatus.系统日志目标类型.出库单, outStock.SysNo, 0);

            }
            catch (Exception ex)
            {
                res.Status = false;
                res.Message = ex.Message;
                res.StatusCode = 0;
            }
            YwbUtil.Exit(identity);

            return res;
        }

        /// <summary>
        /// 创建出库单
        /// </summary>
        /// <param name="data">出库商品列表</param>
        /// <param name="warehouseSysNo">仓库编号</param>
        /// <param name="deliveryTypeSysNo">出库单配送方式</param>
        /// <returns>操作是否成功</returns>
        /// <remarks>2016-03-22 杨浩 创建</remarks>
        public Result SomeCreateOutStock(IList<SoOrderItem> data, int warehouseSysNo, int? deliveryTypeSysNo)
        {
            var res = new Hyt.Model.Result<WhStockOut> { Status = true };
            var identity = string.Format("创建订单{0}的出库单", data[0].OrderSysNo);
            if (YwbUtil.Enter(identity) == false)
            {
                res.Status = false;
                res.Message = "其它人正在处理这个订单,请稍后重试";
                res.StatusCode = 0;
                return res;
            }

            try
            {
                SyUser syUser = new SyUser();
                if (BLL.Authentication.AdminAuthenticationBo.Instance.Current != null)
                {
                    syUser = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base;
                }
                var outStock = SoOrderBo.Instance.SomeCreateOutStock(data, warehouseSysNo, syUser, deliveryTypeSysNo);
                res.Data = outStock;
                res.StatusCode = outStock.SysNo;
                SysLog.Instance.Info(LogStatus.系统日志来源.后台, "创建出库单", LogStatus.系统日志目标类型.出库单, outStock.SysNo, 0);

            }
            catch (Exception ex)
            {
                res.Status = false;
                res.Message = ex.Message;
                res.StatusCode = 0;
            }
            YwbUtil.Exit(identity);

            return res;
        }




        #endregion
View Code

相关文章:

  • 2021-09-15
  • 2021-11-27
  • 2021-12-02
  • 2021-12-09
  • 2021-08-29
  • 2021-09-02
  • 2021-06-12
  • 2021-11-19
猜你喜欢
  • 2021-05-29
  • 2021-09-22
  • 2021-11-22
  • 2021-08-14
  • 2022-02-18
  • 2022-01-02
  • 2022-12-23
相关资源
相似解决方案