Example #1
0
        public void AddHalfLeaveToLeaveData(LvApplication lvappl)
        {
            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.LvType;
            _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);
        }
Example #2
0
        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.AttProcesses.Where(aa => aa.ProcessDate == datetime).Count() > 0)
                {
                    AttData _EmpAttData = new AttData();
                    _EmpAttData = db.AttDatas.First(aa => aa.EmpDate == _EmpDate);
                    if (lvappl.LvType == "A")//Casual Leave
                        _EmpAttData.Remarks = _EmpAttData.Remarks+"[H-CL]";
                    if (lvappl.LvType == "B")//Anual Leave
                        _EmpAttData.Remarks = _EmpAttData.Remarks+"[H-AL]";
                    if (lvappl.LvType == "C")//Sick Leave
                        _EmpAttData.Remarks = _EmpAttData.Remarks+"[H-SL]";

                    if (_EmpAttData.Remarks.Contains("[Absent]"))
                        _EmpAttData.Remarks.Replace("[Abesnt]", "");
                    if (_EmpAttData.Remarks.Contains("[EO]"))
                        _EmpAttData.Remarks.Replace("[EO]", "-");
                    if (_EmpAttData.Remarks.Contains("[LI]"))
                        _EmpAttData.Remarks.Replace("[LI]", "");
                    _EmpAttData.StatusLeave = true;
                    if (lvappl.FirstHalf == true)
                    {
                        _EmpAttData.LateIn = 0;
                        _EmpAttData.StatusLI = false;
                    }
                    else
                    {
                        _EmpAttData.StatusEO = false;
                        _EmpAttData.EarlyOut = 0;
                    }
                    //_EmpAttData.statushl

                    db.SaveChanges();
                }
            }
        }
        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;
        }
Example #4
0
 public bool AddLeaveToLeaveAttData(LvApplication lvappl)
 {
     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.AttProcesses.Where(aa => aa.ProcessDate == datetime).Count() > 0)
                 {
                     AttData _EmpAttData = new AttData();
                     _EmpAttData = context.AttDatas.First(aa => aa.EmpDate == _EmpDate);
                     _EmpAttData.TimeIn = null;
                     _EmpAttData.TimeOut = null;
                     _EmpAttData.WorkMin = null;
                     _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.StatusLI= null;
                     _EmpAttData.StatusLO = null;
                     _EmpAttData.StatusDO = null;
                         _EmpAttData.StatusGZ = null;
                     _EmpAttData.StatusGZOT = null;
                     _EmpAttData.StatusMN = null;
                     _EmpAttData.StatusOD = null;
                     if (lvappl.LvType == "A")//Casual Leave
                         _EmpAttData.Remarks = "[CL]";
                     if (lvappl.LvType == "B")//Anual Leave
                         _EmpAttData.Remarks = "[AL]";
                     if (lvappl.LvType == "C")//Sick Leave
                         _EmpAttData.Remarks = "[SL]";
                     _EmpAttData.StatusAB = false;
                     _EmpAttData.StatusLeave = true;
                     context.SaveChanges();
                 }
             }
             datetime = datetime.AddDays(1);
         }
     }
     catch (Exception  ex)
     {
         return false;
     }
     return true;
 }
Example #5
0
        private void SubtractHalfLeavesBalancceMonthQuota(List<LvConsumed> _lvConsumed, LvApplication lvappl)
        {
            DateTime _dtStart = lvappl.FromDate;
            DateTime _dtEnd = lvappl.ToDate;
            while (_dtStart <= _dtEnd)
            {
                switch (_dtStart.Date.Month)
                {
                    case 1:
                        _lvConsumed.FirstOrDefault().JanConsumed = _lvConsumed.FirstOrDefault().JanConsumed - 0.5;
                        break;
                    case 2:
                        _lvConsumed.FirstOrDefault().FebConsumed = _lvConsumed.FirstOrDefault().FebConsumed - 0.5;
                        break;
                    case 3:
                        _lvConsumed.FirstOrDefault().MarchConsumed = _lvConsumed.FirstOrDefault().MarchConsumed - 0.5;
                        break;
                    case 4:
                        _lvConsumed.FirstOrDefault().AprConsumed = _lvConsumed.FirstOrDefault().AprConsumed - 0.5;
                        break;
                    case 5:
                        _lvConsumed.FirstOrDefault().MayConsumed = _lvConsumed.FirstOrDefault().MayConsumed - 0.5;
                        break;
                    case 6:
                        _lvConsumed.FirstOrDefault().JuneConsumed = _lvConsumed.FirstOrDefault().JuneConsumed - 0.5;
                        break;
                    case 7:
                        _lvConsumed.FirstOrDefault().JulyConsumed = _lvConsumed.FirstOrDefault().JulyConsumed - 0.5;
                        break;
                    case 8:
                        _lvConsumed.FirstOrDefault().AugustConsumed = _lvConsumed.FirstOrDefault().AugustConsumed - 0.5;
                        break;
                    case 9:
                        _lvConsumed.FirstOrDefault().SepConsumed = _lvConsumed.FirstOrDefault().SepConsumed - 0.5;
                        break;
                    case 10:
                        _lvConsumed.FirstOrDefault().OctConsumed = _lvConsumed.FirstOrDefault().OctConsumed - 0.5;
                        break;
                    case 11:
                        _lvConsumed.FirstOrDefault().NovConsumed = _lvConsumed.FirstOrDefault().NovConsumed - 0.5;
                        break;
                    case 12:
                        _lvConsumed.FirstOrDefault().DecConsumed = _lvConsumed.FirstOrDefault().DecConsumed - 0.5;
                        break;

                }
                _dtStart = _dtStart.AddDays(1);
            }
        }
Example #6
0
 public void UpdateLeaveBalance(LvApplication lvappl)
 {
     float LvDays = (float)lvappl.NoOfDays;
     List<LvConsumed> _lvConsumed = new List<LvConsumed>();
     using (var ctx = new TAS2013Entities())
     {
         string empLvType = lvappl.EmpID.ToString() + lvappl.LvType;
         _lvConsumed = ctx.LvConsumeds.Where(aa => aa.EmpLvType == empLvType).ToList();
         if (_lvConsumed.Count > 0)
         {
             _lvConsumed.FirstOrDefault().YearRemaining = (float)(_lvConsumed.FirstOrDefault().YearRemaining + LvDays);
             _lvConsumed.FirstOrDefault().GrandTotalRemaining = (float)(_lvConsumed.FirstOrDefault().GrandTotalRemaining + LvDays);
             SubtractBalancceMonthQuota(_lvConsumed, lvappl);
             ctx.SaveChanges();
         }
         ctx.Dispose();
     }
 }
Example #7
0
        public void DeleteLeaveFromAttData(LvApplication lvappl)
        {
            try
            {
                int _EmpID = lvappl.EmpID;
                DateTime Date = lvappl.FromDate;
                while (Date <= lvappl.ToDate)
                {
                    using (var context = new TAS2013Entities())
                    {
                        if (context.AttProcesses.Where(aa => aa.ProcessDate == Date.Date).Count() > 0)
                        {
                            string _empdate = _EmpID.ToString() + Date.Date.ToString("yyMMdd");
                            var _AttData = context.AttDatas.Where(aa => aa.EmpDate == _empdate);
                            if (_AttData != null)
                            {
                                _AttData.FirstOrDefault().StatusLeave = false;
                                _AttData.FirstOrDefault().Remarks.Replace("[SL]", "");
                                _AttData.FirstOrDefault().Remarks.Replace("[CL]", "");
                                _AttData.FirstOrDefault().Remarks.Replace("[AL]", "");
                                if (_AttData.FirstOrDefault().TimeIn == null && _AttData.FirstOrDefault().TimeOut == null && _AttData.FirstOrDefault().DutyCode == "D")
                                {
                                    _AttData.FirstOrDefault().Remarks = "[Absent]";
                                    _AttData.FirstOrDefault().StatusAB = true;
                                }
                                //context.LvDatas.Remove(lvvdata);
                                context.SaveChanges();
                            }
                        }
                    }
                    Date = Date.AddDays(1);
                }
            }
            catch (Exception ex)
            {

            }
        }
Example #8
0
 public void DeleteHLFromLVData(LvApplication lvappl)
 {
     int _EmpID = lvappl.EmpID;
     DateTime Date = lvappl.FromDate;
     while (Date <= lvappl.ToDate)
     {
         using (var context = new TAS2013Entities())
         {
             var _id = context.LvDatas.Where(aa => aa.EmpID == _EmpID && aa.AttDate == Date.Date).FirstOrDefault().EmpDate;
             if (_id != null)
             {
                 LvData lvvdata = context.LvDatas.Find(_id);
                 //lvvdata.Active = false;
                 context.LvDatas.Remove(lvvdata);
                 context.SaveChanges();
             }
         }
         Date = Date.AddDays(1);
     }
 }
Example #9
0
        public bool CheckLeaveBalance(LvApplication _lvapp)
        {
            bool balance = false;
            decimal RemainingLeaves;
            using (var ctx = new TAS2013Entities())
            {
                List<LvType> lvTypes = new List<LvType>();
                lvTypes = ctx.LvTypes.Where(aa => aa.LvType1 == _lvapp.LvType).ToList();
                if (lvTypes.First().UpdateBalance == true)
                {
                    List<LvConsumed> _lvConsumed = new List<LvConsumed>();
                    string empLvType = _lvapp.EmpID.ToString() + _lvapp.LvType;
                    _lvConsumed = ctx.LvConsumeds.Where(aa => aa.EmpLvType == empLvType).ToList();
                    RemainingLeaves = (decimal)_lvConsumed.FirstOrDefault().YearRemaining;
                    if ((RemainingLeaves - Convert.ToDecimal(_lvapp.NoOfDays)) >= 0)
                    {
                        balance = true;
                    }
                    else
                        balance = false;
                }
                else
                    balance = true;

            }

            return balance;
        }
Example #10
0
 public bool CheckHalfLeaveBalance(LvApplication lvapplication)
 {
     bool check = false;
     float RemainingLeaves;
     List<LvConsumed> _lvConsumed = new List<LvConsumed>();
     using (var ctx = new TAS2013Entities())
     {
         string empLvType = lvapplication.EmpID.ToString() + lvapplication.LvType;
         _lvConsumed = ctx.LvConsumeds.Where(aa => aa.EmpLvType == empLvType).ToList();
         if (_lvConsumed.Count > 0)
         {
             RemainingLeaves = (float)_lvConsumed.FirstOrDefault().YearRemaining;
              if ((RemainingLeaves - (float)lvapplication.NoOfDays) >= 0)
             {
                 check =true;
             }
             else
                 check= false;
         }
     }
     return check;
 }
Example #11
0
 //Check Duplication of Leave for a date
 public bool CheckDuplicateLeave(LvApplication lvappl)
 {
     List<LvApplication> _Lv = new List<LvApplication>();
     DateTime _DTime = new DateTime();
     DateTime _DTimeLV = new DateTime();
     using (var context = new TAS2013Entities())
     {
         _Lv = context.LvApplications.Where(aa => aa.EmpID == lvappl.EmpID).ToList();
         foreach (var item in _Lv)
         {
             _DTime = item.FromDate;
             _DTimeLV = lvappl.FromDate;
             while (_DTime <= item.ToDate)
             {
                 while (_DTimeLV <= lvappl.ToDate)
                 {
                     if (_DTime == _DTimeLV)
                         return false;
                     _DTimeLV = _DTimeLV.AddDays(1);
                 }
                 _DTime = _DTime.AddDays(1);
             }
         }
     }
     return true;
 }
Example #12
0
 public void BalanceLeaves(LvApplication lvappl)
 {
     using (var ctx = new TAS2013Entities())
     {
         List<LvConsumed> _lvConsumed = new List<LvConsumed>();
         string empLvType = lvappl.EmpID.ToString() + lvappl.LvType;
         _lvConsumed = ctx.LvConsumeds.Where(aa => aa.EmpLvType == 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();
     }
 }
Example #13
0
        public bool AddLeaveToLeaveData(LvApplication lvappl)
        {
            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.LvID = lvappl.LvID;
                _LVData.AttDate = datetime.Date;
                _LVData.LvCode = lvappl.LvType;
                _LVData.CompanyID = lvappl.CompanyID;
                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);
            return true;
        }