Пример #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            LvShort lvshort = db.LvShorts.Find(id);

            db.LvShorts.Remove(lvshort);
            db.SaveChanges();
            int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());

            HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.ShortLeave, (byte)MyEnums.Operation.Delete, DateTime.Now);
            return(RedirectToAction("Index"));
        }
Пример #2
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LvShort lvshort = db.LvShorts.Find(id);

            if (lvshort == null)
            {
                return(HttpNotFound());
            }
            return(View(lvshort));
        }
Пример #3
0
        private bool CheckForLQuota(LvShort lvshort)
        {
            string EmpLvType = lvshort.EmpID + "A";

            List <LvConsumed> consumed = db.LvConsumeds.Where(aa => aa.EmpLvType == EmpLvType).ToList();

            if (consumed.Count() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #4
0
        public void AddShortLeaveToAttData(LvShort lvshort)
        {
            DateTime datetime = new DateTime();

            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 == lvshort.EmpDate);
                    _EmpAttData.StatusAB = false;
                    _EmpAttData.StatusSL = true;
                    _EmpAttData.Remarks  = _EmpAttData.Remarks + "[Short Leave]";
                    db.SaveChanges();
                }
            }
        }
Пример #5
0
 public ActionResult Edit([Bind(Include = "SlID,EmpID,DutyDate,EmpDate,SHour,EHour,THour,Remarks,CreatedBy,ApprovedBy,Status")] LvShort lvshort)
 {
     if (lvshort.EHour < lvshort.SHour)
     {
         ModelState.AddModelError("EHour", "End hour required");
     }
     if (lvshort.DutyDate == null)
     {
         ModelState.AddModelError("DutyDate", "DutyDate is required!");
     }
     if (ModelState.IsValid)
     {
         lvshort.CreatedDate     = DateTime.Today;
         lvshort.THour           = lvshort.EHour - lvshort.SHour;
         db.Entry(lvshort).State = System.Data.Entity.EntityState.Modified;
         db.SaveChanges();
         int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
         HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.ShortLeave, (byte)MyEnums.Operation.Edit, DateTime.Now);
         return(RedirectToAction("Index"));
     }
     return(View(lvshort));
 }
Пример #6
0
        public void AddShortLeaveToAttData(LvShort lvshort)
        {
            DateTime datetime = lvshort.DutyDate.Value;

            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 == lvshort.EmpDate);
                    _EmpAttData.StatusAB = false;
                    _EmpAttData.StatusSL = true;
                    _EmpAttData.StatusLI = false;
                    _EmpAttData.LateIn   = 0;
                    _EmpAttData.StatusEO = false;
                    _EmpAttData.EarlyOut = 0;
                    _EmpAttData.SLMin    = Convert.ToInt16(lvshort.THour.Value.Minutes);
                    _EmpAttData.ShifMin  = (short)(_EmpAttData.ShifMin - Convert.ToInt16(lvshort.THour.Value.Minutes));
                    _EmpAttData.Remarks  = _EmpAttData.Remarks + "[Short Leave]";
                    db.SaveChanges();
                }
            }
        }
Пример #7
0
        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));
        }
Пример #8
0
        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);
            }
        }
Пример #9
0
        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));
        }