Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }