Beispiel #1
0
        public async Task <IActionResult> ThangLuong()
        {
            #region Authorization
            var login         = User.Identity.Name;
            var loginUserName = User.Claims.Where(m => m.Type.Equals("UserName")).FirstOrDefault().Value;
            ViewData["LoginUserName"] = loginUserName;

            var loginInformation = dbContext.Employees.Find(m => m.Leave.Equals(false) && m.Id.Equals(login)).FirstOrDefault();
            if (loginInformation == null)
            {
                #region snippet1
                await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);

                #endregion
                return(RedirectToAction("login", "account"));
            }

            if (!(loginUserName == Constants.System.account ? true : Utility.IsRight(login, "nhan-su", (int)ERights.View)))
            {
                return(RedirectToAction("AccessDenied", "Account"));
            }

            #endregion

            var mucluongvung = await dbContext.SalaryMucLuongVungs.Find(m => m.Enable.Equals(true)).FirstOrDefaultAsync();

            var ngachluongs = await dbContext.NgachLuongs.Find(m => m.Enable.Equals(true) && m.Type.Equals((int)ESalary.Law)).ToListAsync();

            var phucapphuclois = await dbContext.SalaryThangBangPhuCapPhucLois.Find(m => m.Enable.Equals(true)).ToListAsync();

            var viewModel = new ThangBangLuongViewModel
            {
                SalaryMucLuongVung            = mucluongvung,
                NgachLuongs                   = ngachluongs,
                SalaryThangBangPhuCapPhucLois = phucapphuclois
            };

            return(View(viewModel));
        }
        public async Task <IActionResult> ThangLuong(string thang, string id)
        {
            #region Authorization
            var login         = User.Identity.Name;
            var loginUserName = User.Claims.Where(m => m.Type.Equals("UserName")).FirstOrDefault().Value;
            ViewData["LoginUserName"] = loginUserName;

            var loginInformation = dbContext.Employees.Find(m => m.Leave.Equals(false) && m.Id.Equals(login)).FirstOrDefault();
            if (loginInformation == null)
            {
                #region snippet1
                await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);

                #endregion
                return(RedirectToAction("login", "account"));
            }

            if (!(loginUserName == Constants.System.account ? true : Utility.IsRight(login, "luong-nha-may", (int)ERights.View)))
            {
                return(RedirectToAction("AccessDenied", "Account"));
            }

            #endregion

            #region DDL
            var monthYears = new List <MonthYear>();
            var date       = new DateTime(2018, 02, 01);
            var endDate    = DateTime.Now;
            while (date.Year < endDate.Year || (date.Year == endDate.Year && date.Month <= endDate.Month))
            {
                monthYears.Add(new MonthYear
                {
                    Month = date.Month,
                    Year  = date.Year
                });
                date = date.AddMonths(1);
            }
            if (endDate.Day > 25)
            {
                monthYears.Add(new MonthYear
                {
                    Month = endDate.AddMonths(1).Month,
                    Year  = endDate.AddMonths(1).Year
                });
            }
            var sortTimes = monthYears.OrderByDescending(x => x.Month).OrderByDescending(x => x.Year).ToList();
            #endregion

            #region Times
            var toDate   = Utility.WorkingMonthToDate(thang);
            var fromDate = toDate.AddMonths(-1).AddDays(1);
            if (string.IsNullOrEmpty(thang))
            {
                toDate   = DateTime.Now;
                fromDate = toDate.Day > 25 ? new DateTime(toDate.Year, toDate.Month, 26) : new DateTime(toDate.AddMonths(-1).Year, toDate.AddMonths(-1).Month, 26);
            }
            var year  = toDate.Day > 25 ? toDate.AddMonths(1).Year : toDate.Year;
            var month = toDate.Day > 25 ? toDate.AddMonths(1).Month : toDate.Month;
            thang = string.IsNullOrEmpty(thang) ? month + "-" + year : thang;

            int yearSale  = new DateTime(year, month, 01).AddMonths(-2).Year;
            int monthSale = new DateTime(year, month, 01).AddMonths(-2).Month;
            var saleTimes = monthSale + "-" + yearSale;
            #endregion

            var mucluongvung = await dbContext.SalaryMucLuongVungs.Find(m => m.Enable.Equals(true)).FirstOrDefaultAsync();

            var ngachluongs = await dbContext.NgachLuongs.Find(m => m.Enable.Equals(true) && m.Type.Equals((int)ESalary.Law)).ToListAsync();

            var viewModel = new ThangBangLuongViewModel
            {
                SalaryMucLuongVung = mucluongvung,
                NgachLuongs        = ngachluongs
            };

            return(View(viewModel));
        }