private void CardCancelPoint(Guid cardId, DateTime dCreateDate, Guid deptId, Guid userId, decimal dPoint) { var cps = uow.CardPoints.GetAll().Where(w => w.Card == cardId).Where(w => w.PointType == 0).FirstOrDefault(); if (cps != null) { cps.Point = cps.Point - dPoint; uow.CardPoints.Update(cps); } else { DXInfo.Models.CardPoints cp = new DXInfo.Models.CardPoints(); cp.Card = cardId; cp.CreateDate = dCreateDate; cp.DeptId = deptId; cp.Point = -dPoint; cp.PointType = 0; cp.UserId = userId; uow.CardPoints.Add(cp); } }
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(); }
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; 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(); }