Esempio n. 1
0
        public ActionResult LeaveRequest(RequestVM model)
        {
            IEmployeeRepository        obj  = new EmployeeRepository();
            IStructuredetailRepository repo = new StructuredetailRepository();
            var empid            = Session["EmployeeId"].ToString();
            var posid            = Session["Position"].ToString();
            var role             = Session["RoleName"].ToString();
            var Duplicatereq     = repo.GetReq().Where(a => a.EmployeeId == Convert.ToInt32(empid)).Where(x => x.RequestType == "Leave" && x.IsSeen == false).FirstOrDefault();
            var CasualLeavesLeft = obj.GetEmpLeaves().Where(x => x.EmployeeId == Convert.ToInt32(empid) && x.CasualLeave == 0).FirstOrDefault();
            var SickLeavesLeft   = obj.GetEmpLeaves().Where(x => x.EmployeeId == Convert.ToInt32(empid) && x.SickLeave == 0).FirstOrDefault();

            if (model.ToDate < model.FromDate)
            {
                TempData["SuccessMessage101"] = "From Date Should not be greater or equal than To Date";

                var leavelist = new SelectList(new[]
                {
                    new { ID = "1", Name = "Casual Leave" },
                    new { ID = "2", Name = "Sick Leave" }
                },
                                               "Name", "Name", "1"
                                               );
                ViewBag.getleavelist = leavelist;
            }
            else
            {
                if (Duplicatereq != null)
                {
                    TempData["SuccessMessage101"] = "You have already Submitted Leave Request";
                    var leavelist = new SelectList(new[]
                    {
                        new { ID = "1", Name = "Casual Leave" },
                        new { ID = "2", Name = "Sick Leave" }
                    },
                                                   "Name", "Name", "1"
                                                   );
                    ViewBag.getleavelist = leavelist;
                }
                else
                {
                    if (CasualLeavesLeft == null && model.Leavetype == "Casual Leave")
                    {
                        obj.updatecasualleaveleft(Convert.ToInt32(empid));
                        obj.Save();

                        var leavelist = new SelectList(new[]
                        {
                            new { ID = "1", Name = "Casual Leave" },
                            new { ID = "2", Name = "Sick Leave" }
                        },
                                                       "Name", "Name", "1"
                                                       );
                        ViewBag.getleavelist = leavelist;

                        if (role == "Hr Manager")
                        {
                            var add = obj.AddReqlforhr(Convert.ToInt32(empid), Convert.ToInt32(posid), model.FromDate, model.ToDate, model.ReasonofRequest, "Casual Leave");
                            obj.AddLeaveReq(add);
                            obj.Save();
                            TempData["SuccessMessage102"] = "Success";
                        }
                        else
                        {
                            var add = obj.AddReql(Convert.ToInt32(empid), Convert.ToInt32(posid), model.FromDate, model.ToDate, model.ReasonofRequest, "Casual Leave");
                            obj.AddLeaveReq(add);
                            obj.Save();
                            TempData["SuccessMessage102"] = "Success";
                        }
                    }
                    else if (model.Leavetype == "Casual Leave")
                    {
                        TempData["SuccessMessage101"] = "You do not have Casual Leave Left";
                        var leavelist = new SelectList(new[]
                        {
                            new { ID = "1", Name = "Casual Leave" },
                            new { ID = "2", Name = "Sick Leave" }
                        },
                                                       "Name", "Name", "1"
                                                       );
                        ViewBag.getleavelist = leavelist;
                    }
                    if (SickLeavesLeft == null && model.Leavetype == "Sick Leave")
                    {
                        obj.updatesickleaveleft(Convert.ToInt32(empid));
                        obj.Save();
                        var add = obj.AddReqlforhr(Convert.ToInt32(empid), Convert.ToInt32(posid), model.FromDate, model.ToDate, model.ReasonofRequest, "Sick Leave");
                        obj.AddLeaveReq(add);
                        obj.Save();

                        var leavelist = new SelectList(new[]
                        {
                            new { ID = "1", Name = "Casual Leave" },
                            new { ID = "2", Name = "Sick Leave" }
                        },
                                                       "Name", "Name", "1"
                                                       );
                        ViewBag.getleavelist          = leavelist;
                        TempData["SuccessMessage102"] = "Success";
                    }
                    else if (model.Leavetype == "Sick Leave")
                    {
                        TempData["SuccessMessage101"] = "You do not have Sick Leave Left";
                        var leavelist = new SelectList(new[]
                        {
                            new { ID = "1", Name = "Casual Leave" },
                            new { ID = "2", Name = "Sick Leave" }
                        },
                                                       "Name", "Name", "1"
                                                       );
                        ViewBag.getleavelist = leavelist;
                    }
                }
            }


            return(View());
        }