public JsonResult AttendanceSummary(int schoolId, int year, int month, int day) { var attendanceListObj = this.employeeAttendanceService.GetAllEmployeeAttendance().Where(x => x.SchoolId == schoolId && x.Date.Date == DateTime.UtcNow.Date); var attendanceSummaryListObj = this.employeeAttendanceSummaryService.GetAllEmployeeAttendanceSummary().Where(x => x.SchoolId == schoolId && x.Year == year && x.Month == month); SchoolAttendanceSummaryModel schoolAttendanceSummary = new SchoolAttendanceSummaryModel(); List <EmployeeAttendanceSummaryModel> attendanceSummaryVMList = new List <EmployeeAttendanceSummaryModel>(); int TotalEmployee = attendanceSummaryListObj.Count(); int PresentEmployee = 0; int AbsentEmployee = 0; int LeaveEmployee = 0; int OnDutyEmployee = 0; int InTrainingEmployee = 0; foreach (var attendanceSummaryObj in attendanceSummaryListObj) { PresentEmployee += CountDateAttendance(attendanceSummaryObj, day, "P"); PresentEmployee += CountDateAttendance(attendanceSummaryObj, day, "LP"); AbsentEmployee += CountDateAttendance(attendanceSummaryObj, day, "A"); AbsentEmployee += CountDateAttendance(attendanceSummaryObj, day, null); LeaveEmployee += CountDateAttendance(attendanceSummaryObj, day, "LA"); OnDutyEmployee += CountDateAttendance(attendanceSummaryObj, day, "D"); InTrainingEmployee += CountDateAttendance(attendanceSummaryObj, day, "T"); attendanceSummaryVMList.Add(PrepareAttendanceSummeryModel(attendanceSummaryObj)); } return(Json(new SchoolAttendanceSummaryModel { TotalEmployee = TotalEmployee, PresentEmployee = PresentEmployee, AbsentEmployee = AbsentEmployee, LeaveEmployee = LeaveEmployee, OnDutyEmployee = OnDutyEmployee, InTrainingEmployee = InTrainingEmployee, AttendenceList = attendanceSummaryVMList }, JsonRequestBehavior.AllowGet)); }
public JsonResult SchoolAttendanceSummary(int divisionId, int districtId, int upazilaId) { DateTime toDay = DateTime.Today; var schoolListObj = this.schoolService.GetAllSchool().Where(x => x.Id > 0); if (upazilaId != 0) { schoolListObj = schoolListObj.Where(x => x.UpazilaId == upazilaId); } else if (districtId != 0) { schoolListObj = schoolListObj.Where(x => x.Upazila.DistrictId == districtId); } else if (divisionId != 0) { schoolListObj = schoolListObj.Where(x => x.Upazila.District.DivisionId == divisionId); } List <SchoolAttendanceSummaryModel> schoolVMList = new List <SchoolAttendanceSummaryModel>(); int TotalEmployee = 0; int MaleEmployee = 0; int FemaleEmployee = 0; int PresentEmployee = 0; int LatePresentEmployee = 0; int AbsentEmployee = 0; int EarlyOutEmployee = 0; int EarlyOutLatePresentEmployee = 0; int LeaveEmployee = 0; int OnDutyEmployee = 0; int InTrainingEmployee = 0; foreach (var school in schoolListObj) { var attendanceSummaryListObj = this.employeeAttendanceSummaryService.GetAllEmployeeAttendanceSummary().Where(x => x.SchoolId == school.Id && x.Year == toDay.Year && x.Month == toDay.Month); SchoolAttendanceSummaryModel schoolAttendanceSummary = new SchoolAttendanceSummaryModel(); schoolAttendanceSummary.SchoolId = school.Id; schoolAttendanceSummary.Code = school.Code; schoolAttendanceSummary.Name = school.Name; schoolAttendanceSummary.TotalEmployee = school.EmploymentHistories.Where(x => x.DateTo == null).Count(); schoolAttendanceSummary.MaleEmployee = school.EmploymentHistories.Where(x => x.DateTo == null && x.Employee.Gender == "Male").Count(); schoolAttendanceSummary.FemaleEmployee = school.EmploymentHistories.Where(x => x.DateTo == null && x.Employee.Gender == "Female").Count(); schoolAttendanceSummary.PresentEmployee = 0; schoolAttendanceSummary.LatePresentEmployee = 0; schoolAttendanceSummary.AbsentEmployee = 0; schoolAttendanceSummary.EarlyOutEmployee = 0; schoolAttendanceSummary.EarlyOutLatePresentEmployee = 0; schoolAttendanceSummary.LeaveEmployee = 0; schoolAttendanceSummary.OnDutyEmployee = 0; schoolAttendanceSummary.InTrainingEmployee = 0; foreach (var attendanceSummaryObj in attendanceSummaryListObj) { schoolAttendanceSummary.PresentEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "P"); schoolAttendanceSummary.LatePresentEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "LP"); schoolAttendanceSummary.AbsentEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "A"); schoolAttendanceSummary.AbsentEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, null); schoolAttendanceSummary.EarlyOutEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "EO"); schoolAttendanceSummary.EarlyOutLatePresentEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "ELP"); schoolAttendanceSummary.LeaveEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "LA"); schoolAttendanceSummary.OnDutyEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "D"); schoolAttendanceSummary.OnDutyEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "HD"); schoolAttendanceSummary.InTrainingEmployee += CountDateAttendance(attendanceSummaryObj, toDay.Day, "T"); } schoolAttendanceSummary.PresentPercent = schoolAttendanceSummary.TotalEmployee != 0 ? 100 * (schoolAttendanceSummary.PresentEmployee + schoolAttendanceSummary.LatePresentEmployee + schoolAttendanceSummary.EarlyOutEmployee + schoolAttendanceSummary.EarlyOutLatePresentEmployee) / schoolAttendanceSummary.TotalEmployee : 0.0; TotalEmployee += schoolAttendanceSummary.TotalEmployee; MaleEmployee += schoolAttendanceSummary.MaleEmployee; FemaleEmployee += schoolAttendanceSummary.FemaleEmployee; PresentEmployee += schoolAttendanceSummary.PresentEmployee; LatePresentEmployee += schoolAttendanceSummary.LatePresentEmployee; AbsentEmployee += schoolAttendanceSummary.AbsentEmployee; EarlyOutEmployee += schoolAttendanceSummary.EarlyOutEmployee; EarlyOutLatePresentEmployee += schoolAttendanceSummary.EarlyOutLatePresentEmployee; LeaveEmployee += schoolAttendanceSummary.LeaveEmployee; OnDutyEmployee += schoolAttendanceSummary.OnDutyEmployee; InTrainingEmployee += schoolAttendanceSummary.InTrainingEmployee; schoolVMList.Add(schoolAttendanceSummary); } double PresentPercent = TotalEmployee != 0 ? 100 * (PresentEmployee + LatePresentEmployee + EarlyOutEmployee + EarlyOutLatePresentEmployee) / TotalEmployee : 0.0; return(Json(new { SchoolList = schoolVMList, TotalEmployee, MaleEmployee, FemaleEmployee, PresentEmployee, LatePresentEmployee, AbsentEmployee, EarlyOutEmployee, EarlyOutLatePresentEmployee, LeaveEmployee, OnDutyEmployee, InTrainingEmployee, PresentPercent }, JsonRequestBehavior.AllowGet)); }