Exemple #1
0
        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 ");
            }
        }
Exemple #2
0
        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())));
        }
Exemple #4
0
        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());
        }