/// <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)); }
/// <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)); } }
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)); } }
private CheckOutOrderDTO GetCheckOutOrder(CheckoutReqDTO checkoutReqDTO) { CheckOutOrderDTO checkoutOrder = _checkOutService.GetCheckOutOrderDTO(checkoutReqDTO.OrderId, checkoutReqDTO.TableIds, checkoutReqDTO.OrderTableStatus); return(checkoutOrder); }