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)); }
/// <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); } }