コード例 #1
0
        // GET: LeavesApprove
        public ActionResult ShowAllLeaveRequests()
        {
            ViewBag.Employee_Profile = dbcontext.Employee_Profile.Where(a => a.Active == true).ToList().Select(m => new { Code = m.Code + "-[" + m.Full_Name + ']', ID = m.ID });
            ViewBag.Vacations_Setup  = dbcontext.Vacations_Setup.ToList().Select(m => new { Code = "" + m.LeaveTypeCode + "-----[" + m.LeaveTypeNameEnglish + ']', ID = m.ID }).ToList();
            var model = new LeavesApprove();

            return(View(model));
        }
コード例 #2
0
        public ActionResult ShowAllLeaveRequests(FormCollection form)
        {
            ViewBag.Employee_Profile = dbcontext.Employee_Profile.Where(a => a.Active == true).ToList().Select(m => new { Code = m.Code + "-[" + m.Full_Name + ']', ID = m.ID });
            ViewBag.Vacations_Setup  = dbcontext.Vacations_Setup.ToList().Select(m => new { Code = "" + m.LeaveTypeCode + "-----[" + m.LeaveTypeNameEnglish + ']', ID = m.ID }).ToList();

            var CodeEmp  = form["CodeEmp"].Split(',');
            var CodeVac  = form["CodeVac"].Split(',');
            var FromDate = form["FromDate"].Split(',');
            var ToDate   = form["ToDate"].Split(',');
            var Dur      = form["Dur"].Split(',');
            var Is_Head  = form["Is_Head"].Split(',');

            for (var i = 0; i < CodeEmp.Length; i++)
            {
                if (CodeEmp[i] != "")
                {
                    CultureInfo culture  = new CultureInfo("es-ES");
                    String      myDate   = FromDate[i];
                    DateTime    dateFrom = DateTime.Parse(myDate, culture);
                    //CultureInfo culture = new CultureInfo("es-ES");
                    String   myDateTo = ToDate[i];
                    DateTime dateTo   = DateTime.Parse(myDateTo, culture);
                    //var ff =  date.ToString("MM/dd/yyyy");
                    //  var kf = Convert.ToDateTime(ff);
                    var From = FromDate[i];

                    var CodeEmployee = CodeEmp[i];
                    var emp          = dbcontext.Employee_Profile.FirstOrDefault(a => a.Code == CodeEmployee);
                    var CodeVacation = CodeVac[i];
                    var vac          = dbcontext.Vacations_Setup.FirstOrDefault(a => a.LeaveTypeCode == CodeVacation);

                    if (Is_Head[i] == "0")
                    {
                        var LeavesRequestMaster = dbcontext.LeavesRequestMaster.FirstOrDefault(a => a.EmployeeID == emp.ID && a.VacCode == vac.ID && a.DateFrom == dateFrom && a.DateTo == dateTo);
                        var Last = dbcontext.LeavesRequestMaster.Where(a => a.EmployeeID == emp.ID && a.VacCode == vac.ID).ToList();
                        var Ch   = Last.LastOrDefault();
                        if (LeavesRequestMaster.Approved == 3)
                        {
                            LeavesRequestMaster.Approved     = 0;
                            LeavesRequestMaster.Modified_By  = User.Identity.Name;
                            LeavesRequestMaster.check_status = HR.Models.Infra.check_status.Pending;
                            LeavesRequestMaster.name_state   = nameof(check_status.Pending);
                            dbcontext.SaveChanges();
                        }
                        else if (Ch != null && LeavesRequestMaster.Approved == 4)
                        {
                            LeavesRequestMaster.Approved = 0;
                            var total = LeavesRequestMaster.TotalDays;
                            Ch.RemainDays = Ch.RemainDays - total;
                            LeavesRequestMaster.Modified_By  = User.Identity.Name;
                            LeavesRequestMaster.ApprovedBy   = User.Identity.Name;
                            LeavesRequestMaster.check_status = HR.Models.Infra.check_status.Pending;
                            LeavesRequestMaster.name_state   = nameof(check_status.Pending);
                            dbcontext.SaveChanges();
                        }
                    }
                    else if (Is_Head[i] == "3")
                    {
                        var LeavesRequestMaster = dbcontext.LeavesRequestMaster.FirstOrDefault(a => a.EmployeeID == emp.ID && a.VacCode == vac.ID && a.DateFrom == dateFrom && a.DateTo == dateTo);
                        var Last = dbcontext.LeavesRequestMaster.Where(a => a.EmployeeID == emp.ID && a.VacCode == vac.ID).ToList();
                        var Ch   = Last.LastOrDefault();
                        if (LeavesRequestMaster.Approved == 0)
                        {
                            LeavesRequestMaster.Approved     = 3;
                            LeavesRequestMaster.Modified_By  = User.Identity.Name;
                            LeavesRequestMaster.ApprovedBy   = User.Identity.Name;
                            LeavesRequestMaster.check_status = HR.Models.Infra.check_status.Approved;
                            LeavesRequestMaster.name_state   = nameof(check_status.Approved);
                            dbcontext.SaveChanges();
                        }
                        else if (Ch != null && LeavesRequestMaster.Approved == 4)
                        {
                            LeavesRequestMaster.Approved = 3;
                            var total = LeavesRequestMaster.TotalDays;
                            Ch.RemainDays = Ch.RemainDays - total;
                            LeavesRequestMaster.Modified_By  = User.Identity.Name;
                            LeavesRequestMaster.ApprovedBy   = User.Identity.Name;
                            LeavesRequestMaster.check_status = HR.Models.Infra.check_status.Approved;
                            LeavesRequestMaster.name_state   = nameof(check_status.Approved);
                            dbcontext.SaveChanges();
                        }
                    }
                    else if (Is_Head[i] == "4")
                    {
                        var LeavesRequestMaster = dbcontext.LeavesRequestMaster.FirstOrDefault(a => a.EmployeeID == emp.ID && a.VacCode == vac.ID && a.DateFrom == dateFrom && a.DateTo == dateTo);
                        var Last = dbcontext.LeavesRequestMaster.Where(a => a.EmployeeID == emp.ID && a.VacCode == vac.ID).ToList();
                        var Ch   = Last.LastOrDefault();
                        if (Ch != null && LeavesRequestMaster.Approved == 0 || LeavesRequestMaster.Approved == 3)
                        {
                            LeavesRequestMaster.Approved = 4;
                            var total = LeavesRequestMaster.TotalDays;
                            Ch.RemainDays = Ch.RemainDays + total;
                            LeavesRequestMaster.Modified_By  = User.Identity.Name;
                            LeavesRequestMaster.RejectedBy   = User.Identity.Name;
                            LeavesRequestMaster.check_status = HR.Models.Infra.check_status.Rejected;
                            LeavesRequestMaster.name_state   = nameof(check_status.Rejected);
                            dbcontext.SaveChanges();
                        }
                    }
                    dbcontext.SaveChanges();
                }
            }
            //var model_ = dbcontext.LeavesRequestMaster.ToList();
            var model = new LeavesApprove();

            return(View(model));
        }