public ActionResult DeleteConfirmed(int?id) { LeaveController LvProcessController = new LeaveController(); LvApplication lvapplication = db.LvApplications.Find(id); if (lvapplication.IsHalf == false) { LvProcessController.DeleteFromLVData(lvapplication); LvProcessController.DeleteLeaveFromAttData(lvapplication); LvProcessController.UpdateLeaveBalance(lvapplication); //lvapplication.Active = false; db.LvApplications.Remove(lvapplication); } else { LvProcessController.DeleteHLFromLVData(lvapplication); LvProcessController.DeleteHLFromAttData(lvapplication); LvProcessController.UpdateHLeaveBalance(lvapplication); db.LvApplications.Remove(lvapplication); } db.SaveChanges(); //UpdateLeaveBalance(lvapplication); //db.LvApplications.Remove(lvapplication); //db.SaveChanges(); int _userID = Convert.ToInt32(Session["LogedUserID"].ToString()); HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Delete, DateTime.Now); return(RedirectToAction("Index")); }
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."; } }
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."); } }
public ActionResult Create([Bind(Include = "SlID,EmpID,DutyDate,EmpDate,SHour,EHour,THour,Remarks,CreatedBy,ApprovedBy,Status")] LvShort lvshort,string SHour,string EHour) { string STimeIn = SHour; string STimeOut = EHour; string STimeInH = STimeIn.Substring(0, 2); string STimeInM = STimeIn.Substring(2, 2); string STimeOutH = STimeOut.Substring(0, 2); string STimeOutM = STimeOut.Substring(2, 2); lvshort.SHour = new TimeSpan(Convert.ToInt16(STimeInH), Convert.ToInt16(STimeInM), 0); lvshort.EHour = new TimeSpan(Convert.ToInt16(STimeOutH), Convert.ToInt16(STimeOutM), 0); if (lvshort.EHour < lvshort.SHour) { ModelState.AddModelError("EHour", "End hour required"); } if (Request.Form["EmpNo"].ToString() == "") { ModelState.AddModelError("EmpNo", "Emplyee No is required!"); } else { 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 { lvshort.EmpID = _emp.FirstOrDefault().EmpID; lvshort.EmpDate = _emp.FirstOrDefault().EmpID.ToString() + lvshort.DutyDate.Value.ToString("yyMMdd"); lvshort.CreatedDate = DateTime.Today; lvshort.THour = lvshort.EHour - lvshort.SHour; } } if (lvshort.DutyDate == null) { ModelState.AddModelError("DutyDate", "DutyDate is required!"); } if (lvshort.SHour == null) { ModelState.AddModelError("SHour", "Start Time is required!"); } if (lvshort.EHour == null) { ModelState.AddModelError("EHour", "Ending Time is required!"); } if (ModelState.IsValid) { LeaveController LvProcessController = new LeaveController(); int _userID = Convert.ToInt32(Session["LogedUserID"].ToString()); User LoggedInUser = Session["LoggedUser"] as User; lvshort.CreatedBy = _userID; lvshort.CompanyID = LoggedInUser.CompanyID; lvshort.Status = true; //The below LvShort checks if there is an already existing Lvshort for //this date. If there is an existing LvShort remove it from the database //, check if he has balance for causal leave and then add a causal leave // if (db.Options.FirstOrDefault().TwoShortLToOneCausal == true) { if (db.LvShorts.Where(aa => aa.EmpDate == lvshort.EmpDate).Count() > 0) { if (CheckForLQuota(lvshort) == true) { ShortLRemove(lvshort.EmpDate); switch (AddCausalLeave(lvshort)) { case 1: ModelState.AddModelError("Remarks", "Causal Leave Already exists"); break; case 2: db.SaveChanges(); break; case 3: ModelState.AddModelError("Remarks", "No Quota Defined for this Employee"); break; } return RedirectToAction("Index"); } else { ModelState.AddModelError("Remarks", "No Quota Defined for this Employee"); return View(lvshort); } } } //Check If its already made TimeSpan ehour = new TimeSpan(Convert.ToInt32(STimeOutH), Convert.ToInt32(STimeOutM), 0); TimeSpan shour = new TimeSpan(Convert.ToInt32(STimeInH), Convert.ToInt32(STimeInM), 0); if (db.LvShorts.Where(aa => aa.EmpDate == lvshort.EmpDate && (aa.SHour == shour || aa.EHour == ehour)).Count() > 0) ModelState.AddModelError("Remarks", "Short Leave Already Exists for this time duration"); else { db.LvShorts.Add(lvshort); db.SaveChanges(); LvProcessController.AddShortLeaveToAttData(lvshort); HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.ShortLeave, (byte)MyEnums.Operation.Add, DateTime.Now); return RedirectToAction("Index"); } } return View(lvshort); }
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,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)); }
public ActionResult Create([Bind(Include = "SlID,EmpID,DutyDate,EmpDate,SHour,EHour,THour,Remarks,CreatedBy,ApprovedBy,Status")] LvShort lvshort, string SHour, string EHour) { string STimeIn = SHour; string STimeOut = EHour; string STimeInH = STimeIn.Substring(0, 2); string STimeInM = STimeIn.Substring(2, 2); string STimeOutH = STimeOut.Substring(0, 2); string STimeOutM = STimeOut.Substring(2, 2); lvshort.SHour = new TimeSpan(Convert.ToInt16(STimeInH), Convert.ToInt16(STimeInM), 0); lvshort.EHour = new TimeSpan(Convert.ToInt16(STimeOutH), Convert.ToInt16(STimeOutM), 0); if (lvshort.EHour < lvshort.SHour) { ModelState.AddModelError("EHour", "End hour required"); } if (Request.Form["EmpNo"].ToString() == "") { ModelState.AddModelError("EmpNo", "Emplyee No is required!"); } else { string _EmpNo = Request.Form["EmpNo"].ToString(); List <Emp> _emp = db.Emps.Where(aa => aa.EmpNo == _EmpNo).OrderBy(s => s.EmpNo).ToList(); if (_emp.Count == 0) { ModelState.AddModelError("EmpNo", "Emp No not exist"); } else { lvshort.EmpID = _emp.FirstOrDefault().EmpID; lvshort.EmpDate = _emp.FirstOrDefault().EmpID.ToString() + lvshort.DutyDate.Value.ToString("yyMMdd"); lvshort.CreatedDate = DateTime.Today; lvshort.THour = lvshort.EHour - lvshort.SHour; } } if (lvshort.DutyDate == null) { ModelState.AddModelError("DutyDate", "DutyDate is required!"); } if (lvshort.SHour == null) { ModelState.AddModelError("SHour", "Start Time is required!"); } if (lvshort.EHour == null) { ModelState.AddModelError("EHour", "Ending Time is required!"); } if (ModelState.IsValid) { LeaveController LvProcessController = new LeaveController(); int _userID = Convert.ToInt32(Session["LogedUserID"].ToString()); User LoggedInUser = Session["LoggedUser"] as User; lvshort.CreatedBy = _userID; lvshort.Status = true; db.LvShorts.Add(lvshort); db.SaveChanges(); LvProcessController.AddShortLeaveToAttData(lvshort); HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.ShortLeave, (byte)MyEnums.Operation.Add, DateTime.Now); return(RedirectToAction("Index")); } return(View(lvshort)); }
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 DeleteConfirmed(int id) { LeaveController LvProcessController = new LeaveController(); LvApplication lvapplication = db.LvApplications.Find(id); if (lvapplication.IsHalf == false || lvapplication.IsHalf == null) { LvProcessController.DeleteFromLVData(lvapplication); LvProcessController.DeleteLeaveFromAttData(lvapplication); LvProcessController.UpdateLeaveBalance(lvapplication); //lvapplication.Active = false; db.LvApplications.Remove(lvapplication); } else { LvProcessController.DeleteHLFromLVData(lvapplication); LvProcessController.DeleteHLFromAttData(lvapplication); LvProcessController.UpdateHLeaveBalance(lvapplication); db.LvApplications.Remove(lvapplication); } db.SaveChanges(); //UpdateLeaveBalance(lvapplication); //db.LvApplications.Remove(lvapplication); //db.SaveChanges(); int _userID = Convert.ToInt32(Session["LogedUserID"].ToString()); HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Leave, (byte)MyEnums.Operation.Delete, DateTime.Now); return RedirectToAction("Index"); }
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 = "SlID,EmpID,DutyDate,EmpDate,SHour,EHour,THour,Remarks,CreatedBy,ApprovedBy,Status")] LvShort lvshort, string SHour, string EHour) { string STimeIn = SHour; string STimeOut = EHour; string STimeInH = STimeIn.Substring(0, 2); string STimeInM = STimeIn.Substring(2, 2); string STimeOutH = STimeOut.Substring(0, 2); string STimeOutM = STimeOut.Substring(2, 2); lvshort.SHour = new TimeSpan(Convert.ToInt16(STimeInH), Convert.ToInt16(STimeInM), 0); lvshort.EHour = new TimeSpan(Convert.ToInt16(STimeOutH), Convert.ToInt16(STimeOutM), 0); if (lvshort.EHour < lvshort.SHour) { ModelState.AddModelError("EHour", "End hour required"); } if (Request.Form["EmpNo"].ToString() == "") { ModelState.AddModelError("EmpNo", "Emplyee No is required!"); } else { 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 { lvshort.EmpID = _emp.FirstOrDefault().EmpID; lvshort.EmpDate = _emp.FirstOrDefault().EmpID.ToString() + lvshort.DutyDate.Value.ToString("yyMMdd"); lvshort.CreatedDate = DateTime.Today; lvshort.THour = lvshort.EHour - lvshort.SHour; } } if (lvshort.DutyDate == null) { ModelState.AddModelError("DutyDate", "DutyDate is required!"); } if (lvshort.SHour == null) { ModelState.AddModelError("SHour", "Start Time is required!"); } if (lvshort.EHour == null) { ModelState.AddModelError("EHour", "Ending Time is required!"); } if (ModelState.IsValid) { LeaveController LvProcessController = new LeaveController(); int _userID = Convert.ToInt32(Session["LogedUserID"].ToString()); User LoggedInUser = Session["LoggedUser"] as User; lvshort.CreatedBy = _userID; lvshort.CompanyID = LoggedInUser.CompanyID; lvshort.Status = true; //The below LvShort checks if there is an already existing Lvshort for //this date. If there is an existing LvShort remove it from the database //, check if he has balance for causal leave and then add a causal leave // if (db.Options.FirstOrDefault().TwoShortLToOneCausal == true) { if (db.LvShorts.Where(aa => aa.EmpDate == lvshort.EmpDate).Count() > 0) { if (CheckForLQuota(lvshort) == true) { ShortLRemove(lvshort.EmpDate); switch (AddCausalLeave(lvshort)) { case 1: ModelState.AddModelError("Remarks", "Causal Leave Already exists"); break; case 2: db.SaveChanges(); break; case 3: ModelState.AddModelError("Remarks", "No Quota Defined for this Employee"); break; } return(RedirectToAction("Index")); } else { ModelState.AddModelError("Remarks", "No Quota Defined for this Employee"); return(View(lvshort)); } } } //Check If its already made TimeSpan ehour = new TimeSpan(Convert.ToInt32(STimeOutH), Convert.ToInt32(STimeOutM), 0); TimeSpan shour = new TimeSpan(Convert.ToInt32(STimeInH), Convert.ToInt32(STimeInM), 0); if (db.LvShorts.Where(aa => aa.EmpDate == lvshort.EmpDate && (aa.SHour == shour || aa.EHour == ehour)).Count() > 0) { ModelState.AddModelError("Remarks", "Short Leave Already Exists for this time duration"); } else { db.LvShorts.Add(lvshort); db.SaveChanges(); LvProcessController.AddShortLeaveToAttData(lvshort); HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.ShortLeave, (byte)MyEnums.Operation.Add, DateTime.Now); return(RedirectToAction("Index")); } } return(View(lvshort)); }
public ActionResult Create([Bind(Include = "SlID,EmpID,DutyDate,EmpDate,SHour,EHour,THour,Remarks,CreatedBy,ApprovedBy,Status")] LvShort lvshort,string SHour,string EHour) { string STimeIn = SHour; string STimeOut = EHour; string STimeInH = STimeIn.Substring(0, 2); string STimeInM = STimeIn.Substring(2, 2); string STimeOutH = STimeOut.Substring(0, 2); string STimeOutM = STimeOut.Substring(2, 2); lvshort.SHour = new TimeSpan(Convert.ToInt16(STimeInH), Convert.ToInt16(STimeInM), 0); lvshort.EHour = new TimeSpan(Convert.ToInt16(STimeOutH), Convert.ToInt16(STimeOutM), 0); if (lvshort.EHour < lvshort.SHour) { ModelState.AddModelError("EHour", "End hour required"); } if (Request.Form["EmpNo"].ToString() == "") { ModelState.AddModelError("EmpNo", "Emplyee No is required!"); } else { 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 { lvshort.EmpID = _emp.FirstOrDefault().EmpID; lvshort.EmpDate = _emp.FirstOrDefault().EmpID.ToString() + lvshort.DutyDate.Value.ToString("yyMMdd"); lvshort.CreatedDate = DateTime.Today; lvshort.THour = lvshort.EHour - lvshort.SHour; } } if (lvshort.DutyDate == null) { ModelState.AddModelError("DutyDate", "DutyDate is required!"); } if (lvshort.SHour == null) { ModelState.AddModelError("SHour", "Start Time is required!"); } if (lvshort.EHour == null) { ModelState.AddModelError("EHour", "Ending Time is required!"); } if (ModelState.IsValid) { LeaveController LvProcessController = new LeaveController(); int _userID = Convert.ToInt32(Session["LogedUserID"].ToString()); User LoggedInUser = Session["LoggedUser"] as User; lvshort.CreatedBy = _userID; lvshort.CompanyID = LoggedInUser.CompanyID; lvshort.Status = true; db.LvShorts.Add(lvshort); db.SaveChanges(); LvProcessController.AddShortLeaveToAttData(lvshort); HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.ShortLeave, (byte)MyEnums.Operation.Add, DateTime.Now); return RedirectToAction("Index"); } return View(lvshort); }