public IActionResult DownloadEndOfDayReport([FromBody] NewEndOfDayModel newEndOfDay) { try { var endOfDayClass = new EndOfDayClass(); var _ = DateTime.TryParseExact(newEndOfDay.ReportForDate, "yyyy-MM-dd", null, DateTimeStyles.None, out var reportDate); var endOfDayModel = new EndOfDayModel { DateRequested = reportDate, OrderType = newEndOfDay.OrderType, ReportType = newEndOfDay.ReportType }; var endOfDayPdf = endOfDayClass.GenerateEndOfDayDownload(endOfDayModel); var path = $"{Guid.NewGuid()}.pdf"; endOfDayPdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", path)); var json = JsonSerializer.Serialize(path, new JsonSerializerOptions() { IgnoreNullValues = true }); return(Ok(json)); } catch (Exception exception) { return(StatusCode(500, exception.Message)); } }
public List <EndOfDaySubModels> GenerateEndOfDaySubModels(EndOfDayModel endOfDayModel) { var endOfDaySubModels = new List <EndOfDaySubModels>(); if (endOfDayModel == null || endOfDayModel.Id < 0 || endOfDayModel.DateRequested == null) { return(endOfDaySubModels); } using (var context = new TakeThaiContext()) { List <OrderModels> allOrders; if (endOfDayModel.ReportType.ToLowerInvariant() == "all") { allOrders = context.OrderModels.Where(x => x.OrderReceivedDate.Date == endOfDayModel.DateRequested.Date).ToList(); } else { allOrders = context.OrderModels.Where(x => x.OrderReceivedDate.Date == endOfDayModel.DateRequested.Date && x.PaymentMethod == endOfDayModel.ReportType).ToList(); } if (endOfDayModel.OrderType.ToLowerInvariant() != "all") { allOrders.Where(x => x.DeliveryOrCollection == endOfDayModel.OrderType).ToList(); } foreach (var order in allOrders) { var endOfDaySubModel = new EndOfDaySubModels { EndOfDayModel = endOfDayModel, OrderTotal = order.TotalCost, OrderType = order.DeliveryOrCollection, PaymentMethod = order.PaymentMethod }; context.Add(endOfDaySubModel); context.SaveChanges(); endOfDaySubModels.Add(endOfDaySubModel); } } return(endOfDaySubModels); }
public ActionResult Index() { try { EndOfDayModel model = new EndOfDayModel(); //DateTime dateTime = DateTime.UtcNow.Date; DateTime dateTime = DateTime.Today.Date; var siparisAdet = db.CartItems.Where(x => x.onay == true && System.Data.Entity.DbFunctions.TruncateTime(x.zaman) == dateTime.Date).Select(r => r.cartNo).Distinct().Count(); var nakitTutar = db.CartItems.Where(x => x.onay == true && System.Data.Entity.DbFunctions.TruncateTime(x.zaman) == dateTime.Date && x.odemeTur == "nakit").Select(l => l.fiyat).DefaultIfEmpty(0).Sum(); var posTutar = db.CartItems.Where(x => x.onay == true && System.Data.Entity.DbFunctions.TruncateTime(x.zaman) == dateTime.Date && x.odemeTur == "pos").Select(l => l.fiyat).DefaultIfEmpty(0).Sum(); var toplamTutar = db.CartItems.Where(x => x.onay == true && System.Data.Entity.DbFunctions.TruncateTime(x.zaman) == dateTime.Date).Select(l => l.fiyat).DefaultIfEmpty(0).Sum(); ViewBag.siparisAdet = siparisAdet; ViewBag.nakitTutar = nakitTutar;; ViewBag.posTutar = posTutar; ViewBag.toplamTutar = toplamTutar; var products = db.CartItems.Where(x => x.onay == true).ToList(); var list = from c in db.CartItems join u in db.Uruns on c.urunID equals u.urunID where c.onay == true && (System.Data.Entity.DbFunctions.TruncateTime(c.zaman) == dateTime.Date) group new { c, u } by new { u.urunAd } into pg let firstproductgroup = pg.FirstOrDefault() let product = firstproductgroup.c let baseproduct = firstproductgroup.u let urunAd = baseproduct.urunAd let toplamMiktar = pg.Sum(m => m.c.miktar) let toplamFiyat = pg.Sum(m => m.c.fiyat) select new { urunAd = urunAd, toplamMiktar = toplamMiktar, toplamFiyat = toplamFiyat, }; string test = JsonConvert.SerializeObject(list); List <EndOfDayModel> endOfDayModelList = new List <EndOfDayModel>(); if (list.Count() == 0) { ViewBag.Test = 0; return(View()); } else { foreach (var item in list) { double toplamFiyat2 = (double)item.toplamFiyat; endOfDayModelList.Add(new EndOfDayModel { urunAd = item.urunAd, urunToplamFiyat = toplamFiyat2, urunToplamMiktar = item.toplamMiktar }); } return(View(endOfDayModelList)); } } catch (Exception ex) { Response.Write("<script>alert('" + Server.HtmlEncode(ex.Message) + "')</script>"); throw; } }
public PdfDocument GenerateEndOfDayDownload(EndOfDayModel endOfDayModel) { using (var context = new TakeThaiContext()) { var orders = context.OrderModels.Where(x => x.OrderReceivedDate.Date == endOfDayModel.DateRequested.Date).ToList(); if (endOfDayModel.OrderType.ToLowerInvariant() != "all") { if (endOfDayModel.ReportType.ToLowerInvariant() == "delivery") { orders = orders.Where(x => x.DeliveryOrCollection == "Delivery").ToList(); } else if (endOfDayModel.ReportType.ToLowerInvariant() == "collection") { orders = orders.Where(x => x.DeliveryOrCollection == "Collection").ToList(); } else if (endOfDayModel.ReportType.ToLowerInvariant() == "counter") { orders = orders.Where(x => x.DeliveryOrCollection == "Counter").ToList(); } } if (endOfDayModel.ReportType.ToLowerInvariant() != "all") { if (endOfDayModel.ReportType.ToLowerInvariant() == "card") { orders = orders.Where(x => x.PaymentMethod.ToLowerInvariant() == "Card").ToList(); } else if (endOfDayModel.ReportType.ToLowerInvariant() == "cash") { orders = orders.Where(x => x.PaymentMethod.ToLowerInvariant() == "Cash").ToList(); } } using (var stream = new MemoryStream()) { var myHtml = $"<div style='text-align: center; display: block;'> <img src='https://www.takethai.co.uk/wp-content/uploads/Take-Thai-Logo.png' /></div> <br /> " + "<hr /> <br /><p></p><div style='text-align: right'>"; if (endOfDayModel.ReportType.ToLowerInvariant() != "all") { myHtml = $"{myHtml} <p>This report is from all {endOfDayModel.ReportType} payments.</p>"; } else { myHtml = $"{myHtml} <p>This report is from all payments.</p>"; } if (endOfDayModel.OrderType.ToLowerInvariant() == "all") { myHtml = $"{myHtml} <p>Total for all orders on {endOfDayModel.DateRequested.Date:dd'/'MM'/'yyyy}: <strong>£{orders.Sum(x => x.TotalCost)}</strong> </p>"; } else { myHtml = $"{myHtml} <p>Total for {endOfDayModel.OrderType} on {endOfDayModel.DateRequested.Date:dd'/'MM'/'yyyy}: <strong>£{orders.Sum(x => x.TotalCost)}</strong> </p>"; } myHtml = $"{myHtml} </div>"; var htmlToPdf = new HtmlToPdf(); var pdf = htmlToPdf.RenderHtmlAsPdf(myHtml); return(pdf); } } }