public static string LeaveTypeFinder(int EmpId, DateTime day) { MEAPSDbEntities context = new MEAPSDbEntities(); LeaveApplication la = context.LeaveApplications.ToList().SingleOrDefault(x => x.EmployeeEmpId == EmpId && x.Date == day); return(la.Type); }
public static void Clean() { MEAPSDbEntities context = new MEAPSDbEntities(); var query = from x in context.CSVDatas select x; List <CSVData> unprocessed = query.ToList(); List <Attendance> processed = new List <Attendance>(); foreach (CSVData item in unprocessed) { TimeSpan inTime = Convert.ToDateTime(item.In1).TimeOfDay; TimeSpan outTime = Convert.ToDateTime(getOutTime(item)).TimeOfDay; DateTime date = DateTime.ParseExact(item.Date, "dd/MM/yyyy", CultureInfo.InvariantCulture); int empid = Convert.ToInt32(item.EmpId); Attendance record = new Attendance(); record.Date = date; record.InTime = inTime; record.OutTime = outTime; record.Employee_EmpId = empid; processed.Add(record); } foreach (Attendance item in processed) { context.Attendances.Add(item); context.SaveChanges(); } }
static void Main(string[] args) { MEAPSDbEntities context = new MEAPSDbEntities(); Console.WriteLine("Tuples to insert:"); int n = Int32.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { Holiday h = new Holiday(); Console.Write("Date:"); string dt = Console.ReadLine(); h.Date = Convert.ToDateTime(dt); Console.Write("Comment:"); h.Comment = Console.ReadLine(); context.Holidays.Add(h); context.SaveChanges(); } Console.Write("Date to check: "); string dt1 = Console.ReadLine(); DateTime dt2 = Convert.ToDateTime(dt1); bool flag = WorkingDayChecker.IsWorkingDay(dt2); Console.WriteLine(flag.ToString()); Console.ReadKey(); }
public static List <MonthlyLeaveStatus> Calculate(int Date) { List <MonthlyLeaveStatus> ls_mon = new List <MonthlyLeaveStatus>(); MEAPSDbEntities context = new MEAPSDbEntities(); foreach (var emp in context.Employees) { double sumCL = 0, sumML = 0, sumEL = 0, sumLWP = 0; List <LeaveStatus> ls_emp = (from x in context.LeaveStatuses where x.EmployeeEmpId == emp.EmpId select x).ToList(); for (int i = 1; i <= 12; i++) { List <LeaveStatus> ls_emp_mon = (from x in ls_emp where x.Date.Month == i && x.Date.Year == Date select x).ToList(); sumCL = ls_emp_mon.Sum(x => ((x.FCL ?? 0) + (0.5 * (x.HCL ?? 0)) + (0.25 * ((x.QCL_In ?? 0) + (x.QCL_Out ?? 0))))); sumML = ls_emp_mon.Sum(x => ((x.FML ?? 0) + (0.5 * (x.HML ?? 0)))); sumEL = ls_emp_mon.Sum(x => (x.EL ?? 0)); sumLWP = ls_emp_mon.Sum(x => x.LWP); MonthlyLeaveStatus mls = new MonthlyLeaveStatus(); mls.EmployeeId = emp.EmpId; mls.Month = System.Globalization.DateTimeFormatInfo.CurrentInfo.GetMonthName(i); mls.CL = sumCL; mls.ML = sumML; mls.EL = sumEL; ls_mon.Add(mls); } } return(ls_mon); }
public static void NonRecordedAttendance(int EmpId, DateTime day) { // 1. Check ExceptionAttendance for employee id. // 2. If employee exists, mark employee as present // 3. Else check for applications, mark employee as absent based on that. MEAPSDbEntities context = new MEAPSDbEntities(); ExceptionAttendance ea = context.ExceptionAttendances.SingleOrDefault(x => (x.EmpId == EmpId) && (x.Date == day)); if (ea != null) // if in exception attendance, mark as full present. { LeaveStatus ls = new LeaveStatus(); ls.Date = day; ls.EmployeeEmpId = EmpId; ls.PresenceState = "FP"; context.LeaveStatuses.Add(ls); context.SaveChanges(); } else // else check for applications { LeaveStatus ls = new LeaveStatus(); ls.Date = day; ls.EmployeeEmpId = EmpId; ls.PresenceState = "A"; LeaveApplication la = context.LeaveApplications.SingleOrDefault(x => (x.Date == day) && (x.EmployeeEmpId == EmpId)); if (la != null) { string type = la.Type; switch (type) { case "CL": ls.FCL = 1; break; case "ML": ls.FML = 1; break; case "EL": ls.EL = 1; break; default: break; } } else { ls.FCL = 1; } ls = LeaveDeduction.Deduct(ls); context.LeaveStatuses.Add(ls); context.SaveChanges(); } }
public static void RecordedAttendance(int EmpId, DateTime day, TimeSpan EntryTime, TimeSpan ExitTime) { MEAPSDbEntities context = new MEAPSDbEntities(); TimeSpan DefaultEntryTime = Convert.ToDateTime("9:50 AM").TimeOfDay; TimeSpan DefaultExitTime = Convert.ToDateTime("5:25 PM").TimeOfDay; LeaveStatus ls = new LeaveStatus(); ls.Date = day; ls.EmployeeEmpId = EmpId; ls = Calculate(ls, EntryTime, ExitTime, day); ls = LeaveDeduction.Deduct(ls); context.LeaveStatuses.Add(ls); context.SaveChanges(); }
public static void Find(int EmpId, DateTime Day) { MEAPSDbEntities context = new MEAPSDbEntities(); Attendance at = context.Attendances.SingleOrDefault(x => (x.Date == Day) && (x.Employee_EmpId == EmpId)); if (at == null) { DailyAttendanceHandler.NonRecordedAttendance(EmpId, Day); } else { TimeSpan EntryTime = at.InTime; TimeSpan ExitTime = at.OutTime; DailyAttendanceHandler.RecordedAttendance(EmpId, Day, EntryTime, ExitTime); } }
public static bool Find(int EmpId, DateTime date) { MEAPSDbEntities context = new MEAPSDbEntities(); var query = from x in context.LeaveApplications where ((x.EmployeeEmpId == EmpId) && (x.Date == date)) select x; if (query.ToList().Count == 0) { return(false); } else { return(true); } }
public static void calculate(DateTime StartDate, DateTime EndDate) { MEAPSDbEntities context = new MEAPSDbEntities(); foreach (Employee emp in context.Employees) { if ((emp.JoiningDate >= StartDate) && (emp.JoiningDate <= EndDate)) { StartDate = emp.JoiningDate; } foreach (DateTime day in ListOfDays.EachDay(StartDate, EndDate)) { if (WorkingDayChecker.IsWorkingDay(day)) { AttendanceFinder.Find(emp.EmpId, day); } } } }
public static bool IsWorkingDay(DateTime day) { bool flag = true; MEAPSDbEntities context = new MEAPSDbEntities(); var query = from x in context.Holidays select x.Date; List <DateTime> ListOfHolidays = query.ToList(); if (ListOfHolidays.Contains(day)) { flag = false; } else if ((day.DayOfWeek == DayOfWeek.Saturday) || (day.DayOfWeek == DayOfWeek.Sunday)) { flag = false; } else { flag = true; } return(flag); }
public static LeaveStatus Deduct(LeaveStatus ls) { MEAPSDbEntities context = new MEAPSDbEntities(); int EmpId = ls.EmployeeEmpId; Employee em = context.Employees.SingleOrDefault(x => x.EmpId == EmpId); double reqCL = Convert.ToDouble(((ls.QCL_In ?? 0 + ls.QCL_Out ?? 0) * 0.25) + (ls.HCL ?? 0) * 0.5 + (ls.FCL ?? 0)); double reqML = Convert.ToDouble((ls.FML ?? 0) + (ls.HML ?? 0) * 0.5); double reqEL = Convert.ToDouble(ls.EL ?? 0); double remCL = em.CL; double remML = em.ML; double remEL = em.EL; double LWP = em.LWP; #region DedcutionLogic if (reqCL > remCL) { if (reqCL > remML) { if (reqCL > remEL) { LWP += reqCL; ls.LWP = reqCL; ls.QCL_In = null; ls.QCL_Out = null; ls.HCL = null; ls.FCL = null; } else { remEL -= reqCL; } } else { remML -= reqCL; } } else { remCL -= reqCL; } if (reqML > remML) { if (reqML > remEL) { LWP += reqML; ls.LWP = reqML; ls.HML = null; ls.FML = null; } else { remEL -= reqML; } } else { remML -= reqML; } if (reqEL > remEL) { LWP += reqEL; ls.LWP = reqEL; ls.EL = null; } else { remEL -= reqML; } #endregion em.CL = remCL; em.ML = remML; em.EL = remML; em.LWP = LWP; context.SaveChanges(); return(ls); }
static void Main(string[] args) { LeaveStatus ls = new LeaveStatus(); Console.WriteLine("EmpId:"); int empid = Int32.Parse(Console.ReadLine()); ls.EmployeeEmpId = empid; Console.WriteLine("Date:"); DateTime dt = Convert.ToDateTime(Console.ReadLine()); ls.Date = dt; Console.WriteLine("Entry Time:"); TimeSpan en = Convert.ToDateTime(Console.ReadLine()).TimeOfDay; Console.WriteLine("Exit Time:"); TimeSpan ex = Convert.ToDateTime(Console.ReadLine()).TimeOfDay; Console.WriteLine("1: Enter leave application details. \n2. Delete. \n3. Continue..."); int n = Int32.Parse(Console.ReadLine()); if (n == 1) { MEAPSDbEntities context = new MEAPSDbEntities(); LeaveApplication la = new LeaveApplication(); Console.WriteLine("Enter type:"); string type = Console.ReadLine(); la.Date = dt; la.EmployeeEmpId = empid; la.Type = type; la.Remarks = "test"; context.LeaveApplications.Add(la); context.SaveChanges(); } else if (n == 2) { MEAPSDbEntities context = new MEAPSDbEntities(); LeaveApplication la = context.LeaveApplications.SingleOrDefault(x => (x.EmployeeEmpId == empid) && (x.Date == dt)); context.LeaveApplications.Remove(la); context.SaveChanges(); } Console.WriteLine("1: Enter time exception details. \n2. Delete. \n3. Continue..."); n = Int32.Parse(Console.ReadLine()); if (n == 1) { MEAPSDbEntities context = new MEAPSDbEntities(); TimeException te = new TimeException(); Console.WriteLine("Entry Time:"); en = Convert.ToDateTime(Console.ReadLine()).TimeOfDay; Console.WriteLine("Exit Time:"); ex = Convert.ToDateTime(Console.ReadLine()).TimeOfDay; te.Date = dt; te.InTime = en; te.OutTime = ex; context.TimeExceptions.Add(te); context.SaveChanges(); } if (n == 2) { MEAPSDbEntities context = new MEAPSDbEntities(); TimeException te = context.TimeExceptions.SingleOrDefault(x => x.Date == dt); context.TimeExceptions.Remove(te); context.SaveChanges(); } ls = Calculate(ls, en, ex, dt); Console.WriteLine("Date: " + ls.Date.ToShortDateString()); Console.WriteLine("Employee ID: " + ls.EmployeeEmpId); Console.WriteLine("Presence: " + ls.PresenceState); Console.WriteLine("QCL In: " + ls.QCL_In); Console.WriteLine("QCL Out: " + ls.QCL_Out); Console.WriteLine("HCL: " + ls.HCL); Console.WriteLine("FCL: " + ls.FCL); Console.WriteLine("HML: " + ls.HML); Console.WriteLine("FML: " + ls.FML); Console.WriteLine("EL: " + ls.EL); Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public static LeaveStatus Calculate(LeaveStatus ls, TimeSpan EntryTime, TimeSpan ExitTime, DateTime day) { TimeSpan nineFiftyAM = Convert.ToDateTime("09:50 AM").TimeOfDay; TimeSpan tenAM = Convert.ToDateTime("10:00 AM").TimeOfDay; TimeSpan tenThirtyAM = Convert.ToDateTime("10:30 AM").TimeOfDay; TimeSpan oneThirtyPM = Convert.ToDateTime("01:30 PM").TimeOfDay; TimeSpan threeThirtyPM = Convert.ToDateTime("03:30 PM").TimeOfDay; TimeSpan fiveTwentyFivePM = Convert.ToDateTime("05:25 PM").TimeOfDay; string type = ""; if (LeaveApplicationFinder.Find(ls.EmployeeEmpId, day)) { type = LeaveTypeFinder(ls.EmployeeEmpId, day); } MEAPSDbEntities context = new MEAPSDbEntities(); TimeException te = context.TimeExceptions.SingleOrDefault(x => x.Date == day); if ((te != null) && (EntryTime <= te.InTime) && (ExitTime >= te.OutTime)) { ls.PresenceState = "FP"; } else { if (EntryTime <= nineFiftyAM) { if (ExitTime <= oneThirtyPM) { switch (type) { case "CL": ls.FCL = 1; break; case "ML": ls.FML = 1; break; case "EL": ls.EL = 1; break; default: ls.FCL = 1; break; } ls.PresenceState = "PP"; } else if ((ExitTime > oneThirtyPM) && (ExitTime <= threeThirtyPM)) { switch (type) { case "CL": ls.HCL = 1; break; case "ML": ls.HML = 1; break; default: ls.HCL = 1; break; } ls.PresenceState = "PP"; } else if ((ExitTime > threeThirtyPM) && (ExitTime <= fiveTwentyFivePM)) { ls.QCL_Out = 1; ls.PresenceState = "PP"; } else { ls.PresenceState = "FP"; } } else if ((EntryTime > nineFiftyAM) && (EntryTime <= tenAM)) { if (ExitTime <= oneThirtyPM) { switch (type) { case "CL": ls.FCL = 1; break; case "ML": ls.FML = 1; break; case "EL": ls.EL = 1; break; default: ls.FCL = 1; break; } ls.PresenceState = "PP"; } else if ((ExitTime > oneThirtyPM) && (ExitTime <= threeThirtyPM)) { ls.QCL_In = 1; if (type == "ML") { ls.HML = 1; } else { ls.HCL = 1; } ls.PresenceState = "PP"; } else if ((ExitTime > threeThirtyPM) && (ExitTime <= fiveTwentyFivePM)) { ls.QCL_In = 1; ls.QCL_Out = 1; ls.PresenceState = "PP"; } else { ls.QCL_In = 1; ls.PresenceState = "PP"; } } else if ((EntryTime > tenAM) && (EntryTime <= tenThirtyAM)) { if (ExitTime <= oneThirtyPM) { switch (type) { case "CL": ls.FCL = 1; break; case "ML": ls.FML = 1; break; case "EL": ls.EL = 1; break; default: ls.FCL = 1; break; } ls.PresenceState = "PP"; } else if ((ExitTime > oneThirtyPM) && (ExitTime <= threeThirtyPM)) { ls.QCL_In = 1; if (type == "ML") { ls.HML = 1; } else { ls.HCL = 1; } ls.PresenceState = "PP"; } else if ((ExitTime > threeThirtyPM) && (ExitTime <= fiveTwentyFivePM)) { ls.QCL_In = 1; ls.QCL_Out = 1; ls.PresenceState = "PP"; } else { ls.QCL_In = 1; ls.PresenceState = "PP"; } } else if ((EntryTime > tenThirtyAM) && (EntryTime <= oneThirtyPM)) { if (ExitTime < fiveTwentyFivePM) { switch (type) { case "CL": ls.FCL = 1; break; case "ML": ls.FML = 1; break; case "EL": ls.EL = 1; break; default: ls.FCL = 1; break; } ls.PresenceState = "PP"; } else { if (type == "ML") { ls.HML = 1; } else { ls.HCL = 1; } ls.PresenceState = "PP"; } } else //(EntryTime >= oneThirtyPM) { switch (type) { case "CL": ls.FCL = 1; break; case "ML": ls.FML = 1; break; case "EL": ls.EL = 1; break; default: ls.FCL = 1; break; } ls.PresenceState = "PP"; } } return(ls); }