internal float CalculateNoOfDays(LvApplication lvapplication, LvType lvType) { TAS2013Entities db = new TAS2013Entities(); float val = 0; if (lvapplication.IsHalf == true) { val = (float)0.5; } else { if (lvType.CountRestDays != true) { Shift ss = db.Emps.Where(aa => aa.EmpID == lvapplication.EmpID).First().Shift; DateTime dts = lvapplication.FromDate; while (dts <= lvapplication.ToDate) { if (!CurrentDayNotRest(ss, dts)) { val = val + 1; } dts = dts.AddDays(1); } } } return(val); }
internal bool CheckForMaxMonthDays(LvApplication lvapplication, LvType lvType) { bool check = false; if (lvapplication.FromDate.Month == lvapplication.ToDate.Month) { DateTime dts = new DateTime(lvapplication.FromDate.Year, lvapplication.FromDate.Month, 1); DateTime dte = new DateTime(lvapplication.FromDate.Year, lvapplication.FromDate.Month, lvapplication.ToDate.Day); float TotalnumOfDayInMonth = 0; using (var ctx = new TAS2013Entities()) { List <LvApplication> lvapps = new List <LvApplication>(); lvapps = ctx.LvApplications.Where(aa => aa.FromDate >= dts && aa.ToDate <= dte && aa.EmpID == lvapplication.EmpID).ToList(); foreach (var lv in lvapps) { TotalnumOfDayInMonth = TotalnumOfDayInMonth + lv.NoOfDays; } } if (lvType.MaxDaysMonth == 0) { check = true; } else if (TotalnumOfDayInMonth <= lvType.MaxDaysMonth) { check = true; } } else { check = true; } return(check); }
public void BalanceLeaves(LvApplication lvappl, LvType LeaveType) { if (LeaveType.UpdateBalance == true) { using (var ctx = new TAS2013Entities()) { List <LvConsumed> _lvConsumed = new List <LvConsumed>(); string empLvType = lvappl.EmpID.ToString() + lvappl.LeaveTypeID + lvappl.FromDate.Year.ToString("0000"); _lvConsumed = ctx.LvConsumeds.Where(aa => aa.EmpLvTypeYear == empLvType).ToList(); float _NoOfDays = lvappl.NoOfDays; if (_lvConsumed.Count > 0) { _lvConsumed.FirstOrDefault().YearRemaining = (float)(_lvConsumed.FirstOrDefault().YearRemaining - _NoOfDays); _lvConsumed.FirstOrDefault().GrandTotalRemaining = (float)(_lvConsumed.FirstOrDefault().GrandTotalRemaining - _NoOfDays); if (lvappl.IsHalf == true) { AddHalfLeaveBalancceMonthQuota(_lvConsumed, lvappl); } else { AddBalancceMonthQuota(_lvConsumed, lvappl); } ctx.SaveChanges(); } ctx.Dispose(); } } }
public bool AddLeaveToLeaveData(LvApplication lvappl, LvType lvType) { DateTime datetime = new DateTime(); datetime = lvappl.FromDate; for (int i = 0; i < lvappl.NoOfDays; i++) { string _EmpDate = lvappl.EmpID + datetime.Date.ToString("yyMMdd"); LvData _LVData = new LvData(); _LVData.EmpID = lvappl.EmpID; _LVData.EmpDate = _EmpDate; _LVData.Remarks = lvappl.LvReason; _LVData.HalfLeave = lvappl.IsHalf; _LVData.LvID = lvappl.LvID; _LVData.AttDate = datetime.Date; _LVData.LvCode = lvappl.LeaveTypeID; try { using (var context = new TAS2013Entities()) { context.LvDatas.Add(_LVData); context.SaveChanges(); } } catch (Exception ex) { } datetime = datetime.AddDays(1); // Balance Leaves from Emp Table } BalanceLeaves(lvappl, lvType); return(true); }
//public void BalanceLeaves(LvApplication lvappl) //{ // _empQuota.Clear(); // using (var context = new TAS2013Entities()) // { // _empQuota = context.LvQuotas.Where(aa => aa.EmpID == lvappl.EmpID).ToList(); // float _NoOfDays = lvappl.NoOfDays; // if (_empQuota.Count > 0) // { // switch (lvappl.LvType) // { // case "A": // _empQuota.FirstOrDefault().A = (float)(_empQuota.FirstOrDefault().A - _NoOfDays); // break; // case "B": // _empQuota.FirstOrDefault().B = (float)(_empQuota.FirstOrDefault().B - _NoOfDays); // break; // case "C": // _empQuota.FirstOrDefault().C = (float)(_empQuota.FirstOrDefault().C - _NoOfDays); // break; // case "D": // _empQuota.FirstOrDefault().D = (float)(_empQuota.FirstOrDefault().D - _NoOfDays); // break; // case "E": // _empQuota.FirstOrDefault().E = (float)(_empQuota.FirstOrDefault().E - _NoOfDays); // break; // case "F": // _empQuota.FirstOrDefault().F = (float)(_empQuota.FirstOrDefault().F - _NoOfDays); // break; // case "G": // _empQuota.FirstOrDefault().G = (float)(_empQuota.FirstOrDefault().G - _NoOfDays); // break; // case "H": // _empQuota.FirstOrDefault().H = (float)(_empQuota.FirstOrDefault().H - _NoOfDays); // break; // case "I": // _empQuota.FirstOrDefault().I = (float)(_empQuota.FirstOrDefault().I - _NoOfDays); // break; // case "J": // _empQuota.FirstOrDefault().J = (float)(_empQuota.FirstOrDefault().J - _NoOfDays); // break; // case "K": // _empQuota.FirstOrDefault().K = (float)(_empQuota.FirstOrDefault().K - _NoOfDays); // break; // case "L": // _empQuota.FirstOrDefault().L = (float)(_empQuota.FirstOrDefault().L - _NoOfDays); // break; // default: // break; // } // context.SaveChanges(); // } // } //} #endregion #region -- Add Half Leave-- public void AddHalfLeaveToLeaveData(LvApplication lvappl, LvType lvType) { DateTime datetime = new DateTime(); datetime = lvappl.FromDate; string _EmpDate = lvappl.EmpID + datetime.Date.ToString("yyMMdd"); LvData _LVData = new LvData(); _LVData.EmpID = lvappl.EmpID; _LVData.EmpDate = _EmpDate; _LVData.Remarks = lvappl.LvReason; _LVData.HalfLeave = true; _LVData.LvID = lvappl.LvID; _LVData.AttDate = datetime.Date; _LVData.LvCode = lvappl.LeaveTypeID; _LVData.FirstHalf = lvappl.FirstHalf; try { using (var db = new TAS2013Entities()) { db.LvDatas.Add(_LVData); db.SaveChanges(); } } catch (Exception ex) { } // Balance Leaves from Emp Table BalanceLeaves(lvappl, lvType); }
public bool CheckHalfLeaveBalance(LvApplication lvapplication, LvType lvType) { bool check = false; float RemainingLeaves; List <LvConsumed> _lvConsumed = new List <LvConsumed>(); if (lvType.UpdateBalance == true) { using (var ctx = new TAS2013Entities()) { string empLvType = lvapplication.EmpID.ToString() + lvapplication.LeaveTypeID + lvapplication.FromDate.Year.ToString("0000"); _lvConsumed = ctx.LvConsumeds.Where(aa => aa.EmpLvTypeYear == empLvType).ToList(); if (_lvConsumed.Count > 0) { RemainingLeaves = (float)_lvConsumed.FirstOrDefault().YearRemaining; if ((RemainingLeaves - (float)lvapplication.NoOfDays) >= 0) { check = true; } else { check = false; } } } } else { check = true; } return(check); }
public ActionResult DeleteConfirmed(string id) { LvType lvtype = db.LvTypes.Find(id); db.LvTypes.Remove(lvtype); db.SaveChanges(); return(RedirectToAction("Index")); }
private void AddLeaveIntoDatabase(string empDate, VMLeaveEditor datas, string Name, string date, bool IsHalf) { int empid = db.Emps.First(aa => aa.EmpNo == datas.EmpNo).EmpID; LvType lvtype = new LvType(); if (Name == "HLV:Casual") { lvtype = db.LvTypes.First(aa => aa.LvDesc == "LV:Casual"); } else if (Name == "HLV:Annual") { lvtype = db.LvTypes.First(aa => aa.LvDesc == "LV:Annual"); } else { lvtype = db.LvTypes.First(aa => aa.LvDesc == Name); } User LoggedInUser = Session["LoggedUser"] as User; LvApplication lv = new LvApplication(); lv.EmpID = empid; lv.LeaveTypeID = lvtype.LvTypeID; lv.LvDate = DateTime.Today; if (IsHalf == true) { lv.NoOfDays = (float)0.5; lv.IsHalf = true; } else { lv.NoOfDays = 1; } lv.CreatedBy = LoggedInUser.UserID; lv.FromDate = Convert.ToDateTime(date); lv.ToDate = Convert.ToDateTime(date); if (lvtype.UpdateBalance == true) { if (HasLeaveQuota(empid, lvtype.LvTypeID, lvtype)) { if (CheckLeaveBalance(lv, lvtype)) { CreateLeave(lv, lvtype); } else { ViewBag.validtonmessage = "Leave Balance Exceeds, Please check the balance"; } } else { ViewBag.validtonmessage = "Leave Quota does not exist"; } } else { CreateLeave(lv, lvtype); } }
public ActionResult Edit([Bind(Include = "LvTypeID,LvDesc,FldName,HalfLeave,HalfLvCode,HalfAbCode,MaxDays,UpdateBalance,Enable,CarryForward,CarryForwardYear,CarryForwardDays,CountGZDays,CountRestDays,MaxDaysConsective,MaxDaysMonth")] LvType lvtype) { if (ModelState.IsValid) { db.Entry(lvtype).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(lvtype)); }
public ActionResult Create([Bind(Include = "LvTypeID,LvDesc,FldName,HalfLeave,HalfLvCode,HalfAbCode,MaxDays,UpdateBalance,Enable,CarryForward,CarryForwardYear,CarryForwardDays,CountGZDays,CountRestDays,MaxDaysConsective,MaxDaysMonth")] LvType lvtype) { if (ModelState.IsValid) { db.LvTypes.Add(lvtype); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(lvtype)); }
public void AddHalfLeaveToAttData(LvApplication lvappl) { DateTime datetime = new DateTime(); datetime = lvappl.FromDate; string _EmpDate = lvappl.EmpID + datetime.Date.ToString("yyMMdd"); using (var db = new TAS2013Entities()) { if (db.AttDatas.Where(aa => aa.EmpDate == _EmpDate).Count() > 0) { LvType lvtype = db.LvTypes.First(aa => aa.LvType1 == lvappl.LvType); AttData _EmpAttData = new AttData(); _EmpAttData = db.AttDatas.First(aa => aa.EmpDate == _EmpDate); _EmpAttData.DutyCode = "L"; if (_EmpAttData.WorkMin > 0) { _EmpAttData.Remarks = _EmpAttData.Remarks + lvtype.HalfLvCode; } else { _EmpAttData.Remarks = "HA" + lvappl.LvType1.HalfLvCode; } if (_EmpAttData.Remarks.Contains("[Absent]")) { _EmpAttData.Remarks = _EmpAttData.Remarks.Replace("[Abesnt]", ""); } if (_EmpAttData.Remarks.Contains("[EO]")) { _EmpAttData.Remarks = _EmpAttData.Remarks.Replace("[EO]", ""); } if (_EmpAttData.Remarks.Contains("[LI]")) { _EmpAttData.Remarks = _EmpAttData.Remarks.Replace("[LI]", ""); } _EmpAttData.StatusHL = true; if (lvappl.FirstHalf == true) { _EmpAttData.LateIn = 0; _EmpAttData.StatusLI = false; } else { _EmpAttData.StatusEO = false; _EmpAttData.EarlyOut = 0; } //_EmpAttData.statushl db.SaveChanges(); } } }
public bool AddLeaveToLeaveAttData(LvApplication lvappl, LvType lvType) { try { DateTime datetime = new DateTime(); datetime = lvappl.FromDate; for (int i = 0; i < lvappl.NoOfDays; i++) { string _EmpDate = lvappl.EmpID + datetime.Date.ToString("yyMMdd"); using (var context = new TAS2013Entities()) { if (context.AttDatas.Where(aa => aa.EmpDate == _EmpDate).Count() > 0) { AttData _EmpAttData = new AttData(); _EmpAttData = context.AttDatas.First(aa => aa.EmpDate == _EmpDate); _EmpAttData.LateIn = null; _EmpAttData.LateOut = null; _EmpAttData.EarlyIn = null; _EmpAttData.EarlyOut = null; _EmpAttData.StatusAB = false; _EmpAttData.StatusLeave = true; _EmpAttData.StatusEI = null; _EmpAttData.StatusEO = null; _EmpAttData.StatusLI = null; _EmpAttData.DutyCode = "L"; _EmpAttData.StatusLI = null; _EmpAttData.StatusLO = null; _EmpAttData.StatusDO = null; _EmpAttData.StatusGZ = null; _EmpAttData.StatusGZOT = null; _EmpAttData.StatusMN = null; _EmpAttData.StatusOD = null; if (lvappl.NoOfDays == 0.5) { _EmpAttData.Remarks = lvType.HalfLvCode; } else { _EmpAttData.Remarks = lvType.FldName; } context.SaveChanges(); } } datetime = datetime.AddDays(1); } } catch (Exception ex) { return(false); } return(true); }
// GET: /LeaveType/Delete/5 public ActionResult Delete(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LvType lvtype = db.LvTypes.Find(id); if (lvtype == null) { return(HttpNotFound()); } return(View(lvtype)); }
public bool HasLeaveQuota(int empID, string lvType, LvType leaveType) { bool check = false; using (var ctx = new TAS2013Entities()) { List <LvConsumed> lv = new List <LvConsumed>(); lv = ctx.LvConsumeds.Where(aa => aa.EmpID == empID && aa.LeaveTypeID == lvType).ToList(); if (lv.Count > 0) { check = true; } } return(check); }
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 bool CheckLeaveBalance(LvApplication _lvapp, LvType LeaveType) { bool balance = false; decimal RemainingLeaves; if (LeaveType.UpdateBalance == true) { using (var ctx = new TAS2013Entities()) { List <LvConsumed> _lvConsumed = new List <LvConsumed>(); string empLvType = _lvapp.EmpID.ToString() + _lvapp.LeaveTypeID + _lvapp.FromDate.Year.ToString("0000"); _lvConsumed = ctx.LvConsumeds.Where(aa => aa.EmpLvTypeYear == empLvType).ToList(); if (_lvConsumed.Count > 0) { RemainingLeaves = (decimal)_lvConsumed.FirstOrDefault().YearRemaining; if ((RemainingLeaves - Convert.ToDecimal(_lvapp.NoOfDays)) >= 0) { balance = true; } else { balance = false; } } else { balance = false; } } } else { balance = true; } return(balance); }
public bool HasLeaveQuota(int empID, string lvType) { bool check = false; using (var ctx = new TAS2013Entities()) { LvType LeaveType = ctx.LvTypes.First(aa => aa.LvType1 == lvType); if (LeaveType.UpdateBalance == true) { List <LvConsumed> lv = new List <LvConsumed>(); string empLvType = empID.ToString() + lvType + DateTime.Today.Year.ToString(); lv = ctx.LvConsumeds.Where(aa => aa.EmpLvTypeYear == empLvType).ToList(); if (lv.Count > 0) { check = true; } } else { check = true; } } return(check); }
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 = "LvID,LvDate,LvType,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 = db.Emps.Where(aa => aa.EmpID == LoggedInUser.EmpID).FirstOrDefault().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.LvType1 == lvapplication.LvType); LeaveController LvProcessController = new LeaveController(); if (LvProcessController.HasLeaveQuota(lvapplication.EmpID, lvapplication.LvType, lvType)) { if (lvapplication.IsHalf != true) { lvapplication.NoOfDays = (float)((lvapplication.ToDate - lvapplication.FromDate).TotalDays) + 1; lvapplication.Active = false; lvapplication.IsRevoked = false; if (LvProcessController.CheckDuplicateLeave(lvapplication)) { //Check leave Balance if (LvProcessController.CheckLeaveBalance(lvapplication, lvType)) { 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); 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", "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, lvType)) { 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.AddHalfLeaveToLeaveData(lvapplication, lvType); LvProcessController.AddHalfLeaveToAttData(lvapplication, lvType); 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.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)); }