public void CreateLeave(LvApplication lvapplication, LvType lvType)
        {
            LeaveController LvProcessController = new LeaveController();

            lvapplication.LvDate = DateTime.Today;
            int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());

            lvapplication.CreatedBy = _userID;
            lvapplication.Active    = true;
            db.LvApplications.Add(lvapplication);
            if (db.SaveChanges() > 0)
            {
                HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                LvProcessController.AddLeaveToLeaveData(lvapplication, lvType);
                LvProcessController.AddLeaveToLeaveAttData(lvapplication, lvType);
            }
            else
            {
                ModelState.AddModelError("LvType", "There is an error while creating leave.");
            }
        }
Beispiel #2
0
        private void CreateLeave(LvApplication lv, LvType lvTypes)
        {
            LeaveController LvProcessController = new LeaveController();

            lv.LvDate = DateTime.Today;
            int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());

            lv.CreatedBy = _userID;
            lv.Active    = true;
            db.LvApplications.Add(lv);
            if (db.SaveChanges() > 0)
            {
                HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                LvProcessController.AddLeaveToLeaveData(lv, lvTypes);
                LvProcessController.AddLeaveToLeaveAttData(lv, lvTypes);
            }
            else
            {
                ViewBag.validtonmessage = "There is an error while creating leave.";
            }
        }
        private int AddCausalLeave(LvShort lvshort)
        {
            //find that bastard through the causal leave field in EmpLvType
            string EmpLvType= lvshort.EmpID+"A";
            //if there is some freak accident and now he has two or more records
            //cater for that by going through a list
            List<LvConsumed> consumed = db.LvConsumeds.Where(aa => aa.EmpLvType == EmpLvType).ToList();
            if (consumed.Count() > 0)
            {
                foreach (LvConsumed consume in consumed)
                {
                    consume.GrandTotalRemaining = consume.GrandTotalRemaining - 1;
                    consume.YearRemaining = consume.YearRemaining - 1;
                    LvConsumed refresh = new LvConsumed();
                    refresh = CheckMonthAndAddOneLeave(consume);
                    if (db.LvApplications.Where(aa => aa.LvDate == lvshort.DutyDate && aa.EmpID == lvshort.EmpID && aa.LvType == "A").Count() > 0)
                    {
                        return 1;

                    }
                    else
                    {
                        LvApplication lvapplication = new LvApplication();
                        lvapplication.EmpID = (int)lvshort.EmpID;
                        lvapplication.LvDate = (DateTime)lvshort.DutyDate;
                        lvapplication.LvType = "A";
                        lvapplication.FromDate = (DateTime)lvshort.DutyDate;
                        lvapplication.ToDate = (DateTime)lvshort.DutyDate;
                        lvapplication.NoOfDays = 1;
                        lvapplication.IsHalf = false;
                        lvapplication.HalfAbsent = false;
                        lvapplication.LvReason = lvshort.Remarks;
                        lvapplication.CreatedBy = lvshort.CreatedBy;
                        lvapplication.LvStatus = "P";
                        lvapplication.CompanyID = lvshort.CompanyID;
                        lvapplication.Active = true;
                        LeaveController LvProcessController = new LeaveController();
                        if (LvProcessController.HasLeaveQuota(lvapplication.EmpID, lvapplication.LvType))
                        {
                            if (lvapplication.IsHalf != true)
                            {

                                if (LvProcessController.CheckDuplicateLeave(lvapplication))
                                {
                                    //Check leave Balance
                                    if (LvProcessController.CheckLeaveBalance(lvapplication))
                                    {
                                        lvapplication.LvDate = DateTime.Today;
                                        int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
                                        lvapplication.CreatedBy = _userID;
                                db.LvApplications.Add(lvapplication);
                                        if (db.SaveChanges() > 0)
                                        {
                                            HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                                            LvProcessController.AddLeaveToLeaveData(lvapplication);
                                            LvProcessController.AddLeaveToLeaveAttData(lvapplication);
                                             return 2;
                                        }
                                        else
                                        {
                                            ModelState.AddModelError("Remarks", "There is an error while creating leave.");
                                        }

                                    }
                                    else
                                        ModelState.AddModelError("Remarks", "Leave Balance Exceeds, Please check the balance");
                                }
                                else
                                    ModelState.AddModelError("Remarks", "This Employee already has leave of this date ");
                            }
                      }
                        else
                            ModelState.AddModelError("Remarks", "Leave Quota does not exist");

                    }

                }
                return 2;
            }
            else
                return 3;
        }
Beispiel #4
0
        public ActionResult Create([Bind(Include = "LvID,LvDate,LvType,EmpID,FromDate,ToDate,NoOfDays,IsHalf,FirstHalf,HalfAbsent,LvReason,LvAddress,CreatedBy,ApprovedBy,Status")] LvApplication lvapplication)
        {
            string Firstdate  = Request.Form["FromDate"].ToString();
            string Seconddate = Request.Form["ToDate"].ToString();

            lvapplication.NoOfDays = (float)((lvapplication.ToDate - lvapplication.FromDate).TotalDays) + 1;
            #region
            if (lvapplication.NoOfDays > 100)
            {
                ModelState.AddModelError("LvType", "Date criteria is too much long kindly give correct date ");
            }
            User LoggedInUser = Session["LoggedUser"] as User;
            if (lvapplication.FromDate.Date > lvapplication.ToDate.Date)
            {
                ModelState.AddModelError("FromDate", "From Date should be smaller than To Date");
            }
            Int16      CompID = Convert.ToInt16(Request.Form["CompanyID"]);
            string     _EmpNo = Request.Form["EmpNo"].ToString();
            List <Emp> _emp   = db.Emps.Where(aa => aa.EmpNo == _EmpNo && aa.CompanyID == CompID && aa.Status == true).ToList();
            if (_emp.Count == 0)
            {
                ModelState.AddModelError("EmpNo", "Emp No not exist");
            }
            else
            {
                lvapplication.EmpID = _emp.FirstOrDefault().EmpID;
            }
            if (ModelState.IsValid)
            {
                LeaveController LvProcessController = new LeaveController();
                if (LvProcessController.HasLeaveQuota(lvapplication.EmpID, lvapplication.LvType, lvapplication.FromDate))
                {
                    if (lvapplication.IsHalf != true)
                    {
                        lvapplication.NoOfDays = (float)((lvapplication.ToDate - lvapplication.FromDate).TotalDays) + 1;
                        lvapplication.Active   = true;
                        if (LvProcessController.CheckDuplicateLeave(lvapplication))
                        {
                            //Check leave Balance
                            if (LvProcessController.CheckLeaveBalance(lvapplication))
                            {
                                lvapplication.LvDate = DateTime.Today;
                                int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
                                lvapplication.CreatedBy = _userID;
                                lvapplication.CompanyID = _emp.FirstOrDefault().CompanyID;
                                lvapplication.Active    = true;
                                db.LvApplications.Add(lvapplication);
                                if (db.SaveChanges() > 0)
                                {
                                    HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                                    LvProcessController.AddLeaveToLeaveData(lvapplication);
                                    LvProcessController.AddLeaveToLeaveAttData(lvapplication);
                                    ViewBag.EmpID  = new SelectList(db.Emps.OrderBy(s => s.EmpName), "EmpID", "EmpNo");
                                    ViewBag.LvType = new SelectList(db.LvTypes.Where(aa => aa.Enable == true).OrderBy(s => s.LvType1).ToList(), "LvType1", "LvDesc");
                                    // Make Request of Monthly Attendance of current employee
                                    //ManualMonthlyRequest mpr = new ManualMonthlyRequest();
                                    //mpr.SaveManualRequest((int)lvapplication.EmpID, new DateTime(lvapplication.FromDate.Year, lvapplication.ToDate.Month, 1), new DateTime(lvapplication.FromDate.Year, lvapplication.ToDate.Month, 30));

                                    return(RedirectToAction("Create"));
                                }
                                else
                                {
                                    ModelState.AddModelError("LvType", "There is an error while creating leave.");
                                }
                            }
                            else
                            {
                                ModelState.AddModelError("LvType", "Leave Balance Exceeds, Please check the balance");
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("FromDate", "This Employee already has leave of this date ");
                        }
                    }
                    else
                    {
                        lvapplication.NoOfDays = (float)0.5;
                        if (lvapplication.FromDate.Date == lvapplication.ToDate.Date)
                        {
                            if (LvProcessController.CheckDuplicateLeave(lvapplication))
                            {
                                if (LvProcessController.CheckHalfLeaveBalance(lvapplication))
                                {
                                    lvapplication.LvDate = DateTime.Today;
                                    int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
                                    lvapplication.CreatedBy = _userID;
                                    lvapplication.CompanyID = _emp.FirstOrDefault().CompanyID;
                                    lvapplication.Active    = true;
                                    db.LvApplications.Add(lvapplication);
                                    if (db.SaveChanges() > 0)
                                    {
                                        HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                                        LvProcessController.AddHalfLeaveToLeaveData(lvapplication);
                                        LvProcessController.AddHalfLeaveToAttData(lvapplication);
                                        ViewBag.EmpID  = new SelectList(db.Emps.OrderBy(s => s.EmpName), "EmpID", "EmpNo");
                                        ViewBag.LvType = new SelectList(db.LvTypes.Where(aa => aa.Enable == true).OrderBy(s => s.LvType1).ToList(), "LvType1", "LvDesc");
                                        return(RedirectToAction("Create"));
                                    }
                                }
                                else
                                {
                                    ModelState.AddModelError("LvType", "Leave Balance Exceeds, Please check the balance");
                                }
                            }
                            else
                            {
                                ModelState.AddModelError("FromDate", "This Employee already has leave of this date ");
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("FromDate", "Half Leave should be entered of same date");
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("LvType", "Leave Quota does not exist");
                }
            }
            else
            {
                ModelState.AddModelError("LvType", "Leave is not created. Please contact with network administrator");
            }
            ViewBag.CompanyID = new SelectList(db.Companies.OrderBy(s => s.CompName), "CompID", "CompName");
            ViewBag.EmpID     = new SelectList(db.Emps.OrderBy(s => s.EmpName), "EmpID", "EmpNo", lvapplication.EmpID);
            ViewBag.LvType    = new SelectList(db.LvTypes.Where(aa => aa.Enable == true).OrderBy(s => s.LvType1), "LvType1", "LvDesc", lvapplication.LvType);
            return(View(lvapplication));

            #endregion
        }
        public ActionResult Create([Bind(Include = "LvID,LvDate,LvType,EmpID,FromDate,ToDate,NoOfDays,IsHalf,FirstHalf,HalfAbsent,LvReason,LvAddress,CreatedBy,ApprovedBy,Status")] LvApplication lvapplication)
        {
            string Message = "";
            User LoggedInUser = Session["LoggedUser"] as User;
            if (lvapplication.FromDate.Date > lvapplication.ToDate.Date)
                ModelState.AddModelError("FromDate", "From Date should be smaller than To Date");
            Int16 CompID = Convert.ToInt16(Request.Form["CompanyID"]);
            string _EmpNo = Request.Form["EmpNo"].ToString();
            List<Emp> _emp = db.Emps.Where(aa => aa.EmpNo == _EmpNo && aa.CompanyID == CompID).ToList();
            if (_emp.Count == 0 )
            {
                ModelState.AddModelError("EmpNo", "Emp No not exist");
            }
            else
            {
                lvapplication.EmpID = _emp.FirstOrDefault().EmpID;
            }
            if (ModelState.IsValid)
            {
                LeaveController LvProcessController = new LeaveController();
                if (LvProcessController.HasLeaveQuota(lvapplication.EmpID,lvapplication.LvType))
                {
                    if (lvapplication.IsHalf != true)
                    {
                        lvapplication.NoOfDays = (float)((lvapplication.ToDate - lvapplication.FromDate).TotalDays) + 1;
                        lvapplication.Active = true;
                        if (LvProcessController.CheckDuplicateLeave(lvapplication))
                        {
                            //Check leave Balance
                            if (LvProcessController.CheckLeaveBalance(lvapplication))
                            {
                                lvapplication.LvDate = DateTime.Today;
                                int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
                                lvapplication.CreatedBy = _userID;
                                lvapplication.CompanyID = _emp.FirstOrDefault().CompanyID;
                                lvapplication.Active = true;
                                db.LvApplications.Add(lvapplication);
                                if (db.SaveChanges() > 0)
                                {
                                    HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                                    LvProcessController.AddLeaveToLeaveData(lvapplication);
                                    LvProcessController.AddLeaveToLeaveAttData(lvapplication);
                                    ViewBag.EmpID = new SelectList(db.Emps, "EmpID", "EmpNo");
                                    ViewBag.LvType = new SelectList(db.LvTypes.Where(aa => aa.Enable == true).ToList(), "LvType1", "LvDesc");
                                    Message = "Leave Created Sucessfully";
                                    ViewBag.CMessage = "Leave Created Sucessfully eeeeeeeeeeeeeeeee";

                                    ViewBag.CMessage = Message;
                                    return RedirectToAction("Create");
                                }
                                else
                                {
                                    ModelState.AddModelError("LvType", "There is an error while creating leave.");
                                }

                            }
                            else
                                ModelState.AddModelError("LvType", "Leave Balance Exceeds, Please check the balance");
                        }
                        else
                            ModelState.AddModelError("FromDate", "This Employee already has leave of this date ");
                    }
                    else
                    {
                        lvapplication.NoOfDays = (float)0.5;
                        if (lvapplication.FromDate.Date == lvapplication.ToDate.Date)
                        {
                            if (LvProcessController.CheckDuplicateLeave(lvapplication))
                            {
                                if (LvProcessController.CheckHalfLeaveBalance(lvapplication))
                                {
                                    lvapplication.LvDate = DateTime.Today;
                                    int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
                                    lvapplication.CreatedBy = _userID;
                                    lvapplication.CompanyID = _emp.FirstOrDefault().CompanyID;
                                    lvapplication.Active = true;
                                    db.LvApplications.Add(lvapplication);
                                    if (db.SaveChanges() > 0)
                                    {
                                        HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                                        LvProcessController.AddHalfLeaveToLeaveData(lvapplication);
                                        LvProcessController.AddHalfLeaveToAttData(lvapplication);
                                        ViewBag.EmpID = new SelectList(db.Emps, "EmpID", "EmpNo");
                                        ViewBag.LvType = new SelectList(db.LvTypes.Where(aa => aa.Enable == true).ToList(), "LvType1", "LvDesc");
                                        return RedirectToAction("Create");
                                    }
                                }
                                else
                                    ModelState.AddModelError("LvType", "Leave Balance Exceeds, Please check the balance");
                            }
                            else
                                ModelState.AddModelError("FromDate", "This Employee already has leave of this date ");
                        }
                        else
                            ModelState.AddModelError("FromDate", "Half Leave should be entered of same date");
                    }
                }
                else
                    ModelState.AddModelError("LvType", "Leave Quota does not exist");
            }
            else
                ModelState.AddModelError("LvType", "Leave is not created. Please contact with network administrator");
            ViewBag.CompanyID = new SelectList(db.Companies, "CompID", "CompName");
            ViewBag.EmpID = new SelectList(db.Emps, "EmpID", "EmpNo", lvapplication.EmpID);
            ViewBag.LvType = new SelectList(db.LvTypes.Where(aa=>aa.Enable==true), "LvType1", "LvDesc", lvapplication.LvType);
            return View(lvapplication);
        }
        private int AddCausalLeave(LvShort lvshort)
        {
            //find that bastard through the causal leave field in EmpLvType
            string EmpLvType = lvshort.EmpID + "A";
            //if there is some freak accident and now he has two or more records
            //cater for that by going through a list
            List <LvConsumed> consumed = db.LvConsumeds.Where(aa => aa.EmpLvType == EmpLvType).ToList();

            if (consumed.Count() > 0)
            {
                foreach (LvConsumed consume in consumed)
                {
                    consume.GrandTotalRemaining = consume.GrandTotalRemaining - 1;
                    consume.YearRemaining       = consume.YearRemaining - 1;
                    LvConsumed refresh = new LvConsumed();
                    refresh = CheckMonthAndAddOneLeave(consume);
                    if (db.LvApplications.Where(aa => aa.LvDate == lvshort.DutyDate && aa.EmpID == lvshort.EmpID && aa.LvType == "A").Count() > 0)
                    {
                        return(1);
                    }
                    else
                    {
                        LvApplication lvapplication = new LvApplication();
                        lvapplication.EmpID      = (int)lvshort.EmpID;
                        lvapplication.LvDate     = (DateTime)lvshort.DutyDate;
                        lvapplication.LvType     = "A";
                        lvapplication.FromDate   = (DateTime)lvshort.DutyDate;
                        lvapplication.ToDate     = (DateTime)lvshort.DutyDate;
                        lvapplication.NoOfDays   = 1;
                        lvapplication.IsHalf     = false;
                        lvapplication.HalfAbsent = false;
                        lvapplication.LvReason   = lvshort.Remarks;
                        lvapplication.CreatedBy  = lvshort.CreatedBy;
                        lvapplication.LvStatus   = "P";
                        lvapplication.CompanyID  = lvshort.CompanyID;
                        lvapplication.Active     = true;
                        LeaveController LvProcessController = new LeaveController();
                        if (LvProcessController.HasLeaveQuota(lvapplication.EmpID, lvapplication.LvType))
                        {
                            if (lvapplication.IsHalf != true)
                            {
                                if (LvProcessController.CheckDuplicateLeave(lvapplication))
                                {
                                    //Check leave Balance
                                    if (LvProcessController.CheckLeaveBalance(lvapplication))
                                    {
                                        lvapplication.LvDate = DateTime.Today;
                                        int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
                                        lvapplication.CreatedBy = _userID;
                                        db.LvApplications.Add(lvapplication);
                                        if (db.SaveChanges() > 0)
                                        {
                                            HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Add, DateTime.Now);
                                            LvProcessController.AddLeaveToLeaveData(lvapplication);
                                            LvProcessController.AddLeaveToLeaveAttData(lvapplication);
                                            return(2);
                                        }
                                        else
                                        {
                                            ModelState.AddModelError("Remarks", "There is an error while creating leave.");
                                        }
                                    }
                                    else
                                    {
                                        ModelState.AddModelError("Remarks", "Leave Balance Exceeds, Please check the balance");
                                    }
                                }
                                else
                                {
                                    ModelState.AddModelError("Remarks", "This Employee already has leave of this date ");
                                }
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("Remarks", "Leave Quota does not exist");
                        }
                    }
                }
                return(2);
            }
            else
            {
                return(3);
            }
        }