Esempio n. 1
0
        /// <summary>
        /// 充值
        /// </summary>
        /// <param name="para"></param>
        public void CardInMoney(CardInMoneyParaObj para)
        {
            if (para.Amount <= 0)
            {
                throw new ArgumentException("请输入充值金额");
            }
            if (para.PayTypeId == null || para.PayTypeId == Guid.Empty)
            {
                throw new ArgumentNullException("请选择支付方式");
            }

            DXInfo.Models.Recharges recharge = new DXInfo.Models.Recharges();
            recharge.Amount          = para.Amount;
            recharge.Donate          = para.Donate;
            recharge.LastBalance     = para.LastBalance;
            recharge.Balance         = para.Balance;
            recharge.Card            = para.CardId;
            recharge.CreateDate      = para.CreateDate;
            recharge.UserId          = para.UserId;
            recharge.DeptId          = para.DeptId;
            recharge.PayType         = para.PayTypeId;
            recharge.RechargeType    = para.RechargeType;
            recharge.OperatorsOnDuty = para.OperatorsOnDuty;
            uow.Recharges.Add(recharge);

            DXInfo.Models.Cards oldCard = uow.Cards.GetById(g => g.Id == para.CardId);
            if (oldCard == null)
            {
                throw new ArgumentException("请先读卡");
            }
            oldCard.Balance = recharge.Balance;
            uow.Cards.Update(oldCard);

            DXInfo.Models.CardsLog cardsLog = Mapper.Map <DXInfo.Models.Cards, DXInfo.Models.CardsLog>(oldCard);
            cardsLog.CardId     = para.CardId;
            cardsLog.CreateDate = para.CreateDate;
            cardsLog.UserId     = para.UserId;
            cardsLog.DeptId     = para.DeptId;
            uow.CardsLog.Add(cardsLog);
            //小票
            DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
            bill.Amount      = para.Amount;
            bill.Balance     = para.Balance;
            bill.BillType    = "CardInMoneyWindow";
            bill.CardNo      = oldCard.CardNo;
            bill.CreateDate  = para.CreateDate;
            bill.DeptName    = para.DeptName;
            bill.Donate      = para.Donate;
            bill.FullName    = para.UserName + "," + para.FullName;
            bill.LastBalance = para.LastBalance;
            bill.MemberName  = para.MemberName;
            bill.PayTypeName = para.PayTypeName;
            uow.Bills.Add(bill);

            uow.Commit();
        }
Esempio n. 2
0
        public void StickerBill(ObservableCollection <DXInfo.Models.InventoryEx> oiex, string deskNo, DateTime dCreateDate, string deptName)
        {
            if (oiex.Where(w => !string.IsNullOrEmpty(w.Printer)).Count() == 0)
            {
                return;
            }
            int     idx       = 0;
            decimal dQuantity = oiex.Sum(s => s.Quantity);

            using (TransactionScope transaction = new TransactionScope())
            {
                foreach (DXInfo.Models.InventoryEx iex in oiex)
                {
                    if (!string.IsNullOrEmpty(iex.Printer))
                    {
                        int cout = Convert.ToInt32(iex.Quantity);
                        for (int i = 0; i < cout; i++)
                        {
                            idx++;
                            DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
                            bill.BillType    = DXInfo.Models.BillType.Sticker.ToString();
                            bill.CreateDate  = dCreateDate;
                            bill.DeptName    = deptName;
                            bill.DeskNo      = deskNo;
                            bill.CardNo      = idx.ToString();
                            bill.Amount      = iex.CurrentSalePrice;
                            bill.Sum         = dQuantity;
                            bill.PayTypeName = iex.Printer;
                            uow.Bills.Add(bill);
                            uow.Commit();

                            DXInfo.Models.BillInvLists bl = new DXInfo.Models.BillInvLists();
                            bl.Bill      = bill.Id;
                            bl.CupType   = iex.CupType.Name;
                            bl.Name      = iex.Name;
                            bl.Quantity  = idx;
                            bl.SalePrice = iex.CurrentSalePrice;
                            bl.Tastes    = iex.lTasteEx.Where(w => w.IsSelected == true).Count() == 0 ? "" : iex.lTasteEx.Where(w => w.IsSelected == true).Select(l => l.Name).Aggregate((total, next) => (total + "," + next));//si.Tastes;
                            uow.BillInvLists.Add(bl);
                        }
                    }
                }
                uow.Commit();
                transaction.Complete();
            }
        }
Esempio n. 3
0
        private void print(object sender)
        {
            //打印
            Guid mid = Guid.Parse((sender as Button).Tag.ToString());

            DXInfo.Models.Bills bill = Uow.Bills.GetById(g => g.Id == mid);
            if (bill != null)
            {
                List <DXInfo.Models.BillInvLists>       lBillInvList       = Uow.BillInvLists.GetAll().Where(w => w.Bill == bill.Id).ToList();
                List <DXInfo.Models.BillDonateInvLists> lBillDonateInvList = Uow.BillDonateInvLists.GetAll().Where(w => w.Bill == bill.Id).ToList();


                ObservableCollection <DXInfo.Models.InventoryEx> oiex = new ObservableCollection <DXInfo.Models.InventoryEx>();
                foreach (DXInfo.Models.BillInvLists billInvList in lBillInvList)
                {
                    DXInfo.Models.InventoryEx iex = Mapper.Map <DXInfo.Models.InventoryEx>(billInvList);
                    iex.CupType           = new DXInfo.Models.MyEnum();
                    iex.CupType.Name      = billInvList.CupType;
                    iex.lTasteEx          = new DXInfo.Models.TasteExList();
                    iex.IsInvDynamicPrice = this.IsInvDynamicPrice;
                    if (!string.IsNullOrEmpty(billInvList.Tastes))
                    {
                        string[] strTastes = billInvList.Tastes.Split(',');
                        foreach (string taste in strTastes)
                        {
                            if (!string.IsNullOrEmpty(taste))
                            {
                                DXInfo.Models.TasteEx tex = new DXInfo.Models.TasteEx();
                                tex.IsSelected = true;
                                tex.Name       = taste;
                                iex.lTasteEx.Add(tex);
                            }
                        }
                    }
                    oiex.Add(iex);
                }
                List <DXInfo.Models.CardDonateInventoryEx> lcdi = new List <DXInfo.Models.CardDonateInventoryEx>();
                foreach (DXInfo.Models.BillDonateInvLists billInvList in lBillDonateInvList)
                {
                    DXInfo.Models.CardDonateInventoryEx cdi = Mapper.Map <DXInfo.Models.CardDonateInventoryEx>(billInvList);
                    lcdi.Add(cdi);
                }
                DateTime dCreateDate = bill.CreateDate.Value;
                decimal  dSum        = bill.Sum.HasValue ? bill.Sum.Value : 0;
                decimal  dQuantity   = oiex.Sum(s => s.Quantity);
                string   title       = "";
                decimal  dBalance    = bill.Balance.HasValue ? bill.Balance.Value : 0;
                decimal  dDiscount   = bill.Discount.HasValue ? bill.Discount.Value : 0;
                decimal  dAmount     = bill.Amount.HasValue ? bill.Amount.Value : 0;
                decimal  dVoucher    = bill.Voucher.HasValue ? bill.Voucher.Value : 0;
                DeskNo = bill.DeskNo;
                List <string> lFullName    = new List <string>();
                string[]      strFullNames = bill.FullName.Split(',');
                foreach (string strFullName in strFullNames)
                {
                    lFullName.Add(strFullName);
                }
                if (lFullName.Count == 1)
                {
                    lFullName.Add(strFullNames[0]);
                }
                string  userName     = lFullName[0];
                string  operName     = lFullName[1];
                string  deptName     = bill.DeptName;
                decimal dLastBalance = bill.LastBalance.HasValue ? bill.LastBalance.Value : 0;
                decimal dDonate      = bill.Donate.HasValue ? bill.Donate.Value : 0;
                string  payTypeName  = bill.PayTypeName;
                string  cardNo       = bill.CardNo;
                string  memberName   = bill.MemberName;
                decimal dCash        = bill.Cash;
                decimal dChange      = bill.Change;
                switch (bill.BillType)
                {
                case "CardConsumeWindow":
                    title = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitle1OfCold);
                    if (this.IsTicket1)
                    {
                        MemberConsumePrintObject po = new MemberConsumePrintObject(oiex, lcdi, DeskNo, deptName, dCreateDate, dSum, dQuantity, this.IsCupType);
                        ;
                        po.Print();
                    }
                    if (this.IsTicket2)
                    {
                        MemberConsumePrintObject2 po2 = new MemberConsumePrintObject2(title, oiex, lcdi, cardNo, memberName, dLastBalance,
                                                                                      dBalance, dSum, dDiscount, dAmount, dVoucher, DeskNo,
                                                                                      operName, userName, deptName, dCreateDate, this.IsCupType);
                        po2.Print();
                    }
                    if (this.IsThree)
                    {
                        LocalReport report = new LocalReport();
                        report.ReportPath = GetThreePrintFile(DXInfo.Models.NameCodeType.SaleThreePrintMemmber);    //@"Report1.rdlc";
                        NoMemberThreePrintObject threePrintObject = new NoMemberThreePrintObject();
                        threePrintObject.Title       = title;
                        threePrintObject.DeskNo      = DeskNo;
                        threePrintObject.PeopleCount = bill.PeopleCount.HasValue?bill.PeopleCount.Value:0;
                        threePrintObject.Amount      = dAmount;
                        threePrintObject.CreateDate  = dCreateDate;
                        threePrintObject.ButtomTitle = GetButtomTitle(DXInfo.Models.DeptType.Sale);
                        threePrintObject.Sum         = dSum;
                        threePrintObject.DeptName    = Dept.DeptName;
                        threePrintObject.Voucher     = dVoucher;
                        threePrintObject.FullName    = Oper.FullName;
                        threePrintObject.UserName    = User.UserName;
                        threePrintObject.PayTypeName = payTypeName;

                        threePrintObject.CardNo      = cardNo;
                        threePrintObject.MemberName  = memberName;
                        threePrintObject.Discount    = dDiscount;
                        threePrintObject.Balance     = dBalance;
                        threePrintObject.LastBalance = dLastBalance;

                        DataTable dt  = threePrintObject.ToDataTable();
                        DataTable dt2 = oiex.ToDataTable <DXInfo.Models.InventoryEx>();
                        DataTable dt3 = lCardDonateInventoryEx.ToDataTable <DXInfo.Models.CardDonateInventoryEx>();
                        report.DataSources.Add(
                            new ReportDataSource("DataSet1", dt)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet2", dt2)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet3", dt3)
                            );
                        PrintRDLC printRDLC = new PrintRDLC();
                        printRDLC.Run(report);
                    }
                    break;

                case "CardInMoneyWindow":
                    if (this.IsThree)
                    {
                        LocalReport report = new LocalReport();
                        report.ReportPath = GetThreePrintFile(DXInfo.Models.NameCodeType.ThreePrintInMoney);
                        NoMemberThreePrintObject threePrintObject = new NoMemberThreePrintObject();
                        threePrintObject.Title       = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitleOfMember);
                        threePrintObject.CardNo      = cardNo;
                        threePrintObject.MemberName  = memberName;
                        threePrintObject.LastBalance = dLastBalance;
                        threePrintObject.Amount      = dAmount;
                        threePrintObject.Donate      = dDonate;
                        threePrintObject.PayTypeName = payTypeName;
                        threePrintObject.Balance     = dBalance;
                        threePrintObject.FullName    = operName;
                        threePrintObject.UserName    = userName;
                        threePrintObject.DeptName    = deptName;
                        threePrintObject.CreateDate  = dCreateDate;
                        threePrintObject.ButtomTitle = ClientCommon.PrintTicketButtomTitle(DXInfo.Models.NameCodeType.ThreeButtomTitleInMoney);
                        DataTable dt = threePrintObject.ToDataTable();
                        report.DataSources.Add(
                            new ReportDataSource("DataSet1", dt)
                            );
                        PrintRDLC printRDLC = new PrintRDLC();
                        printRDLC.Run(report);
                    }
                    else
                    {
                        title = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitleOfMember);
                        InMoneyPrintObject ipo = new InMoneyPrintObject(title, cardNo,
                                                                        memberName, dLastBalance, dBalance, dAmount, dDonate, payTypeName
                                                                        , operName, userName, deptName, dCreateDate);
                        ipo.Print();
                    }
                    break;

                case "NoMemberConsumeWindow":
                    title = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitle1OfCold);
                    if (this.IsTicket1)
                    {
                        NoMemberConsumePrintObject npo = new NoMemberConsumePrintObject(oiex, DeskNo, deptName, dCreateDate, dSum, dQuantity, this.IsCupType);
                        ;
                        npo.Print();
                    }
                    if (this.IsTicket3)
                    {
                        NoMemberConsumePrintObject2 npo2 = new NoMemberConsumePrintObject2(title, oiex, dSum, dAmount, dVoucher, dCash, dChange, payTypeName, DeskNo,
                                                                                           operName, userName, deptName, dCreateDate, this.IsCupType);
                        npo2.Print();
                    }
                    if (this.IsThree)
                    {
                        LocalReport report = new LocalReport();
                        report.ReportPath = GetThreePrintFile(DXInfo.Models.NameCodeType.SaleThreePrintNoMemmber);    //@"Report1.rdlc";
                        NoMemberThreePrintObject threePrintObject = new NoMemberThreePrintObject();
                        threePrintObject.Title       = title;
                        threePrintObject.DeskNo      = DeskNo;
                        threePrintObject.PeopleCount = bill.PeopleCount.HasValue ? bill.PeopleCount.Value : 0;
                        threePrintObject.Amount      = dAmount;
                        threePrintObject.CreateDate  = dCreateDate;
                        threePrintObject.Change      = dChange;
                        threePrintObject.Cash        = dCash;
                        threePrintObject.ButtomTitle = GetButtomTitle(DXInfo.Models.DeptType.Sale);
                        threePrintObject.Sum         = dSum;
                        threePrintObject.DeptName    = Dept.DeptName;
                        threePrintObject.Voucher     = dVoucher;
                        threePrintObject.FullName    = Oper.FullName;
                        threePrintObject.UserName    = User.UserName;
                        threePrintObject.PayTypeName = payTypeName;
                        threePrintObject.Discount    = dDiscount;
                        DataTable dt  = threePrintObject.ToDataTable();
                        DataTable dt2 = oiex.ToDataTable <DXInfo.Models.InventoryEx>();
                        report.DataSources.Add(
                            new ReportDataSource("DataSet1", dt)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet2", dt2)
                            );
                        PrintRDLC printRDLC = new PrintRDLC();
                        printRDLC.Run(report);
                    }
                    break;

                case "PointsExchangeWindow":
                    var bl1 = (from d in lBillInvList select new { d.Amount, d.Bill, d.CupType, d.Id, d.Name, d.Quantity, d.SalePrice, d.Tastes, EnglishName = d.CupType, Price = d.SalePrice }).ToList();
                    var bd  = Uow.BillDonateInvLists.GetAll().Where(w => w.Bill == bill.Id).Select(s => new { Name = s.InvName }).ToList();
                    var p   = new
                    {
                        bill.Amount,
                        bill.Balance,
                        bill.CardNo,
                        bill.DeptName,
                        bill.Donate,
                        bill.FullName,
                        bill.LastBalance,
                        bill.Sum,
                        bill.Voucher,
                        bill.Discount,
                        bill.MemberName,
                        bill.CreateDate,
                        lSelInv = bl1,
                        bill.PayTypeName,
                        bill.Change,
                        bill.Cash,
                        bill.DeskNo,
                        CardDonateInventory = bd
                    };
                    PointsExchangeWindow cw3 = new PointsExchangeWindow(Uow, p);
                    cw3.IsPrint = true;
                    cw3.ShowDialog();
                    break;

                case "WRCardConsumeWindow":
                    title = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitle1OfWR);
                    if (this.IsThree)
                    {
                        LocalReport report = new LocalReport();
                        report.ReportPath = GetThreePrintFile(DXInfo.Models.NameCodeType.ThreePrintMemmber);    //@"Report1.rdlc";
                        NoMemberThreePrintObject threePrintObject = new NoMemberThreePrintObject();
                        threePrintObject.Title       = title;
                        threePrintObject.DeskNo      = DeskNo;
                        threePrintObject.PeopleCount = bill.PeopleCount.HasValue ? bill.PeopleCount.Value : 0;
                        threePrintObject.Amount      = dAmount;
                        threePrintObject.CreateDate  = dCreateDate;
                        threePrintObject.ButtomTitle = GetButtomTitle(DXInfo.Models.DeptType.Shop);
                        threePrintObject.Sum         = dSum;
                        threePrintObject.DeptName    = Dept.DeptName;
                        threePrintObject.Voucher     = dVoucher;
                        threePrintObject.FullName    = Oper.FullName;
                        threePrintObject.UserName    = User.UserName;
                        threePrintObject.PayTypeName = payTypeName;

                        threePrintObject.CardNo      = cardNo;
                        threePrintObject.MemberName  = memberName;
                        threePrintObject.Discount    = dDiscount;
                        threePrintObject.Balance     = dBalance;
                        threePrintObject.LastBalance = dLastBalance;

                        DataTable dt  = threePrintObject.ToDataTable();
                        DataTable dt2 = oiex.ToDataTable <DXInfo.Models.InventoryEx>();
                        DataTable dt3 = lCardDonateInventoryEx.ToDataTable <DXInfo.Models.CardDonateInventoryEx>();
                        report.DataSources.Add(
                            new ReportDataSource("DataSet1", dt)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet2", dt2)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet3", dt3)
                            );
                        PrintRDLC printRDLC = new PrintRDLC();
                        printRDLC.Run(report);
                    }
                    else
                    {
                        WRMemberConsumePrintObject2 wpo2 = new WRMemberConsumePrintObject2(title, oiex, lcdi, cardNo, memberName, dLastBalance,
                                                                                           dBalance, dSum, dDiscount, dAmount, dVoucher, DeskNo,
                                                                                           operName, userName, deptName, dCreateDate, this.Dept.Comment);
                        wpo2.Print();
                    }
                    break;

                case "WRNoMemberConsumeWindow":
                    title = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitle1OfWR);
                    if (this.IsThree)
                    {
                        LocalReport report = new LocalReport();
                        report.ReportPath = GetThreePrintFile(DXInfo.Models.NameCodeType.ThreePrintNoMemmber);    //@"Report1.rdlc";
                        NoMemberThreePrintObject threePrintObject = new NoMemberThreePrintObject();
                        threePrintObject.Title       = title;
                        threePrintObject.DeskNo      = DeskNo;
                        threePrintObject.PeopleCount = bill.PeopleCount.HasValue ? bill.PeopleCount.Value : 0;
                        threePrintObject.Amount      = dAmount;
                        threePrintObject.CreateDate  = dCreateDate;
                        threePrintObject.Change      = dChange;
                        threePrintObject.Cash        = dCash;
                        threePrintObject.ButtomTitle = GetButtomTitle(DXInfo.Models.DeptType.Shop);
                        threePrintObject.Sum         = dSum;
                        threePrintObject.DeptName    = Dept.DeptName;
                        threePrintObject.Voucher     = dVoucher;
                        threePrintObject.FullName    = Oper.FullName;
                        threePrintObject.UserName    = User.UserName;
                        threePrintObject.PayTypeName = payTypeName;

                        DataTable dt  = threePrintObject.ToDataTable();
                        DataTable dt2 = oiex.ToDataTable <DXInfo.Models.InventoryEx>();
                        report.DataSources.Add(
                            new ReportDataSource("DataSet1", dt)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet2", dt2)
                            );
                        PrintRDLC printRDLC = new PrintRDLC();
                        printRDLC.Run(report);
                    }
                    else
                    {
                        WRNoMemberConsumePrintObject2 wnpo2 = new WRNoMemberConsumePrintObject2(title, oiex, dSum, dAmount, dVoucher, dCash, dChange, payTypeName, DeskNo,
                                                                                                operName, userName, deptName, dCreateDate, this.Dept.Comment);
                        wnpo2.Print();
                    }
                    break;

                case "WRCardConsume3Window":
                    title = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitle1OfWR);
                    if (this.IsThree)
                    {
                        LocalReport report = new LocalReport();
                        report.ReportPath = GetThreePrintFile(DXInfo.Models.NameCodeType.ThreePrintMemmberNoMoney);
                        NoMemberThreePrintObject threePrintObject = new NoMemberThreePrintObject();
                        threePrintObject.Title       = title;
                        threePrintObject.DeskNo      = DeskNo;
                        threePrintObject.PeopleCount = bill.PeopleCount.HasValue ? bill.PeopleCount.Value : 0;
                        threePrintObject.Amount      = dAmount;
                        threePrintObject.CreateDate  = dCreateDate;
                        threePrintObject.Change      = dChange;
                        threePrintObject.Cash        = dCash;
                        threePrintObject.ButtomTitle = GetButtomTitle(DXInfo.Models.DeptType.Shop);
                        threePrintObject.Sum         = dSum;
                        threePrintObject.DeptName    = Dept.DeptName;
                        threePrintObject.Voucher     = dVoucher;
                        threePrintObject.FullName    = Oper.FullName;
                        threePrintObject.UserName    = User.UserName;
                        threePrintObject.PayTypeName = payTypeName;

                        threePrintObject.CardNo     = cardNo;
                        threePrintObject.MemberName = memberName;
                        threePrintObject.Discount   = dDiscount;

                        DataTable dt  = threePrintObject.ToDataTable();
                        DataTable dt2 = oiex.ToDataTable <DXInfo.Models.InventoryEx>();
                        DataTable dt3 = lCardDonateInventoryEx.ToDataTable <DXInfo.Models.CardDonateInventoryEx>();
                        report.DataSources.Add(
                            new ReportDataSource("DataSet1", dt)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet2", dt2)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet3", dt3)
                            );
                        PrintRDLC printRDLC = new PrintRDLC();
                        printRDLC.Run(report);
                    }
                    else
                    {
                        WRMemberConsumePrintObject3 wpo3 = new WRMemberConsumePrintObject3(title, oiex, lcdi, cardNo, memberName, dCash,
                                                                                           dChange, dSum, dDiscount, dAmount, dVoucher, payTypeName, DeskNo,
                                                                                           operName, userName, deptName, dCreateDate, this.Dept.Comment);
                        wpo3.Print();
                    }
                    break;

                case "CardConsume3Window":
                    title = ClientCommon.PrintTicketTitle(DXInfo.Models.NameCodeType.PrintTicketTitle1OfCold);
                    if (this.IsTicket1)
                    {
                        MemberConsumePrintObject mpo = new MemberConsumePrintObject(oiex, lcdi, DeskNo, deptName, dCreateDate, dSum, dQuantity, this.IsCupType);
                        ;
                        mpo.Print();
                    }
                    if (this.IsTicket2)
                    {
                        MemberConsumePrintObject3 mpo3 = new MemberConsumePrintObject3(title, oiex, lcdi, cardNo, memberName, dCash,
                                                                                       dChange, dSum, dDiscount, dAmount, dVoucher, payTypeName, DeskNo,
                                                                                       operName, userName, deptName, dCreateDate, this.IsCupType);
                        mpo3.Print();
                    }
                    if (this.IsThree)
                    {
                        LocalReport report = new LocalReport();
                        report.ReportPath = GetThreePrintFile(DXInfo.Models.NameCodeType.SaleThreePrintMemmberNoMoney);
                        NoMemberThreePrintObject threePrintObject = new NoMemberThreePrintObject();
                        threePrintObject.Title       = title;
                        threePrintObject.DeskNo      = DeskNo;
                        threePrintObject.PeopleCount = bill.PeopleCount.HasValue ? bill.PeopleCount.Value : 0;
                        threePrintObject.Amount      = dAmount;
                        threePrintObject.CreateDate  = dCreateDate;
                        threePrintObject.Change      = dChange;
                        threePrintObject.Cash        = dCash;
                        threePrintObject.ButtomTitle = GetButtomTitle(DXInfo.Models.DeptType.Sale);
                        threePrintObject.Sum         = dSum;
                        threePrintObject.DeptName    = Dept.DeptName;
                        threePrintObject.Voucher     = dVoucher;
                        threePrintObject.FullName    = Oper.FullName;
                        threePrintObject.UserName    = User.UserName;
                        threePrintObject.PayTypeName = payTypeName;

                        threePrintObject.CardNo     = cardNo;
                        threePrintObject.MemberName = memberName;
                        threePrintObject.Discount   = dDiscount;

                        DataTable dt  = threePrintObject.ToDataTable();
                        DataTable dt2 = oiex.ToDataTable <DXInfo.Models.InventoryEx>();
                        DataTable dt3 = lCardDonateInventoryEx.ToDataTable <DXInfo.Models.CardDonateInventoryEx>();
                        report.DataSources.Add(
                            new ReportDataSource("DataSet1", dt)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet2", dt2)
                            );
                        report.DataSources.Add(
                            new ReportDataSource("DataSet3", dt3)
                            );
                        PrintRDLC printRDLC = new PrintRDLC();
                        printRDLC.Run(report);
                    }
                    break;

                case "Sticker":
                    //MyBusiness mb = new MyBusiness(Uow,this.Oper.UserId,this.Dept.DeptId,this.Dept.OrganizationId);
                    int count = Convert.ToInt32(dSum);
                    DXInfo.Models.InventoryEx iex = oiex[0];
                    int idx = Convert.ToInt32(iex.Quantity);
                    StickerPrintObject opo = new StickerPrintObject(payTypeName, iex, DeskNo,
                                                                    deptName, dCreateDate, idx, count, iex.Name, iex.SalePrice.ToString(), iex.CupType.Name);
                    opo.Print();
                    break;
                }
            }
        }
Esempio n. 4
0
        public void Button_Click(object sender, RoutedEventArgs e)
        {
            if (IsPrint)
            {
                PrintDialog pDialog1 = new PrintDialog();
                pDialog1.PrintVisual(GridPrint, "非会员消费打印");
                DialogResult = true;
                this.Close();
                return;
            }
            dynamic d       = GridPrint.DataContext;
            decimal dCash   = Convert.ToDecimal(txtCash.Text);
            decimal dChange = Convert.ToDecimal(txtChange.Text);

            if (dCash - dChange < d.Amount)
            {
                throw new ArgumentException("收的钱应不小于消费金额");
            }
            using (TransactionScope transaction = new TransactionScope())
            {
                DXInfo.Models.Consume consume = new DXInfo.Models.Consume();
                consume.Sum         = d.Sum;
                consume.Voucher     = d.Voucher;
                consume.PayVoucher  = d.PayVoucher;
                consume.Amount      = d.Amount;
                consume.CreateDate  = d.CreateDate;
                consume.DeptId      = d.DeptId;
                consume.UserId      = d.UserId;
                consume.Cash        = dCash;
                consume.Change      = dChange;
                consume.ConsumeType = 1;
                consume.PayType     = d.PayType;
                consume.Discount    = 100;
                consume.DeskNo      = txtDeskNo.Text;
                uow.Consume.Add(consume);


                DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
                bill.Sum         = d.Sum;
                bill.Voucher     = d.Voucher;
                bill.Amount      = d.Amount;
                bill.BillType    = "NoMemberConsumeWindow";
                bill.CreateDate  = d.CreateDate;
                bill.DeptName    = d.DeptName;
                bill.FullName    = d.FullName;
                bill.PayTypeName = d.PayTypeName;
                bill.Cash        = dCash;
                bill.Change      = dChange;
                bill.DeskNo      = txtDeskNo.Text;
                uow.Bills.Add(bill);

                uow.Commit();

                foreach (var si in d.lSelInv)
                {
                    DXInfo.Models.ConsumeList cl = new DXInfo.Models.ConsumeList();
                    cl.Amount     = si.Amount;
                    cl.Consume    = consume.Id;
                    cl.CreateDate = d.CreateDate;
                    cl.Cup        = si.Cup;
                    cl.DeptId     = d.DeptId;
                    cl.Inventory  = si.Id;
                    cl.Price      = si.SalePrice;
                    cl.Quantity   = si.Quantity;
                    cl.UserId     = d.UserId;

                    uow.ConsumeList.Add(cl);

                    DXInfo.Models.BillInvLists bl = new DXInfo.Models.BillInvLists();
                    bl.Amount    = si.Amount;
                    bl.Bill      = bill.Id;
                    bl.CupType   = si.CupType;
                    bl.Name      = si.Name;
                    bl.Quantity  = si.Quantity;
                    bl.SalePrice = si.SalePrice;
                    bl.Tastes    = si.Tastes;

                    uow.BillInvLists.Add(bl);

                    if (si.lTastes.Count > 0)
                    {
                        uow.Commit();
                        foreach (var lt in si.lTastes)
                        {
                            DXInfo.Models.ConsumeTastes ct = new DXInfo.Models.ConsumeTastes();
                            ct.ConsumeList = cl.Id;
                            ct.Taste       = lt.Id;
                            uow.ConsumeTastes.Add(ct);
                        }
                    }
                }

                uow.Commit();
                transaction.Complete();
            }
            PrintDialog pDialog = new PrintDialog();

            pDialog.PrintVisual(GridPrint, "非会员消费打印");

            DialogResult = true;
            this.Close();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (IsPrint)
            {
                PrintDialog pDialog1 = new PrintDialog();
                pDialog1.PrintVisual(GridPrint, "会员卡消费打印");
                DialogResult = true;
                this.Close();
                return;
            }
            dynamic d = GridPrint.DataContext;

            if (d.Amount > 0)
            {
                StringBuilder sb = new StringBuilder(33);
                sb.Append(d.CardNo);
                int value = Convert.ToInt32(d.Amount * 100);
                int st    = CardRef.CoolerConsumeCard(sb, value);
                if (st != 0)
                {
                    MessageBox.Show(CardRef.GetStr(st));
                    return;
                }
            }
            using (TransactionScope transaction = new TransactionScope())
            {
                DXInfo.Models.Consume consume = new DXInfo.Models.Consume();
                consume.Sum         = d.Sum;
                consume.Voucher     = d.Voucher;
                consume.PayVoucher  = d.PayVoucher;
                consume.Discount    = d.Discount;
                consume.Card        = d.Id;
                consume.Amount      = d.Amount;
                consume.Balance     = d.Balance;
                consume.CreateDate  = d.CreateDate;
                consume.DeptId      = d.DeptId;
                consume.LastBalance = d.LastBalance;
                consume.Point       = d.Point;
                consume.UserId      = d.UserId;
                consume.Point       = d.Point;
                consume.ConsumeType = 0;
                consume.DeskNo      = txtDeskNo.Text;
                uow.Consume.Add(consume);


                DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
                bill.Sum      = d.Sum;
                bill.Voucher  = d.Voucher;
                bill.Discount = d.Discount;

                bill.Amount      = d.Amount;
                bill.Balance     = d.Balance;
                bill.BillType    = "CardConsumeWindow";
                bill.CardNo      = d.CardNo;
                bill.CreateDate  = d.CreateDate;
                bill.DeptName    = d.DeptName;
                bill.FullName    = d.FullName;
                bill.LastBalance = d.LastBalance;
                bill.MemberName  = d.MemberName;
                bill.DeskNo      = txtDeskNo.Text;
                uow.Bills.Add(bill);

                uow.Commit();

                Guid CardId = d.Id;
                DXInfo.Models.Cards card = uow.Cards.GetById(CardId);//.Where(w => w.Id == CardId).FirstOrDefault();
                if (card == null)
                {
                    throw new ArgumentException("卡信息未找到");
                }
                card.Balance = d.Balance;

                if (d.CardDonateInventory != null && d.CardDonateInventory.Count > 0)
                {
                    foreach (var cdi in d.CardDonateInventory)
                    {
                        DXInfo.Models.ConsumeDonateInv cdonate = new DXInfo.Models.ConsumeDonateInv();
                        cdonate.Consume   = consume.Id;
                        cdonate.Inventory = cdi.Id;
                        uow.ConsumeDonateInv.Add(cdonate);

                        Guid gInvId = cdi.Id;
                        var  cdi1   = uow.CardDonateInventory.GetAll().Where(w => w.Inventory == gInvId).Where(w => w.CardId == CardId).FirstOrDefault();
                        if (cdi1 != null)
                        {
                            cdi1.IsValidate = false;
                        }

                        DXInfo.Models.BillDonateInvLists bd = new DXInfo.Models.BillDonateInvLists();
                        bd.Bill    = bill.Id;
                        bd.InvName = cdi.Name;

                        uow.BillDonateInvLists.Add(bd);
                    }
                }
                foreach (var si in d.lSelInv)
                {
                    DXInfo.Models.ConsumeList cl = new DXInfo.Models.ConsumeList();
                    cl.Amount     = si.Amount;
                    cl.Consume    = consume.Id;
                    cl.CreateDate = d.CreateDate;
                    cl.Cup        = si.Cup;
                    cl.DeptId     = d.DeptId;
                    cl.Inventory  = si.Id;
                    cl.Price      = si.SalePrice;
                    cl.Quantity   = si.Quantity;
                    cl.UserId     = d.UserId;

                    uow.ConsumeList.Add(cl);

                    DXInfo.Models.BillInvLists bl = new DXInfo.Models.BillInvLists();
                    bl.Amount    = si.Amount;
                    bl.Bill      = bill.Id;
                    bl.CupType   = si.CupType;
                    bl.Name      = si.Name;
                    bl.Quantity  = si.Quantity;
                    bl.SalePrice = si.SalePrice;
                    bl.Tastes    = si.Tastes;

                    uow.BillInvLists.Add(bl);



                    if (si.lTastes.Count > 0)
                    {
                        uow.Commit();
                        foreach (var lt in si.lTastes)
                        {
                            DXInfo.Models.ConsumeTastes ct = new DXInfo.Models.ConsumeTastes();
                            ct.ConsumeList = cl.Id;
                            ct.Taste       = lt.Id;
                            uow.ConsumeTastes.Add(ct);
                        }
                    }
                }

                if (d.Point > 0)
                {
                    var cps = uow.CardPoints.GetAll().Where(w => w.Card == CardId).Where(w => w.PointType == 0).FirstOrDefault();
                    if (cps != null)
                    {
                        cps.Point = cps.Point + d.Point;
                    }
                    else
                    {
                        DXInfo.Models.CardPoints cp = new DXInfo.Models.CardPoints();
                        cp.Card       = d.Id;
                        cp.CreateDate = d.CreateDate;
                        cp.DeptId     = d.DeptId;
                        cp.Point      = d.Point;
                        cp.PointType  = 0;
                        cp.UserId     = d.UserId;

                        uow.CardPoints.Add(cp);
                    }
                }
                uow.Commit();
                transaction.Complete();
            }
            PrintDialog pDialog = new PrintDialog();

            pDialog.PrintVisual(GridPrint, "会员卡消费打印");

            DialogResult = true;
            this.Close();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (IsPrint)
            {
                PrintDialog pDialog1 = new PrintDialog();
                pDialog1.PrintVisual(GridPrint, "会员积分兑换打印");
                DialogResult = true;
                this.Close();
                return;
            }
            dynamic d = GridPrint.DataContext;

            using (TransactionScope transaction = new TransactionScope())
            {
                DXInfo.Models.Consume consume = new DXInfo.Models.Consume();
                consume.Card        = d.Id;
                consume.Sum         = d.Amount;
                consume.Discount    = 100;
                consume.Amount      = d.Amount;
                consume.Balance     = d.Balance;
                consume.CreateDate  = d.CreateDate;
                consume.DeptId      = d.DeptId;
                consume.LastBalance = d.LastBalance;
                consume.UserId      = d.UserId;
                consume.ConsumeType = 2;
                uow.Consume.Add(consume);


                DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
                bill.Amount      = d.Amount;
                bill.Balance     = d.Balance;
                bill.BillType    = "PointsExchangeWindow";
                bill.CardNo      = d.CardNo;
                bill.CreateDate  = d.CreateDate;
                bill.DeptName    = d.DeptName;
                bill.FullName    = d.FullName;
                bill.LastBalance = d.LastBalance;
                bill.MemberName  = d.MemberName;

                uow.Bills.Add(bill);

                uow.Commit();

                Guid cid = d.Id;

                var p = uow.CardPoints.GetAll().Where(w => w.Card == cid);

                decimal dkp = 0;
                foreach (DXInfo.Models.CardPoints cp in p)
                {
                    if (cp.Point > d.Amount - dkp)
                    {
                        dkp      = d.Amount;
                        cp.Point = cp.Point - d.Amount;
                        break;
                    }
                    else
                    {
                        dkp     += cp.Point;
                        cp.Point = 0;
                    }
                }
                foreach (var si in d.lSelInv)
                {
                    DXInfo.Models.ConsumeList cl = new DXInfo.Models.ConsumeList();
                    cl.Amount     = si.Amount;
                    cl.Consume    = consume.Id;
                    cl.CreateDate = d.CreateDate;
                    cl.Cup        = si.Cup;
                    cl.DeptId     = d.DeptId;
                    cl.Inventory  = si.Id;
                    cl.Price      = si.SalePoint;
                    cl.Quantity   = si.Quantity;
                    cl.UserId     = d.UserId;

                    uow.ConsumeList.Add(cl);

                    DXInfo.Models.BillInvLists bl = new DXInfo.Models.BillInvLists();
                    bl.Amount    = si.Amount;
                    bl.Bill      = bill.Id;
                    bl.CupType   = si.CupType;
                    bl.Name      = si.Name;
                    bl.Quantity  = si.Quantity;
                    bl.SalePrice = si.SalePoint;
                    bl.Tastes    = si.Tastes;

                    uow.BillInvLists.Add(bl);

                    if (si.lTastes.Count > 0)
                    {
                        uow.Commit();
                        foreach (var lt in si.lTastes)
                        {
                            DXInfo.Models.ConsumeTastes ct = new DXInfo.Models.ConsumeTastes();
                            ct.ConsumeList = cl.Id;
                            ct.Taste       = lt.Id;
                            uow.ConsumeTastes.Add(ct);
                        }
                    }
                }
                uow.Commit();
                transaction.Complete();
            }
            PrintDialog pDialog = new PrintDialog();

            pDialog.PrintVisual(GridPrint, "会员积分兑换打印");
            DialogResult = true;
            this.Close();
        }
Esempio n. 7
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (IsPrint)
            {
                PrintDialog pDialog1 = new PrintDialog();
                pDialog1.PrintVisual(GridPrint, "会员卡消费打印");
                DialogResult = true;
                this.Close();
                return;
            }
            dynamic d = GridPrint.DataContext;

            decimal dCash   = Convert.ToDecimal(txtCash.Text);
            decimal dChange = Convert.ToDecimal(txtChange.Text);

            if (dCash - dChange < d.Amount)
            {
                throw new ArgumentException("收的钱应不小于消费金额");
            }

            using (TransactionScope transaction = new TransactionScope())
            {
                Guid orderId = d.OrderId;
                DXInfo.Models.OrderDishes orderDish = uow.OrderDishes.GetById(orderId);//.Where(w => w.Id == orderId).FirstOrDefault();
                if (orderDish.Status != 3)
                {
                    MessageBox.Show("确认下单后才可以结账!");
                    DialogResult = false;
                    this.Close();
                    return;
                }
                orderDish.Status = 1;
                var q = from o in uow.OrderDeskes.GetAll() where o.OrderId == orderDish.Id select o;
                foreach (DXInfo.Models.OrderDeskes orderDesk in q)
                {
                    orderDesk.Status = 1;

                    DXInfo.Models.OrderDeskesHis deskHis = new DXInfo.Models.OrderDeskesHis();
                    deskHis.DeskId     = orderDesk.DeskId;
                    deskHis.LinkId     = orderDesk.Id;
                    deskHis.OrderId    = orderDesk.OrderId;
                    deskHis.UserId     = d.UserId;
                    deskHis.CreateDate = DateTime.Now;
                    deskHis.Status     = 1;
                    uow.OrderDeskesHis.Add(deskHis);
                }

                DXInfo.Models.Consume consume = new DXInfo.Models.Consume();
                consume.OrderId     = d.OrderId;
                consume.Sum         = d.Sum;
                consume.Voucher     = d.Voucher;
                consume.PayVoucher  = d.PayVoucher;
                consume.Discount    = d.Discount;
                consume.Card        = d.Id;
                consume.Amount      = d.Amount;
                consume.CreateDate  = d.CreateDate;
                consume.DeptId      = d.DeptId;
                consume.Point       = d.Point;
                consume.UserId      = d.UserId;
                consume.Point       = d.Point;
                consume.ConsumeType = 3;
                consume.SourceType  = 1;

                consume.Cash   = dCash;
                consume.Change = dChange;

                consume.Quantity = d.Count;
                if (d.PayType != Guid.Empty)
                {
                    consume.PayType = d.PayType;
                }
                uow.Consume.Add(consume);


                DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
                bill.Sum      = d.Sum;
                bill.Voucher  = d.Voucher;
                bill.Discount = d.Discount;

                bill.Amount     = d.Amount;
                bill.BillType   = "WRCardConsume3Window";
                bill.CardNo     = d.CardNo;
                bill.CreateDate = d.CreateDate;
                bill.DeptName   = d.DeptName;
                bill.FullName   = d.FullName;
                bill.MemberName = d.MemberName;

                bill.PayTypeName = d.PayTypeName;
                bill.Cash        = dCash;
                bill.Change      = dChange;
                uow.Bills.Add(bill);

                uow.Commit();

                Guid CardId = d.Id;
                DXInfo.Models.Cards card = uow.Cards.GetById(CardId);//.Where(w => w.Id == CardId).FirstOrDefault();
                if (card == null)
                {
                    throw new ArgumentException("卡信息未找到");
                }

                if (d.CardDonateInventory != null && d.CardDonateInventory.Count > 0)
                {
                    foreach (var cdi in d.CardDonateInventory)
                    {
                        DXInfo.Models.ConsumeDonateInv cdonate = new DXInfo.Models.ConsumeDonateInv();
                        cdonate.Consume   = consume.Id;
                        cdonate.Inventory = cdi.Id;
                        uow.ConsumeDonateInv.Add(cdonate);

                        Guid gInvId = cdi.Id;
                        var  cdi1   = uow.CardDonateInventory.GetAll().Where(w => w.Inventory == gInvId).Where(w => w.CardId == CardId).FirstOrDefault();
                        if (cdi1 != null)
                        {
                            cdi1.IsValidate = false;
                        }

                        DXInfo.Models.BillDonateInvLists bd = new DXInfo.Models.BillDonateInvLists();
                        bd.Bill    = bill.Id;
                        bd.InvName = cdi.Name;

                        uow.BillDonateInvLists.Add(bd);
                    }
                }
                //DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade();
                foreach (var si in d.lSelInv)
                {
                    Guid orderMenuId            = si.OrderMenuId;
                    DXInfo.Models.OrderMenus om = uow.OrderMenus.GetById(orderMenuId);//.Where(w => w.Id == orderMenuId).FirstOrDefault();
                    om.OperDate = DateTime.Now;
                    om.UserId   = App.MyIdentity.oper.UserId;
                    om.Status   = 8;
                    uow.OrderMenus.Update(om);

                    DXInfo.Models.OrderMenusHis omHis = Mapper.Map <DXInfo.Models.OrderMenusHis>(om);//dmf.CreateOrderMenuHis(om, App.MyIdentity.oper.UserId, DateTime.Now);
                    omHis.LinkId = om.Id;
                    uow.OrderMenusHis.Add(omHis);

                    DXInfo.Models.ConsumeList cl = new DXInfo.Models.ConsumeList();
                    cl.Amount     = si.IsDiscount ? Math.Floor(si.Amount * d.Discount / 100) : si.Amount;
                    cl.Consume    = consume.Id;
                    cl.CreateDate = d.CreateDate;
                    cl.DeptId     = d.DeptId;
                    cl.Inventory  = si.Id;
                    cl.Price      = si.Price;
                    cl.Quantity   = si.Quantity;
                    cl.UserId     = d.UserId;
                    cl.Sum        = si.Amount;
                    cl.Discount   = si.IsDiscount ? d.Discount : 100;
                    cl.IsPackage  = si.IsPackage;
                    cl.PackageId  = si.PackageId;
                    uow.ConsumeList.Add(cl);

                    DXInfo.Models.BillInvLists bl = new DXInfo.Models.BillInvLists();
                    bl.Amount    = si.Amount;
                    bl.Bill      = bill.Id;
                    bl.CupType   = si.EnglishName;
                    bl.Name      = si.Name;
                    bl.Quantity  = si.Quantity;
                    bl.SalePrice = si.Price;
                    uow.BillInvLists.Add(bl);
                }


                if (d.Point > 0)
                {
                    var cps = uow.CardPoints.GetAll().Where(w => w.Card == CardId).Where(w => w.PointType == 0).FirstOrDefault();
                    if (cps != null)
                    {
                        cps.Point = cps.Point + d.Point;
                    }
                    else
                    {
                        DXInfo.Models.CardPoints cp = new DXInfo.Models.CardPoints();
                        cp.Card       = d.Id;
                        cp.CreateDate = d.CreateDate;
                        cp.DeptId     = d.DeptId;
                        cp.Point      = d.Point;
                        cp.PointType  = 0;
                        cp.UserId     = d.UserId;

                        uow.CardPoints.Add(cp);
                    }
                }
                uow.Commit();
                transaction.Complete();
            }
            PrintDialog pDialog = new PrintDialog();

            pDialog.PageRangeSelection   = PageRangeSelection.AllPages;
            pDialog.UserPageRangeEnabled = true;
            this.Measure(new Size(pDialog.PrintableAreaWidth, pDialog.PrintableAreaHeight));
            this.Arrange(new Rect(new Point(0, 0), this.DesiredSize));
            pDialog.PrintVisual(GridPrint, "会员卡消费打印");
            DialogResult = true;
            this.Close();
        }
Esempio n. 8
0
        public bool CancelCheckOut(CancelCheckoutParaObj para, Func <string, decimal, bool> CardCancelConsume)
        {
            if (para.ConsumeType == (int)DXInfo.Models.ConsumeType.Card &&
                para.IsCard &&
                !para.IsVirtual)
            {
                if (!CardCancelConsume(para.CardNo, para.Amount))
                {
                    return(false);
                }
            }
            using (TransactionScope transaction = new TransactionScope())
            {
                DXInfo.Models.Consume consume = uow.Consume.GetAll().Where(w => w.Id == para.ConsumeId && w.IsValid).FirstOrDefault();
                if (consume == null)
                {
                    return(false);
                }
                if (consume != null)
                {
                    consume.IsValid = false;
                    uow.Consume.Update(consume);
                }
                if (para.IsCard && para.ConsumeType == (int)DXInfo.Models.ConsumeType.Card)
                {
                    CardUpdate(para.IsCardLevelAuto, para.CardId, para.Balance, 0);
                }
                DXInfo.Models.Bills oldBill = uow.Bills.GetAll().Where(w => w.Sn == consume.Sn && !w.BillType.Contains("Cancel")).FirstOrDefault();
                if (oldBill != null)
                {
                    DXInfo.Models.Bills bill = DXInfo.Business.Helper.CloneOf <DXInfo.Models.Bills>(oldBill);
                    bill.Amount      = para.Amount;
                    bill.Balance     = para.Balance;
                    bill.CreateDate  = para.CreateDate;
                    bill.DeptName    = para.DeptName;
                    bill.FullName    = para.UserName + "," + para.FullName;
                    bill.LastBalance = para.LastBalance;
                    bill.BillType    = para.BillType;
                    uow.Bills.Add(bill);
                    uow.Commit();
                    List <DXInfo.Models.BillInvLists> lOldBillInvList = uow.BillInvLists.GetAll().Where(w => w.Bill == oldBill.Id).ToList();
                    if (lOldBillInvList != null)
                    {
                        foreach (DXInfo.Models.BillInvLists oldBillInvList in lOldBillInvList)
                        {
                            DXInfo.Models.BillInvLists billInvList = DXInfo.Business.Helper.CloneOf <DXInfo.Models.BillInvLists>(oldBillInvList);
                            billInvList.Bill = bill.Id;
                            uow.BillInvLists.Add(billInvList);
                        }
                    }
                }

                List <DXInfo.Models.ConsumeList> lConsumeList = uow.ConsumeList.GetAll().Where(w => w.Consume == consume.Id && w.IsValid).ToList();
                foreach (DXInfo.Models.ConsumeList cl in lConsumeList)
                {
                    cl.IsValid = false;
                    uow.ConsumeList.Update(cl);
                }

                if (consume.Point > 0 && para.IsCard)
                {
                    CardCancelPoint(para.CardId, para.CreateDate, para.DeptId, para.UserId, consume.Point);
                }
                uow.Commit();
                transaction.Complete();
            }
            return(true);
        }
Esempio n. 9
0
        public bool CheckOut(CheckoutParaObj para, Func <string, decimal, bool> CardConsume)
        {
            decimal dPoint = 0;

            if (para.ConsumeType == (int)DXInfo.Models.ConsumeType.Card)
            {
                if (para.Balance < 0)
                {
                    this.ErrorMsg = "卡余额不足";
                    return(false);
                }
            }
            if (para.ConsumeType == (int)DXInfo.Models.ConsumeType.CardNoMoney ||
                para.ConsumeType == (int)DXInfo.Models.ConsumeType.NoMember)
            {
                if (para.Cash - para.Change < para.Amount)
                {
                    if (!(para.Erasing && (int)(para.Cash - para.Change) / 10 == (int)para.Amount / 10))
                    {
                        this.ErrorMsg = "收的钱应不小于消费金额";
                        return(false);
                    }
                }
            }

            if (para.Amount > 0 && para.Voucher == 0 && para.IsCard)
            {
                dPoint = Points(para.DeptId, para.lInventoryEx);
            }

            if (para.Amount > 0 &&
                para.ConsumeType == (int)DXInfo.Models.ConsumeType.Card &&
                para.IsCard &&
                !para.IsVirtual)
            {
                if (!CardConsume(para.CardNo, para.Amount))
                {
                    return(false);
                }
            }
            using (TransactionScope transaction = new TransactionScope())
            {
                if (para.SourceType == (int)DXInfo.Models.SourceType.WesternRestaurant)
                {
                    if (!OrderDisheUpdate(para.OrderDishId, para.CreateDate, para.UserId))
                    {
                        return(false);
                    }
                    OrderDeskUpdate(para.OrderDishId, para.UserId, para.CreateDate);
                    OrderPackageUpdate(para.OrderDishId, para.CreateDate, para.UserId);
                }
                DXInfo.Models.Consume consume = new DXInfo.Models.Consume();
                consume.Sum        = para.Sum;
                consume.Voucher    = para.Voucher;
                consume.PayVoucher = para.PayVoucher;
                consume.Discount   = para.Discount;
                if (para.CardId.HasValue)
                {
                    consume.Card = para.CardId.Value;
                }
                if (para.MemberId.HasValue)
                {
                    consume.Member = para.MemberId.Value;
                }
                consume.Amount          = para.Amount;
                consume.Balance         = para.Balance;
                consume.CreateDate      = para.CreateDate;
                consume.DeptId          = para.DeptId;
                consume.LastBalance     = para.LastBalance;
                consume.Point           = dPoint;
                consume.UserId          = para.UserId;
                consume.ConsumeType     = para.ConsumeType;
                consume.DeskNo          = para.DeskNo;
                consume.PayType         = para.PayTypeId;
                consume.Cash            = para.Cash;
                consume.Change          = para.Change;
                consume.SourceType      = para.SourceType;
                consume.Quantity        = para.Quantity;
                consume.IsValid         = true;
                consume.Sn              = para.Sn;
                consume.OperatorsOnDuty = para.OperatorsOnDuty;
                uow.Consume.Add(consume);


                DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
                bill.Sum      = para.Sum;
                bill.Voucher  = para.Voucher;
                bill.Discount = para.Discount;

                bill.Amount   = para.Amount;
                bill.Balance  = para.Balance;
                bill.BillType = para.BillType;//"CardConsumeWindow";
                if (!string.IsNullOrEmpty(para.CardNo))
                {
                    bill.CardNo = para.CardNo;
                }
                bill.CreateDate  = para.CreateDate;
                bill.DeptName    = para.DeptName;
                bill.FullName    = para.UserName + "," + para.FullName;
                bill.LastBalance = para.LastBalance;
                if (!string.IsNullOrEmpty(para.MemberName))
                {
                    bill.MemberName = para.MemberName;
                }
                bill.DeskNo = para.DeskNo;

                bill.PayTypeName = para.PayTypeName;
                bill.Cash        = para.Cash;
                bill.Change      = para.Change;
                bill.Sn          = para.Sn;
                bill.PeopleCount = para.PeopleCount;
                uow.Bills.Add(bill);

                uow.Commit();
                if (para.IsCard && para.ConsumeType == (int)DXInfo.Models.ConsumeType.Card)
                {
                    CardUpdate(para.IsCardLevelAuto, para.CardId.Value, para.Balance, dPoint);
                }
                //卡赠送处理
                if (para.Voucher == 0 &&
                    para.IsCard &&
                    para.lCardDonateInventoryEx != null &&
                    para.lCardDonateInventoryEx.Count > 0)
                {
                    CardDonate(para.lCardDonateInventoryEx, consume.Id, bill.Id);
                }
                foreach (DXInfo.Models.InventoryEx si in para.lInventoryEx)
                {
                    if (para.SourceType == (int)DXInfo.Models.SourceType.WesternRestaurant)
                    {
                        OrderMenuUpdate(si.OrderMenuId, para.CreateDate, para.UserId);
                    }
                    DXInfo.Models.ConsumeList cl = new DXInfo.Models.ConsumeList();
                    //cl.Amount = si.Amount;
                    cl.Consume    = consume.Id;
                    cl.CreateDate = para.CreateDate;
                    cl.IsValid    = true;
                    cl.IsStock    = false;
                    if (para.SourceType == (int)DXInfo.Models.SourceType.ColdDrinkShop)
                    {
                        if (si.CupType != null)
                        {
                            cl.Cup = si.CupType.Id;
                        }
                    }
                    cl.DeptId    = para.DeptId;
                    cl.Inventory = si.Id;

                    cl.Quantity = si.Quantity;
                    cl.UserId   = para.UserId;
                    //cl.Discount = dDiscount;

                    if (si.IsInvDynamicPrice)
                    {
                        cl.Discount = si.IsDiscount ? si.Discount : 100;
                    }
                    else
                    {
                        cl.Discount = si.IsDiscount ? para.Discount : 100;
                    }
                    cl.IsPackage = si.IsPackage;
                    cl.PackageId = si.PackageId;
                    if (para.SourceType == (int)DXInfo.Models.SourceType.WesternRestaurant)
                    {
                        cl.Price  = si.SalePrice;
                        cl.Sum    = si.Amount;
                        cl.Amount = si.IsDiscount ? si.Amount * para.Discount / 100 : si.Amount;
                    }
                    else
                    {
                        if (si.IsInvDynamicPrice)
                        {
                            cl.Price          = si.SalePrice;
                            cl.AgreementPrice = si.AgreementPrice;
                            //if (si.IsInvPrice && si.InvPrice != null)
                            //{
                            //   cl.Price = si.InvPrice.SalePrice;
                            //}
                            cl.Sum    = si.Amount;//cl.Price * cl.Quantity;
                            cl.Amount = si.CurrentAmount;
                            //cl.Amount = Convert.ToInt32(si.IsDiscount ? cl.Sum * cl.Discount / 100 : cl.Sum);
                            //cl.Amount = si.IsDiscount ? si.CurrentAmount * para.Discount / 100 : si.CurrentAmount;
                        }
                        else
                        {
                            cl.Price  = si.CurrentSalePrice;
                            cl.Sum    = si.CurrentAmount;
                            cl.Amount = si.IsDiscount ? si.CurrentAmount * para.Discount / 100 : si.CurrentAmount;
                        }
                    }
                    uow.ConsumeList.Add(cl);

                    DXInfo.Models.BillInvLists bl = new DXInfo.Models.BillInvLists();

                    bl.Bill = bill.Id;
                    if (para.SourceType == (int)DXInfo.Models.SourceType.ColdDrinkShop)
                    {
                        if (si.CupType != null)
                        {
                            bl.CupType = si.CupType.Name;
                        }
                    }
                    bl.Name     = si.Name;
                    bl.Quantity = si.Quantity;
                    if (si.IsInvDynamicPrice)
                    {
                        bl.Discount = si.IsDiscount ? si.Discount : 100;
                    }
                    else
                    {
                        bl.Discount = si.IsDiscount ? para.Discount : 100;
                    }
                    if (para.SourceType == (int)DXInfo.Models.SourceType.WesternRestaurant)
                    {
                        bl.Amount    = si.Amount;
                        bl.SalePrice = si.SalePrice;
                    }
                    else
                    {
                        if (si.IsInvDynamicPrice)
                        {
                            bl.SalePrice      = si.SalePrice;
                            bl.AgreementPrice = si.AgreementPrice;
                            //if (si.IsInvPrice && si.InvPrice != null)
                            //{
                            //    bl.SalePrice = si.InvPrice.SalePrice;
                            //}
                            bl.Sum    = si.Amount;        //bl.SalePrice * bl.Quantity;
                            bl.Amount = si.CurrentAmount; //Convert.ToInt32(si.IsDiscount ? bl.Sum * bl.Discount / 100 : bl.Sum);
                        }
                        else
                        {
                            bl.SalePrice = si.CurrentSalePrice;
                            bl.Sum       = si.CurrentAmount;
                            bl.Amount    = si.IsDiscount ? si.CurrentAmount * para.Discount / 100 : si.CurrentAmount;
                        }
                    }
                    if (para.SourceType == (int)DXInfo.Models.SourceType.ColdDrinkShop)
                    {
                        bl.Tastes = si.lTasteEx.Where(w => w.IsSelected == true).Count() == 0 ? "" : si.lTasteEx.Where(w => w.IsSelected == true).Select(l => l.Name).Aggregate((total, next) => (total + "," + next));//si.Tastes;
                    }
                    uow.BillInvLists.Add(bl);

                    if (para.SourceType == (int)DXInfo.Models.SourceType.ColdDrinkShop &&
                        si.lTasteEx.Count > 0)
                    {
                        uow.Commit();
                        foreach (var lt in si.lTasteEx.Where(w => w.IsSelected))
                        {
                            DXInfo.Models.ConsumeTastes ct = new DXInfo.Models.ConsumeTastes();
                            ct.ConsumeList = cl.Id;
                            ct.Taste       = lt.Id;
                            uow.ConsumeTastes.Add(ct);
                        }
                    }

                    if (si.InvPrice != null)
                    {
                        uow.Commit();
                        DXInfo.Models.ConsumeInvPrice invPrice = Mapper.Map <DXInfo.Models.ConsumeInvPrice>(si.InvPrice);
                        invPrice.ConsumeListId = cl.Id;
                        invPrice.InvPriceId    = si.InvPrice.Id;
                        uow.ConsumeInvPrice.Add(invPrice);
                        uow.Commit();
                    }
                }

                if (dPoint > 0 && para.IsCard)
                {
                    CardPoint(para.CardId.Value, para.CreateDate, para.DeptId, para.UserId, dPoint);
                }
                uow.Commit();
                transaction.Complete();
            }
            return(true);
        }
Esempio n. 10
0
        public void Button_Click(object sender, RoutedEventArgs e)
        {
            if (IsPrint)
            {
                PrintDialog pDialog1 = new PrintDialog();
                pDialog1.PrintVisual(GridPrint, "非会员消费打印");
                DialogResult = true;
                this.Close();
                return;
            }
            dynamic d       = GridPrint.DataContext;
            decimal dCash   = Convert.ToDecimal(txtCash.Text);
            decimal dChange = Convert.ToDecimal(txtChange.Text);

            if (dCash - dChange < d.Amount)
            {
                throw new ArgumentException("收的钱应不小于消费金额");
            }
            Guid orderId = d.OrderId;

            using (TransactionScope transaction = new TransactionScope())
            {
                DXInfo.Models.OrderDishes orderDish = uow.OrderDishes.GetById(orderId);//.Where(w => w.Id == orderId).FirstOrDefault();
                if (orderDish.Status != 3)
                {
                    MessageBox.Show("确认下单后才可以结账!");
                    DialogResult = false;
                    this.Close();
                    return;
                }
                orderDish.Status = 1;
                var q = from o in uow.OrderDeskes.GetAll() where o.OrderId == orderDish.Id select o;
                foreach (DXInfo.Models.OrderDeskes orderDesk in q)
                {
                    orderDesk.Status = 1;

                    DXInfo.Models.OrderDeskesHis deskHis = new DXInfo.Models.OrderDeskesHis();
                    deskHis.DeskId     = orderDesk.DeskId;
                    deskHis.LinkId     = orderDesk.Id;
                    deskHis.OrderId    = orderDesk.OrderId;
                    deskHis.UserId     = d.UserId;
                    deskHis.CreateDate = DateTime.Now;
                    deskHis.Status     = 1;
                    uow.OrderDeskesHis.Add(deskHis);
                }

                DXInfo.Models.Consume consume = new DXInfo.Models.Consume();
                consume.OrderId     = d.OrderId;
                consume.Sum         = d.Sum;
                consume.Voucher     = d.Voucher;
                consume.PayVoucher  = d.PayVoucher;
                consume.Amount      = d.Amount;
                consume.CreateDate  = d.CreateDate;
                consume.DeptId      = d.DeptId;
                consume.UserId      = d.UserId;
                consume.Cash        = dCash;
                consume.Change      = dChange;
                consume.ConsumeType = 1;
                consume.PayType     = d.PayType;
                consume.Discount    = 100;
                consume.Quantity    = d.Count;
                consume.SourceType  = 1;
                uow.Consume.Add(consume);


                DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
                bill.Sum         = d.Sum;
                bill.Voucher     = d.Voucher;
                bill.Amount      = d.Amount;
                bill.BillType    = "WRNoMemberConsumeWindow";
                bill.CreateDate  = d.CreateDate;
                bill.DeptName    = d.DeptName;
                bill.FullName    = d.FullName;
                bill.PayTypeName = d.PayTypeName;
                bill.Cash        = dCash;
                bill.Change      = dChange;
                uow.Bills.Add(bill);

                uow.Commit();

                //DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade();
                foreach (var si in d.lSelInv)
                {
                    Guid orderMenuId            = si.OrderMenuId;
                    DXInfo.Models.OrderMenus om = uow.OrderMenus.GetById(orderMenuId);//.Where(w => w.Id == orderMenuId).FirstOrDefault();
                    om.OperDate = DateTime.Now;
                    om.UserId   = App.MyIdentity.oper.UserId;
                    om.Status   = 8;
                    uow.OrderMenus.Update(om);

                    DXInfo.Models.OrderMenusHis omHis = Mapper.Map <DXInfo.Models.OrderMenusHis>(om);//dmf.CreateOrderMenuHis(om, App.MyIdentity.oper.UserId, DateTime.Now);
                    omHis.LinkId = om.Id;
                    uow.OrderMenusHis.Add(omHis);

                    DXInfo.Models.ConsumeList cl = new DXInfo.Models.ConsumeList();
                    cl.Amount     = si.Amount;
                    cl.Consume    = consume.Id;
                    cl.CreateDate = d.CreateDate;
                    cl.DeptId     = d.DeptId;
                    cl.Inventory  = si.Id;
                    cl.Price      = si.Price;
                    cl.Quantity   = si.Quantity;
                    cl.UserId     = d.UserId;
                    cl.IsPackage  = si.IsPackage;
                    cl.PackageId  = si.PackageId;

                    cl.Discount = 100;
                    cl.Sum      = cl.Amount;
                    uow.ConsumeList.Add(cl);

                    DXInfo.Models.BillInvLists bl = new DXInfo.Models.BillInvLists();
                    bl.Amount    = si.Amount;
                    bl.Bill      = bill.Id;
                    bl.CupType   = si.EnglishName;
                    bl.Name      = si.Name;
                    bl.Quantity  = si.Quantity;
                    bl.SalePrice = si.Price;
                    uow.BillInvLists.Add(bl);
                }
                uow.Commit();
                transaction.Complete();
            }
            PrintDialog pDialog = new PrintDialog();

            pDialog.PageRangeSelection   = PageRangeSelection.AllPages;
            pDialog.UserPageRangeEnabled = true;
            pDialog.PrintVisual(GridPrint, "非会员消费打印");
            DialogResult = true;
            this.Close();
        }
Esempio n. 11
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (IsPrint)
            {
                PrintDialog pDialog1 = new PrintDialog();
                pDialog1.PrintVisual(GridPrint, "会员充值打印");
                DialogResult = true;
                this.Close();
                return;
            }
            dynamic d = GridPrint.DataContext;

            StringBuilder sb = new StringBuilder(33);

            sb.Append(d.CardNo);
            int value = Convert.ToInt32((d.Amount + d.Donate) * 100);

#if !DEBUG
            int st = CardRef.CoolerRechargeCard(sb, value);
#else
            //string strCardNo = "12347";
            int st = 0;
#endif
            if (st != 0)
            {
                MessageBox.Show(CardRef.GetStr(st));
                DialogResult = false;
                this.Close();
                return;
            }

            DXInfo.Models.Recharges recharge = new DXInfo.Models.Recharges();
            recharge.Amount      = d.Amount;
            recharge.Donate      = d.Donate;
            recharge.LastBalance = d.LastBalance;
            recharge.Balance     = d.Balance;
            recharge.Card        = d.Id;
            recharge.CreateDate  = d.CreateDate;
            recharge.UserId      = d.UserId;
            recharge.DeptId      = d.DeptId;
            recharge.PayType     = d.PayType;
            if (this.IsPutCard)
            {
                recharge.RechargeType = 2;
            }
            Guid cardid = d.Id;
            DXInfo.Models.Cards card = uow.Cards.GetById(cardid);//.Where(w => w.Id == cardid).FirstOrDefault();
            if (card == null)
            {
                throw new ArgumentException("此卡信息未找到");
            }
            card.Balance = recharge.Balance;

            uow.Recharges.Add(recharge);

            //小票
            DXInfo.Models.Bills bill = new DXInfo.Models.Bills();
            bill.Amount      = d.Amount;
            bill.Balance     = d.Balance;
            bill.BillType    = "CardInMoneyWindow";
            bill.CardNo      = d.CardNo;
            bill.CreateDate  = d.CreateDate;
            bill.DeptName    = d.DeptName;
            bill.Donate      = d.Donate;
            bill.FullName    = d.FullName;
            bill.LastBalance = d.LastBalance;
            bill.MemberName  = d.MemberName;
            bill.PayTypeName = d.PayTypeName;

            uow.Bills.Add(bill);

            uow.Commit();

            //PrintDialog pDialog = new PrintDialog();
            //pDialog.PrintVisual(GridPrint, "会员充值打印");
            //MyPrint mp = new MyPrint();
            //mp.CardInMoneyPrint(uow, d);

            DialogResult = true;
            this.Close();
        }