Exemple #1
0
        public ActionResult Create()
        {
            var model = new ManageEmployeeLeave();


            return(View(model));
        }
Exemple #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            ManageEmployeeLeave manageEmployeeLeave = db.ManageEmployeeLeaves.Find(id);

            db.ManageEmployeeLeaves.Remove(manageEmployeeLeave);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #3
0
 public ActionResult Edit([Bind(Include = "ID,EmployeeId,EmployeeName,StartDate,EndDate,Duration,ApplyDate,Status,LeaveType,LeaveLimit,LeaveType_Limit_ID")] ManageEmployeeLeave manageEmployeeLeave)
 {
     if (ModelState.IsValid)
     {
         db.Entry(manageEmployeeLeave).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(manageEmployeeLeave));
 }
Exemple #4
0
        public ActionResult Create()
        {
            var model = new ManageEmployeeLeave();

            //var items = db.LeaveType_Limits.ToList();
            //if (items != null)
            //{
            //    ViewBag.LeaveType_Limits = items;
            //}
            return(View(model));
        }
Exemple #5
0
        // GET: LeaveApplications/Create
        public ActionResult Create(int?planid)
        {
            var model    = new LeaveApplication();
            var userid   = User.Identity.GetUserId();
            var employee = db.Employees.Where(x => x.UserId == userid).FirstOrDefault();

            model.EmployeeId   = employee.ID.ToString();
            model.EmployeeName = employee.FullName;
            model.ApplyDate    = DateTime.Now;
            if (planid != null)
            {
                ManageEmployeeLeave leaveplan = db.ManageEmployeeLeaves
                                                .Where(x => x.ID == planid)
                                                .FirstOrDefault();
                //ManageEmployeeLeave leaveplan = db.ManageEmployeeLeaves
                //                              .Where(x => x.ID == planid && x.EmployeeId == model.EmployeeId)
                //                              .FirstOrDefault();
                if (leaveplan != null)
                {
                    model.StartDate           = leaveplan.StartDate;
                    model.LeaveType           = leaveplan.LeaveType;
                    model.LeaveLimit          = leaveplan.LeaveLimit;
                    model.LeaveLimit          = leaveplan.LeaveLimit;
                    model.EndDate             = leaveplan.EndDate;
                    model.LeavePlanID         = leaveplan.ID;
                    model.TotalLeaveTaken     = leaveplan.TotalLeaveTaken;
                    model.TotalLeaveAvailable = leaveplan.TotalLeaveAvailable;
                    model.Duration            = leaveplan.Duration;
                    model.LeavePlanStatus     = "Approved";
                    model.LeaveAppStatus      = BusinessLogic.UpdatedDomain.LeaveApplication.LeaveApplicationStatus.Pending;
                }
                else
                {
                    model.StartDate       = DateTime.Now;
                    model.EndDate         = DateTime.Now;
                    ViewBag.LeaveType     = new SelectList(db.LeaveType_Limits.Where(x => x.LeaveType == "Emergency").ToList(), "LeaveType", "LeaveType");
                    model.LeaveLimit      = db.LeaveType_Limits.Where(x => x.LeaveType == "Emergency").FirstOrDefault().Limit;
                    model.LeavePlanStatus = "Pending";
                    model.LeaveAppStatus  = BusinessLogic.UpdatedDomain.LeaveApplication.LeaveApplicationStatus.Pending;
                    ViewBag.Error         = "Leave Plan Does Not Exist";
                }
            }
            else
            {
                model.StartDate        = DateTime.Now;
                model.EndDate          = DateTime.Now;
                ViewBag.LeaveType      = new SelectList(db.LeaveType_Limits.ToList(), "LeaveType", "LeaveType");
                model.LeaveLimit       = null;
                model.LeavePlanStatus  = "None";
                model.LeaveAppStatus   = BusinessLogic.UpdatedDomain.LeaveApplication.LeaveApplicationStatus.Pending;
                ViewBag.LeaveTypesList = db.LeaveType_Limits.Select(c => new { c.ID, c.Limit, c.LeaveType });
            }
            return(View(model));
        }
        public async Task <ActionResult> Edit([Bind(Include = "ID,LeaveAppID,EmployeeId,EmployeeName,StartDate,ResumptionDate,Duration,Status,ApplyDate,LeaveType")] LeaveResumption leaveResumption)
        {
            if (ModelState.IsValid)
            {
                var employee = _repo.GetEmployee(int.Parse(leaveResumption.EmployeeId));
                if (leaveResumption.Status == LeaveResumption.LeaveResumptionStatus.Approved)
                {
                    LeaveApplication leaveapplication = db.LeaveApplications.Find(leaveResumption.LeaveAppID);
                    if (leaveapplication.LeavePlanID != null)
                    {
                        ManageEmployeeLeave leaveplan = db.ManageEmployeeLeaves.Find(leaveapplication.LeavePlanID);
                        if (leaveplan.TotalLeaveAvailable == null)
                        {
                            leaveplan.TotalLeaveAvailable = leaveplan.LeaveLimit;
                        }
                        if (leaveplan.TotalLeaveTaken == null)
                        {
                            leaveplan.TotalLeaveTaken = 0;
                        }
                        leaveplan.TotalLeaveTaken     += leaveResumption.Duration;
                        leaveplan.TotalLeaveAvailable -= leaveResumption.Duration;
                    }
                    if (leaveapplication.TotalLeaveAvailable == null)
                    {
                        leaveapplication.TotalLeaveAvailable = leaveapplication.LeaveLimit;
                    }
                    if (leaveapplication.TotalLeaveTaken == null)
                    {
                        leaveapplication.TotalLeaveTaken = 0;
                    }
                    leaveapplication.TotalLeaveAvailable -= leaveResumption.Duration;
                    leaveapplication.TotalLeaveTaken     += leaveResumption.Duration;

                    string       FilePath = Server.MapPath("~/Assets/EmailTemplate/LeaveApproved.cshtml");
                    StreamReader str      = new StreamReader(FilePath);
                    string       MailText = str.ReadToEnd();
                    str.Close();

                    MailText      = MailText.Replace("[Date]", DateTime.Now.ToShortDateString());
                    MailText      = MailText.Replace("[StartDate]", leaveResumption.StartDate.ToShortDateString());
                    MailText      = MailText.Replace("[ResumptionDate]", leaveResumption.ResumptionDate.ToShortDateString());
                    MailText      = MailText.Replace("[Name]", employee.FullName);
                    MailText      = MailText.Replace("[HRName]", "Bolaji Fashola");
                    _emailhandler = new LeaveApplicationAcceptedEmail(MailText);
                    _emailhandler.SendEmail("*****@*****.**", "");
                }
                db.Entry(leaveResumption).State = EntityState.Modified;
                await db.SaveChangesAsync();

                //await Task.Delay(50);
                return(RedirectToAction("Index"));
            }
            return(View(leaveResumption));
        }
Exemple #7
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ManageEmployeeLeave manageEmployeeLeave = db.ManageEmployeeLeaves.Find(id);

            if (manageEmployeeLeave == null)
            {
                return(HttpNotFound());
            }
            return(View(manageEmployeeLeave));
        }
Exemple #8
0
        public ActionResult Create([Bind(Include = "ID,EmployeeId,EmployeeName,StartDate,EndDate,Duration,ApplyDate,Status,LeaveType,LeaveLimit,LeaveType_Limit_ID")] ManageEmployeeLeave manageEmployeeLeave)
        {
            if (ModelState.IsValid)
            {
                if (manageEmployeeLeave.LeaveLimit < manageEmployeeLeave.Duration)
                {
                    ViewBag.Error = "Your " + manageEmployeeLeave.LeaveType + " Leave Duration Cannot exceed leave limit of " + manageEmployeeLeave.LeaveLimit + " days !";
                    manageEmployeeLeave.EndDate = manageEmployeeLeave.StartDate.AddDays((double)manageEmployeeLeave.LeaveLimit - 1);
                    return(View(manageEmployeeLeave));
                }
                //LeaveType_Limit leavetypelimit = new LeaveType_Limit();
                //if (leavetypelimit.ID == 0)
                //{
                //    ModelState.AddModelError("", "Select Leave Type");
                //}
                //int selectvalue = leavetypelimit.ID;
                //ViewBag.SelectedValue = leavetypelimit.Limit;
                //List<LeaveType_Limit> leavetypelist = new List<LeaveType_Limit>();
                //leavetypelist = (from c in db.LeaveType_Limits select c).ToList();
                //leavetypelist.Insert(0, new LeaveType_Limit { ID = 0, LeaveType = "Select" });

                SetEmployeeSessionID();
                var id          = Session["employeeid"];
                var empdetails  = db.Employees.Select(c => c.EmployeeNumber).FirstOrDefault();
                var empname     = db.Employees.Select(c => c.FirstName).FirstOrDefault();
                var emplastname = db.Employees.Select(c => c.LastName).FirstOrDefault();
                var empfullname = empname + " " + emplastname;
                manageEmployeeLeave.EmployeeId   = empdetails.ToString();
                manageEmployeeLeave.EmployeeName = empfullname.ToString();
                var diff1 = (manageEmployeeLeave.EndDate - manageEmployeeLeave.StartDate).Days;
                manageEmployeeLeave.Duration  = diff1;
                manageEmployeeLeave.ApplyDate = DateTime.Now;
                //var status = (int)ManageEmployeeLeave.LeaveStatus.Pending;
                //manageEmployeeLeave.LeaveType = ViewBag.SelectedValue;

                manageEmployeeLeave.Status = ManageEmployeeLeave.LeaveStatus.Pending;
                //manageEmployeeLeave.LeaveType = db.LeaveType_Limits.Distinct().Select(c => new SelectListItem() { Text = c.LeaveType, Value = c.ID.ToString()}).ToString();
                db.ManageEmployeeLeaves.Add(manageEmployeeLeave);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(manageEmployeeLeave));
        }