public bool DeleteWholeOrder(DeletedOrder deletedOrder) { bool returnValue = false; _daoManager.BeginTransaction(); try { SystemConfig systemConfig = _sysConfigDao.GetSystemConfigInfo(); if (systemConfig.IncludeKitchenPrint) { //获取打印任务列表 Order order = _orderDao.GetOrder(deletedOrder.OrderID); IList <OrderDetails> orderDetailsList = _orderDetailsDao.GetOrderDetailsList(deletedOrder.OrderID); SalesOrder salesOrder = new SalesOrder { order = order, orderDetailsList = orderDetailsList }; IList <PrintTask> printTaskList = PrintTaskService.GetInstance().GetPrintTaskList(salesOrder, systemConfig.PrintStyle, systemConfig.FollowStyle, systemConfig.PrintType, 2, deletedOrder.CancelReasonName); foreach (PrintTask printTask in printTaskList) { printTask.ItemQty = -printTask.ItemQty; //数量应该为负数 _printTaskDao.InsertPrintTask(printTask); } } //删除账单 if (_orderDao.DeleteWholeOrder(deletedOrder)) { if (_orderDetailsDao.DeleteWholeOrderDetails(deletedOrder)) { //该订单可能不包含折扣 _orderDiscountDao.DeleteOrderDiscount(deletedOrder.OrderID); returnValue = true; } } _daoManager.CommitTransaction(); } catch (Exception exception) { _daoManager.RollBackTransaction(); returnValue = false; LogHelper.GetInstance().Error(string.Format("[DeleteWholeOrder]参数:deletedOrder_{0}", JsonConvert.SerializeObject(deletedOrder)), exception); } return(returnValue); }
public bool CreateReminderOrder(ReminderOrder reminderOrder) { if (reminderOrder == null || reminderOrder.OrderDetailsIDList == null || reminderOrder.OrderDetailsIDList.Count <= 0) { return(false); } bool returnValue = false; try { _daoManager.OpenConnection(); //添加打印任务 SystemConfig systemConfig = _sysConfigDao.GetSystemConfigInfo(); if (systemConfig.IncludeKitchenPrint) { Order order = _orderDao.GetOrder(reminderOrder.OrderID); if (order != null) { SalesOrder salesOrder = new SalesOrder { order = order, orderDetailsList = _orderDetailsDao.GetOrderDetailsList(reminderOrder.OrderDetailsIDList) }; IList <PrintTask> printTaskList = PrintTaskService.GetInstance().GetPrintTaskList(salesOrder, systemConfig.PrintStyle, systemConfig.FollowStyle, systemConfig.PrintType, 3, reminderOrder.ReasonName); foreach (PrintTask printTask in printTaskList) { _printTaskDao.InsertPrintTask(printTask); } } } returnValue = true; } catch (Exception exception) { LogHelper.GetInstance().Error(string.Format("[CreateReminderOrder]参数:reminderOrder_{0}", JsonConvert.SerializeObject(reminderOrder)), exception); } finally { _daoManager.CloseConnection(); } return(returnValue); }
public bool DeleteSingleOrder(DeletedSingleOrder deletedSingleOrder) { bool returnValue = false; _daoManager.BeginTransaction(); try { Order order = new Order { OrderID = deletedSingleOrder.OrderID, TotalSellPrice = deletedSingleOrder.TotalSellPrice, ActualSellPrice = deletedSingleOrder.ActualSellPrice, DiscountPrice = deletedSingleOrder.DiscountPrice, CutOffPrice = deletedSingleOrder.CutOffPrice }; if (_orderDao.UpdateOrderPrice(order)) { foreach (DeletedOrderDetails item in deletedSingleOrder.deletedOrderDetailsList) { _orderDetailsDao.DeleteSingleOrderDetails(item); } //获取打印任务列表 Order tempOrder = _orderDao.GetOrder(deletedSingleOrder.OrderID); if (tempOrder != null) { SalesOrder salesOrder = new SalesOrder(); salesOrder.order = tempOrder; IList <OrderDetails> tempOrderDetailsList = new List <OrderDetails>(); string cancelReason = string.Empty; foreach (DeletedOrderDetails item in deletedSingleOrder.deletedOrderDetailsList) { OrderDetails orderDetails = _orderDetailsDao.GetOrderDetails(item.OrderDetailsID); orderDetails.ItemQty = item.DeletedQuantity; tempOrderDetailsList.Add(orderDetails); if (string.IsNullOrEmpty(cancelReason) && !string.IsNullOrEmpty(item.CancelReasonName)) { cancelReason = item.CancelReasonName; } } salesOrder.orderDetailsList = tempOrderDetailsList; //添加打印任务 SystemConfig systemConfig = _sysConfigDao.GetSystemConfigInfo(); if (systemConfig.IncludeKitchenPrint) { IList <PrintTask> printTaskList = PrintTaskService.GetInstance().GetPrintTaskList(salesOrder, systemConfig.PrintStyle, systemConfig.FollowStyle, systemConfig.PrintType, 2, cancelReason); foreach (PrintTask printTask in printTaskList) { _printTaskDao.InsertPrintTask(printTask); } } } returnValue = true; } _daoManager.CommitTransaction(); } catch (Exception exception) { _daoManager.RollBackTransaction(); returnValue = false; LogHelper.GetInstance().Error(string.Format("[DeleteSingleOrder]参数:deletedSingleOrder_{0}", JsonConvert.SerializeObject(deletedSingleOrder)), exception); } return(returnValue); }
public Int32 CreateSalesOrder(SalesOrder salesOrder) { Int32 tranSequence = 0; _daoManager.BeginTransaction(); try { //日结号 string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo(); if (!string.IsNullOrEmpty(dailyStatementNo)) { Order order = salesOrder.order; order.DailyStatementNo = dailyStatementNo; //分单号 Int32 curSubOrderNo = _orderDao.GetCurrentSubOrderNo(order.DeskName); if (curSubOrderNo > 0) { curSubOrderNo++; } else { curSubOrderNo = 1; } order.SubOrderNo = curSubOrderNo; //流水号 order.TranSequence = tranSequence = _sysDictionary.GetCurrentTranSequence(); string orderNo = _orderDao.CreateOrder(order); order.OrderNo = orderNo; //菜单品项序号 int seqNumber = _orderDetailsDao.GetSequenceNum(order.OrderID); foreach (OrderDetails item in salesOrder.orderDetailsList) { item.DailyStatementNo = dailyStatementNo; item.OrderBy = seqNumber; _orderDetailsDao.CreateOrderDetails(item); seqNumber++; } //折扣信息 if (salesOrder.orderDiscountList != null && salesOrder.orderDiscountList.Count > 0) { foreach (OrderDiscount item in salesOrder.orderDiscountList) { item.DailyStatementNo = dailyStatementNo; _orderDiscountDao.CreateOrderDiscount(item); } } //添加打印任务 SystemConfig systemConfig = _sysConfigDao.GetSystemConfigInfo(); if (systemConfig.IncludeKitchenPrint) { IList <PrintTask> printTaskList = PrintTaskService.GetInstance().GetPrintTaskList(salesOrder, systemConfig.PrintStyle, systemConfig.FollowStyle, systemConfig.PrintType, 1, string.Empty); foreach (PrintTask printTask in printTaskList) { _printTaskDao.InsertPrintTask(printTask); } } } _daoManager.CommitTransaction(); } catch (Exception exception) { LogHelper.GetInstance().Error(string.Format("[CreateSalesOrder]参数:salesOrder_{0}", JsonConvert.SerializeObject(salesOrder)), exception); tranSequence = 0; _daoManager.RollBackTransaction(); } return(tranSequence); }
public bool CreateOrderInAndroid(string deskName, int peopleNum, Guid employeeId, string employeeNo, IList <OrderDetail> orderDetailList) { bool isSuccess = false; if (orderDetailList != null && orderDetailList.Count > 0) { _daoManager.BeginTransaction(); try { //日结号 string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo(); if (!string.IsNullOrEmpty(dailyStatementNo)) { decimal totalPrice = 0, actualPayMoney = 0, totalDiscount = 0; foreach (var orderDetail in orderDetailList) { totalPrice += orderDetail.SellPrice * orderDetail.GoodsQty; actualPayMoney += orderDetail.SellPrice * orderDetail.GoodsQty - orderDetail.TotalDiscount; totalDiscount += orderDetail.TotalDiscount; } const string deviceNo = "AD"; //批量获取品项 List <Guid> goodsIdList = orderDetailList.Select(orderDetail => orderDetail.GoodsId).ToList(); IList <Goods> goodsList = _goodsDao.GetGoodsList(goodsIdList); if (goodsList != null && goodsList.Count > 0) { //订单头部 Order order = new Order { OrderID = Guid.NewGuid(), TotalSellPrice = totalPrice, ActualSellPrice = actualPayMoney, DiscountPrice = totalDiscount, CutOffPrice = 0, ServiceFee = 0, DeviceNo = deviceNo, DeskName = deskName, EatType = (int)EatWayType.DineIn, Status = 0, PeopleNum = peopleNum, EmployeeID = employeeId, EmployeeNo = employeeNo, DailyStatementNo = dailyStatementNo }; //分单号 Int32 curSubOrderNo = _orderDao.GetCurrentSubOrderNo(deskName); if (curSubOrderNo > 0) { curSubOrderNo++; } else { curSubOrderNo = 1; } order.SubOrderNo = curSubOrderNo; //流水号 order.TranSequence = _sysDictionary.GetCurrentTranSequence(); string orderNo = _orderDao.CreateOrder(order); order.OrderNo = orderNo; //菜单品项序号 IList <OrderDetails> orderDetailsList = new List <OrderDetails>(); int seqNumber = _orderDetailsDao.GetSequenceNum(order.OrderID); foreach (OrderDetail item in orderDetailList) { Goods goods = goodsList.FirstOrDefault(g => g.GoodsID.Equals(item.GoodsId)); if (goods != null) { OrderDetails orderDetails = new OrderDetails { OrderDetailsID = Guid.NewGuid(), OrderID = order.OrderID, DeviceNo = deviceNo, TotalSellPrice = item.SellPrice * item.GoodsQty, TotalDiscount = item.TotalDiscount, ItemQty = item.GoodsQty, EmployeeID = employeeId, ItemType = (int)OrderItemType.Goods, GoodsID = item.GoodsId, GoodsNo = goods.GoodsNo, GoodsName = item.GoodsName, Unit = goods.Unit, CanDiscount = goods.CanDiscount, SellPrice = item.SellPrice, PrintSolutionName = goods.PrintSolutionName, DepartID = goods.DepartID, DailyStatementNo = dailyStatementNo, OrderBy = seqNumber }; orderDetailsList.Add(orderDetails); _orderDetailsDao.CreateOrderDetails(orderDetails); seqNumber++; if (!string.IsNullOrEmpty(item.Remark)) { //自定义口味 orderDetails = new OrderDetails { OrderDetailsID = Guid.NewGuid(), OrderID = order.OrderID, DeviceNo = deviceNo, TotalSellPrice = 0, TotalDiscount = 0, ItemLevel = 1, ItemQty = item.GoodsQty, EmployeeID = employeeId, ItemType = (int)OrderItemType.Details, GoodsID = new Guid("77777777-7777-7777-7777-777777777777"), GoodsNo = "7777", GoodsName = item.Remark, Unit = "", CanDiscount = false, SellPrice = 0, PrintSolutionName = goods.PrintSolutionName, DepartID = goods.DepartID, DailyStatementNo = dailyStatementNo, OrderBy = seqNumber }; orderDetailsList.Add(orderDetails); _orderDetailsDao.CreateOrderDetails(orderDetails); seqNumber++; } } } //折扣信息 //if (salesOrder.orderDiscountList != null && salesOrder.orderDiscountList.Count > 0) //{ // foreach (OrderDiscount item in salesOrder.orderDiscountList) // { // item.DailyStatementNo = dailyStatementNo; // _orderDiscountDao.CreateOrderDiscount(item); // } //} SalesOrder salesOrder = new SalesOrder { order = order, orderDetailsList = orderDetailsList }; //salesOrder.orderDiscountList = newOrderDiscountList; //添加打印任务 SystemConfig systemConfig = _sysConfigDao.GetSystemConfigInfo(); if (systemConfig.IncludeKitchenPrint) { IList <PrintTask> printTaskList = PrintTaskService.GetInstance().GetPrintTaskList(salesOrder, systemConfig.PrintStyle, systemConfig.FollowStyle, systemConfig.PrintType, 1, string.Empty); foreach (PrintTask printTask in printTaskList) { _printTaskDao.InsertPrintTask(printTask); } } } } _daoManager.CommitTransaction(); isSuccess = true; } catch (Exception exception) { LogHelper.GetInstance().Error(string.Format("[CreateOrderInAndroid]参数:deskName_{0},peopleNum_{1},employeeId_{2},employeeNo_{3},orderDetailList_{4}", deskName, peopleNum, employeeId, employeeNo, JsonConvert.SerializeObject(orderDetailList)), exception); isSuccess = false; _daoManager.RollBackTransaction(); } } return(isSuccess); }