Esempio n. 1
0
        private void CardUpdate(bool isCardLevelAuto, Guid cardId, decimal dBalance, decimal dPoint)
        {
            DXInfo.Models.Cards newCard = uow.Cards.GetById(g => g.Id == cardId);
            if (newCard == null)
            {
                throw new ArgumentException("卡信息未找到");
            }
            newCard.Balance = dBalance;

            if (isCardLevelAuto)
            {
                DXInfo.Models.CardLevels oldCardLevel = uow.CardLevels.GetById(g => g.Id == newCard.CardLevel);
                if (dPoint > 0)
                {
                    decimal points = uow.CardPoints.GetAll().Where(w => w.Card == cardId).Sum(s => s.Point);
                    DXInfo.Models.CardLevels cardLevel = uow.CardLevels.GetAll().Where(w => w.Point < points + dPoint &&
                                                                                       w.Id != newCard.CardLevel).OrderByDescending(o => o.Point).FirstOrDefault();
                    if (cardLevel != null && cardLevel.Discount < oldCardLevel.Discount)
                    {
                        newCard.CardLevel = cardLevel.Id;
                    }
                }
            }
            uow.Cards.Update(newCard);

            DXInfo.Models.CardsLog cardLog = Mapper.Map <DXInfo.Models.CardsLog>(newCard);
            cardLog.CardId = newCard.Id;
            uow.CardsLog.Add(cardLog);
        }
Esempio n. 2
0
        protected override void AfterSelectResult()
        {
            base.AfterSelectResult();
            if (this.SelectedResult == null)
            {
                return;
            }
            if (this.Detail == null)
            {
                this.Detail = new CardAddPageDetail();
            }
            dynamic c  = this.SelectedResult;//CardList.SelectedItem;
            Guid    id = c.Id;

            DXInfo.Models.Cards card = Uow.Cards.GetById(g => g.Id == id);
            var d = Uow.CardLevels.GetById(g => g.Id == card.CardLevel);

            if (d != null)
            {
                card.SecondCardNo = d.BeginLetter;
            }
            this.Detail.Card = card;

            DXInfo.Models.NameCode nc = Uow.NameCode.GetAll().Where(w => w.Type == "CostFee").FirstOrDefault();
            if (nc != null)
            {
                this.Detail.Cost = Convert.ToDecimal(nc.Value);
            }
        }
        private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            //编辑
            dynamic m = MemberList.SelectedItem;

            if (string.IsNullOrWhiteSpace(card.CardNo))
            {
                throw new ArgumentNullException("卡号", "请输入卡号");
            }
            if (card.CardLevel == Guid.Empty || card.CardLevel == null)
            {
                throw new ArgumentNullException("卡级别", "请选择卡级别");
            }

            DXInfo.Models.aspnet_CustomProfile user = App.MyIdentity.oper;
            if (user == null)
            {
                throw new ArgumentException("操作员信息错误");
            }
            Guid userId = user.UserId;

            if (!user.DeptId.HasValue || user.DeptId == Guid.Empty)
            {
                throw new ArgumentException("部门信息错误");
            }

            var c = uow.Cards.GetAll().Where(w => w.CardNo == card.CardNo).FirstOrDefault();

            if (c != null)
            {
                throw new ArgumentException("卡号已存在");
            }
            StringBuilder sb = new StringBuilder(33);

            sb.Append(card.CardNo);
            int st = CardRef.CoolerPutCard(sb);

            if (st == 0)
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    card.Member     = m.Id;
                    card.DeptId     = user.DeptId.Value;
                    card.UserId     = userId;
                    card.CreateDate = DateTime.Now;
                    uow.Cards.Add(card);
                    uow.Commit();
                    Common.AddCardsLog(uow, card);
                    uow.Commit();
                    transaction.Complete();
                }
                card = new DXInfo.Models.Cards();
                MessageBox.Show("发卡成功");
            }
            else
            {
                MessageBox.Show(CardRef.GetStr(st));
            }
        }
Esempio n. 4
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. 5
0
 public DeskCardCashWindow(IFairiesMemberManageUow uow, Guid id)
 {
     this.uow = uow;
     InitializeComponent();
     card = uow.Cards.GetById(id);//.Where(w => w.Id == id).FirstOrDefault();
     if (card == null)
     {
         lblPwd.Visibility = System.Windows.Visibility.Collapsed;
         txtPwd.Visibility = System.Windows.Visibility.Collapsed;
     }
     else
     {
         if (string.IsNullOrEmpty(card.CardPwd))
         {
             lblPwd.Visibility = System.Windows.Visibility.Collapsed;
             txtPwd.Visibility = System.Windows.Visibility.Collapsed;
         }
     }
 }
Esempio n. 6
0
        private void ModifyMemberExecute()
        {
            string msg;

            if (!Validate(out msg))
            {
                Helper.ShowErrorMsg(msg);
                return;
            }
            DateTime dtNow = DateTime.Now;

            this.Member.MemberName   = this.MemberName;
            this.Member.ModifyDate   = dtNow;
            this.Member.ModifyDeptId = this.Dept.DeptId;
            this.Member.ModifyUserId = this.Oper.UserId;
            Uow.Members.Update(this.Member);

            DXInfo.Models.MembersLog memberLog = Mapper.Map <DXInfo.Models.Members, DXInfo.Models.MembersLog>(Member);
            memberLog.MemberId   = Member.Id;
            memberLog.UserId     = this.Oper.UserId;
            memberLog.DeptId     = this.Dept.DeptId;
            memberLog.CreateDate = dtNow;
            Uow.MembersLog.Add(memberLog);

            if (!string.IsNullOrEmpty(this.CardPwd) && this.CardPwd != this.Card.CardPwd)
            {
                DXInfo.Models.Cards oldCard = Uow.Cards.GetById(g => g.Id == this.Card.Id);
                if (oldCard != null)
                {
                    oldCard.CardPwd = this.CardPwd;
                    Uow.Cards.Update(oldCard);

                    DXInfo.Models.CardsLog cardsLog = Mapper.Map <DXInfo.Models.Cards, DXInfo.Models.CardsLog>(oldCard);
                    cardsLog.CardId     = oldCard.Id;
                    cardsLog.UserId     = this.Oper.UserId;
                    cardsLog.DeptId     = this.Dept.DeptId;
                    cardsLog.CreateDate = dtNow;
                    Uow.CardsLog.Add(cardsLog);
                }
            }
            Uow.Commit();
            Helper.ShowSuccMsg("修改会员成功");
        }
Esempio n. 7
0
        private void cardAdd()
        {
            //补卡
            if (string.IsNullOrWhiteSpace(Detail.Card.SecondCardNo))
            {
                Helper.ShowErrorMsg("请输入补卡卡号");
                return;
            }
            if (Detail.Card.CardLevel == Guid.Empty || Detail.Card.CardLevel == null)
            {
                Helper.ShowErrorMsg("请选择卡级别");
                return;
            }

            //DXInfo.Models.aspnet_CustomProfile user = this.Oper;
            //Guid userId = user.UserId;
            if (!ClientCommon.CheckUser(this.Oper))
            {
                return;
            }

            var c = Uow.Cards.GetById(g => g.Id == Detail.Card.Id);

            if (!ClientCommon.CheckCard(c))
            {
                return;
            }

            var d = Uow.CardLevels.GetById(g => g.Id == Detail.Card.CardLevel);

            if (d == null)
            {
                Helper.ShowErrorMsg("卡级别信息错误");
                return;
            }
            if (!string.IsNullOrEmpty(d.BeginLetter))
            {
                if (!Detail.Card.SecondCardNo.StartsWith(d.BeginLetter))
                {
                    Helper.ShowErrorMsg("卡号必须以" + d.BeginLetter + "字母开头");
                    return;
                }
            }
            var cardType = Uow.CardTypes.GetById(g => g.Id == Detail.Card.CardType);

            if (cardType == null)
            {
                Helper.ShowErrorMsg("卡型信息错误");
                return;
            }
            string strComment;
            string strCardNoRule = ClientCommon.CardNoRule(cardType, out strComment);

            if (!Regex.IsMatch(Detail.Card.SecondCardNo, strCardNoRule))
            {
                if (!string.IsNullOrEmpty(d.BeginLetter))
                {
                    Helper.ShowErrorMsg(strComment + ",且必须以" + d.BeginLetter + "字母开头");
                    return;
                }
                else
                {
                    Helper.ShowErrorMsg(strComment);
                    return;
                }
            }
            var c1 = Uow.Cards.GetAll().Where(w => w.CardNo == Detail.Card.SecondCardNo).FirstOrDefault();

            if (c1 != null)
            {
                Helper.ShowErrorMsg("卡号已存在");
                return;
            }

            StringBuilder sb = new StringBuilder(33);

            sb.Append(Detail.Card.SecondCardNo);
//#if DEBUG
//            int st = 0;
//#else
            int st = CardRef.CoolerPutCard(sb);

//#endif
            if (st != 0)
            {
                MessageBox.Show(CardRef.GetStr(st));
                return;
            }
            int value = Convert.ToInt32(Detail.Card.Balance * 100);

//#if !DEBUG
            st = CardRef.CoolerRechargeCard(sb, value);
//#endif
            //充值
            if (st != 0)
            {
                MessageBox.Show(CardRef.GetStr(st));
                return;
            }
            DateTime dtNow = DateTime.Now;

            using (TransactionScope transaction = new TransactionScope())
            {
                DXInfo.Models.Cards newcard = new DXInfo.Models.Cards();
                newcard.CardNo     = Detail.Card.SecondCardNo;
                newcard.CardLevel  = Detail.Card.CardLevel;
                newcard.CardType   = Detail.Card.CardType;
                newcard.CreateDate = dtNow;
                newcard.UserId     = this.Oper.UserId;
                newcard.DeptId     = this.Dept.DeptId;
                newcard.Balance    = Detail.Card.Balance;
                newcard.Member     = Detail.Card.Member;
                newcard.CardPwd    = Detail.Card.CardPwd;
                newcard.Comment    = c.Comment;
                Uow.Cards.Add(newcard);
                Uow.Commit();

                DXInfo.Models.CardsLog cardsLog = Mapper.Map <DXInfo.Models.Cards, DXInfo.Models.CardsLog>(newcard);
                cardsLog.CardId     = newcard.Id;
                cardsLog.CreateDate = dtNow;
                cardsLog.UserId     = this.Oper.UserId;
                cardsLog.DeptId     = this.Dept.DeptId;
                Uow.CardsLog.Add(cardsLog);


                c.SecondCardNo = Detail.Card.SecondCardNo;
                c.AddDate      = dtNow;
                c.AddDeptId    = this.Dept.DeptId;
                c.AddUserId    = this.Oper.UserId;
                c.Status       = 2;
                Uow.Cards.Update(c);

                DXInfo.Models.CardsLog cardsLog1 = Mapper.Map <DXInfo.Models.Cards, DXInfo.Models.CardsLog>(c);
                cardsLog1.CardId     = c.Id;
                cardsLog1.CreateDate = dtNow;
                cardsLog1.UserId     = this.Oper.UserId;
                cardsLog1.DeptId     = this.Dept.DeptId;
                Uow.CardsLog.Add(cardsLog1);

                DXInfo.Models.Recharges recharge = new DXInfo.Models.Recharges();
                recharge.Amount       = Detail.Card.Balance;
                recharge.Balance      = Detail.Card.Balance;
                recharge.CreateDate   = DateTime.Now;
                recharge.DeptId       = this.Dept.DeptId;
                recharge.UserId       = this.Oper.UserId;
                recharge.LastBalance  = 0;
                recharge.Donate       = 0;
                recharge.RechargeType = 1;
                recharge.Card         = newcard.Id;
                Uow.Recharges.Add(recharge);

                if (Detail.Cost > 0)
                {
                    recharge              = new DXInfo.Models.Recharges();
                    recharge.Amount       = Detail.Cost;
                    recharge.Balance      = 0;
                    recharge.CreateDate   = DateTime.Now;
                    recharge.DeptId       = this.Dept.DeptId;
                    recharge.UserId       = this.Oper.UserId;
                    recharge.LastBalance  = 0;
                    recharge.Donate       = 0;
                    recharge.RechargeType = 3;
                    recharge.Card         = newcard.Id;

                    Uow.Recharges.Add(recharge);
                }
                var qpt = Uow.CardPoints.GetAll().Where(w => w.Card == Detail.Card.Id);
                if (qpt.Count() > 0)
                {
                    decimal pt = qpt.Sum(s => s.Point);
                    if (pt != 0)
                    {
                        DXInfo.Models.CardPoints cp = new DXInfo.Models.CardPoints();
                        cp.Card       = newcard.Id;
                        cp.CreateDate = dtNow;
                        cp.DeptId     = this.Dept.DeptId;
                        cp.Point      = pt;
                        cp.UserId     = this.Oper.UserId;
                        cp.PointType  = 1;
                        Uow.CardPoints.Add(cp);
                    }
                }
                Uow.Commit();
                transaction.Complete();
            }
            MessageBox.Show("补卡成功");
            this.query();
            Detail = new CardAddPageDetail();
        }
Esempio n. 8
0
 private DXInfo.Models.Cards getCard(string strCardNo)
 {
     //DXInfo.Models.FairiesMemberManage db = new DXInfo.Models.FairiesMemberManage();
     DXInfo.Models.Cards card = uow.Cards.GetAll().Where(w => w.CardNo == strCardNo).FirstOrDefault();
     return(card);
 }
Esempio n. 9
0
        private void MemberBalance(Guid orderId, string cardNo)
        {
            //结账
            //DXInfo.Models.FairiesMemberManage db = new DXInfo.Models.FairiesMemberManage();

            DXInfo.Models.Cards card = uow.Cards.GetAll().Where(w => w.CardNo == cardNo).FirstOrDefault();
            if (card == null)
            {
                MessageBox.Show(cardNo + "未找到会员卡");
                return;
            }
            DXInfo.Models.Members member = uow.Members.GetAll().Where(w => w.Id == card.Member).FirstOrDefault();
            if (member == null)
            {
                MessageBox.Show("未找到会员信息");
                return;
            }
            DXInfo.Models.CardLevels cardLevel = uow.CardLevels.GetAll().Where(w => w.Id == card.CardLevel).FirstOrDefault();
            if (cardLevel == null)
            {
                MessageBox.Show("未找到卡级别参数");
                return;
            }
            DXInfo.Models.OrderDishes orderDish = uow.OrderDishes.GetAll().Where(w => w.Id == orderId && w.Status == 2).FirstOrDefault();
            if (orderDish == null)
            {
                MessageBox.Show("已撤销桌台才可无卡结账");
                return;
            }
            decimal dDiscount = cardLevel.Discount;
            //bool isOut = false;
            Guid gPayType = Guid.Empty;

            var lsi = (from o in uow.OrderMenus.GetAll()
                       join i in uow.Inventory.GetAll() on o.InventoryId equals i.Id into oi
                       from ois in oi.DefaultIfEmpty()
                       join c in uow.InventoryCategory.GetAll() on ois.Category equals c.Id into ic
                       from ics in ic.DefaultIfEmpty()
                       where o.OrderId == orderId && !(o.Status == 0 || o.Status == 1 || o.Status == 7)
                       select new { ics.IsDiscount, o.InventoryId, ois.Code, ois.Name, ois.EnglishName, o.Price, o.Comment, o.Status, o.Id, o.Amount, o.Quantity, ois.Category }).ToList();

            decimal dSum = lsi.Sum(s => s.Amount);

            decimal dSum1 = lsi.Where(w => w.IsDiscount).Sum(s => s.Amount);
            decimal dSum2 = lsi.Where(w => !w.IsDiscount).Sum(s => s.Amount);

            int iCount = Convert.ToInt32(lsi.Sum(s => s.Quantity));


            decimal dAmount = (Math.Round(dSum1 * dDiscount / 100, 2) + dSum2);

            if (dAmount > card.Balance)
            {
                MessageBox.Show("余额不足");
                return;
            }
            //消费积分
            Guid deptId = App.MyIdentity.oper.DeptId.Value;

            decimal point = 0;

            if (dAmount > 0)
            {
                var cp1 = uow.ConsumePoints.GetAll().Where(w => w.DeptId == deptId);
                var cp  = cp1.Count() > 0 ? cp1 : uow.ConsumePoints.GetAll();
                foreach (var si in lsi)
                {
                    if (cp.Count() > 0)
                    {
                        var cpc = cp.Where(w => w.Category == si.Category);
                        if (cpc.Count() > 0)
                        {
                            decimal min = cpc.Min(m => m.Point / m.Amount);
                            point += si.Amount * min;
                        }
                        else
                        {
                            decimal min = cp.Min(m => m.Point / m.Amount);
                            point += si.Amount * min;
                        }
                    }
                }
            }
            var lselInv = lsi.Select(s => new
            {
                OrderMenuId = s.Id,
                Id          = s.InventoryId,
                s.Code,
                s.Name,
                s.EnglishName,
                s.Price,
                s.Quantity,
                s.Amount,
                s.Comment,
                s.IsDiscount,
                Status = s.Status
            });
            Guid     cardId = card.Id;
            DateTime dtn    = DateTime.Now.AddDays(-1);
            var      di     = (from d1 in uow.CardDonateInventory.GetAll().Where(w => w.CardId == cardId).Where(w => w.IsValidate).Where(w => w.InvalideDate > dtn)
                               join i in uow.Inventory.GetAll() on d1.Inventory equals i.Id into d1i
                               from d1is in d1i.DefaultIfEmpty()
                               select new { d1is.Id, d1is.Name }).ToList();

            var ctx = new
            {
                Id                  = card.Id,
                CardNo              = card.CardNo,
                MemberName          = member.MemberName,
                UserId              = App.MyIdentity.oper.UserId,
                FullName            = App.MyIdentity.oper.FullName,
                DeptId              = App.MyIdentity.oper.DeptId.Value,
                DeptName            = App.MyIdentity.dept.DeptName,
                Sum                 = dSum,
                Voucher             = 0,
                PayVoucher          = 0,
                Discount            = dDiscount,
                Amount              = dAmount,
                LastBalance         = card.Balance,
                Balance             = card.Balance - dAmount,
                CreateDate          = DateTime.Now,
                lSelInv             = lselInv,
                Point               = point,
                Count               = iCount,
                CardDonateInventory = di,
                PayType             = gPayType,
                OrderId             = orderId
            };
            DeskNoCardConsume2Window cw = new DeskNoCardConsume2Window(uow, ctx);

            if (cw.ShowDialog().GetValueOrDefault())
            {
            }
        }
Esempio n. 10
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;

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

            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. 12
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();
        }