コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }