コード例 #1
0
        private void btnCheckBlueEdit_Click(object sender, RoutedEventArgs e)
        {
            bool isValid = TeacherAttendance.validateAddRow(this);

            if (isValid)
            {
                BitmapImage b = new BitmapImage();
                b.BeginInit();
                b.UriSource = new Uri("pack://application:,,,/LIVEX;component/Images/001-checked-1.png");
                b.EndInit();
                imgCheck.Stretch = Stretch.Uniform;
                imgCheck.Source  = b;

                TeacherAttendance.EditSelected(this);

                if (dpFrom.Text == "" || dpUntil.Text == "")
                {
                    myDataGrid.ItemsSource = TeacherAttendance.initTable();
                }
                else if (dpFrom.Text != "" || dpUntil.Text != "")
                {
                    myDataGrid.ItemsSource = TeacherAttendance.FilterTable(Convert.ToDateTime(dpFrom.Text), Convert.ToDateTime(dpUntil.Text));
                }

                TeacherAttendance.ResetRowCombos(this);
            }
        }
コード例 #2
0
 public AsistenciaMaestros()
 {
     InitializeComponent();
     TeacherAttendance.InitCombos(this);
     lstTeacherAtt          = TeacherAttendance.initTable();
     myDataGrid.ItemsSource = lstTeacherAtt;
 }
コード例 #3
0
        public void UpdateTeacherAttendance(TeacherAttendance teacherattendance)
        {
            var query = "UPDATE Teacher_Attendance SET    Total_Attendance  =  @total_attendance  ,      Presence  =  @presence  ,      Absentees  =  @absentees        Where Teacher_Id  =  @teacher_id ";
            List <SqlParameter> parameters = new List <SqlParameter>
            {
                new SqlParameter()
                {
                    ParameterName = "@teacher_id",
                    Value         = teacherattendance.TeacherId
                },
                new SqlParameter()
                {
                    ParameterName = "@total_attendance",
                    Value         = teacherattendance.TotalAttendance
                },
                new SqlParameter()
                {
                    ParameterName = "@presence",
                    Value         = teacherattendance.Presence
                },
                new SqlParameter()
                {
                    ParameterName = "@absentees",
                    Value         = teacherattendance.Absentees
                }
            };

            _dbClient.InvokeParameters(query, parameters);
        }
コード例 #4
0
        public void InsertTeacherAttendance(TeacherAttendance teacherattendance)
        {
            var query = "INSERT INTO Teacher_Attendance(   Teacher_Id ,    Total_Attendance ,    Presence ,    Absentees   )" +
                        "VALUES (  @teacher_id ,    @total_attendance ,    @presence ,    @absentees   );";
            List <SqlParameter> parameters = new List <SqlParameter>
            {
                new SqlParameter()
                {
                    ParameterName = "@teacher_id",
                    Value         = teacherattendance.TeacherId
                },
                new SqlParameter()
                {
                    ParameterName = "@total_attendance",
                    Value         = teacherattendance.TotalAttendance
                },
                new SqlParameter()
                {
                    ParameterName = "@presence",
                    Value         = teacherattendance.Presence
                },
                new SqlParameter()
                {
                    ParameterName = "@absentees",
                    Value         = teacherattendance.Absentees
                }
            };

            _dbClient.InvokeParameters(query, parameters);
        }
コード例 #5
0
ファイル: ParentForm.cs プロジェクト: ntokozo-shagala/SIMS
 private void viewTeacherAttendanceToolStripMenuItem_Click(object sender, EventArgs e)
 {
     MainPanel.Controls.Clear();
     if (attendance != null)
     {
         attendance.Close();
     }
     attendance = new TeacherAttendance();
     FormSetUp(attendance);
 }
コード例 #6
0
 public ActionResult Create([Bind(Include = "AttendanceId,TeacherId,Status")] TeacherAttendance teacherattendance, int?ida, string idt)
 {
     ViewBag.UserType = adtype();
     if (adtype() == "Admin")
     {
         if (ModelState.IsValid)
         {
             db.TeacherAttendances.Add(teacherattendance);
             db.SaveChanges();
             if (ida != null)
             {
                 return(RedirectToAction("Index", new { ida = ida }));
             }
             if (idt != null)
             {
                 return(RedirectToAction("Index", new { idt = idt }));
             }
             return(RedirectToAction("Index"));
         }
         if (teacherattendance.AttendanceId == 0)
         {
             ViewBag.AttendanceStatus = "The Attendance Date field is required";
         }
         if (teacherattendance.TeacherId == "")
         {
             ViewBag.UNStatus = "The User Name field is required";
         }
         if (ida != null)
         {
             ViewBag.Showa        = false;
             ViewBag.Showt        = true;
             ViewBag.ida          = ida;
             ViewBag.AttendanceId = new SelectList(db.Attendances.Where(a => (a.Lookup.Values == "Both" || a.Lookup.Values == "Teacher") && a.Id == ida), "Id", "Date", ida);
             ViewBag.Status       = new SelectList(db.Lookups.Where(l => l.Category == "ATTENDANCESTATUS"), "Id", "Values", teacherattendance.Status);
             ViewBag.TeacherId    = new SelectList(db.AspNetUsers.Where(a => db.Teachers.Where(t => t.Id == a.Id && db.TeacherAttendances.Where(ta => ta.AttendanceId == ida && ta.TeacherId == t.Id).Count() == 0).Count() > 0), "Id", "UserName", teacherattendance.TeacherId);
         }
         if (idt != null)
         {
             ViewBag.Showa        = true;
             ViewBag.Showt        = false;
             ViewBag.idt          = idt;
             ViewBag.AttendanceId = new SelectList(db.Attendances.Where(a => (a.Lookup.Values == "Both" || a.Lookup.Values == "Teacher") && db.StudentAttendances.Where(st => st.StudentId == idt && st.AttendanceId == a.Id).Count() == 0), "Id", "Date", teacherattendance.AttendanceId);
             ViewBag.Status       = new SelectList(db.Lookups.Where(l => l.Category == "ATTENDANCESTATUS"), "Id", "Values", teacherattendance.Status);
             ViewBag.TeacherId    = new SelectList(db.AspNetUsers.Where(a => db.Teachers.Where(t => t.Id == idt).Count() > 0), "Id", "UserName", idt);
         }
         ViewBag.Showa        = true;
         ViewBag.Showt        = true;
         ViewBag.AttendanceId = new SelectList(db.Attendances.Where(a => a.Lookup.Values == "Both" || a.Lookup.Values == "Teacher"), "Id", "Date", teacherattendance.AttendanceId);
         ViewBag.Status       = new SelectList(db.Lookups.Where(l => l.Category == "ATTENDANCESTATUS"), "Id", "Values", teacherattendance.Status);
         ViewBag.TeacherId    = new SelectList(db.AspNetUsers.Where(a => db.Teachers.Where(t => t.Id == a.Id).Count() > 0), "Id", "UserName", idt);
         return(View(teacherattendance));
     }
     return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
 }
コード例 #7
0
 private void dpUntil_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
 {
     if (dpUntil.SelectedDate < dpFrom.SelectedDate)
     {
         MessageBox.Show("La Fecha de inicio debe ser menor a la fecha final");
     }
     else
     {
         if (dpFrom.Text != "" && dpUntil.Text != "")
         {
             lstTeacherAtt          = TeacherAttendance.FilterTable((DateTime)dpFrom.SelectedDate, (DateTime)dpUntil.SelectedDate);
             myDataGrid.ItemsSource = lstTeacherAtt;
         }
     }
 }
コード例 #8
0
        private void btnUpload_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFile = new OpenFileDialog();

            openFile.Title  = "Seleccione el archivo";
            openFile.Filter = "csv(*.csv)|*.csv";
            if (openFile.ShowDialog() == true)
            {
                int result = TeacherAttendance.uploadTimerFile(openFile.FileName, openFile.SafeFileName);
                if (result == 1)
                {
                    lstTeacherAtt          = TeacherAttendance.initTable();
                    myDataGrid.ItemsSource = lstTeacherAtt;
                }
            }
        }
コード例 #9
0
        // GET: /TeacherAttendance/Details/5
        public ActionResult Details(int?id)
        {
            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TeacherAttendance teacherattendance = db.TeacherAttendances.Find(id);

            if (teacherattendance == null)
            {
                return(HttpNotFound());
            }
            return(View(teacherattendance));
        }
コード例 #10
0
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            Button           am     = (Button)sender;
            MessageBoxResult result = MessageBox.Show("¿Esta seguro de borrar el registro?", "Delete", MessageBoxButton.YesNo);

            if (MessageBoxResult.Yes == result)
            {
                TeacherAttendance.DeleteRow(this, am.DataContext);

                if (dpFrom.Text == "" || dpUntil.Text == "")
                {
                    myDataGrid.ItemsSource = TeacherAttendance.initTable();
                }
                else if (dpFrom.Text != "" || dpUntil.Text != "")
                {
                    myDataGrid.ItemsSource = TeacherAttendance.FilterTable(Convert.ToDateTime(dpFrom.Text), Convert.ToDateTime(dpUntil.Text));
                }
            }
        }
コード例 #11
0
        public TeacherAttendance GetTeacherAttendance(TeacherAttendance teacherAttendance)
        {
            var query = "SELECT * FROM Teacher_Attendance WHERE Teacher_Id ='" + teacherAttendance.TeacherId + "'";

            _dbClient.InvokeDataReader(query, data =>
            {
                if (data != null && data.Rows.Count > 0)
                {
                    for (int i = 0; i < data.Rows.Count; i++)
                    {
                        teacherAttendance.TeacherId       = data.Rows[i].Field <System.Int32>("Teacher_Id");
                        teacherAttendance.TotalAttendance = data.Rows[i].Field <System.Int32>("Total_Attendance");
                        teacherAttendance.Presence        = data.Rows[i].Field <System.Int32>("Presence");
                        teacherAttendance.Absentees       = data.Rows[i].Field <System.Int32>("Absentees");
                    }
                }
            });
            return(teacherAttendance);
        }
コード例 #12
0
 public ActionResult DeleteConfirmed(int id, int?ida, string idt)
 {
     ViewBag.UserType = adtype();
     if (adtype() == "Admin")
     {
         TeacherAttendance teacherattendance = db.TeacherAttendances.Find(id);
         db.TeacherAttendances.Remove(teacherattendance);
         db.SaveChanges();
         if (ida != null)
         {
             return(RedirectToAction("Index", new { ida = ida }));
         }
         if (idt != null)
         {
             return(RedirectToAction("Index", new { idt = idt }));
         }
         return(RedirectToAction("Index"));
     }
     return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
 }
コード例 #13
0
 // GET: /TeacherAttendance/Delete/5
 public ActionResult Delete(int?id, int?ida, string idt)
 {
     ViewBag.UserType = adtype();
     if (adtype() == "Admin")
     {
         if (id == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         TeacherAttendance teacherattendance = db.TeacherAttendances.Find(id);
         if (teacherattendance == null)
         {
             return(HttpNotFound());
         }
         ViewBag.ida = ida;
         ViewBag.idt = idt;
         return(View(teacherattendance));
     }
     return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
 }
コード例 #14
0
        public ActionResult Edit(List <TempTeacherAttendance> teacherAttendanceList)
        {
            Session["err"] = "Error, Please Check Input Fields";
            Session["msg"] = "";
            try
            {
                foreach (TempTeacherAttendance t in teacherAttendanceList.ToList())
                {
                    TeacherAttendance teacherattendance = db.TeacherAttendances.Find(t.id);
                    teacherattendance.AttendanceTypeID = t.attendancetypeid;
                    db.Entry(teacherattendance).State  = EntityState.Modified;
                    db.SaveChanges();

                    Session["err"] = "";
                    Session["msg"] = "Modified Successfully";
                }
            }
            catch { }
            return(Json(Session["err"], JsonRequestBehavior.AllowGet));
        }
コード例 #15
0
 // GET: /TeacherAttendance/Edit/5
 public ActionResult Edit(int?id, int?ida, string idt)
 {
     ViewBag.UserType = adtype();
     if (adtype() == "Admin")
     {
         if (id == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         TeacherAttendance teacherattendance = db.TeacherAttendances.Find(id);
         if (teacherattendance == null)
         {
             return(HttpNotFound());
         }
         if (ida != null)
         {
             ViewBag.Showa        = false;
             ViewBag.Showt        = true;
             ViewBag.ida          = ida;
             ViewBag.AttendanceId = new SelectList(db.Attendances.Where(a => (a.Lookup.Values == "Both" || a.Lookup.Values == "Teacher") && a.Id == ida), "Id", "Date", ida);
             ViewBag.Status       = new SelectList(db.Lookups.Where(l => l.Category == "ATTENDANCESTATUS"), "Id", "Values", teacherattendance.Status);
             ViewBag.TeacherId    = new SelectList(db.AspNetUsers.Where(a => db.Teachers.Where(t => t.Id == a.Id && db.TeacherAttendances.Where(ta => ta.AttendanceId == ida && ta.TeacherId == t.Id).Count() == 0).Count() > 0), "Id", "UserName", teacherattendance.TeacherId);
         }
         if (idt != null)
         {
             ViewBag.Showa        = true;
             ViewBag.Showt        = false;
             ViewBag.idt          = idt;
             ViewBag.AttendanceId = new SelectList(db.Attendances.Where(a => (a.Lookup.Values == "Both" || a.Lookup.Values == "Teacher") && db.StudentAttendances.Where(st => st.StudentId == idt && st.AttendanceId == a.Id).Count() == 0), "Id", "Date", teacherattendance.AttendanceId);
             ViewBag.Status       = new SelectList(db.Lookups.Where(l => l.Category == "ATTENDANCESTATUS"), "Id", "Values", teacherattendance.Status);
             ViewBag.TeacherId    = new SelectList(db.AspNetUsers.Where(a => db.Teachers.Where(t => t.Id == idt).Count() > 0), "Id", "UserName", idt);
         }
         ViewBag.Showa        = true;
         ViewBag.Showt        = true;
         ViewBag.AttendanceId = new SelectList(db.Attendances.Where(a => a.Lookup.Values == "Both" || a.Lookup.Values == "Teacher"), "Id", "Date", teacherattendance.AttendanceId);
         ViewBag.Status       = new SelectList(db.Lookups.Where(l => l.Category == "ATTENDANCESTATUS"), "Id", "Values", teacherattendance.Status);
         ViewBag.TeacherId    = new SelectList(db.AspNetUsers.Where(a => db.Teachers.Where(t => t.Id == a.Id).Count() > 0), "Id", "UserName", idt);
         return(View(teacherattendance));
     }
     return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
 }
コード例 #16
0
        private void btnEdit_Click(object sender, RoutedEventArgs e)
        {
            Button am = (Button)sender;

            TeacherAttendance.EditRow(this, am.DataContext);
        }
コード例 #17
0
 private void cmbUID_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     TeacherAttendance.refreshCombos(this);
 }
コード例 #18
0
 public TeacherAttendanceUC()
 {
     InitializeComponent();
     _teacherAttendance        = new TeacherAttendance();
     _teacherAttendanceService = new TeacherAttendancesService();
 }
コード例 #19
0
        public ActionResult Index()
        {
            ViewBag.Message = Session["msg"];
            ViewBag.Error   = Session["err"];
            Session["err"]  = "";
            Session["msg"]  = "";

            int companyacademicyearid = Convert.ToInt16(Session["CompanyAcademicYearID"].ToString());
            int roleid   = Convert.ToInt16(Session["RoleID"].ToString());
            int userid   = Convert.ToInt16(Session["UserID"].ToString());
            int schoolid = Convert.ToInt16(Session["SchoolID"].ToString());

            System.Globalization.DateTimeFormatInfo mfi = new System.Globalization.DateTimeFormatInfo();

            DateTime dte          = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day);
            DateTime dteyearstart = Convert.ToDateTime(DateTime.Now.Year + "-01-01");

            if (Request.QueryString["date"] != null)
            {
                try
                {
                    dte = Convert.ToDateTime(Request.QueryString["date"]);
                    dte = Convert.ToDateTime(dte.Year + "-" + dte.Month + "-" + dte.Day);
                }
                catch { }
            }

            List <TeacherAttendanceModel> teacherAttendancemodelList = new List <TeacherAttendanceModel>();

            Calendar calendar = db.Calendars.Where(c => c.Date == dte).FirstOrDefault();

            if (calendar.IsHoliday)
            {
                ViewBag.Error = "  Selected date : " + dte.Day + " - " + mfi.GetMonthName(dte.Month).Substring(0, 3) + " - " + dte.Year + " is HOLIDAY : " + calendar.Description;
                calendar      = db.Calendars.Where(c => c.Date <= dte && c.IsHoliday == false).OrderByDescending(c => c.Date).FirstOrDefault();
                dte           = calendar.Date;
                dte           = Convert.ToDateTime(dte.Year + "-" + dte.Month + "-" + dte.Day);
            }
            int workingdays = db.Calendars.Where(c => c.Date <= dte && c.Date >= dteyearstart && c.IsHoliday == false).Count();

            foreach (Teacher teacher in db.Teachers.ToList())
            {
                TeacherAttendance isTeacherAdded = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isTeacherAdded == null)
                {
                    TeacherAttendance teacherAttendancenew = new TeacherAttendance();
                    teacherAttendancenew.AttendanceTypeID = 2;
                    teacherAttendancenew.AttendanceDate   = calendar.Date;
                    teacherAttendancenew.TeacherID        = teacher.TeacherID;
                    teacherAttendancenew.UserID           = userid;
                    teacherAttendancenew.UpdatedDate      = DateTime.Now;
                    db.TeacherAttendances.Add(teacherAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //TeacherAttendance teacherAttendanceexist = db.TeacherAttendances.Find(isTeacherAdded.TeacherAttendanceID);
                    //int attendeddays = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                    //double perc = Convert.ToInt16(attendeddays) * 100 / Convert.ToInt16(workingdays);
                    //decimal perc1 = Convert.ToDecimal(string.Format("{0:0.00}", perc));
                    //teacherAttendanceexist.Percentage = perc1;
                    //db.Entry(teacherAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }

            var teacherAttendance = db.TeacherAttendances.Include(s => s.CurrentTeacher).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentTeacher.Name).ToList();

            foreach (TeacherAttendance ta in teacherAttendance)
            {
                int presentdays = db.TeacherAttendances.Where(s => s.TeacherID == ta.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                int absentdays  = db.TeacherAttendances.Where(s => s.TeacherID == ta.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 2).Count();
                int leavedays   = db.TeacherAttendances.Where(s => s.TeacherID == ta.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 3).Count();

                TeacherAttendanceModel teacherAttendancemodel = new TeacherAttendanceModel();
                teacherAttendancemodel.TeacherAttendanceID = ta.TeacherAttendanceID;
                teacherAttendancemodel.TeacherID           = ta.TeacherID;
                teacherAttendancemodel.TeacherName         = ta.CurrentTeacher.Name;
                teacherAttendancemodel.AttendanceTypeID    = ta.AttendanceTypeID;
                teacherAttendancemodel.BackDay1            = "";
                teacherAttendancemodel.BackDay2            = "";
                teacherAttendancemodel.BackDay3            = "";
                teacherAttendancemodel.BackDay4            = "";
                teacherAttendancemodel.BackDay5            = "";
                teacherAttendancemodel.BackDay6            = "";
                teacherAttendancemodel.Present             = presentdays;
                teacherAttendancemodel.Absent = absentdays;
                teacherAttendancemodel.Leave  = leavedays;
                teacherAttendancemodelList.Add(teacherAttendancemodel);
            }
            ViewBag.SelectedDate = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3) + " " + calendar.Date.Year;

            dte      = calendar.Date.AddDays(-1);
            calendar = db.Calendars.Where(c => c.Date <= dte && c.IsHoliday == false).OrderByDescending(c => c.Date).FirstOrDefault();
            foreach (Teacher teacher in db.Teachers.ToList())
            {
                TeacherAttendance isTeacherAdded = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isTeacherAdded == null)
                {
                    TeacherAttendance teacherAttendancenew = new TeacherAttendance();
                    teacherAttendancenew.AttendanceTypeID = 2;
                    teacherAttendancenew.AttendanceDate   = calendar.Date;
                    teacherAttendancenew.TeacherID        = teacher.TeacherID;
                    teacherAttendancenew.UserID           = userid;
                    teacherAttendancenew.UpdatedDate      = DateTime.Now;
                    db.TeacherAttendances.Add(teacherAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //TeacherAttendance teacherAttendanceexist = db.TeacherAttendances.Find(isTeacherAdded.TeacherAttendanceID);
                    //int attendeddays = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                    //double perc = Convert.ToInt16(attendeddays) * 100 / Convert.ToInt16(workingdays);
                    //decimal perc1 = Convert.ToDecimal(string.Format("{0:0.00}", perc));
                    //teacherAttendanceexist.Percentage = perc1;
                    //db.Entry(teacherAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            teacherAttendance = db.TeacherAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentTeacher).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentTeacher.Name).ToList();
            foreach (TeacherAttendance ta in teacherAttendance)
            {
                TeacherAttendanceModel teacherattendanceid = teacherAttendancemodelList.Find(item => item.TeacherID == ta.TeacherID);
                teacherattendanceid.BackDay1 = ta.CurrentAttendanceType.Name;
            }
            ViewBag.BackDay1 = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3);


            dte      = calendar.Date.AddDays(-1);
            calendar = db.Calendars.Where(c => c.Date <= dte && c.IsHoliday == false).OrderByDescending(c => c.Date).FirstOrDefault();
            foreach (Teacher teacher in db.Teachers.ToList())
            {
                TeacherAttendance isTeacherAdded = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isTeacherAdded == null)
                {
                    TeacherAttendance teacherAttendancenew = new TeacherAttendance();
                    teacherAttendancenew.AttendanceTypeID = 2;
                    teacherAttendancenew.AttendanceDate   = calendar.Date;
                    teacherAttendancenew.TeacherID        = teacher.TeacherID;
                    teacherAttendancenew.UserID           = userid;
                    teacherAttendancenew.UpdatedDate      = DateTime.Now;
                    db.TeacherAttendances.Add(teacherAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //TeacherAttendance teacherAttendanceexist = db.TeacherAttendances.Find(isTeacherAdded.TeacherAttendanceID);
                    //int attendeddays = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                    //double perc = Convert.ToInt16(attendeddays) * 100 / Convert.ToInt16(workingdays);
                    //decimal perc1 = Convert.ToDecimal(string.Format("{0:0.00}", perc));
                    //teacherAttendanceexist.Percentage = perc1;
                    //db.Entry(teacherAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            teacherAttendance = db.TeacherAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentTeacher).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentTeacher.Name).ToList();
            foreach (TeacherAttendance ta in teacherAttendance)
            {
                TeacherAttendanceModel teacherattendanceid = teacherAttendancemodelList.Find(item => item.TeacherID == ta.TeacherID);
                teacherattendanceid.BackDay2 = ta.CurrentAttendanceType.Name;
            }
            ViewBag.BackDay2 = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3);

            dte      = calendar.Date.AddDays(-1);
            calendar = db.Calendars.Where(c => c.Date <= dte && c.IsHoliday == false).OrderByDescending(c => c.Date).FirstOrDefault();
            foreach (Teacher teacher in db.Teachers.ToList())
            {
                TeacherAttendance isTeacherAdded = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isTeacherAdded == null)
                {
                    TeacherAttendance teacherAttendancenew = new TeacherAttendance();
                    teacherAttendancenew.AttendanceTypeID = 2;
                    teacherAttendancenew.AttendanceDate   = calendar.Date;
                    teacherAttendancenew.TeacherID        = teacher.TeacherID;
                    teacherAttendancenew.UserID           = userid;
                    teacherAttendancenew.UpdatedDate      = DateTime.Now;
                    db.TeacherAttendances.Add(teacherAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //TeacherAttendance teacherAttendanceexist = db.TeacherAttendances.Find(isTeacherAdded.TeacherAttendanceID);
                    //int attendeddays = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                    //double perc = Convert.ToInt16(attendeddays) * 100 / Convert.ToInt16(workingdays);
                    //decimal perc1 = Convert.ToDecimal(string.Format("{0:0.00}", perc));
                    //teacherAttendanceexist.Percentage = perc1;
                    //db.Entry(teacherAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            teacherAttendance = db.TeacherAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentTeacher).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentTeacher.Name).ToList();
            foreach (TeacherAttendance ta in teacherAttendance)
            {
                TeacherAttendanceModel teacherattendanceid = teacherAttendancemodelList.Find(item => item.TeacherID == ta.TeacherID);
                teacherattendanceid.BackDay3 = ta.CurrentAttendanceType.Name;
            }
            ViewBag.BackDay3 = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3);

            dte      = calendar.Date.AddDays(-1);
            calendar = db.Calendars.Where(c => c.Date <= dte && c.IsHoliday == false).OrderByDescending(c => c.Date).FirstOrDefault();
            foreach (Teacher teacher in db.Teachers.ToList())
            {
                TeacherAttendance isTeacherAdded = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isTeacherAdded == null)
                {
                    TeacherAttendance teacherAttendancenew = new TeacherAttendance();
                    teacherAttendancenew.AttendanceTypeID = 2;
                    teacherAttendancenew.AttendanceDate   = calendar.Date;
                    teacherAttendancenew.TeacherID        = teacher.TeacherID;
                    teacherAttendancenew.UserID           = userid;
                    teacherAttendancenew.UpdatedDate      = DateTime.Now;
                    db.TeacherAttendances.Add(teacherAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //TeacherAttendance teacherAttendanceexist = db.TeacherAttendances.Find(isTeacherAdded.TeacherAttendanceID);
                    //int attendeddays = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                    //double perc = Convert.ToInt16(attendeddays) * 100 / Convert.ToInt16(workingdays);
                    //decimal perc1 = Convert.ToDecimal(string.Format("{0:0.00}", perc));
                    //teacherAttendanceexist.Percentage = perc1;
                    //db.Entry(teacherAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            teacherAttendance = db.TeacherAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentTeacher).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentTeacher.Name).ToList();
            foreach (TeacherAttendance ta in teacherAttendance)
            {
                TeacherAttendanceModel teacherattendanceid = teacherAttendancemodelList.Find(item => item.TeacherID == ta.TeacherID);
                teacherattendanceid.BackDay4 = ta.CurrentAttendanceType.Name;
            }
            ViewBag.BackDay4 = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3);

            dte      = calendar.Date.AddDays(-1);
            calendar = db.Calendars.Where(c => c.Date <= dte && c.IsHoliday == false).OrderByDescending(c => c.Date).FirstOrDefault();
            foreach (Teacher teacher in db.Teachers.ToList())
            {
                TeacherAttendance isTeacherAdded = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isTeacherAdded == null)
                {
                    TeacherAttendance teacherAttendancenew = new TeacherAttendance();
                    teacherAttendancenew.AttendanceTypeID = 2;
                    teacherAttendancenew.AttendanceDate   = calendar.Date;
                    teacherAttendancenew.TeacherID        = teacher.TeacherID;
                    teacherAttendancenew.UserID           = userid;
                    teacherAttendancenew.UpdatedDate      = DateTime.Now;
                    db.TeacherAttendances.Add(teacherAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //TeacherAttendance teacherAttendanceexist = db.TeacherAttendances.Find(isTeacherAdded.TeacherAttendanceID);
                    //int attendeddays = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                    //double perc = Convert.ToInt16(attendeddays) * 100 / Convert.ToInt16(workingdays);
                    //decimal perc1 = Convert.ToDecimal(string.Format("{0:0.00}", perc));
                    //teacherAttendanceexist.Percentage = perc1;
                    //db.Entry(teacherAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            teacherAttendance = db.TeacherAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentTeacher).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentTeacher.Name).ToList();
            foreach (TeacherAttendance ta in teacherAttendance)
            {
                TeacherAttendanceModel teacherattendanceid = teacherAttendancemodelList.Find(item => item.TeacherID == ta.TeacherID);
                teacherattendanceid.BackDay5 = ta.CurrentAttendanceType.Name;
            }
            ViewBag.BackDay5 = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3);

            dte      = calendar.Date.AddDays(-1);
            calendar = db.Calendars.Where(c => c.Date <= dte && c.IsHoliday == false).OrderByDescending(c => c.Date).FirstOrDefault();
            foreach (Teacher teacher in db.Teachers.ToList())
            {
                TeacherAttendance isTeacherAdded = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isTeacherAdded == null)
                {
                    TeacherAttendance teacherAttendancenew = new TeacherAttendance();
                    teacherAttendancenew.AttendanceTypeID = 2;
                    teacherAttendancenew.AttendanceDate   = calendar.Date;
                    teacherAttendancenew.TeacherID        = teacher.TeacherID;
                    teacherAttendancenew.UserID           = userid;
                    teacherAttendancenew.UpdatedDate      = DateTime.Now;
                    db.TeacherAttendances.Add(teacherAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //TeacherAttendance teacherAttendanceexist = db.TeacherAttendances.Find(isTeacherAdded.TeacherAttendanceID);
                    //int attendeddays = db.TeacherAttendances.Where(s => s.TeacherID == teacher.TeacherID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                    //double perc = Convert.ToInt16(attendeddays) * 100 / Convert.ToInt16(workingdays);
                    //decimal perc1 = Convert.ToDecimal(string.Format("{0:0.00}", perc));
                    //teacherAttendanceexist.Percentage = perc1;
                    //db.Entry(teacherAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            teacherAttendance = db.TeacherAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentTeacher).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentTeacher.Name).ToList();
            foreach (TeacherAttendance ta in teacherAttendance)
            {
                TeacherAttendanceModel teacherattendanceid = teacherAttendancemodelList.Find(item => item.TeacherID == ta.TeacherID);
                teacherattendanceid.BackDay6 = ta.CurrentAttendanceType.Name;
            }
            ViewBag.BackDay6 = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3);

            ViewBag.AttendanceTypeID = db.AttendanceTypes.ToList();
            return(View(teacherAttendancemodelList));
        }