public async Task SendWeekInvoice(string userid, DateTime daydate, int comapnyid) { DateTime first = daydate; try { var model = _invoicerepo.CustomerInvoice(userid, daydate, comapnyid); var avaible = _udaydishrepo.AvaibleComplexDay(daydate, userid, comapnyid); var items = model.Items.ToList(); if (avaible.Count() > 0 && items.Count() == 0) { var inItem = new InvoiceItemModel(); inItem.DayComplex = new UserDayComplexViewModel(); inItem.DayComplex.Date = daydate; items.Add(inItem); model.Items = items; } for (int i = 0; i < 6; i++) { daydate = daydate.AddDays(1); avaible = _udaydishrepo.AvaibleComplexDay(daydate, userid, comapnyid); var nextModel = _invoicerepo.CustomerInvoice(userid, daydate, comapnyid); items = model.Items.ToList(); if (avaible.Count() > 0 && nextModel.Items.ToList().Count() == 0) { var inItem = new InvoiceItemModel(); inItem.DayComplex = new UserDayComplexViewModel(); inItem.DayComplex.Date = daydate; inItem.DayComplex.Enabled = false; items.Add(inItem); } items.AddRange(nextModel.Items.ToList()); model.Items = items; } string body = await _razorViewToStringRenderer.RenderViewToStringAsync("/Views/Invoice/EmailInvoiceForSend.cshtml", model); var user = _userManager.Users.SingleOrDefault(u => u.Id == userid); if (user != null) { string email = user.Email; await SendEmailAsync(email, string.Format("Харчування на тиждень " + first.ToShortDateString() + " - {0}", daydate.ToShortDateString()), body, comapnyid); } } catch (Exception ex) { _logger.LogError(ex, "SendInvoice "); } }
public async Task <IViewComponentResult> InvokeAsync(DayMenu day) { // daydate = DateTime.Now; //var cid = this.User.GetCompanyID(); //return View(_daydishrepo.DishesPerDay(daydate).ToList()); DateTime daydate = day.Date; ViewData["AllowEdit"] = _udaydishrepo.IsAllowDayEdit(daydate, this.User.GetHotelID()) && _udaydishrepo.GetConfrimedAdmin(this.User.GetUserId()) /*&& _udaydishrepo.IsBalancePositive(this.User.GetUserId())*/; ViewData["AllowAdmin"] = _udaydishrepo.GetConfrimedAdmin(this.User.GetUserId()); //to do check balance // ViewData["PositiveBalance"] = _udaydishrepo.IsBalancePositive(this.User.GetUserId()); if ((_udaydishrepo.GetCompanyOrderType(this.User.GetHotelID()) & OrderTypeEnum.OneComplexType) > 0) { var complexes = _udaydishrepo.AvaibleComplexDay(daydate, this.User.GetUserId(), this.User.GetHotelID()); complexes = complexes.OrderBy(com => com.ComplexCategoryCode); return(await Task.FromResult((IViewComponentResult)View("OneDayComplex", complexes))); } else { var complexes = _udaydishrepo.AvaibleComplexDayForMany(daydate, this.User.GetUserId(), this.User.GetHotelID()); complexes = complexes.OrderBy(com => com.ComplexCategoryCode); return(await Task.FromResult((IViewComponentResult)View("Default", complexes))); //return await Task.FromResult((IViewComponentResult)View("Default", _udaydishrepo.ComplexPerDay(daydate, this.User.GetUserId(), this.User.GetCompanyID()))); } // return await Task.FromResult((IViewComponentResult)View("Default", _udaydishrepo.AvaibleComplexDay(daydate, this.User.GetUserId(), this.User.GetCompanyID()))); }
public async Task <IViewComponentResult> InvokeAsync(DayMenu day) { // daydate = DateTime.Now; //var cid = this.User.GetCompanyID(); //return View(_daydishrepo.DishesPerDay(daydate).ToList()); DateTime daydate = day.Date; ViewData["AllowEdit"] = _udaydishrepo.IsAllowDayEdit(daydate, this.User.GetCompanyID()) && _udaydishrepo.GetConfrimedAdmin(this.User.GetUserId()) /*&& _udaydishrepo.IsBalancePositive(this.User.GetUserId())*/; ViewData["AllowAdmin"] = _udaydishrepo.GetConfrimedAdmin(this.User.GetUserId()); //to do check balance //ViewData["PositiveBalance"] = _udaydishrepo.IsBalancePositive(this.User.GetUserId()); IQueryable <UserDayComplexViewModel> complexes; string viewName = "Default"; if ((_udaydishrepo.GetCompanyOrderType(this.User.GetCompanyID()) & OrderTypeEnum.OneComplexType) > 0) { complexes = _udaydishrepo.AvaibleComplexDay(daydate, this.User.GetUserId(), this.User.GetCompanyID()); viewName = "OneDayComplex"; } else { complexes = _udaydishrepo.AllComplexDay(daydate, this.User.GetUserId(), this.User.GetCompanyID()); } if (day.DishKind != 0) { complexes = complexes.Where(com => com.DishKindId == day.DishKind); } if (day.Category != 0) { complexes = complexes.Where(com => com.ComplexCategoryId == day.Category); } if (day.Categories != null && day.Categories.Count > 0) { complexes = complexes.Where(com => day.Categories.Contains(com.ComplexCategoryId)); } complexes = complexes.OrderBy(com => com.ComplexCategoryCode); return(await Task.FromResult((IViewComponentResult)View(viewName, complexes))); //return await Task.FromResult((IViewComponentResult)View("Default", _udaydishrepo.ComplexPerDay(daydate, this.User.GetUserId(), this.User.GetCompanyID()))); // return await Task.FromResult((IViewComponentResult)View("Default", _udaydishrepo.AvaibleComplexDay(daydate, this.User.GetUserId(), this.User.GetCompanyID()))); }
public async Task <IActionResult> GetWeekOrderDetails(string day) { DateTime daydate = Convert.ToDateTime(day); string userid = User.GetUserId(); int comapnyid = User.GetCompanyID(); try { //var test = _userdaydishesrepo.WeekOrder(daydate, daydate.AddDays(7), userid, comapnyid); //test = test.OrderBy(a => a.Date); var model = _invoicerepo.CustomerInvoice(userid, daydate, comapnyid); //var testList = test.ToList(); //var inList = new List<InvoiceItemModel>(); //testList.ForEach(a => //{ // inList.Add(new InvoiceItemModel() { DayComplex = a }); //}); // model.Items = inList; var avaible = _userdaydishesrepo.AvaibleComplexDay(daydate, userid, comapnyid); var items = model.Items.ToList(); if (avaible.Count() > 0 && items.Count() == 0) { var inItem = new InvoiceItemModel(); inItem.DayComplex = new UserDayComplexViewModel(); inItem.DayComplex.Date = daydate; items.Add(inItem); } model.Items = items; for (int i = 0; i < 6; i++) { daydate = daydate.AddDays(1); avaible = _userdaydishesrepo.AvaibleComplexDay(daydate, userid, comapnyid); var nextModel = _invoicerepo.CustomerInvoice(userid, daydate, comapnyid); var nextItems = nextModel.Items.ToList(); var onlyComplex = new List <InvoiceItemModel>(); foreach (var it in nextItems) { if (it.DayComplex != null) { onlyComplex.Add(it); } } nextItems = onlyComplex; items = model.Items.ToList(); if (avaible.Count() > 0 && nextModel.Items.ToList().Count() == 0) { var inItem = new InvoiceItemModel(); inItem.DayComplex = new UserDayComplexViewModel(); inItem.DayComplex.Date = daydate; inItem.DayComplex.Enabled = false; items.Add(inItem); //items.AddRange(nextModel.Items.ToList()); } items.AddRange(nextItems); model.Items = items; } return(PartialView("~/Views/Invoice/EmailWeekInvoice.cshtml", model)); } catch (Exception ex) { _logger.LogError(ex, "GetWeekOrderDetails "); return(await Task.FromResult(Json(new { res = "FAIL", reason = "Adding to db" }))); } //await _email.SendWeekInvoice(User.GetUserId(), daydate, User.GetCompanyID()); }