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