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; }
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); }
public ActionResult Create([Bind(Include = "LvID,LvDate,LeaveTypeID,EmpID,FromDate,ToDate,NoOfDays,IsHalf,FirstHalf,HalfAbsent,LvReason,LvAddress,CreatedBy,ApprovedBy,Status")] LvApplication lvapplication) { User LoggedInUser = Session["LoggedUser"] as User; if (lvapplication.FromDate.Date > lvapplication.ToDate.Date) { ModelState.AddModelError("FromDate", "From Date should be smaller than To Date"); } string _EmpNo = Request.Form["EmpNo"].ToString(); List <Emp> _emp = db.Emps.Where(aa => aa.EmpNo == _EmpNo).ToList(); if (_emp.Count == 0) { ModelState.AddModelError("EmpNo", "Emp No not exist"); } else { lvapplication.EmpID = _emp.FirstOrDefault().EmpID; } if (ModelState.IsValid) { LvType lvType = db.LvTypes.First(aa => aa.LvTypeID == lvapplication.LeaveTypeID); LeaveController LvProcessController = new LeaveController(); if (LvProcessController.CheckDuplicateLeave(lvapplication)) { // max days float noofDays = LvProcessController.CalculateNoOfDays(lvapplication, lvType); lvapplication.NoOfDays = noofDays; int _UserID = Convert.ToInt32(Session["LogedUserID"].ToString()); lvapplication.CreatedBy = _UserID; if (lvType.UpdateBalance == true) { if (LvProcessController.HasLeaveQuota(lvapplication.EmpID, lvapplication.LeaveTypeID, lvType)) { if (LvProcessController.CheckLeaveBalance(lvapplication, lvType)) { if (LvProcessController.CheckForMaxMonthDays(lvapplication, lvType)) { if (lvType.MaxDaysConsective == 0) { CreateLeave(lvapplication, lvType); return(RedirectToAction("Index")); } if (noofDays <= lvType.MaxDaysConsective) { CreateLeave(lvapplication, lvType); return(RedirectToAction("Index")); } else { ModelState.AddModelError("FromDate", "Leave Consective days exceeds"); } } else { ModelState.AddModelError("FromDate", "Leave Monthly Quota Exceeds"); } } else { ModelState.AddModelError("FromDate", "Leave Balance Exceeds, Please check the balance"); } } else { ModelState.AddModelError("FromDate", "Leave Quota does not exist"); } } else { CreateLeave(lvapplication, lvType); return(RedirectToAction("Index")); } } else { ModelState.AddModelError("FromDate", "This Employee already has leave of this date "); } } ViewBag.EmpID = new SelectList(db.Emps.OrderBy(s => s.EmpName), "EmpID", "EmpNo", lvapplication.EmpID); ViewBag.LeaveTypeID = new SelectList(db.LvTypes.Where(aa => aa.Enable == true).OrderBy(s => s.LvTypeID), "LvTypeID", "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); } }