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));
            }
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #4
0
        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);
                }
            }
        }