コード例 #1
0
        // 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());
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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"));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: Employees.cs プロジェクト: mafei-dev/WFM
        private void btnAttendanceReport_Click(object sender, EventArgs e)
        {
            AttendanceReport attendanceReport = new AttendanceReport();

            attendanceReport.ShowDialog(this);
        }
コード例 #8
0
        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"));
        }
コード例 #9
0
        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));
        }