public void stopAttendance()
 {
     using (ModelContext db = new ModelContext())
     {
         int[] attendanceRegisterid = db.AttendanceRegisterList.Where(x => x.Date >= DateTime.Today)
                                      .Select(x => x.StaffId).ToArray();
         List <Staff> staffs       = db.Staffs.ToList();
         int[]        staffsId     = staffs.Select(x => x.StaffId).ToArray();
         var          missingStaff = staffsId.Except(attendanceRegisterid);
         foreach (var staffId in missingStaff)
         {
             var attendanceRegister = new AttendanceRegister
             {
                 Date          = DateTime.Now,
                 ArrivalTime   = "-",
                 DepartureTime = "-",
                 StaffId       = staffId,
                 Remark        = staffs.Where(x => x.StaffId == staffId).FirstOrDefault().OnLeave ? "on leave"
                 : "absent"
             };
             if (db.Entry <AttendanceRegister>(attendanceRegister).State == System.Data.Entity.EntityState.Detached)
             {
                 db.Set <AttendanceRegister>().Attach(attendanceRegister);
             }
             db.Entry <AttendanceRegister>(attendanceRegister).State = System.Data.Entity.EntityState.Added;
             db.SaveChanges();
         }
     }
 }
Example #2
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,EmployeeId,Attendance,AttendanceTime")] AttendanceRegister attendanceRegister)
        {
            if (id != attendanceRegister.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(attendanceRegister);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AttendanceRegisterExists(attendanceRegister.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EmployeeId"] = new SelectList(_context.Employee, "Id", "FirstName", attendanceRegister.EmployeeId);
            return(View(attendanceRegister));
        }
Example #3
0
        public async Task <IActionResult> Create([Bind("Id,EmployeeId,Attendance,AttendanceTime")] AttendanceRegister attendanceRegister)
        {
            if (ModelState.IsValid)
            {
                _context.Add(attendanceRegister);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EmployeeId"] = new SelectList(_context.Employee, "Id", "FirstName", attendanceRegister.EmployeeId);
            return(View(attendanceRegister));
        }
 public bool NewAttendanceRegister(AttendanceRegister _register )
 {
     SqlParameter[] Params = new SqlParameter[]
     {
         new SqlParameter("@ModuleCode", _register.ModuleCode),
         new SqlParameter("@StaffNumber", _register.StaffNumber),
         new SqlParameter("@VenueCode",_register.VenueCode),
         new SqlParameter("@DateTime", _register.DateTime)
     };
     return DataAccess.ExecuteNonQuery("sp_InsertAttendanceRegister", CommandType.StoredProcedure,
         Params);
 }
        public AttendanceRegister GetAttendanceRegister(int AttendanceRegNumber)
        {
            AttendanceRegister reg = null;

            SqlParameter[] Params = { new SqlParameter("@AttendanceRegNumber", AttendanceRegNumber) };
            using (DataTable table = DataAccess.ExecuteParamatizedSelectCommand("sp_GetAttendanceRegister",
                CommandType.StoredProcedure, Params))
            {
                if (table.Rows.Count == 1)
                {
                    DataRow row = table.Rows[0];
                    reg = new AttendanceRegister();
                    reg.DateTime = Convert.ToDateTime(row["DateTime"]);
                    reg.ModuleCode = row["ModuleCode"].ToString();
                    reg.StaffNumber = row["StaffNumber"].ToString();
                    reg.VenueCode = row["VenueCode"].ToString();
                }
            }
            return reg;
        }
 public int LogAttendance(Staff _staff)
 {
     using (ModelContext db = new ModelContext())
     {
         var attendanceRegister = db.AttendanceRegisterList.Where(x =>
                                                                  x.Staff.StaffId == _staff.StaffId && x.Date >= DateTime.Today).FirstOrDefault();
         //if not null update departure date
         if (attendanceRegister != null && attendanceRegister.DepartureTime == null)
         {
             attendanceRegister.DepartureTime = DateTime.Now.ToShortTimeString();
             if (db.Entry <AttendanceRegister>(attendanceRegister).State == System.Data.Entity.EntityState.Detached)
             {
                 db.Set <AttendanceRegister>().Attach(attendanceRegister);
             }
             db.Entry <AttendanceRegister>(attendanceRegister).State = System.Data.Entity.EntityState.Modified;
             db.SaveChanges();
             return(1);
         }
         //if null update
         if (attendanceRegister == null)
         {
             attendanceRegister = new AttendanceRegister
             {
                 Date          = DateTime.Now,
                 ArrivalTime   = DateTime.Now.ToShortTimeString(),
                 DepartureTime = null,
                 StaffId       = _staff.StaffId,
                 Remark        = "Present"
             };
             if (db.Entry <AttendanceRegister>(attendanceRegister).State == System.Data.Entity.EntityState.Detached)
             {
                 db.Set <AttendanceRegister>().Attach(attendanceRegister);
             }
             db.Entry <AttendanceRegister>(attendanceRegister).State = System.Data.Entity.EntityState.Added;
             db.SaveChanges();
             return(2);
         }
         return(0);
     }
 }
 public List<AttendanceRegister> GetRangeOfAttendanceRegisters(DateTime startDate, DateTime endDate)
 {
     List<AttendanceRegister> _regList = null;
     SqlParameter[] Params = { new SqlParameter("@startDate", startDate), new SqlParameter("@endDate", endDate) };
     using (DataTable table = DataAccess.ExecuteParamatizedSelectCommand("", CommandType.StoredProcedure, Params))
     {
         if (table.Rows.Count > 0)
         {
             _regList = new List<AttendanceRegister>();
             foreach (DataRow row in table.Rows)
             {
                 AttendanceRegister _reg = new AttendanceRegister();
                 _reg.DateTime = Convert.ToDateTime(row["DateTime"]);
                 _reg.ModuleCode = row["ModuleCode"].ToString();
                 _reg.StaffNumber = row["StaffNumber"].ToString();
                 _reg.VenueCode = row["VenueCode"].ToString();
                 _regList.Add(_reg);
             }
         }
     }
     return _regList;
 }
        public List<AttendanceRegister> GetAllAttendanceRegisters()
        {
            List<AttendanceRegister> _regList = null;

            using (DataTable table = DataAccess.ExecuteSelectCommand("sp_GetAllAttendanceRegisters",
                CommandType.StoredProcedure))
            {
                if (table.Rows.Count > 0)
                {
                    _regList = new List<AttendanceRegister>();
                    foreach (DataRow row in table.Rows)
                    {
                        AttendanceRegister _reg = new AttendanceRegister();
                        _reg.DateTime = Convert.ToDateTime(row["DateTime"]);
                        _reg.ModuleCode = row["ModuleCode"].ToString();
                        _reg.StaffNumber = row["StaffNumber"].ToString();
                        _reg.VenueCode = row["VenueCode"].ToString();
                        _regList.Add(_reg);
                    }
                }
            }
            return _regList;
        }
 public bool InsertAttendanceRegister(AttendanceRegister _register)
 {
     AttendanceRegisterHandler myHandler = new AttendanceRegisterHandler(); return myHandler.NewAttendanceRegister(_register);
 }