Example #1
0
        /// <summary>
        /// 获取结账订单信息
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public JsonResult GetOrderCheckOut(CheckoutReqDTO checkoutReqDTO)
        {
            var res = new Response()
            {
                Data = null, Successed = false
            };
            string msg = string.Empty;

            if (ModelState.IsValid)
            {
                try
                {
                    checkoutReqDTO.OrderTableStatus = OrderTableStatus.未结;
                    CheckOutOrderDTO checkoutOrder = _checkOutService.GetCheckOutOrderDTO(checkoutReqDTO.OrderId, checkoutReqDTO.TableIds, checkoutReqDTO.OrderTableStatus);
                    checkoutOrder = _checkOutService.GetWeixinPayDTO(checkoutOrder);
                    var payTypeList = _payMethodRepository.GetList();
                    checkoutOrder.PayTypeList = payTypeList;
                    res.Data      = checkoutOrder;
                    res.Successed = true;
                }
                catch (Exception e)
                {
                    res.Message = e.Message;
                }
            }
            else
            {
                res.Message = string.Join(",", ModelState.SelectMany(ms => ms.Value.Errors).Select(e => e.ErrorMessage));
            }
            return(Json(res));
        }
Example #2
0
        /// <summary>
        /// 获取订单相关信息
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public JsonResult GetOrderInfo(int orderId)
        {
            var res = new Response()
            {
                Data = null, Successed = false
            };

            if (ModelState.IsValid)
            {
                try
                {
                    var ordTabList                  = _orderRepository.GetOrderTableListBy(orderId, SearchTypeBy.订单Id);
                    var tabIdList                   = ordTabList.Select(x => x.R_Table_Id).ToList();
                    CheckOutOrderDTO order          = _checkOutService.GetCheckOutOrderDTO(orderId, tabIdList, OrderTableStatus.所有);
                    OrderSearchDTO   orderSearchDTO = new OrderSearchDTO(order);
                    res.Data      = orderSearchDTO;
                    res.Successed = true;
                }
                catch (Exception e)
                {
                    res.Message = e.Message;
                }
            }
            else
            {
                res.Message = string.Join(",", ModelState.SelectMany(ms => ms.Value.Errors).Select(e => e.ErrorMessage));
            }
            return(Json(res, JsonRequestBehavior.AllowGet));
        }
Example #3
0
        /// <summary>
        /// 返回订单和订单下所有台号
        /// </summary>
        /// <param name="req">订单结账请求参数</param>
        /// <returns></returns>
        //[CustomerAuthorize(Permission.结账)]
        public ActionResult GetOrderInfo(CheckoutReqDTO checkoutReqDTO)
        {
            try
            {
                var currentUser = OperatorProvider.Provider.GetCurrent();
                checkoutReqDTO.OrderTableStatus = OrderTableStatus.未结;
                CheckOutOrderDTO checkoutOrder = GetCheckOutOrder(checkoutReqDTO);
                var user = _userService.GetUserInfo(new VerifyUserDTO()
                {
                    UserId = currentUser.UserId
                });
                //var payTypeList =  EnumToList.ConvertEnumToList(typeof(CyddPayType));
                var payTypeList = _payMethodRepository.GetList();

                checkoutOrder.OperateUser     = currentUser.UserId;
                checkoutOrder.OperateUserName = currentUser.UserName;
                checkoutOrder.TableIds        = checkoutReqDTO.TableIds;
                //checkoutOrder.PayTypeList = payTypeList.Where(x => x.Key > 0).ToList();
                checkoutOrder.PayTypeList    = payTypeList;
                checkoutOrder.DiscountRate   = user.MinDiscountValue;
                checkoutOrder.AuthClearValue = user.MaxClearValue;
                checkoutOrder.PaidRecordList = checkoutOrder.PaidRecordList
                                               .Where(x => x.CyddJzType == CyddJzType.定金 &&
                                                      x.CyddJzStatus == CyddJzStatus.已付).ToList();//只取当前订单已付的定金记录
                checkoutOrder.PrintModel            = _printerRepository.GetPrintModel();
                checkoutOrder.CheckOutStaticsList   = _checkOutService.GetCheckOutStatics(checkoutOrder.OrderTableList);
                checkoutOrder.CheckOutRemovePayType = _payMethodRepository.GetCheckOutRemovePayType();
                return(Json(checkoutOrder));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message));
            }
        }
Example #4
0
        public ActionResult GetOrderInfoForReCheckout(CheckoutReqDTO checkoutReqDTO)
        {
            try
            {
                var currentUser = OperatorProvider.Provider.GetCurrent();
                checkoutReqDTO.OrderTableStatus = OrderTableStatus.已结;
                CheckOutOrderDTO checkoutOrder = GetCheckOutOrder(checkoutReqDTO);
                var user = _userService.GetUserInfo(new VerifyUserDTO()
                {
                    UserId = currentUser.UserId
                });

                //var payTypeList = EnumToList.ConvertEnumToList(typeof(CyddPayType));
                var payTypeList = _payMethodRepository.GetList();
                checkoutOrder.OperateUser     = currentUser.UserId;
                checkoutOrder.OperateUserName = currentUser.UserName;
                checkoutOrder.TableIds        = checkoutReqDTO.TableIds;
                checkoutOrder.PayTypeList     = payTypeList;
                checkoutOrder.DiscountRate    = user.MinDiscountValue;
                checkoutOrder.AuthClearValue  = user.MaxClearValue;
                var mainPayId = checkoutOrder.OrderTableList.GroupBy(x => x.R_OrderMainPay_Id).Select(x => x.Key).FirstOrDefault();

                checkoutOrder.ClearAmount = checkoutOrder.PaidRecordList
                                            .Where(x => x.CyddJzType == CyddJzType.抹零 && x.CyddJzStatus == CyddJzStatus.已付 &&
                                                   x.OrderMainPayId == mainPayId)
                                            .Sum(x => x.PayAmount);

                checkoutOrder.Fraction = checkoutOrder.PaidRecordList
                                         .Where(x => x.CyddJzType == CyddJzType.四舍五入 && x.CyddJzStatus == CyddJzStatus.已付 &&
                                                x.OrderMainPayId == mainPayId)
                                         .Sum(x => x.PayAmount);

                checkoutOrder.ServiceAmount = checkoutOrder.PaidRecordList
                                              .Where(x => x.CyddJzType == CyddJzType.务费 && x.CyddJzStatus == CyddJzStatus.已付 &&
                                                     x.OrderMainPayId == mainPayId)
                                              .Sum(x => x.PayAmount);

                checkoutOrder.DiscountAmount = checkoutOrder.PaidRecordList
                                               .Where(x => x.CyddJzType == CyddJzType.折扣 && x.CyddJzStatus == CyddJzStatus.已付 &&
                                                      x.OrderMainPayId == mainPayId)
                                               .Sum(x => x.PayAmount);

                //只取当次结账已付的消费记录
                checkoutOrder.PaidRecordList = checkoutOrder.PaidRecordList
                                               .Where(x => (x.CyddJzType == CyddJzType.转结 || x.CyddJzType == CyddJzType.消费) &&
                                                      x.OrderMainPayId == mainPayId).ToList();

                return(Json(checkoutOrder));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message));
            }
        }
Example #5
0
        private CheckOutOrderDTO GetCheckOutOrder(CheckoutReqDTO checkoutReqDTO)
        {
            CheckOutOrderDTO checkoutOrder = _checkOutService.GetCheckOutOrderDTO(checkoutReqDTO.OrderId, checkoutReqDTO.TableIds, checkoutReqDTO.OrderTableStatus);

            return(checkoutOrder);
        }