protected void searchButton_Click(object sender, EventArgs e)
        {
            EmployeeAttendanceViewModel model = new EmployeeAttendanceViewModel();

            model.FromDate   = DateTime.Parse(fromTextBox.Text);
            model.ToDate     = DateTime.Parse(toTextBox.Text);
            model.EmployeeId = int.Parse(employeeIdDropdownList.SelectedItem.Value.ToString());
            EmployeeId       = model.EmployeeId;

            DataSet data = _employeeUserManager.GetEmployeeAttendances(model);

            attendanceList.DataSource = data;
            attendanceList.DataBind();


            DataTable firstTable = data.Tables[0];


            foreach (DataRow row in firstTable.Rows)
            {
                int completed = (int)row["EmployeeId"];
                if (!string.IsNullOrEmpty(completed.ToString()))
                {
                    Count++;
                }
            }

            if (Count > 0)
            {
                salaryCalculator.CssClass = "";
                present.Text = Count.ToString();
            }
        }
        public DataSet GetEmployeeAttendances(EmployeeAttendanceViewModel model)
        {
            DataSet data  = new DataSet();
            string  query = "select * from EmployeeAttendance  WHERE Date>= '" +
                            model.FromDate + "' and Date<= '" + model.ToDate +
                            "'";
            SqlDataAdapter adapter = new SqlDataAdapter(query, _connection);

            _connection.Open();
            adapter.Fill(data);
            return(data);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Calculates employee attendance for the given employee and month to be used in statistics view
        /// </summary>
        /// <param name="username"></param>
        /// <param name="month"></param>
        /// <returns><see cref="EmployeeAttendanceViewModel"/></returns>
        public async Task <EmployeeAttendanceViewModel> EmployeeAttendance(string username, int month)
        {
            var user = await _employeeRepository.GetEmployeeWithEventsAsync(username);

            var events = user.EmployeeEvent.Where(e => e.Start.Value.Month == month && e.Start.Value.Year == DateTime.Now.Year);

            EmployeeAttendanceViewModel model = new EmployeeAttendanceViewModel
            {
                WorkDays   = events.Where(e => e.Status == WorkStatus.Work).Count(),
                AbsentDays = events.Where(e => e.Status == WorkStatus.Absent).Count(),
                Holidays   = events.Where(e => e.Status == WorkStatus.Holiday).Count(),
                Months     = MonthYearArrays.Month,
                Month      = CultureInfo.CreateSpecificCulture("en-GB").DateTimeFormat.GetMonthName(month)
            };

            return(model);
        }
Ejemplo n.º 4
0
        //details
        public async Task <IActionResult> AttendanceDetails(long id)
        {
            List <EmployeeAttendanceViewModel> model = new List <EmployeeAttendanceViewModel>();
            var x = await _context.EmployeeAttendances.Include(b => b.Employee).Include(b => b.AttendanceActionType).Include(b => b.PayrollComponentType)
                    .Where(b => b.AttendanceId == id).ToListAsync();

            foreach (var emp in x.Select(b => b.Employee).Distinct())
            {
                EmployeeAttendanceViewModel item = new EmployeeAttendanceViewModel();
                item.Id               = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").Id;
                item.EmployeeId       = emp.Id;
                item.EmployeeName     = emp.FirstName + " " + emp.FatherName + " " + emp.FamilyName;
                item.RequiredMinutes  = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").RequiredMinutes;
                item.Overtime1Minutes = 0;
                item.Overtime2Minutes = 0;
                item.WeekendMinutes   = 0;
                var x1 = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "OT1");
                if (x1 != null)
                {
                    item.Overtime1Minutes = x1.TotalMinutes;
                }
                x1 = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "OT2");
                if (x1 != null)
                {
                    item.Overtime2Minutes = x1.TotalMinutes;
                }
                x1 = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "WEEKEND");
                if (x1 != null)
                {
                    item.WeekendMinutes = x1.TotalMinutes;
                }
                item.CompliancePercentage     = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").CompliancePercentage;
                item.AttendanceActionTypeId   = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").AttendanceActionTypeId;
                item.AttendanceActionTypeName = x.SingleOrDefault(b => b.EmployeeId == emp.Id && b.PayrollComponentType.SysCode == "BASIC").AttendanceActionType.Name;
                model.Add(item);
            }
            return(PartialView("_AttendanceDetails", model));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> OnGetAsync(DateTime?dateTime)
        {
            if (_accountManage.IsLoggedIn != true || _accountManage.User.UserType != UserType.Admin)
            {
                return(RedirectToPage("/LoginPage"));
            }
            ViewData["User_Name"] = _accountManage.User.Name;
            ViewData.Add("ProfileImg", _accountManage.User.ProfileImageSrc);

            EmployeeAttendanceViews = new List <EmployeeAttendanceViewModel>();

            if (dateTime != null)
            {
                var searchDateMonth = (DateTime)dateTime;
                var today           = DateTime.Today;
                TotalDays = DateTime.DaysInMonth(today.Year, today.Month);

                var employess = await _db.Users.Where(a => a.UserType == UserType.Employee && a.Status == true && a.JoiningDate != null).Include(a => a.Attendances).AsNoTracking().ToListAsync();

                var startMonthDate = new DateTime(searchDateMonth.Year, searchDateMonth.Month, 1);
                var endMonthDate   = new DateTime(searchDateMonth.Year, searchDateMonth.Month, TotalDays);


                if (employess != null)
                {
                    if (employess.Count > 0)
                    {
                        foreach (var emp in employess)
                        {
                            if (((DateTime)emp.JoiningDate).CompareTo(endMonthDate) <= 0)
                            {
                                var empVM = new EmployeeAttendanceViewModel();
                                empVM.Attendances = new List <Attendance>();
                                empVM.Name        = emp.Name;
                                if (emp.Attendances.Count > 0)
                                {
                                    for (int i = 0; i < TotalDays; i++)
                                    {
                                        var specificDay = new DateTime(startMonthDate.Year, startMonthDate.Month, i + 1);
                                        if (((DateTime)emp.JoiningDate).CompareTo(specificDay) > 0)
                                        {
                                            empVM.Attendances.Add(new Attendance {
                                                Status = AttendanceStatus.NotJoined
                                            });
                                        }
                                        else
                                        {
                                            var att = emp.Attendances.SingleOrDefault(a => a.Day == i + 1 && a.Month == startMonthDate.Month && a.Year == startMonthDate.Year);
                                            if (att != null)
                                            {
                                                empVM.Attendances.Add(new Attendance {
                                                    Status = att.Status
                                                });
                                            }
                                            else
                                            {
                                                empVM.Attendances.Add(new Attendance {
                                                    Status = AttendanceStatus.NotJoined
                                                });
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    for (int i = 0; i < TotalDays; i++)
                                    {
                                        empVM.Attendances.Add(new Attendance {
                                            Status = AttendanceStatus.NotJoined
                                        });
                                    }
                                }
                                EmployeeAttendanceViews.Add(empVM);
                            }
                        }
                    }
                }
            }
            else
            {
                TotalDays = 0;
            }


            return(Page());
        }
Ejemplo n.º 6
0
 public DataSet GetEmployeeAttendances(EmployeeAttendanceViewModel model)
 {
     return(_employeeUserGetWay.GetEmployeeAttendances(model));
 }