Esempio n. 1
0
        protected void RadCalendarAttendance_OnSelectionChanged(object sender, SelectedDatesEventArgs e)
        {
            if (RadGridClassStudent.SelectedValue != null)
            {
                var attendance = new CAttendance();
                var studentId  = Convert.ToInt32(RadGridClassStudent.SelectedValues["StudentId"]);

                foreach (RadDate date in RadCalendarAttendance.SelectedDates)
                {
                    var previousDate = attendance.Get(ProgramClassId, studentId, date.Date);
                    if (previousDate != null)
                    {
                        attendance.Delete(previousDate);
                    }

                    if (string.IsNullOrEmpty(RadComboBoxAttendanceType.SelectedValue) == false)
                    {
                        // insert
                        attendance.Add(new Erp2016.Lib.Attendance
                        {
                            StudentId      = studentId,
                            ProgramClassId = ProgramClassId,
                            AttendanceType = Convert.ToInt32(RadComboBoxAttendanceType.SelectedValue),
                            AttendanceDate = date.Date,
                            CreatedDate    = DateTime.Now,
                            CreatedId      = CurrentUserId
                        });
                    }
                }

                GetCalendarAttendance();
            }
        }
Esempio n. 2
0
        private static void LoadStudents(RecContext db, CSession session)
        {
            var students = from cts in db.ClassTermStudent
                           join stu in db.Student on cts.StudentId equals stu.StudentId
                           join ct in db.ClassTerm on cts.ClassTermId equals ct.ClassTermId
                           join s in db.Session.Where(item => item.SessionId == session.SessionId) on ct.ClassTermId equals s.ClassTermId
                           join att in db.Attendance
                           on new { K1 = cts.StudentId, K2 = s.SessionId } equals new { K1 = att.StudentId, K2 = att.SessionId } into att1
            from temp in att1.DefaultIfEmpty()
            select new CAttendance
            {
                StudentId          = cts.StudentId,
                StudentName        = stu.FirstName + " " + stu.LastName,
                AttendanceStatusId = temp == null ? 0 : temp.AttendanceStatusId,
                ReasonId           = temp == null ? 0 : temp.ReasonId.GetValueOrDefault()
            };

            foreach (var student in students)
            {
                var ca = new CAttendance
                {
                    StudentId          = student.StudentId,
                    StudentName        = student.StudentName,
                    AttendanceStatusId = student.AttendanceStatusId == null ? 0 : student.AttendanceStatusId,
                    ReasonId           = student.ReasonId == null ? 0 : student.ReasonId
                };
                session.Students.Add(ca);
            }
        }
Esempio n. 3
0
        private void GetCalendarAttendance()
        {
            ResetForm();
            if (RadGridClassStudent.SelectedValue != null)
            {
                RadCalendarAttendance.RangeMinDate = (DateTime)RadGridClassStudent.SelectedValues["StartDate"];
                RadCalendarAttendance.RangeMaxDate = (DateTime)RadGridClassStudent.SelectedValues["EndDate"];

                //// disable the selection for the specific day
                //var calendarDay = new RadCalendarDay();
                //calendarDay.Date = DateTime.Now;
                //calendarDay.IsToday = true;
                //calendarDay.ItemStyle.Font.Strikeout = true;
                //RadCalendarAttendance.SpecialDays.Add(calendarDay);

                var attendanceList = new CAttendance().Get(ProgramClassId, Convert.ToInt32(RadGridClassStudent.SelectedValues["StudentId"]));
                foreach (var a in attendanceList)
                {
                    var cal = new RadCalendarDay();
                    cal.Date = a.AttendanceDate;

                    var cAttendanceDict = new CDict();
                    var attendanceDict  = cAttendanceDict.GetDictByTypeAndValue(1515, a.AttendanceType);

                    cal.ToolTip = a.AttendanceDate.ToShortDateString() + " " + attendanceDict.Name + " [" + attendanceDict.Abbreviation + "]";

                    switch (a.AttendanceType)
                    {
                    //Absent
                    case 0:
                        cal.TemplateID = "DayTemplateAbsentAttendance";
                        break;

                    // Break(Vacation)
                    case 1:
                        cal.TemplateID = "DayTemplateBreakAttendance";
                        break;

                    // Dismissal
                    case 2:
                        cal.TemplateID = "DayTemplateDismissalAttendance";
                        break;

                    // Excuse
                    case 3:
                        cal.TemplateID = "DayTemplateExcuseAttendance";
                        break;

                    // Late
                    case 4:
                        cal.TemplateID = "DayTemplateLateAttendance";
                        break;

                    // Present
                    case 5:
                        cal.TemplateID = "DayTemplatePresentAttendance";
                        break;

                    // Probation
                    case 6:
                        cal.TemplateID = "DayTemplateProbationAttendance";
                        break;

                    // Co - op / JSHINE Practicum / Practicum
                    case 7:
                        cal.TemplateID = "DayTemplateCoopAttendance";
                        break;

                    // Withdrawal
                    case 8:
                        cal.TemplateID = "DayTemplateWithdrawalAttendance";
                        break;
                    }

                    RadCalendarAttendance.SpecialDays.Add(cal);
                }

                var startDate      = (DateTime)RadGridClassStudent.SelectedValues["StartDate"];
                var endDate        = (DateTime)RadGridClassStudent.SelectedValues["EndDate"];
                var totalDay       = GetWorkingDays(startDate, endDate);
                var attendanceDays = RadCalendarAttendance.SpecialDays.Cast <RadCalendarDay>().Count(s => s.IsSelectable);

                RadTextBoxAttendanceCount.Text = attendanceDays + " / " + totalDay;
                // percent of total rate
                RadTextBoxAttendanceRate.Text = Math.Round(((attendanceDays / (double)totalDay) * 100), 2) + " %";
            }
        }