コード例 #1
0
        public Int32 AddVIPCardStoredValue(VIPCardAddMoney cardMoney, out string tradePayNo)
        {
            int result = 0;

            tradePayNo = string.Empty;
            try
            {
                _daoManager.OpenConnection();
                //日结号
                string             dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                VIPCardStoredVaule cardStoredVaule  = _vipCardTradeDao.GetVIPCardStoredVaule(cardMoney.CardNo, cardMoney.StoreMoney);
                decimal            giftAmount       = 0M;
                int giftIntegral = 0;
                if (cardStoredVaule != null)
                {
                    decimal multiple = 1M;
                    if (cardStoredVaule.IsMultiple)
                    {
                        multiple = cardMoney.StoreMoney / cardStoredVaule.StoredVauleAmount;
                    }
                    if (cardStoredVaule.FixedAmount > 0)
                    {
                        giftAmount = cardStoredVaule.FixedAmount * multiple;
                    }
                    else
                    {
                        giftAmount = cardMoney.StoreMoney * cardStoredVaule.PresentAmountRate * multiple;
                    }
                    if (cardStoredVaule.FixedIntegral > 0)
                    {
                        giftIntegral = Convert.ToInt32(cardStoredVaule.FixedIntegral * multiple);
                    }
                    else
                    {
                        giftIntegral = Convert.ToInt32(cardMoney.StoreMoney * cardStoredVaule.PresentIntegralRate * multiple);
                    }
                }
                result = _vipCardTradeDao.AddVIPCardStoredValue(cardMoney.CardNo, cardMoney.StoreMoney, giftAmount, giftIntegral, cardMoney.EmployeeNo, cardMoney.DeviceNo, dailyStatementNo, cardMoney.PayoffID, cardMoney.PayoffName, out tradePayNo);
            }
            catch (Exception exception)
            {
                LogHelper.GetInstance().Error(string.Format("[AddVIPCardStoredValue]参数:cardMoney_{0}", JsonConvert.SerializeObject(cardMoney)), exception);
            }
            finally
            {
                _daoManager.CloseConnection();
            }
            return(result);
        }
コード例 #2
0
        public bool CreatePrePayOrder(PayingOrder payingOrder)
        {
            bool returnValue = false;

            _daoManager.BeginTransaction();
            try
            {
                if (payingOrder != null)
                {
                    //日结
                    string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                    //更新Order
                    if (_orderDao.UpdatePrePayOrder(payingOrder.order))
                    {
                        //更新OrderDetails
                        foreach (OrderDetails item in payingOrder.orderDetailsList)
                        {
                            _orderDetailsDao.UpdateOrderDetailsDiscount(item);
                        }
                        //插入OrderDiscount
                        if (payingOrder.orderDiscountList != null && payingOrder.orderDiscountList.Count > 0)
                        {
                            foreach (OrderDiscount item in payingOrder.orderDiscountList)
                            {
                                item.DailyStatementNo = dailyStatementNo;
                                _orderDiscountDao.CreateOrderDiscount(item);
                            }
                        }
                        returnValue = true;
                    }
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                LogHelper.GetInstance().Error(string.Format("[CreatePrePayOrder]参数:payingOrder_{0}", JsonConvert.SerializeObject(payingOrder)), exception);
                _daoManager.RollBackTransaction();
                returnValue = false;
            }
            return(returnValue);
        }
コード例 #3
0
        public bool ModifyForOrder(ModifiedPaidOrder modifiedOrder)
        {
            bool returnValue = false;

            _daoManager.BeginTransaction();
            try
            {
                if (modifiedOrder != null)
                {
                    //日结
                    string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                    //更新Order
                    if (_orderDao.UpdatePaidOrderPrice(modifiedOrder.order))
                    {
                        //更新OrderDetails
                        foreach (OrderDetails item in modifiedOrder.orderDetailsList)
                        {
                            _orderDetailsDao.UpdateOrderDetailsDiscount(item);
                        }
                        if (modifiedOrder.orderDiscountList != null && modifiedOrder.orderDiscountList.Count > 0)
                        {
                            foreach (OrderDiscount item in modifiedOrder.orderDiscountList)
                            {
                                //删除OrderDiscount
                                _orderDiscountDao.DeleteOrderSingleDiscount(item.OrderDetailsID);
                                //插入OrderDiscount
                                item.DailyStatementNo = dailyStatementNo;
                                _orderDiscountDao.CreateOrderDiscount(item);
                            }
                        }
                        _orderPayoffDao.DeleteOrderPayoff(modifiedOrder.order.OrderID);
                        //插入OrderPayoff
                        foreach (OrderPayoff item in modifiedOrder.orderPayoffList)
                        {
                            item.DailyStatementNo = dailyStatementNo;
                            _orderPayoffDao.CreateOrderPayoff(item);
                        }
                        returnValue = true;
                    }
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                LogHelper.GetInstance().Error(string.Format("[ModifyForOrder]参数:modifiedOrder_{0}", JsonConvert.SerializeObject(modifiedOrder)), exception);
                _daoManager.RollBackTransaction();
                returnValue = false;
            }
            return(returnValue);
        }
コード例 #4
0
        public Int32 CreateDailyBalance(DailyBalance dailyBalance, out string unCheckDeviceNo)
        {
            unCheckDeviceNo = string.Empty;
            int returnValue;    //日结失败

            _daoManager.BeginTransaction();
            try
            {
                //日结号
                string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                //更新日结信息
                DailyStatement dailyStatement = dailyBalance.dailyStatement;
                dailyStatement.DailyStatementNo = dailyStatementNo;
                returnValue = _dailyStatementDao.UpdateDailyStatement(dailyStatement, out unCheckDeviceNo);
                if (returnValue == 1)
                {
                    //插入日结金额
                    DailyTurnover dailyTurnover = dailyBalance.dailyTurnover;
                    dailyTurnover.DailyStatementNo = dailyStatementNo;
                    _dailyTurnoverDao.CreateDailyTurnover(dailyTurnover);
                    //创建新的日结
                    DailyStatement item = new DailyStatement();
                    item.DailyStatementID = Guid.NewGuid();
                    item.DailyStatementNo = DateTime.Now.ToString("yyMMddHHmmssff");
                    _dailyStatementDao.CreateDailyStatement(item);
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                _daoManager.RollBackTransaction();
                returnValue = 0;
                LogHelper.GetInstance().Error(string.Format("[CreateDailyBalance]参数:dailyBalance_{0}", JsonConvert.SerializeObject(dailyBalance)), exception);
            }
            return(returnValue);
        }
コード例 #5
0
        public IList <DeliveryOrder> GetDeliveryOrderList()
        {
            IList <DeliveryOrder> deliveryOrderList = null;

            try
            {
                _daoManager.OpenConnection();
                //日结号
                string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                if (!string.IsNullOrEmpty(dailyStatementNo))
                {
                    deliveryOrderList = _orderDao.GetDeliveryOrderList(dailyStatementNo);
                }
            }
            catch (Exception exception)
            {
                LogHelper.GetInstance().Error("[GetDeliveryOrderList]", exception);
            }
            finally
            {
                _daoManager.CloseConnection();
            }
            return(deliveryOrderList);
        }
コード例 #6
0
        public bool DeletePaidSingleOrder(DeletedPaidOrder deletedPaidOrder)
        {
            bool returnValue = false;

            _daoManager.BeginTransaction();
            try
            {
                if (deletedPaidOrder != null)
                {
                    if (_orderDao.UpdatePaidOrderPrice(deletedPaidOrder.order))
                    {
                        foreach (DeletedOrderDetails item in deletedPaidOrder.deletedOrderDetailsList)
                        {
                            _orderDetailsDao.DeleteSingleOrderDetails(item);
                        }
                        _orderPayoffDao.DeleteOrderPayoff(deletedPaidOrder.order.OrderID);
                        //日结号
                        string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                        //插入OrderPayoff
                        foreach (OrderPayoff item in deletedPaidOrder.orderPayoffList)
                        {
                            item.DailyStatementNo = dailyStatementNo;
                            _orderPayoffDao.CreateOrderPayoff(item);
                        }
                        returnValue = true;
                    }
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                _daoManager.RollBackTransaction();
                returnValue = false;
                LogHelper.GetInstance().Error(string.Format("[DeletePaidSingleOrder]参数:deletedPaidOrder_{0}", JsonConvert.SerializeObject(deletedPaidOrder)), exception);
            }
            return(returnValue);
        }
コード例 #7
0
        public decimal GetLastCustomPrice(Guid goodsId)
        {
            decimal price = 0M;

            try
            {
                _daoManager.OpenConnection();
                //日结号
                string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                if (!string.IsNullOrEmpty(dailyStatementNo))
                {
                    price = _orderDetailsDao.GetLastCustomPrice(dailyStatementNo, goodsId);
                }
            }
            catch (Exception exception)
            {
                LogHelper.GetInstance().Error(string.Format("[GetLastCustomPrice]参数:goodsId_{0}", goodsId), exception);
            }
            finally
            {
                _daoManager.CloseConnection();
            }
            return(price);
        }
コード例 #8
0
        public bool CreateHandover(HandoverInfo handover)
        {
            bool returnValue = false;

            _daoManager.BeginTransaction();
            try
            {
                //日结号
                string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                if (!string.IsNullOrEmpty(dailyStatementNo))
                {
                    //交班记录
                    HandoverRecord handoverRecord = handover.handoverRecord;
                    handoverRecord.DailyStatementNo = dailyStatementNo;
                    _handoverRecord.CreateHandoverRecord(handoverRecord);
                    //交班金额列表
                    if (handover.handoverTurnoverList != null && handover.handoverTurnoverList.Count > 0)
                    {
                        foreach (HandoverTurnover item in handover.handoverTurnoverList)
                        {
                            item.DailyStatementNo = dailyStatementNo;
                            _handoverTurnover.CreateHandoverTurnover(item);
                        }
                    }
                    returnValue = true;
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                LogHelper.GetInstance().Error(string.Format("[CreateHandover]参数:handover_{0}", JsonConvert.SerializeObject(handover)), exception);
                _daoManager.RollBackTransaction();
                returnValue = false;
            }
            return(returnValue);
        }
コード例 #9
0
        /// <summary>
        /// 获取营业额统计
        /// </summary>
        /// <param name="deviceNo">设备号</param>
        /// <returns></returns>
        public BusinessReport GetReportDataByHandover(string deviceNo)
        {
            BusinessReport reportData = null;

            try
            {
                _daoManager.OpenConnection();
                //日结
                string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                if (!string.IsNullOrEmpty(dailyStatementNo))
                {
                    BusinessReport           businessReport       = _businessReportDao.GetTurnoverByHandover(dailyStatementNo, deviceNo);
                    int                      workSequence         = businessReport.WorkSequence;
                    IList <OrderDiscountSum> orderDiscountSumList = _businessReportDao.GetOrderDiscountSumByHandover(dailyStatementNo, workSequence);
                    IList <OrderPayoffSum>   orderPayoffSumList   = _businessReportDao.GetOrderPayoffSumByHandover(dailyStatementNo, workSequence);
                    IList <ItemsPrice>       itemsPriceList       = _businessReportDao.GetItemsPriceByHandover(dailyStatementNo, workSequence);

                    IList <SalesPriceByDepart> priceByDepartList = new List <SalesPriceByDepart>();
                    if (itemsPriceList.Count > 0)
                    {
                        string             curDepartName      = itemsPriceList[0].DepartName;
                        decimal            totalDepartPrice   = 0;
                        decimal            totalItemsNum      = 0;
                        IList <ItemsPrice> tempItemsPriceList = new List <ItemsPrice>();
                        foreach (ItemsPrice item in itemsPriceList)
                        {
                            if (item.DepartName != curDepartName)
                            {
                                SalesPriceByDepart salesPrice = new SalesPriceByDepart();
                                salesPrice.DepartName       = curDepartName;
                                salesPrice.TotalDepartPrice = totalDepartPrice;
                                salesPrice.TotalItemsNum    = totalItemsNum;
                                salesPrice.ItemsPriceList   = tempItemsPriceList;
                                priceByDepartList.Add(salesPrice);

                                curDepartName      = item.DepartName;
                                totalDepartPrice   = item.ItemsTotalPrice;
                                totalItemsNum      = item.ItemsTotalQty;
                                tempItemsPriceList = new List <ItemsPrice>();
                            }
                            else
                            {
                                totalDepartPrice += item.ItemsTotalPrice;
                                totalItemsNum    += item.ItemsTotalQty;
                            }
                            tempItemsPriceList.Add(item);
                        }
                        SalesPriceByDepart tempSalesPrice = new SalesPriceByDepart
                        {
                            DepartName       = curDepartName,
                            TotalDepartPrice = totalDepartPrice,
                            TotalItemsNum    = totalItemsNum,
                            ItemsPriceList   = tempItemsPriceList
                        };
                        priceByDepartList.Add(tempSalesPrice);
                    }
                    reportData = new BusinessReport
                    {
                        WorkSequence           = businessReport.WorkSequence,
                        LastHandoverTime       = businessReport.LastHandoverTime,
                        TotalRevenue           = businessReport.TotalRevenue,
                        CutOffTotalPrice       = businessReport.CutOffTotalPrice,
                        DiscountTotalPrice     = businessReport.DiscountTotalPrice,
                        ActualTotalIncome      = businessReport.ActualTotalIncome,
                        TotalServiceFee        = businessReport.TotalServiceFee,
                        BillTotalQty           = businessReport.BillTotalQty,
                        PeopleTotalNum         = businessReport.PeopleTotalNum,
                        orderDiscountSumList   = orderDiscountSumList,
                        orderPayoffSumList     = orderPayoffSumList,
                        salesPriceByDepartList = priceByDepartList
                    };
                }
            }
            catch (Exception exception)
            {
                reportData = null;
                LogHelper.GetInstance().Error("[GetReportDataByHandover]参数:deviceNo_" + deviceNo, exception);
            }
            finally
            {
                _daoManager.CloseConnection();
            }
            return(reportData);
        }
コード例 #10
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);
        }