protected void searchButton_Click(object sender, EventArgs e) { EmployeeAttendanceViewModel model = new EmployeeAttendanceViewModel(); model.FromDate = DateTime.Parse(fromTextBox.Text); model.ToDate = DateTime.Parse(toTextBox.Text); model.EmployeeId = int.Parse(employeeIdDropdownList.SelectedItem.Value.ToString()); EmployeeId = model.EmployeeId; DataSet data = _employeeUserManager.GetEmployeeAttendances(model); attendanceList.DataSource = data; attendanceList.DataBind(); DataTable firstTable = data.Tables[0]; foreach (DataRow row in firstTable.Rows) { int completed = (int)row["EmployeeId"]; if (!string.IsNullOrEmpty(completed.ToString())) { Count++; } } if (Count > 0) { salaryCalculator.CssClass = ""; present.Text = Count.ToString(); } }
public DataSet GetEmployeeAttendances(EmployeeAttendanceViewModel model) { DataSet data = new DataSet(); string query = "select * from EmployeeAttendance WHERE Date>= '" + model.FromDate + "' and Date<= '" + model.ToDate + "'"; SqlDataAdapter adapter = new SqlDataAdapter(query, _connection); _connection.Open(); adapter.Fill(data); return(data); }
/// <summary> /// Calculates employee attendance for the given employee and month to be used in statistics view /// </summary> /// <param name="username"></param> /// <param name="month"></param> /// <returns><see cref="EmployeeAttendanceViewModel"/></returns> public async Task <EmployeeAttendanceViewModel> EmployeeAttendance(string username, int month) { var user = await _employeeRepository.GetEmployeeWithEventsAsync(username); var events = user.EmployeeEvent.Where(e => e.Start.Value.Month == month && e.Start.Value.Year == DateTime.Now.Year); EmployeeAttendanceViewModel model = new EmployeeAttendanceViewModel { WorkDays = events.Where(e => e.Status == WorkStatus.Work).Count(), AbsentDays = events.Where(e => e.Status == WorkStatus.Absent).Count(), Holidays = events.Where(e => e.Status == WorkStatus.Holiday).Count(), Months = MonthYearArrays.Month, Month = CultureInfo.CreateSpecificCulture("en-GB").DateTimeFormat.GetMonthName(month) }; return(model); }
//details public async Task <IActionResult> AttendanceDetails(long id) { List <EmployeeAttendanceViewModel> model = new List <EmployeeAttendanceViewModel>(); var x = await _context.EmployeeAttendances.Include(b => b.Employee).Include(b => b.AttendanceActionType).Include(b => b.PayrollComponentType) .Where(b => b.AttendanceId == id).ToListAsync(); foreach (var emp in x.Select(b => b.Employee).Distinct()) { EmployeeAttendanceViewModel item = new EmployeeAttendanceViewModel(); item.Id = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").Id; item.EmployeeId = emp.Id; item.EmployeeName = emp.FirstName + " " + emp.FatherName + " " + emp.FamilyName; item.RequiredMinutes = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").RequiredMinutes; item.Overtime1Minutes = 0; item.Overtime2Minutes = 0; item.WeekendMinutes = 0; var x1 = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "OT1"); if (x1 != null) { item.Overtime1Minutes = x1.TotalMinutes; } x1 = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "OT2"); if (x1 != null) { item.Overtime2Minutes = x1.TotalMinutes; } x1 = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "WEEKEND"); if (x1 != null) { item.WeekendMinutes = x1.TotalMinutes; } item.CompliancePercentage = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").CompliancePercentage; item.AttendanceActionTypeId = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").AttendanceActionTypeId; item.AttendanceActionTypeName = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").AttendanceActionType.Name; model.Add(item); } return(PartialView("_AttendanceDetails", model)); }
public async Task <IActionResult> OnGetAsync(DateTime?dateTime) { if (_accountManage.IsLoggedIn != true || _accountManage.User.UserType != UserType.Admin) { return(RedirectToPage("/LoginPage")); } ViewData["User_Name"] = _accountManage.User.Name; ViewData.Add("ProfileImg", _accountManage.User.ProfileImageSrc); EmployeeAttendanceViews = new List <EmployeeAttendanceViewModel>(); if (dateTime != null) { var searchDateMonth = (DateTime)dateTime; var today = DateTime.Today; TotalDays = DateTime.DaysInMonth(today.Year, today.Month); var employess = await _db.Users.Where(a => a.UserType == UserType.Employee && a.Status == true && a.JoiningDate != null).Include(a => a.Attendances).AsNoTracking().ToListAsync(); var startMonthDate = new DateTime(searchDateMonth.Year, searchDateMonth.Month, 1); var endMonthDate = new DateTime(searchDateMonth.Year, searchDateMonth.Month, TotalDays); if (employess != null) { if (employess.Count > 0) { foreach (var emp in employess) { if (((DateTime)emp.JoiningDate).CompareTo(endMonthDate) <= 0) { var empVM = new EmployeeAttendanceViewModel(); empVM.Attendances = new List <Attendance>(); empVM.Name = emp.Name; if (emp.Attendances.Count > 0) { for (int i = 0; i < TotalDays; i++) { var specificDay = new DateTime(startMonthDate.Year, startMonthDate.Month, i + 1); if (((DateTime)emp.JoiningDate).CompareTo(specificDay) > 0) { empVM.Attendances.Add(new Attendance { Status = AttendanceStatus.NotJoined }); } else { var att = emp.Attendances.SingleOrDefault(a => a.Day == i + 1 && a.Month == startMonthDate.Month && a.Year == startMonthDate.Year); if (att != null) { empVM.Attendances.Add(new Attendance { Status = att.Status }); } else { empVM.Attendances.Add(new Attendance { Status = AttendanceStatus.NotJoined }); } } } } else { for (int i = 0; i < TotalDays; i++) { empVM.Attendances.Add(new Attendance { Status = AttendanceStatus.NotJoined }); } } EmployeeAttendanceViews.Add(empVM); } } } } } else { TotalDays = 0; } return(Page()); }
public DataSet GetEmployeeAttendances(EmployeeAttendanceViewModel model) { return(_employeeUserGetWay.GetEmployeeAttendances(model)); }