static FiskalDrivers.FiskalCheck GetFiskalCheckFromOrder(OrderToAlohaSrv.Order ord) { FiskalDrivers.FiskalCheck Tmp = new FiskalDrivers.FiskalCheck(); Tmp.CheckNum = ord.StNum.ToString(); Tmp.TimeofOpen = ord.TimeofShipping.Value; Tmp.Cassir = ord.CompanyName; Tmp.Waiter = ord.BortName; Tmp.FlyCheck = true; foreach (OrderToAlohaSrv.OrderItem oi in ord.OrderItems.Where(a => !a.Deleted.Value && a.Price > 0 && !a.Alk)) { FiskalDrivers.FiskalDish fd = new FiskalDrivers.FiskalDish() { Name = OrderToAlohaSrv.ToSql.SQLGetDishName(oi.Barcode.Value), Price = (double)oi.Price.Value, Quantity = oi.Quantity.Value }; Tmp.Dishes.Add(fd); } Tmp.Discount = (double)ord.ComplexDisc + (double)ord.StDiscount; if ((Tmp.Discount > 0) && (ord.Margin > 0)) { if (Tmp.Discount > (double)ord.Margin) { Tmp.Discount -= (double)ord.Margin; } else { Tmp.Charge = (double)ord.Margin - Tmp.Discount; Tmp.Discount = 0; } } else if (ord.Margin > 0) { Tmp.Charge = (double)ord.Margin; } foreach (OrderToAlohaSrv.OrderPayment op in ord.OrderPayments) { //OrderToAlohaSrv.OrderPayment op = ord.OrderPayments; FiskalDrivers.FiskalPayment fp = new FiskalDrivers.FiskalPayment() { Name = op.TNDR.Name, Summ = (double)op.Summ.Value, PaymentType = op.TNDR.FisckalId.Value, // NonFiskalPayment = op.TNDR. }; Tmp.Payments.Add(fp); } Tmp.Summ = (double)(ord.Summ - ord.StDiscount - ord.ComplexDisc + ord.Margin); return(Tmp); }
public static FiskalDrivers.FiskalCheck GetFiskalCheckFromOrder(OrderToGo ord) { FiskalDrivers.FiskalCheck Tmp = new FiskalDrivers.FiskalCheck(); Tmp.CheckNum = ord.Id.ToString(); Tmp.TimeofOpen = ord.DeliveryDate; /* * Tmp.Cassir = ord.AirCompany.Name; * Tmp.Waiter = ord.FlightNumber; * */ Tmp.FlyCheck = false; double tmpSumm = 0; foreach (var oi in ord.DishPackages.Where(a => a.TotalPrice > 0 && !a.Dish.IsAlcohol)) { FiskalDrivers.FiskalDish fd = new FiskalDrivers.FiskalDish() { Name = oi.DishName, Price = (double)oi.TotalPrice * (1 - (double)ord.DiscountPercent / 100), Quantity = (double)oi.Amount }; tmpSumm += fd.Price * fd.Quantity; Tmp.Dishes.Add(fd); } if (ord.DiscountPercent > 0) { Tmp.Discount = (double)(ord.DishPackages.Sum(a => a.TotalPrice * a.Amount) * (ord.DiscountPercent / 100)); Tmp.DiscountName = "Скидка "; } var diff = tmpSumm - ((double)ord.DishPackages.Sum(a => a.TotalPrice * a.Amount) - Tmp.Discount); if (Math.Abs(diff) > 0.001) { if (Tmp.Dishes.Any(a => a.Price * a.Quantity > diff)) { var d = Tmp.Dishes.Where(a => a.Price * a.Quantity > diff).FirstOrDefault(); d.Price = d.Price - diff / d.Quantity; } } if (ord.DeliveryPrice > 0) { FiskalDrivers.FiskalDish fd = new FiskalDrivers.FiskalDish() { Name = "Доставка", Price = (double)ord.DeliveryPrice, Quantity = 1 }; Tmp.Dishes.Add(fd); } // double DSumm = (double)ord.DishPackages.Sum(a => a.TotalPrice * a.Amount) + (double)ord.DeliveryPrice; double DSumm = (double)Tmp.Dishes.Sum(a => a.Price * a.Quantity); /* * double ExCh = 0; * Tmp.Discount = 0; * if ((Tmp.Discount > 0) && (ExCh > 0)) * { * if (Tmp.Discount > ExCh) * { * Tmp.Discount -= ExCh; * } * else * { * * Tmp.Charge = ExCh - Tmp.Discount; * Tmp.Discount = 0; * } * } * else if (ExCh > 0) * { * Tmp.Charge = ExCh; * } */ //double DSummTotal = DSumm - Tmp.Discount + Tmp.Charge; var op = ord.PaymentType; //OrderToAlohaSrv.OrderPayment op = ord.OrderPayments; FiskalDrivers.FiskalPayment fp = new FiskalDrivers.FiskalPayment() { Name = op.Name, Summ = DSumm, PaymentType = (int)op.FiskalId // NonFiskalPayment = op.TNDR. }; Tmp.Payments.Add(fp); Tmp.Summ = DSumm; return(Tmp); }
public static FiskalDrivers.FiskalCheck GetFiskalCheckFromOrder(OrderFlight ord) { FiskalDrivers.FiskalCheck Tmp = new FiskalDrivers.FiskalCheck(); Tmp.CheckNum = ord.Id.ToString(); Tmp.TimeofOpen = ord.DeliveryDate; Tmp.Cassir = ord.AirCompany.Name; Tmp.Waiter = ord.FlightNumber; Tmp.FlyCheck = true; foreach (var oi in ord.DishPackages.Where(a => a.TotalPrice > 0 && !a.Dish.IsAlcohol)) { FiskalDrivers.FiskalDish fd = new FiskalDrivers.FiskalDish() { Name = oi.DishName, Price = (double)oi.TotalPrice, Quantity = (double)oi.Amount }; Tmp.Dishes.Add(fd); } foreach (var oi in ord.DishPackages.Where(a => a.TotalPrice > 0 && a.Dish.IsAlcohol)) { FiskalDrivers.FiskalDish fd = new FiskalDrivers.FiskalDish() { Name = "Открытый напиток", Price = (double)oi.TotalPrice, Quantity = (double)oi.Amount }; Tmp.Dishes.Add(fd); } double DSumm = (double)ord.DishPackages.Sum(a => a.TotalPrice * a.Amount); double ExCh = DSumm * (double)ord.ExtraCharge / 100; Tmp.Discount = (double)ord.DiscountSumm; if ((Tmp.Discount > 0) && (ExCh > 0)) { if (Tmp.Discount > ExCh) { Tmp.Discount -= ExCh; } else { Tmp.Charge = ExCh - Tmp.Discount; Tmp.Discount = 0; } } else if (ExCh > 0) { Tmp.Charge = ExCh; } double DSummTotal = DSumm - Tmp.Discount + Tmp.Charge; var op = ord.AirCompany.PaymentType; //OrderToAlohaSrv.OrderPayment op = ord.OrderPayments; FiskalDrivers.FiskalPayment fp = new FiskalDrivers.FiskalPayment() { Name = op.Name, Summ = DSummTotal, PaymentType = (int)op.FiskalId // NonFiskalPayment = op.TNDR. }; if (fp.PaymentType == 0) { fp.Name = "Наличные"; } Tmp.Payments.Add(fp); Tmp.Summ = DSummTotal; return(Tmp); }