Exemplo n.º 1
0
        public string CheckForUserRole(User user)
        {
            string val = "";
            using (var ctx = new TAS2013Entities())
            {
                string criteria = ctx.UserAccesses.Where(aa => aa.UserID == user.UserID).FirstOrDefault().Criteria;
                switch (criteria.Trim())
                {
                    case "Z":
                        val = "Zone";
                        break;

                    case "R":
                        val="Region";
                        break;
                    case "C":
                        val = "City";
                        break;
                    case "L":
                        val = "Location";
                        break;
                        case "S":
                        val = "SuperUser";
                        break;
                }
                ctx.Dispose();
            }
            return val;
        }
Exemplo n.º 2
0
        public ActionResult Create([Bind(Include="EmpID,EmpNo,EmpName,DesigID,JobID,Gender,ShiftID,LocID,TypeID,GradeID,SecID,CardNo,FpID,PinCode,NicNo,FatherName,BloodGroup,BirthDate,MarStatus,JoinDate,ValidDate,IssueDate,ResignDate,HomeAdd,ProcessAtt,ProcessIn,Status,PhoneNo,Remarks,Email,CellNo,CrewID,FlagFP,FlagFace,FlagCard,EmpImageID,HasOT")] Emp emp)
        {
            string empNo = "";
            int cardno = Convert.ToInt32(emp.CardNo);
            emp.CardNo = cardno.ToString("0000000000");
            if (string.IsNullOrEmpty(emp.EmpNo))
                ModelState.AddModelError("EmpNo", "Emp No is required!");
            if (string.IsNullOrEmpty(emp.EmpName))
                ModelState.AddModelError("EmpName", "Name is required!");
            if (emp.EmpNo != null)
            {
                if (emp.EmpNo.Length > 15)
                    ModelState.AddModelError("EmpNo", "String length exceeds!");
                if (db.Emps.Where(aa => aa.EmpNo.ToUpper() == emp.EmpNo.ToUpper()).Count() > 0 )
                    ModelState.AddModelError("EmpNo", "Emp No should be unique!");
            }
            if (emp.CardNo != null)
            {
                if (db.Emps.Where(aa => aa.CardNo == emp.CardNo).Count() > 0)
                    if(emp.CardNo!="0000000000")
                        ModelState.AddModelError("CardNo", "Card No should be unique!");
                if (emp.CardNo.Length > 10)
                    ModelState.AddModelError("CardNo", "String length exceeds!");
            }
            if (emp.EmpName != null)
            {
                if (emp.EmpName.Length > 40)
                    ModelState.AddModelError("EmpName", "String length exceeds!");
            }
            if(emp.SecID== null)
                ModelState.AddModelError("SecID", "Please Specify section!");
            if (emp.TypeID == null)
                ModelState.AddModelError("TypeID", "Please Specify Type!");
            if (emp.GradeID == null)
                ModelState.AddModelError("GradeID", "Please Specify Grade!");

            if (ModelState.IsValid)
            {
                emp.ProcessAtt = true;
                emp.ProcessIn = true;
                emp.EmpNo = emp.EmpNo.ToUpper();
                empNo = emp.EmpNo;
                emp.FpID = emp.EmpID;
                db.Emps.Add(emp);
                db.SaveChanges();
                int _userID = Convert.ToInt32(Session["LogedUserID"].ToString());
                HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.Employee, (byte)MyEnums.Operation.Add, DateTime.Now);
                HttpPostedFileBase file = Request.Files["ImageData"];
                if (file != null)
                {
                    ImageConversion _Image = new ImageConversion();
                    int imageID = _Image.UploadImageInDataBase(file, emp.EmpNo);
                    if (imageID!=0)
                    {
                        using (var ctx = new TAS2013Entities())
                        {
                            var _emp = ctx.Emps.Where(aa => aa.EmpNo == empNo).ToList();
                            if (_emp.Count > 0)
                            {
                                _emp.FirstOrDefault().EmpImageID = imageID;
                                ctx.SaveChanges();
                                ctx.Dispose();
                            }
                        }
                    }
                    else
                    {

                    }
                }
                return RedirectToAction("Index");
            }
            var _wings = new List<Division>();
            using (TAS2013Entities context = new TAS2013Entities())
            {
                _wings = context.Divisions.ToList();
            ViewBag.Wing = new SelectList(_wings.OrderBy(s=>s.DivisionName), "WingID", "WingName");
            User LoggedInUser = Session["LoggedUser"] as User;
            ViewBag.CrewID = new SelectList(db.Crews.OrderBy(s=>s.CrewName), "CrewID", "CrewName");
            ViewBag.DesigID = new SelectList(db.Designations.OrderBy(s=>s.DesignationName), "DesignationID", "DesignationName");
            ViewBag.GradeID = new SelectList(db.Grades.OrderBy(s=>s.GradeName), "GradeID", "GradeName");
            ViewBag.JobID = new SelectList(db.JobTitles.OrderBy(s=>s.JobTitle1), "JobID", "JobTitle1");
            ViewBag.LocID = new SelectList(db.Locations.OrderBy(s=>s.LocName), "LocID", "LocName");
            ViewBag.SecID = new SelectList(db.Sections.OrderBy(s=>s.SectionName), "SectionID", "SectionName");
            ViewBag.ShiftID = new SelectList(db.Shifts.OrderBy(s=>s.ShiftName), "ShiftID", "ShiftName");
            ViewBag.TypeID = new SelectList(db.EmpTypes.OrderBy(s=>s.TypeName), "TypeID", "TypeName");
            ViewBag.CatID = new SelectList(db.Categories.OrderBy(s=>s.CatName), "CatID", "CatName");
            ViewBag.DeptID = new SelectList(db.Departments.OrderBy(s=>s.DeptName), "DeptID", "DeptName");
            }
            return View(emp);
        }
Exemplo n.º 3
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();
     }
 }
Exemplo n.º 4
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();
     }
 }
Exemplo n.º 5
0
        private bool AddLateInMarginAttData(string _empDate, int _empID, DateTime _Date, int _userID, short _WorkCardID)
        {
            bool check = false;
            try
            {
                //Late In Job Card
                short LateInMins = 0;
                using (var context = new TAS2013Entities())
                {
                    AttData _attdata = context.AttDatas.FirstOrDefault(aa => aa.EmpDate == _empDate);
                    if (_attdata != null)
                    {
                        _attdata.StatusAB = false;
                        _attdata.Remarks.Replace("[LI]", "");
                        _attdata.Remarks = _attdata.Remarks + "[LI Job Card]";
                        _attdata.LateIn = 0;
                        _attdata.WorkMin = (short)(_attdata.WorkMin + (short)LateInMins);
                        _attdata.StatusLI = false;
                    }
                    context.SaveChanges();
                    if (context.SaveChanges() > 0)
                        check = true;
                    context.Dispose();
                }
            }
            catch (Exception ex)
            {

            }
            return check;
        }
Exemplo n.º 6
0
 private bool ValidateJobCard(DateTime dateStart, short CardType)
 {
     bool check = false;
     using (var ctx = new TAS2013Entities())
     {
         List<JobCardApp> jcApp = new List<JobCardApp>();
         if (ctx.JobCardApps.Where(aa => aa.DateStarted == dateStart && aa.CardType == CardType).Count() > 0)
             check = true;
         ctx.Dispose();
     }
     return check;
 }
Exemplo n.º 7
0
        private bool AddJCODDayToAttData(string _empDate, int _empID, DateTime _Date, int _userID, short _WorkCardID)
        {
            bool check = false;
            try
            {
                //Official Duty
                using (var context = new TAS2013Entities())
                {
                    AttData _attdata = context.AttDatas.FirstOrDefault(aa => aa.EmpDate == _empDate);
                    if (_attdata != null)
                    {
                        _attdata.DutyCode = "O";
                        _attdata.StatusAB = false;
                        _attdata.StatusDO = false;
                        _attdata.StatusLeave = false;
                        _attdata.StatusP = true;
                        _attdata.WorkMin = _attdata.ShifMin;
                        _attdata.Remarks = _attdata.Remarks+"[Official Duty][Manual]";
                        _attdata.TimeIn = null;
                        _attdata.TimeOut = null;
                        _attdata.WorkMin = null;
                        _attdata.EarlyIn = null;
                        _attdata.EarlyOut = null;
                        _attdata.LateIn = null;
                        _attdata.LateOut = null;
                        _attdata.OTMin = null;
                        _attdata.StatusEI = null;
                        _attdata.StatusEO = null;
                        _attdata.StatusLI = null;
                        _attdata.StatusLO = null;
                        _attdata.StatusP = null;
                        _attdata.StatusGZ = false;
                    }
                    context.SaveChanges();
                    if (context.SaveChanges() > 0)
                        check = true;
                    context.Dispose();
                }
            }
            catch (Exception ex)
            {

            }
            return check;
        }
Exemplo n.º 8
0
 //Add Job Card To Job Card Data
 private void AddJobCardAppToJobCardData()
 {
     using (var ctx = new TAS2013Entities())
     {
         List<JobCardApp> _jobCardApp = new List<JobCardApp>();
         _jobCardApp = ctx.JobCardApps.Where(aa => aa.Status == false).ToList();
         List<Emp> _Emp = new List<Emp>();
         foreach (var jcApp in _jobCardApp)
         {
             jcApp.Status = true;
             switch (jcApp.JobCardCriteria)
             {
                 case "S":
                     short _shiftID = Convert.ToByte(jcApp.CriteriaData);
                     _Emp = ctx.Emps.Where(aa => aa.ShiftID == _shiftID).ToList();
                     break;
                 case "C":
                     short _crewID = Convert.ToByte(jcApp.CriteriaData);
                     _Emp = ctx.Emps.Where(aa => aa.CrewID == _crewID).ToList();
                     break;
                 case "T":
                     short _secID = Convert.ToByte(jcApp.CriteriaData);
                     _Emp = ctx.Emps.Where(aa => aa.SecID == _secID).ToList();
                     break;
                 case "E":
                     int _EmpID = (int)jcApp.CriteriaData;
                     _Emp = ctx.Emps.Where(aa => aa.EmpID == _EmpID).ToList();
                     break;
             }
             foreach (var selectedEmp in _Emp)
             {
                 AddJobCardData(selectedEmp, jcApp);
             }
         }
         ctx.SaveChanges();
         ctx.Dispose();
     }
 }
Exemplo n.º 9
0
        public void ManualProcessAttendance(DateTime date, List<Emp> emps)
        {
            BootstrapAttendance(date, emps);
            DateTime dateEnd = date.AddDays(1);
            List<AttData> attData = context.AttDatas.Where(aa => aa.AttDate >= date && aa.AttDate <= dateEnd).ToList();
            List<PollData> unprocessedPolls = context.PollDatas.Where(p => (p.EntDate >= date && p.EntDate <= dateEnd)).OrderBy(e => e.EntTime).ToList();
            foreach (var emp in emps)
            {
                List<PollData> polls = new List<PollData>();
                polls = unprocessedPolls.Where(p => p.EmpID == emp.EmpID).OrderBy(e => e.EntTime).ToList();
                foreach (PollData up in polls)
                {
                    try
                    {
                        //Check AttData with EmpDate
                        if (attData.Where(attd => attd.EmpDate == up.EmpDate).Count() > 0)
                        {
                            AttData attendanceRecord = attData.First(attd => attd.EmpDate == up.EmpDate);
                            employee = attendanceRecord.Emp;
                            Shift shift = employee.Shift;
                            //Set Time In and Time Out in AttData
                            if (attendanceRecord.Emp.Shift.OpenShift == true)
                            {
                                //Set Time In and Time Out for open shift
                                PlaceTimeInOuts.CalculateTimeINOUTOpenShift(attendanceRecord, up);
                                context.SaveChanges();
                            }
                            else
                            {
                                TimeSpan checkTimeEnd = new TimeSpan();
                                DateTime TimeInCheck = new DateTime();
                                if (attendanceRecord.TimeIn == null)
                                {
                                    TimeInCheck = attendanceRecord.AttDate.Value.Add(attendanceRecord.DutyTime.Value);
                                }
                                else
                                    TimeInCheck = attendanceRecord.TimeIn.Value;
                                if (attendanceRecord.ShifMin == 0)
                                    checkTimeEnd = TimeInCheck.TimeOfDay.Add(new TimeSpan(0, 480, 0));
                                else
                                    checkTimeEnd = TimeInCheck.TimeOfDay.Add(new TimeSpan(0, (int)attendanceRecord.ShifMin, 0));
                                if (checkTimeEnd.Days > 0)
                                {
                                    //if Time out occur at next day
                                    if (up.RdrDuty == 5)
                                    {
                                        DateTime dt = new DateTime();
                                        dt = up.EntDate.Date.AddDays(-1);
                                        var _attData = context.AttDatas.FirstOrDefault(aa => aa.AttDate == dt && aa.EmpID == up.EmpID);
                                        if (_attData != null)
                                        {

                                            if (_attData.TimeIn != null)
                                            {
                                                TimeSpan t1 = new TimeSpan(11, 00, 00);
                                                if (up.EntTime.TimeOfDay < t1)
                                                {
                                                    if ((up.EntTime - _attData.TimeIn.Value).Hours < 18)
                                                    {
                                                        attendanceRecord = _attData;
                                                        up.EmpDate = up.EmpID.ToString() + dt.Date.ToString("yyMMdd");
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                attendanceRecord = _attData;
                                                up.EmpDate = up.EmpID.ToString() + dt.Date.ToString("yyMMdd");
                                            }

                                        }
                                    }
                                }
                                //Set Time In and Time Out
                                //Set Time In and Time Out
                                if (up.RdrDuty == 5)
                                {
                                    if (attendanceRecord.TimeIn != null)
                                    {
                                        TimeSpan dt = (TimeSpan)(up.EntTime.TimeOfDay - attendanceRecord.TimeIn.Value.TimeOfDay);
                                        if (dt.Minutes < 0)
                                        {
                                            DateTime dt1 = new DateTime();
                                            dt1 = up.EntDate.Date.AddDays(-1);
                                            var _attData = context.AttDatas.FirstOrDefault(aa => aa.AttDate == dt1 && aa.EmpID == up.EmpID);
                                            attendanceRecord = _attData;
                                            up.EmpDate = up.EmpID.ToString() + dt1.Date.ToString("yyMMdd");
                                            PlaceTimeInOuts.CalculateTimeINOUT(attendanceRecord, up);
                                        }
                                        else
                                            PlaceTimeInOuts.CalculateTimeINOUT(attendanceRecord, up);
                                    }
                                    else
                                        PlaceTimeInOuts.CalculateTimeINOUT(attendanceRecord, up);
                                }
                                else
                                    PlaceTimeInOuts.CalculateTimeINOUT(attendanceRecord, up);
                            }
                            if (employee.Shift.OpenShift == true)
                            {
                                if (up.EntTime.TimeOfDay < PlaceTimeInOuts.OpenShiftThresholdEnd)
                                {
                                    DateTime dt = up.EntDate.Date.AddDays(-1);
                                    using (var ctxx = new TAS2013Entities())
                                    {
                                        CalculateWorkMins.CalculateOpenShiftTimes(ctxx.AttDatas.FirstOrDefault(aa => aa.AttDate == dt && aa.EmpID == up.EmpID), shift);
                                        ctxx.SaveChanges();
                                        ctxx.Dispose();
                                    }
                                }
                            }
                            //If TimeIn and TimeOut are not null, then calculate other Atributes
                            if (attendanceRecord.TimeIn != null && attendanceRecord.TimeOut != null)
                            {
                                if (context.Rosters.Where(r => r.EmpDate == up.EmpDate).Count() > 0)
                                {
                                    CalculateWorkMins.CalculateRosterTimes(attendanceRecord, context.Rosters.FirstOrDefault(r => r.EmpDate == up.EmpDate), shift);
                                    context.SaveChanges();
                                }
                                else
                                {
                                    if (shift.OpenShift == true)
                                    {
                                        if (up.EntTime.TimeOfDay < PlaceTimeInOuts.OpenShiftThresholdEnd)
                                        {
                                            DateTime dt = up.EntDate.Date.AddDays(-1);
                                            using (var ctx2 = new TAS2013Entities())
                                            {
                                                CalculateWorkMins.CalculateOpenShiftTimes(ctx2.AttDatas.FirstOrDefault(aa => aa.AttDate == dt && aa.EmpID == up.EmpID), shift);
                                                ctx2.SaveChanges();
                                                ctx2.Dispose();
                                            }
                                            CalculateWorkMins.CalculateOpenShiftTimes(attendanceRecord, shift);
                                            context.SaveChanges();
                                        }
                                        else
                                        {
                                            //Calculate open shifft time of the same date
                                            CalculateWorkMins.CalculateOpenShiftTimes(attendanceRecord, shift);
                                            context.SaveChanges();
                                        }
                                    }
                                    else
                                    {
                                        CalculateWorkMins.CalculateShiftTimes(attendanceRecord, shift);
                                        context.SaveChanges();
                                    }
                                }
                            }
                            up.Process = true;
                        }
                    }
                    catch (Exception ex)
                    {
                        string _error = "";
                        if (ex.InnerException.Message != null)
                            _error = ex.InnerException.Message;
                        else
                            _error = ex.Message;
                    }
                    context.SaveChanges();
                }
            }
            context.Dispose();
        }
Exemplo n.º 10
0
 private bool AddDoubleDutyAttData(string _empDate, int _empID, DateTime _Date, int _userID, JobCardApp jcApp)
 {
     bool check = false;
     try
     {
         //Normal Duty
         using (var context = new TAS2013Entities())
         {
             AttData _attdata = context.AttDatas.FirstOrDefault(aa => aa.EmpDate == _empDate);
             JobCard _jcCard = context.JobCards.FirstOrDefault(aa => aa.WorkCardID == jcApp.CardType);
             if (_attdata != null)
             {
                 _attdata.DutyCode = "D";
                 _attdata.StatusAB = false;
                 _attdata.StatusDO = false;
                 _attdata.StatusLeave = false;
                 _attdata.StatusP = true;
                 _attdata.WorkMin = _jcCard.WorkMin;
                 _attdata.Remarks = _attdata.Remarks+"[DD][Manual]";
                 _attdata.StatusMN = true;
                 _attdata.TimeIn = null;
                 _attdata.TimeOut = null;
                 _attdata.EarlyIn = null;
                 _attdata.EarlyOut = null;
                 _attdata.LateIn = null;
                 _attdata.LateOut = null;
                 _attdata.OTMin = null;
                 _attdata.StatusEI = null;
                 _attdata.StatusEO = null;
                 _attdata.StatusLI = null;
                 _attdata.StatusLO = null;
                 _attdata.StatusP = true;
             }
             context.SaveChanges();
             if (context.SaveChanges() > 0)
                 check = true;
             context.Dispose();
         }
     }
     catch (Exception ex)
     {
     }
     return check;
 }
Exemplo n.º 11
0
        public void BootstrapAttendance(DateTime dateTime, List<Emp> emps)
        {
            using (var ctx = new TAS2013Entities())
            {
                List<Roster> _Roster = new List<Roster>();
                _Roster = context.Rosters.Where(aa => aa.RosterDate == dateTime).ToList();
                List<RosterDetail> _NewRoster = new List<RosterDetail>();
                _NewRoster = context.RosterDetails.Where(aa => aa.RosterDate == dateTime).ToList();
                List<LvData> _LvData = new List<LvData>();
                _LvData = context.LvDatas.Where(aa => aa.AttDate == dateTime).ToList();
                List<LvShort> _lvShort = new List<LvShort>();
                _lvShort = context.LvShorts.Where(aa => aa.DutyDate == dateTime).ToList();
                //List<AttData> _AttData = context.AttDatas.Where(aa => aa.AttDate == dateTime).ToList();
                List<AttData> _attData = new List<AttData>();
                _attData = ctx.AttDatas.Where(aa => aa.AttDate == dateTime).ToList();
                foreach (var emp in emps)
                {
                    string empDate = emp.EmpID + dateTime.ToString("yyMMdd");
                    if (_attData.Where(aa => aa.EmpDate == empDate).Count() > 0)
                    {
                        try
                        {

                            /////////////////////////////////////////////////////
                            //  Mark Everyone Absent while creating Attendance //
                            /////////////////////////////////////////////////////
                            //Set DUTYCODE = D, StatusAB = true, and Remarks = [Absent]
                            AttData att = _attData.First(aa => aa.EmpDate == empDate);
                            //Reset Flags
                            att.TimeIn = null;
                            att.TimeOut = null;
                            att.Tin0 = null;
                            att.Tout0 = null;
                            att.Tin1 = null;
                            att.Tout1 = null;
                            att.Tin2 = null;
                            att.Tout2 = null;
                            att.Tin3 = null;
                            att.Tout3 = null;
                            att.Tin4 = null;
                            att.Tout4 = null;
                            att.Tin5 = null;
                            att.Tout5 = null;
                            att.Tin6 = null;
                            att.Tout6 = null;
                            att.Tin7 = null;
                            att.Tout7 = null;
                            att.Tin8 = null;
                            att.Tout8 = null;
                            att.StatusP = null;
                            att.StatusDO = null;
                            att.StatusEO = null;
                            att.StatusGZ = null;
                            att.StatusGZOT = null;
                            att.StatusHD = null;
                            att.StatusHL = null;
                            att.StatusIN = null;
                            att.StatusLeave = null;
                            att.StatusLI = null;
                            att.StatusLO = null;
                            att.StatusMN = null;
                            att.StatusOD = null;
                            att.StatusOT = null;
                            att.StatusSL = null;
                            att.WorkMin = null;
                            att.LateIn = null;
                            att.LateOut = null;
                            att.OTMin = null;
                            att.EarlyIn = null;
                            att.EarlyOut = null;
                            att.Remarks = null;
                            att.ShifMin = null;
                            att.SLMin = null;

                            att.AttDate = dateTime.Date;
                            att.DutyCode = "D";
                            att.StatusAB = true;
                            att.Remarks = "[Absent]";
                            if (emp.Shift != null)
                                att.DutyTime = emp.Shift.StartTime;
                            else
                                att.DutyTime = new TimeSpan(07, 45, 00);
                            att.EmpID = emp.EmpID;
                            att.EmpNo = emp.EmpNo;
                            att.EmpDate = emp.EmpID + dateTime.ToString("yyMMdd");
                            att.ShifMin = ProcessSupportFunc.CalculateShiftMinutes(emp.Shift, dateTime.DayOfWeek);
                            //////////////////////////
                            //  Check for Rest Day //
                            ////////////////////////
                            //Set DutyCode = R, StatusAB=false, StatusDO = true, and Remarks=[DO]
                            //Check for 1st Day Off of Shift
                            if (emp.Shift.DaysName.Name == ProcessSupportFunc.ReturnDayOfWeek(dateTime.DayOfWeek))
                            {
                                att.DutyCode = "R";
                                att.StatusAB = false;
                                att.StatusDO = true;
                                att.Remarks = "[DO]";
                            }
                            //Check for 2nd Day Off of shift
                            if (emp.Shift.DaysName1.Name == ProcessSupportFunc.ReturnDayOfWeek(dateTime.DayOfWeek))
                            {
                                att.DutyCode = "R";
                                att.StatusAB = false;
                                att.StatusDO = true;
                                att.Remarks = "[DO]";
                            }
                            //////////////////////////
                            //  Check for Roster   //
                            ////////////////////////
                            //If Roster DutyCode is Rest then change the StatusAB and StatusDO
                            foreach (var roster in _Roster.Where(aa => aa.EmpDate == att.EmpDate))
                            {
                                att.DutyCode = roster.DutyCode.Trim();
                                if (att.DutyCode == "R")
                                {
                                    att.StatusAB = false;
                                    att.StatusDO = true;
                                    att.DutyCode = "R";
                                    att.Remarks = "[DO]";
                                }
                                att.ShifMin = roster.WorkMin;
                                att.DutyTime = roster.DutyTime;
                            }

                            ////New Roster
                            string empCdate = "Emp" + emp.EmpID.ToString() + dateTime.ToString("yyMMdd");
                            string sectionCdate = "Section" + emp.SecID.ToString() + dateTime.ToString("yyMMdd");
                            string crewCdate = "Crew" + emp.CrewID.ToString() + dateTime.ToString("yyMMdd");
                            string crewCdateAlternate = "C" + emp.CrewID.ToString() + dateTime.ToString("yyMMdd");
                            string shiftCdate = "Shift" + emp.ShiftID.ToString() + dateTime.ToString("yyMMdd");
                            if (_NewRoster.Where(aa => aa.CriteriaValueDate == empCdate).Count() > 0)
                            {
                                var roster = _NewRoster.FirstOrDefault(aa => aa.CriteriaValueDate == empCdate);
                                if (roster.WorkMin == 0)
                                {
                                    att.StatusAB = false;
                                    att.StatusDO = true;
                                    att.Remarks = "[DO]";
                                    att.DutyCode = "R";
                                    att.ShifMin = 0;
                                }
                                else
                                {
                                    att.ShifMin = roster.WorkMin;
                                    att.DutyCode = "D";
                                    att.DutyTime = roster.DutyTime;
                                }
                            }
                            else if (_NewRoster.Where(aa => aa.CriteriaValueDate == sectionCdate).Count() > 0)
                            {
                                var roster = _NewRoster.FirstOrDefault(aa => aa.CriteriaValueDate == sectionCdate);
                                if (roster.WorkMin == 0)
                                {
                                    att.StatusAB = false;
                                    att.StatusDO = true;
                                    att.Remarks = "[DO]";
                                    att.DutyCode = "R";
                                    att.ShifMin = 0;
                                }
                                else
                                {
                                    att.ShifMin = roster.WorkMin;
                                    att.DutyCode = "D";
                                    att.DutyTime = roster.DutyTime;
                                }
                            }
                            else if (_NewRoster.Where(aa => aa.CriteriaValueDate == crewCdate).Count() > 0)
                            {
                                var roster = _NewRoster.FirstOrDefault(aa => aa.CriteriaValueDate == crewCdate);
                                if (roster.WorkMin == 0)
                                {
                                    att.StatusAB = false;
                                    att.StatusDO = true;
                                    att.Remarks = "[DO]";
                                    att.DutyCode = "R";
                                    att.ShifMin = 0;
                                }
                                else
                                {
                                    att.ShifMin = roster.WorkMin;
                                    att.DutyCode = "D";
                                    att.DutyTime = roster.DutyTime;
                                }
                            }
                            else if (_NewRoster.Where(aa => aa.CriteriaValueDate == shiftCdate).Count() > 0)
                            {
                                var roster = _NewRoster.FirstOrDefault(aa => aa.CriteriaValueDate == shiftCdate);
                                if (roster.WorkMin == 0)
                                {
                                    att.StatusAB = false;
                                    att.StatusDO = true;
                                    att.Remarks = "[DO]";
                                    att.DutyCode = "R";
                                    att.ShifMin = 0;
                                }
                                else
                                {
                                    att.ShifMin = roster.WorkMin;
                                    att.DutyCode = "D";
                                    att.DutyTime = roster.DutyTime;
                                }
                            }
                            else if (_NewRoster.Where(aa => aa.CriteriaValueDate == crewCdate || aa.CriteriaValueDate
                                    == crewCdateAlternate).Count() > 0)
                            {
                                var roster = _NewRoster.FirstOrDefault(aa => aa.CriteriaValueDate == crewCdate || aa.CriteriaValueDate
                                    == crewCdateAlternate);
                                if (roster.WorkMin == 0)
                                {
                                    att.StatusAB = false;
                                    att.StatusDO = true;
                                    att.Remarks = "[DO]";
                                    att.DutyCode = "R";
                                    att.ShifMin = 0;
                                }
                                else
                                {
                                    att.ShifMin = roster.WorkMin;
                                    att.DutyCode = "D";
                                    att.DutyTime = roster.DutyTime;
                                }
                            }
                            //////////////////////////
                            //  Check for GZ Day //
                            ////////////////////////
                            //Set DutyCode = R, StatusAB=false, StatusGZ = true, and Remarks=[GZ]
                            if (emp.Shift.GZDays == true)
                            {
                                if (context.Holidays.Where(hol => hol.HolDate == dateTime).Count() > 0)
                                {
                                    att.DutyCode = "G";
                                    att.StatusAB = false;
                                    att.StatusGZ = true;
                                    att.Remarks = "[GZ]";
                                    att.ShifMin = 0;
                                }
                            }
                            ////////////////////////////
                            //TODO Check for Job Card//
                            //////////////////////////

                            ////////////////////////////
                            //  Check for Short Leave//
                            //////////////////////////
                            foreach (var sLeave in _lvShort.Where(aa => aa.EmpDate == att.EmpDate))
                            {
                                if (_lvShort.Where(lv => lv.EmpDate == att.EmpDate).Count() > 0)
                                {
                                    att.StatusSL = true;
                                    att.StatusAB = null;
                                    att.DutyCode = "L";
                                    att.Remarks = "[Short Leave]";
                                }
                            }

                            //////////////////////////
                            //   Check for Leave   //
                            ////////////////////////
                            //Set DutyCode = R, StatusAB=false, StatusGZ = true, and Remarks=[GZ]
                            foreach (var Leave in _LvData)
                            {
                                var _Leave = _LvData.Where(lv => lv.EmpDate == att.EmpDate && lv.HalfLeave != true);
                                if (_Leave.Count() > 0)
                                {
                                    att.StatusLeave = true;
                                    att.StatusAB = false;
                                    att.DutyCode = "L";
                                    att.StatusDO = false;
                                    if (Leave.LvCode == "A")
                                        att.Remarks = "[CL]";
                                    else if (Leave.LvCode == "B")
                                        att.Remarks = "[AL]";
                                    else if (Leave.LvCode == "C")
                                        att.Remarks = "[SL]";
                                    else
                                        att.Remarks = "[" + _Leave.FirstOrDefault().LvType.LvDesc + "]";
                                }
                                else
                                {
                                    att.StatusLeave = false;
                                }
                            }

                            //////////////////////////
                            //Check for Half Leave///
                            /////////////////////////
                            var _HalfLeave = _LvData.Where(lv => lv.EmpDate == att.EmpDate && lv.HalfLeave == true);
                            if (_HalfLeave.Count() > 0)
                            {
                                att.StatusLeave = true;
                                att.StatusAB = false;
                                att.DutyCode = "L";
                                att.StatusHL = true;
                                att.StatusDO = false;
                                if (_HalfLeave.FirstOrDefault().LvCode == "A")
                                    att.Remarks = "[H-CL]";
                                else if (_HalfLeave.FirstOrDefault().LvCode == "B")
                                    att.Remarks = "[S-AL]";
                                else if (_HalfLeave.FirstOrDefault().LvCode == "C")
                                    att.Remarks = "[H-SL]";
                                else
                                    att.Remarks = "[Half Leave]";
                            }
                            else
                            {
                                att.StatusLeave = false;
                            }
                            ctx.SaveChanges();
                        }
                        catch (Exception ex)
                        {
                              }
                    }
                }
                ctx.Dispose();
            }
        }
Exemplo n.º 12
0
        public void GenerateLeaveQuotaAttributes(List<Emp> _emp, List<LvType> _lvType,int AL,int CL,int SL)
        {
            using (var ctx = new TAS2013Entities())
            {
                foreach (var emp in _emp)
                {
                    List<LvConsumed> lvcon = ctx.LvConsumeds.Where(aa => aa.EmpID == emp.EmpID).ToList();
                    foreach (var lvType in _lvType)
                    {
                        string empLvType = emp.EmpID.ToString()+lvType.LvType1;
                        List<LvConsumed> lvConsumedlvType = new List<LvConsumed>();
                        if (lvcon.Where(aa => aa.EmpLvType == empLvType).Count() == 0)
                        {
                            string empType = emp.EmpID.ToString() + lvType.LvType1;
                            LvConsumed lvConsumed = new LvConsumed();
                            lvConsumed.EmpLvType = empType;
                            lvConsumed.EmpID = emp.EmpID;
                            lvConsumed.LeaveType = lvType.LvType1;
                            lvConsumed.JanConsumed = 0;
                            lvConsumed.FebConsumed = 0;
                            lvConsumed.MarchConsumed = 0;
                            lvConsumed.AprConsumed = 0;
                            lvConsumed.MayConsumed = 0;
                            lvConsumed.JuneConsumed = 0;
                            lvConsumed.JulyConsumed = 0;
                            lvConsumed.AugustConsumed = 0;
                            lvConsumed.SepConsumed = 0;
                            lvConsumed.OctConsumed = 0;
                            lvConsumed.NovConsumed = 0;
                            lvConsumed.DecConsumed = 0;
                            lvConsumed.CompanyID = emp.CompanyID;
                            switch (lvType.LvType1)
                            {
                                case "A"://CL
                                    lvConsumed.TotalForYear = CL;
                                    lvConsumed.YearRemaining = CL;
                                    lvConsumed.GrandTotal = CL;
                                    lvConsumed.GrandTotalRemaining = CL;
                                    break;
                                case "B"://AL
                                    lvConsumed.TotalForYear = AL;
                                    lvConsumed.YearRemaining = AL;
                                    lvConsumed.GrandTotal = AL;
                                    lvConsumed.GrandTotalRemaining = AL;
                                    break;
                                case "C"://SL
                                    lvConsumed.TotalForYear = SL;
                                    lvConsumed.YearRemaining = SL;
                                    lvConsumed.GrandTotal = SL;
                                    lvConsumed.GrandTotalRemaining = SL;
                                    break;
                            }
                            ctx.LvConsumeds.Add(lvConsumed);
                            ctx.SaveChanges();
                        }
                    }
                }

                ctx.Dispose();
            }
        }
Exemplo n.º 13
0
        private void FillDataTable(List<EmpView> _EmpView, DateTime dateFrom, DateTime dateTo)
        {
            using (var context = new TAS2013Entities())
            {
                context.Database.CommandTimeout = 3000;
                _PrEmps = context.ViewAttDatas.Where(aa => aa.AttDate >= dateFrom && aa.AttDate <= dateTo).ToList();
                foreach (var _Employee in _EmpView)
                {
                    _PrEmp = _PrEmps.Where(aa => aa.EmpID == _Employee.EmpID).ToList();
                    if (_Employee.FpID != null)
                    {
                        TDays = _PrEmp.Count();
                        PCount = _PrEmp.Where(aa => aa.TimeIn != null).Count();
                        ACount = _PrEmp.Where(aa => (aa.TimeIn == null && aa.TimeOut == null) && (aa.DutyCode == "D") && aa.StatusAB == true).Count();
                        LCount = _PrEmp.Where(aa => aa.DutyCode == "L").Count();
                        EarlyInCount = _PrEmp.Where(aa => aa.EarlyIn >= 0).Count();
                        EarlyOutCount = _PrEmp.Where(aa => aa.EarlyOut >= 0).Count();
                        TimeSpan ts = new TimeSpan(9,0,0);
                        LateCCount = _PrEmp.Where(aa => (aa.LateIn > 0 && aa.StatusLI == true && aa.WorkMin<480)).Count();
                        ExtraCount = _PrEmp.Where(aa => aa.OTMin > 0).Count();
                        WrkDaysCount = _PrEmp.Where(aa => aa.DutyCode == "D").Count();
                        EmpSummDT.Rows.Add(_Employee.FpID, _Employee.EmpName, _Employee.DesignationName, _Employee.DeptName, _Employee.SectionName, TDays, PCount, ACount, LCount, LateCCount, EarlyOutCount, EarlyInCount, ExtraCount, _Employee.GradeName, WrkDaysCount);
                        _PrEmp.Clear();
                    }

                }
                context.Dispose();
            }
            //LoadReport("~/Reports/Reports/RptSummaryW.rdlc", _SummaryEmp);
        }
Exemplo n.º 14
0
 private bool AddJCVisitToAttData(JobCardTime jcTime)
 {
     bool check = false;
     try
     {
         //Normal Duty
         using (var context = new TAS2013Entities())
         {
             string empDate = jcTime.EmpID.ToString() + jcTime.DutyDate.Value.ToString("yyMMdd");
             AttData _attdata = context.AttDatas.FirstOrDefault(aa => aa.EmpDate == empDate);
             if (_attdata != null)
             {
                 _attdata.DutyCode = "D";
                 _attdata.StatusAB = false;
                 _attdata.StatusDO = false;
                 _attdata.StatusLeave = false;
                 _attdata.StatusP = true;
                 _attdata.StatusLI = false;
                 _attdata.StatusEO = false;
                 if (_attdata.ShifMin > 0)
                     _attdata.ShifMin = (short)(_attdata.ShifMin - (short)jcTime.TTime.Value.TotalMinutes);
                 else
                     _attdata.ShifMin = (short)jcTime.TTime.Value.TotalMinutes;
                 _attdata.Remarks = "[ODT-Visit]";
                 _attdata.EarlyIn = null;
                 _attdata.EarlyOut = null;
                 _attdata.LateIn = null;
                 _attdata.LateOut = null;
                 _attdata.OTMin = null;
                 _attdata.StatusEI = null;
                 _attdata.StatusEO = null;
                 _attdata.StatusLI = null;
                 _attdata.StatusLO = null;
                 _attdata.StatusP = true;
             }
             context.SaveChanges();
             if (context.SaveChanges() > 0)
                 check = true;
             context.Dispose();
         }
     }
     catch (Exception ex)
     {
     }
     return check;
 }
Exemplo n.º 15
0
 //Add Job Card To Job Card Data
 private void AddJobCardAppToJobCardData()
 {
     using (var ctx = new TAS2013Entities())
     {
         List<JobCardApp> _jobCardApp = new List<JobCardApp>();
         _jobCardApp = ctx.JobCardApps.Where(aa => aa.Status == false).ToList();
         User LoggedInUser = Session["LoggedUser"] as User;
         List<Emp> _Emp = new List<Emp>();
         foreach (var jcApp in _jobCardApp)
         {
             jcApp.Status = true;
             switch (jcApp.JobCardCriteria)
             {
                 case "S":
                     short _shiftID = Convert.ToByte(jcApp.CriteriaData);
                     _Emp = ctx.Emps.Where(aa => aa.ShiftID == _shiftID && aa.CompanyID == LoggedInUser.CompanyID).ToList();
                     break;
                 case "C":
                     short _crewID = Convert.ToByte(jcApp.CriteriaData);
                     _Emp = ctx.Emps.Where(aa => aa.CrewID == _crewID && aa.CompanyID == LoggedInUser.CompanyID).ToList();
                     break;
                 case "T":
                     short _secID = Convert.ToByte(jcApp.CriteriaData);
                     _Emp = ctx.Emps.Where(aa => aa.SecID == _secID && aa.CompanyID == LoggedInUser.CompanyID).ToList();
                     break;
                 case "E":
                     int _EmpID = (int)jcApp.CriteriaData;
                     _Emp = ctx.Emps.Where(aa => aa.EmpID == _EmpID).ToList();
                     break;
             }
             foreach (var selectedEmp in _Emp)
             {
                 AddJobCardData(selectedEmp, (short)jcApp.CardType, jcApp.DateStarted.Value, jcApp.DateEnded.Value);
             }
         }
         ctx.SaveChanges();
         ctx.Dispose();
     }
 }