Example #1
0
        public ActionResult ChangeTableSubmit(ChangeTableSubmitDTO req)
        {
            Response res = new Response();

            if (ModelState.IsValid)
            {
                res.Data = OrderRepository.ChangeTableSubmit(req);
                if (Convert.ToBoolean(res.Data) == false)
                {
                    res.Message = "操作失败";
                }
            }
            else
            {
                res.Data    = false;
                res.Message = string.Join(",", ModelState.SelectMany(ms => ms.Value.Errors).Select(e => e.ErrorMessage));
            }
            return(Json(res, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        /// <summary>
        /// 换桌操作处理
        /// </summary>
        /// <param name="handleDto"></param>
        /// <returns></returns>
        public bool ChangeTableHandle(ChangeTableSubmitDTO handleDto)
        {
            using (var db = new SqlSugarClient(Connection))
            {
                bool res = true;
                try
                {
                    var userInfo = OperatorProvider.Provider.GetCurrent();
                    db.BeginTran();
                    var orderTable = db.Queryable <R_OrderTable>()
                                     .Where(p => p.Id == handleDto.OrderTableId)
                                     .FirstOrDefault();
                    var newTable = db.Queryable <R_Table>()
                                   .FirstOrDefault(p => p.Id == handleDto.NewTableId);
                    if (newTable.CythStatus == CythStatus.在用)
                    {
                        throw new Exception(string.Format(
                                                "所选台号({0})已被使用,请重新选择!", newTable.Name));
                    }

                    //var orderTableList = OrderRep.GetOrderTableListBy(handleDto.OldTableId, SearchTypeBy.台号Id);
                    var orderTableList = db.Queryable <R_OrderTable>()
                                         .Where(x => x.R_Table_Id == handleDto.OldTableId &&
                                                !x.IsCheckOut && x.IsOpen)
                                         .ToList();

                    db.Update <R_OrderTable>(new
                    {
                        R_Table_Id = handleDto.NewTableId
                    }, p => p.Id == handleDto.OrderTableId);

                    if (orderTableList.Count == 1)
                    {
                        db.Update <R_Table>(new
                        {
                            CythStatus = CythStatus.清理
                        }, p => p.Id == handleDto.OldTableId);
                    }

                    db.Update <R_Table>(new
                    {
                        CythStatus = CythStatus.在用
                    }, p => p.Id == handleDto.NewTableId);

                    var order = db.Queryable <R_Order>()
                                .Where(x => x.Id == orderTable.R_Order_Id)
                                .FirstOrDefault();
                    var market    = db.Queryable <R_Market>().FirstOrDefault(p => p.Id == order.R_Market_Id);
                    var resturant = db.Queryable <R_Restaurant>().FirstOrDefault(p => p.Id == order.R_Restaurant_Id);

                    var oldTableName = db.Queryable <R_Table>()
                                       .Where(x => x.Id == handleDto.OldTableId)
                                       .Select(x => x.Name)
                                       .FirstOrDefault();

                    R_OrderRecord record = new R_OrderRecord
                    {
                        CreateDate      = DateTime.Now,
                        R_Order_Id      = orderTable.R_Order_Id,
                        R_OrderTable_Id = handleDto.OrderTableId,
                        CyddCzjlStatus  = CyddStatus.换桌,
                        Remark          = string.Format("订单({0})换桌从台[{1}]换至:[{2}]",
                                                        order.OrderNo, oldTableName, newTable.Name),
                        CyddCzjlUserType = CyddCzjlUserType.员工,
                        CreateUser       = handleDto.CreateUser
                    };
                    db.Insert <R_OrderRecord>(record);

                    var areaIds = newTable.R_Area_Id;
                    var prints  = db.Queryable <Printer>()
                                  .JoinTable <R_WeixinPrint>((s1, s2) => s1.Id == s2.Print_Id)
                                  .JoinTable <R_WeixinPrint, R_WeixinPrintArea>((s1, s2, s3) => s2.Id == s3.R_WeixinPrint_Id)
                                  .Where <R_WeixinPrint, R_WeixinPrintArea>((s1, s2, s3) => s1.IsDelete == false &&
                                                                            s2.PrintType == PrintType.换台区域出单 && areaIds == s3.R_Area_Id).Select("s1.*").ToList();
                    var printerList = prints.Distinct().ToList();
                    if (printerList.Any())
                    {
                        string cpdyThGuid = string.Empty;   //出品打印按桌号出生成标识
                        cpdyThGuid = orderTable.Id + DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        List <Cpdy> cydyInsert = new List <Cpdy>();
                        foreach (var print in printerList)
                        {
                            cydyInsert.Add(new Cpdy
                            {
                                cymxxh00 = orderTable.Id,
                                cyzdxh00 = orderTable.R_Order_Id,
                                cymxdm00 = market.Name,
                                cymxmc00 = string.Format("订单号:({0}) 台号:({1}) 转至 台号:({2})", order.OrderNo, oldTableName, newTable.Name),
                                cymxdw00 = userInfo.UserName,
                                cymxsl00 = string.Empty,
                                cymxdybz = false,
                                cymxyj00 = print.IpAddress,
                                cymxclbz = "0",
                                cymxczrq = DateTime.Now,
                                cymxzdbz = "2",
                                //cymxyq00 = detail.CyddMxName,
                                //cymxzf00 = detail.CyddMxName,
                                //cymxpc00 = detail.CyddMxName,
                                cymxczy0 = userInfo.UserName,
                                cymxfwq0 = print.PcName,
                                cymxczdm = userInfo.UserCode,
                                cymxje00 = "",
                                cymxth00 = oldTableName,
                                cymxrs00 = order.PersonNum.ToString(),
                                cymxct00 = resturant.Name,
                                cymxzdid = cpdyThGuid,
                                cymxbt00 = "换台单",
                                cymxzwrq = DateTime.Now.ToString("yyyy-MM-dd"),
                                cpdysdxh = cpdyThGuid,
                                cymxdk00 = print.Name,
                                cymxgdbz = false,
                                cpdyfsl0 = market.Name
                            });
                        }
                        db.InsertRange <Cpdy>(cydyInsert);
                    }

                    db.CommitTran();
                }
                catch (Exception e)
                {
                    res = false;
                    db.RollbackTran();
                    throw e;
                }

                return(res);
            }
        }