// GET: api/AttendanceApi public IQueryable Get() { DataManager dm = new DataManager(); List <AttendanceReport> list = new List <AttendanceReport>(); String token = Request.Headers.Authorization.Parameter; int teacherId = dm.getTeacherID(AccountManager.getUsernameFromToken(token)); List <ClassCourseDetail> detail = dm.getClassCourseDetail(teacherId); foreach (ClassCourseDetail sdetail in detail) { List <Student> students = db.Students.Where(o => o.Classes.Any(c => c.classID == sdetail.classID)).ToList <Student>(); foreach (Student std in students) { AttendanceReport obj = new AttendanceReport(); obj.classID = sdetail.classID; obj.courseCode = sdetail.courseCode; obj.rollNo = std.rollNo; StudentsDetailAttendance stdetail = dm.getAttendanceDetail(std.rollNo, sdetail.classID, sdetail.courseCode, teacherId); obj.presentPercentage = stdetail.presentPercentage; obj.totalAttendance = stdetail.totalAttendace; obj.absentPercentage = stdetail.abscentPercentage; list.Add(obj); } } return(list.AsQueryable()); }
public AttendanceReportDTO(AttendanceReport source, IList <PersonDetailsDTO> person, IList <AutoCompleteSelectListItem> terminationLookup, IEnumerable <SubjectProgramStatus> programStatuses) //: base(source) { DistrictID = source.DistrictID; SiteID = source.SiteID; SubjectName = person.Where(x => x.PersonID.Equals(source.SubjectUserID)).FirstOrDefault().FullNameLastNameFirstFormat; SubjectID = person.Where(x => x.PersonID.Equals(source.SubjectUserID)).FirstOrDefault().ExternalIDs.Where(x => x.Type == SystemControlledExternalIDType.SystemOfRecord).Count() > 0 ? person.Where(x => x.PersonID.Equals(source.SubjectUserID)).FirstOrDefault().ExternalIDs.Where(x => x.Type == SystemControlledExternalIDType.SystemOfRecord).FirstOrDefault().Value : null; DateofReferraltoProgram = source.DateofReferraltoProgram.ToString("MM/dd/yyyy"); InstanceName = source.InstanceName; ProgramName = source.ProgramName; InstanceStartDate = source.IsPerpetual ? null : source.InstanceStartDate.HasValue ? source.InstanceStartDate.GetValueOrDefault().ToString("MM/dd/yyyy") : "TBD"; InstanceEndDate = source.IsPerpetual ? null : source.InstanceEndDate.HasValue ? source.InstanceEndDate.GetValueOrDefault().ToString("MM/dd/yyyy") : "TBD"; NumberOfClassesAttendedNotPresent = source.NumberOfClassesAttendedNotPresent; NumberOfClassesAttendedExcusedAbsence = source.NumberOfClassesAttendedExcusedAbsence; NumberOfClassesPresent = source.NumberOfClassesPresent; CurrentStatusName = programStatuses.Where(y => y.ProgramStatusID == source.CurrentStatus).Select(y => y.Name).SingleOrDefault(); CurrentStatus = source.CurrentStatus; TerminationReason1 = source.TerminationReason1 != null?terminationLookup.Where(x => x.Id == source.TerminationReason1).FirstOrDefault().Name : null; TerminationReason2 = source.TerminationReason2 != null?terminationLookup.Where(x => x.Id == source.TerminationReason2).FirstOrDefault().Name : null; TerminationReason3 = source.TerminationReason3 != null?terminationLookup.Where(x => x.Id == source.TerminationReason3).FirstOrDefault().Name : null; SubjectUserID = source.SubjectUserID; ProgramID = source.ProgramID; IsPerpetual = source.IsPerpetual; }
public List <AttendanceReport> GetAttendanceStudentwise() { List <AttendanceReport> list = new List <AttendanceReport>(); DataSet ds = SqlHelper.FillDataSet(ConfigurationManager.RdConnectionString, "Report_WebinarAttendance_Studentwise"); foreach (DataRow dr in ds.Tables[0].Rows) { AttendanceReport model = new AttendanceReport { StudentId = Convert.ToInt32(dr["StudentId"]), StudentName = dr["StudentName"].ToString(), Email = dr["Email"].ToString(), CollegeName = dr["CollegeName"].ToString(), WebinarRegistrationDate = Convert.ToString(dr["WebinarRegistrationDate"]), AttendedId = dr["AttendedId"] as int?, WebinarStartDate = dr["WebinarDate"].ToString() }; list.Add(model); } //foreach (var studentId in list.Select(x => x.StudentId).Distinct().ToList()) //{ // foreach (var item in list.Where(x => x.StudentId == studentId)) // { // } //} return(list); }
public IActionResult GetWeeklySummaryAttendanceById([FromRoute] string id, [FromRoute] string startDate, [FromRoute] string endDate) { AttendanceReport attendanceReport = new AttendanceReport(); IQueryable <Attendance> attendanceData = _repository.Attendances.FindAllByCondition(x => x.DateIn.Date >= Convert.ToDateTime(startDate) && x.DateIn.Date <= Convert.ToDateTime(endDate) && x.EmployeeCode == id); return(Ok(attendanceReport)); }
public ActionResult ProcessClass(string id) { UnitOfWork uow = new UnitOfWork(); Class classDetail = uow.Classes.Get(x => x.ClassID == id).FirstOrDefault(); if (classDetail != null && classDetail.Status != (int)ClassStatus.Completed) { using (var client = new HttpClient()) { var response = client.PostAsync("https://api.braincert.com/v2/getclassreport?apikey=EBqafLB3sAk1HeCDxr4Z&format=json&classId=" + classDetail.BrainCertId + "", null).Result; response.EnsureSuccessStatusCode(); string responseBody = response.Content.ReadAsStringAsync().Result; List <AttendanceReport> report = JsonConvert.DeserializeObject <List <AttendanceReport> >(responseBody); AttendanceReport studentReport = report.Where(a => a.isTeacher == 0).ToList().FirstOrDefault(); User student = uow.Users.Get(x => x.AutoID == studentReport.userId).FirstOrDefault(); string studentId = student.UserID; AttendenceReportModel attenReport = uow.TeacherRepository.GetUserInfo(studentReport.userId, id); if (attenReport != null) { decimal classTime = Convert.ToDecimal(TimeSpan.Parse(studentReport.duration).TotalHours); attenReport.CreditsConsumed = String.Format("{0:0.00}", classTime); attenReport.CreditsRefund = String.Format("{0:0.00}", attenReport.CreditsUsed - classTime); attenReport.CreditsConsumedInt = classTime; attenReport.CreditsRefundInt = attenReport.CreditsUsed - classTime; attenReport.StudentClassId = studentReport.userId; //mark class as completed classDetail.Status = (int)ClassStatus.Completed; StudentCreditLog creditLog = new StudentCreditLog { ClassID = classDetail.ClassID, UserID = id, CreationDate = DateTime.Now, CreditsUsed = Math.Round(attenReport.CreditsRefundInt, 2), LogType = "Refund" }; uow.StudentCreditLogs.Insert(creditLog); StudentCredit credit = uow.StudentCredits.Get(a => a.StudentID == studentId).FirstOrDefault(); if (credit != null) { credit.LastUpdates = DateTime.Now; credit.TotalCredits = credit.TotalCredits + attenReport.CreditsRefundInt; credit.UsedCredits = credit.UsedCredits - attenReport.CreditsRefundInt; } UpdateTutorWallet(classDetail.TeacherID, classDetail.ClassID, classTime); //payment refund notification Common.AddNotification("Your wallet has beend refunded with " + creditLog.CreditsUsed, "", Session["UserId"].ToString(), studentId, "/student/wallet", (int)NotificationType.Refund); } uow.Save(); } } return(RedirectToAction("classes", "tutor")); }
public List <AttendanceReport> GetAttendanceCollegewise() { List <AttendanceReport> list = new List <AttendanceReport>(); DataSet ds = SqlHelper.FillDataSet(ConfigurationManager.RdConnectionString, "Report_WebinarAttendance_Collegewise"); foreach (DataRow dr in ds.Tables[0].Rows) { AttendanceReport model = new AttendanceReport { CollegeId = Convert.ToInt32(dr["CollegeId"]), CollegeName = dr["CollegeName"].ToString(), NoOfStudentsAttended = Convert.ToInt32(dr["NumberOfStudentsAttended"]), NoOfStudentsRegistered = Convert.ToInt32(dr["Registered"]), WebinarStartDate = dr["ActualStartdate"].ToString() }; list.Add(model); } return(list); }
private void btnAttendanceReport_Click(object sender, EventArgs e) { AttendanceReport attendanceReport = new AttendanceReport(); attendanceReport.ShowDialog(this); }
public IActionResult OnPost(string jsonStr) { if (string.IsNullOrEmpty(jsonStr)) { return(Page()); } var data = Newtonsoft.Json.JsonConvert.DeserializeObject <AttendanceServiceDTO>(jsonStr); if (data == null) { return(Page()); } var Rcid = _pinhuaContext.GetNewRcId(); var rtId = _pinhuaContext.GetRtId("AttendanceReport"); var repCase = new EsRepCase { RcId = Rcid, RtId = rtId, LstFiller = 2, LstFillerName = User.Identity.Name, LstFillDate = DateTime.Now, }; var reportMain = new AttendanceReport { ExcelServerRcid = Rcid, ExcelServerRtid = rtId, Y = data.Y.Value, M = data.M.Value }; var reportDetails = new List <AttendanceReportResults>(); foreach (var person in data.PersonList) { var detail = new AttendanceReportResults { ExcelServerRcid = Rcid, ExcelServerRtid = rtId, Y = data.Y.Value, M = data.M.Value, 编号 = person.Id, 姓名 = person.Name, 是否全勤 = person.IsFullAttendance ? "是" : "否", 正班 = person.DaytimeHours, 加班 = person.OvertimeHours, 总工时 = person.TotalHours, 缺勤 = person.TimesOfAbsent, 迟到 = person.TimesOfLate, 早退 = person.TimesOfLeaveEarly, 请假 = person.TimesOfAskForLeave, 用餐 = person.TimesOfDinner, }; reportDetails.Add(detail); } // 保存明细 var abc = new List <AttendanceReportDetails>(); foreach (var person in data.PersonList) { foreach (var detail in person.Results) { foreach (var range in detail.Details) { var o = new AttendanceReportDetails { 编号 = person.Id, 姓名 = person.Name, 日期 = detail.Date, 班段 = range.RangeId, 班段描述 = range.Range, 班 = range.Time1Fix, 班 = range.Time2Fix, 工时 = range.Hours, 考勤结果 = range.State, ExcelServerRcid = Rcid, ExcelServerRtid = rtId, }; abc.Add(o); } } } _pinhuaContext.EsRepCase.Add(repCase); _pinhuaContext.AttendanceReport.Add(reportMain); _pinhuaContext.AttendanceReportResults.AddRange(reportDetails); _pinhuaContext.AttendanceReportDetails.AddRange(abc); _pinhuaContext.SaveChanges(); return(RedirectToPage("Index")); }
public JsonResult Attendance(int year, int quoter, int month) { List <AttendanceReport> atnList = new List <AttendanceReport>(); //=============================================================================================== //All attendance for all years //================================================================================================ if (year == 0) { var list = db.Employees.ToList(); foreach (var item in list) { DateTime day = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); int dayCount = 0; string dayCountToolTip = ""; int leaveDays = 0; string leaveDaysToolTip = ""; int holidayCount = 0; string holidayCountToolTip = ""; //leavedays if (db.LeaveRequests.Where(l => l.EmployeeId == item.Id && l.IsAccepted == true).ToList() != null) { foreach (var leave in db.LeaveRequests.Where(l => l.EmployeeId == item.Id && l.IsAccepted == true).ToList()) { for (int i = 0; i < (leave.FinishDate - leave.StratDate).Value.TotalDays; i++) { leaveDaysToolTip += " " + leave.StratDate.Value.AddDays(i).ToShortDateString(); leaveDays++; } } } //withoutLeaveDays foreach (var atn in db.Attendances.Where(a => a.EmployeeId == item.Id).ToList()) { if ((int)atn.Date.Value.DayOfWeek != 6 && (int)atn.Date.Value.DayOfWeek != 0 && atn.Atd == false) { dayCount++; dayCountToolTip += " " + atn.Date.Value.ToShortDateString(); } } //holidayCount foreach (var hol in db.Holidays.ToList()) { if (hol.StartDate >= item.JoinDate) { for (int i = 0; i < (hol.EndDate - hol.StartDate).Value.TotalDays; i++) { holidayCountToolTip += " " + hol.StartDate.Value.AddDays(i).ToShortDateString(); holidayCount++; } } } ShortEmp emp = new ShortEmp { Name = item.Name, Surname = item.Surname, JoinDate = item.JoinDate.Value.ToShortDateString(), Id = item.Id }; AttendanceReport atnRep = new AttendanceReport { employee = emp, leaveDays = leaveDays, leaveDayString = leaveDaysToolTip, withoutLeaveDays = dayCount, withoutLeaveDayString = dayCountToolTip, holiDays = holidayCount, holiDayString = holidayCountToolTip, totalDays = leaveDays + holidayCount + dayCount }; atnList.Add(atnRep); } return(Json(new { status = 200, data = atnList }, JsonRequestBehavior.AllowGet)); } //=============================================================================================== // Attendances for a year //================================================================================================ if (year != 0 && quoter == 0) { DateTime Feb = new DateTime(year, 2, 1); int daysInYear = DateTime.DaysInMonth(Feb.Year, Feb.Month) == 28 ? 365 : 366; var list = db.Employees.ToList(); foreach (var item in list) { DateTime day = new DateTime(year, 1, 1); int dayCount = 0; string dayCountToolTip = ""; int leaveDays = 0; string leaveDaysToolTip = ""; int holidayCount = 0; string holidayCountToolTip = ""; for (int j = 0; j < daysInYear; j++) { DateTime date = day.AddDays(j); if (item.JoinDate.Value.Year <= year) { if (db.LeaveRequests.FirstOrDefault(l => l.EmployeeId == item.Id && (l.StratDate <= date && l.FinishDate > date && l.IsAccepted == true)) != null) { leaveDays++; leaveDaysToolTip += " " + date.ToShortDateString(); } if (db.Holidays.FirstOrDefault(h => (h.StartDate <= date && h.EndDate > date)) != null) { holidayCount++; holidayCountToolTip += " " + date.ToShortDateString(); } if (db.Attendances.FirstOrDefault(a => a.EmployeeId == item.Id && a.Date == date && a.Atd == false) != null) { dayCount++; dayCountToolTip += " " + date.ToShortDateString(); } } } ShortEmp emp = new ShortEmp { Name = item.Name, Surname = item.Surname, JoinDate = item.JoinDate.Value.ToShortDateString(), Id = item.Id }; AttendanceReport atnRep = new AttendanceReport { employee = emp, leaveDays = leaveDays, leaveDayString = leaveDaysToolTip, withoutLeaveDays = dayCount, withoutLeaveDayString = dayCountToolTip, holiDays = holidayCount, holiDayString = holidayCountToolTip, totalDays = leaveDays + holidayCount + dayCount }; atnList.Add(atnRep); } return(Json(new { status = 200, data = atnList }, JsonRequestBehavior.AllowGet)); } ////=============================================================================================== //// Attendances for a quoter ////=============================================================================================== if (year != 0 && quoter != 0 && month == 0) { int[] quoterMonths = new int[3]; switch (quoter) { case 1: quoterMonths[0] = 1; quoterMonths[1] = 2; quoterMonths[2] = 3; break; case 2: quoterMonths[0] = 4; quoterMonths[1] = 5; quoterMonths[2] = 6; break; case 3: quoterMonths[0] = 7; quoterMonths[1] = 8; quoterMonths[2] = 9; break; case 4: quoterMonths[0] = 10; quoterMonths[1] = 11; quoterMonths[2] = 12; break; default: return(Json(new { status = 200 }, JsonRequestBehavior.AllowGet)); } var list = db.Employees.ToList(); List <AttendanceReport> attnList = new List <AttendanceReport>(); foreach (var item in list) { DateTime day = new DateTime(year, quoterMonths[0], 1); int daysOfEndMonth = DateTime.DaysInMonth(year, quoterMonths[2]); DateTime endDay = new DateTime(year, quoterMonths[2], daysOfEndMonth); int dayCount = 0; string dayCountToolTip = ""; int leaveDays = 0; string leaveDaysToolTip = ""; int holidayCount = 0; string holidayCountToolTip = ""; for (int i = 0; i < (endDay - day).TotalDays; i++) { DateTime date = day.AddDays(i); if (item.JoinDate <= date) { if (db.LeaveRequests.FirstOrDefault(l => l.EmployeeId == item.Id && (l.StratDate <= date && l.FinishDate > date && l.IsAccepted == true)) != null) { leaveDays++; leaveDaysToolTip += " " + date.ToShortDateString(); } if (db.Holidays.FirstOrDefault(h => h.StartDate <= date && h.EndDate > date) != null) { holidayCount++; holidayCountToolTip += " " + date.ToShortDateString(); } if ((int)date.DayOfWeek != 0 && (int)date.DayOfWeek != 6) { if (db.Attendances.FirstOrDefault(a => a.EmployeeId == item.Id && a.Date == date && a.Atd == false) != null) { dayCount++; dayCountToolTip += " " + date.ToShortDateString(); } } } } ShortEmp emp = new ShortEmp { Id = item.Id, Name = item.Name, Surname = item.Surname, JoinDate = item.JoinDate.Value.ToShortDateString() }; AttendanceReport attnRep = new AttendanceReport { employee = emp, withoutLeaveDays = dayCount, withoutLeaveDayString = dayCountToolTip, leaveDays = leaveDays, leaveDayString = leaveDaysToolTip, holiDays = holidayCount, holiDayString = holidayCountToolTip, totalDays = dayCount + leaveDays + holidayCount }; attnList.Add(attnRep); } return(Json(new { status = 200, data = attnList }, JsonRequestBehavior.AllowGet)); } ////=============================================================================================== //// Attendances for a month ////=============================================================================================== if (year != 0 && quoter != 0 && month != 0) { var list = db.Employees.ToList(); List <AttendanceReport> attnList = new List <AttendanceReport>(); foreach (var item in list) { DateTime day = new DateTime(year, month, 1); int daysOfMonth = DateTime.DaysInMonth(year, month); int dayCount = 0; string dayCountToolTip = ""; int leaveDays = 0; string leaveDaysToolTip = ""; int holidayCount = 0; string holidayCountToolTip = ""; for (int i = 0; i < daysOfMonth; i++) { DateTime date = day.AddDays(i); if (item.JoinDate <= date) { if (db.LeaveRequests.FirstOrDefault(l => l.EmployeeId == item.Id && (l.StratDate <= date && l.FinishDate > date && l.IsAccepted == true)) != null) { leaveDays++; leaveDaysToolTip += " " + date.ToShortDateString(); } if (db.Holidays.FirstOrDefault(h => h.StartDate <= date && h.EndDate > date) != null) { holidayCount++; holidayCountToolTip += " " + date.ToShortDateString(); } if ((int)date.DayOfWeek != 0 && (int)date.DayOfWeek != 6) { if (db.Attendances.FirstOrDefault(a => a.EmployeeId == item.Id && a.Date == date && a.Atd == false) != null) { dayCount++; dayCountToolTip += " " + date.ToShortDateString(); } } } } ShortEmp emp = new ShortEmp { Id = item.Id, Name = item.Name, Surname = item.Surname, JoinDate = item.JoinDate.Value.ToShortDateString() }; AttendanceReport attnRep = new AttendanceReport { employee = emp, withoutLeaveDays = dayCount, withoutLeaveDayString = dayCountToolTip, leaveDays = leaveDays, leaveDayString = leaveDaysToolTip, holiDays = holidayCount, holiDayString = holidayCountToolTip, totalDays = dayCount + leaveDays + holidayCount }; attnList.Add(attnRep); } return(Json(new { status = 200, data = attnList }, JsonRequestBehavior.AllowGet)); } return(Json(new { status = 404 }, JsonRequestBehavior.AllowGet)); }