Пример #1
0
        public int UpdateEmployeeAttendance(EmployeeAttendanceModel employeeModel)
        {
            int result = 0;

            using (SqlConnection con = new SqlConnection(_ConnectionString.Value.ConnectionString))
            {
                con.Open();
                SqlTransaction sqltrans = con.BeginTransaction();
                var            query    = "UPDATE EmployeeAttendance SET " +
                                          " EmployeeId=@EmployeeId, LogDate=@LogDate, InTime=@InTime, OutTime=@OutTime, " +
                                          "TotalTimeCount=@TotalTimeCount, UpdateStatus=@UpdateStatus, Notes=@Notes " +
                                          "WHERE Id = @Id;";
                result = con.Execute(query, employeeModel, sqltrans, 0, System.Data.CommandType.Text);

                if (result > 0)
                {
                    sqltrans.Commit();
                }
                else
                {
                    sqltrans.Rollback();
                }
            }
            return(result);
        }
Пример #2
0
        public int InsertEmployeeAttendance(EmployeeAttendanceModel employeeModel)
        {
            int result = 0;

            using (SqlConnection con = new SqlConnection(_ConnectionString.Value.ConnectionString))
            {
                employeeModel.UpdateStatus   = (Framework.AttendanceStatus?) 1; //Manullly by defauly
                employeeModel.TotalTimeCount = (int)((employeeModel.OutTime.TotalMinutes - employeeModel.InTime.TotalMinutes) / 60);

                con.Open();
                SqlTransaction sqltrans = con.BeginTransaction();

                var query = "INSERT INTO EmployeeAttendance " +
                            "(EmployeeId,LogDate,InTime,OutTime,TotalTimeCount,UpdateStatus,Notes) " +
                            " VALUES " +
                            "(@EmployeeId,@LogDate,@InTime,@OutTime,@TotalTimeCount,@UpdateStatus,@Notes); " +
                            " SELECT CAST(SCOPE_IDENTITY() as INT);";
                result = con.Execute(query, employeeModel, sqltrans, 0, System.Data.CommandType.Text);

                if (result > 0)
                {
                    sqltrans.Commit();
                }
                else
                {
                    sqltrans.Rollback();
                }
            }
            return(result);
        }
Пример #3
0
        private string ValidationEmployeeAttendance(EmployeeAttendanceModel employeeAttendanceModel)
        {
            string ErrorString  = string.Empty;
            double timeDiffrent = employeeAttendanceModel.OutTime.TotalMinutes - employeeAttendanceModel.InTime.TotalMinutes;

            if (string.IsNullOrEmpty(employeeAttendanceModel.EmployeeId.ToString()) || employeeAttendanceModel.EmployeeId == 0)
            {
                ErrorString = _locService.GetLocalizedHtmlString("ValidAddOnesName");
                return(ErrorString);
            }
            if (timeDiffrent <= 0)
            {
                ErrorString = _locService.GetLocalizedHtmlString("ValidAddOnesName");
                return(ErrorString);
            }
            return(ErrorString);
        }
Пример #4
0
        public void UpdateWorkDaysAttendance(EmployeeAttendanceModel attendance)
        {
            var userId = this.GetCurrentUserId();
            var upt    = this._repoEmployeeAttendance.Find(attendance.id);

            if (attendance.workDay != null)
            {
                upt.workDayId = attendance.workDay.value;
            }
            else
            {
                upt.workDayId = null;
            }
            upt.workDate    = attendance.workDate;
            upt.updatedBy   = userId;
            upt.updatedDate = DateTime.Now;
            this._repoEmployeeAttendance.Update(upt);
            this._unitOfWork.Save();
        }
Пример #5
0
        private EmployeeAttendanceModel PrepareEmployeeAttendanceModel(EmployeeAttendance employeeAttendance)
        {
            EmployeeAttendanceModel employeeAttendanceTemp = new EmployeeAttendanceModel();

            employeeAttendanceTemp.Id         = employeeAttendance.Id;
            employeeAttendanceTemp.Date       = employeeAttendance.Date.AddMinutes(timeZoneOffset).ToString("dd MMM yyyy");
            employeeAttendanceTemp.EmployeeId = employeeAttendance.EmployeeId;
            if (employeeAttendanceTemp.EmployeeId > 0)
            {
                employeeAttendanceTemp.EmployeeName = employeeAttendance.Employee.FullName;
            }
            employeeAttendanceTemp.Note     = employeeAttendance.Note;
            employeeAttendanceTemp.RemarkId = employeeAttendance.RemarkId;
            if (employeeAttendanceTemp.RemarkId > 0)
            {
                employeeAttendanceTemp.AttendanceRemarkName = employeeAttendance.AttendanceRemark.Name;
            }
            employeeAttendanceTemp.Time     = employeeAttendance.Time;
            employeeAttendanceTemp.Type     = employeeAttendance.Type;
            employeeAttendanceTemp.SchoolId = employeeAttendance.SchoolId;
            if (employeeAttendanceTemp.SchoolId > 0)
            {
                employeeAttendanceTemp.SchoolName = employeeAttendance.School.Name;
                employeeAttendanceTemp.UpazilaId  = employeeAttendance.School.UpazilaId;
                if (employeeAttendanceTemp.UpazilaId > 0)
                {
                    //employeeAttendanceTemp.UpazilaName = employeeAttendance.School.Upazila.Name;
                    employeeAttendanceTemp.DistrictId = employeeAttendance.School.Upazila.DistrictId;
                    if (employeeAttendanceTemp.DistrictId > 0)
                    {
                        //employeeAttendanceTemp.DistrictName = employeeAttendance.School.Upazila.District.Name;
                        employeeAttendanceTemp.DivisionId = employeeAttendance.School.Upazila.District.DivisionId;
                        if (employeeAttendanceTemp.DivisionId > 0)
                        {
                            //employeeAttendanceTemp.DivisionName = employeeAttendance.School.Upazila.District.Division.Name;
                            employeeAttendanceTemp.GeoName = employeeAttendance.School.Upazila.District.Division.Name + " - " + employeeAttendance.School.Upazila.District.Name + " - " + employeeAttendance.School.Upazila.Name;
                        }
                    }
                }
            }

            return(employeeAttendanceTemp);
        }
Пример #6
0
        public int ValidationEmployeeAttendance(EmployeeAttendanceModel employeeAttendanceModel)
        {
            int result = 1;

            using (SqlConnection con = new SqlConnection(_ConnectionString.Value.ConnectionString))
            {
                List <EmployeeAttendanceModel> employeeAttendanceModels = new List <EmployeeAttendanceModel>();

                var query = "SELECT * FROM EMPLOYEEATTENDANCE WHERE EMPLOYEEID= " + employeeAttendanceModel.EmployeeId.ToString() +
                            "AND convert(varchar,LOGDATE,5) = '" + employeeAttendanceModel.LogDate.ToString("dd-MM-yy") + "';";
                employeeAttendanceModels = con.Query <EmployeeAttendanceModel>(query).ToList();

                if (employeeAttendanceModels.Count > 0)
                {
                    result = 0;
                }

                return(result);
            }
        }
Пример #7
0
        public ActionResult EmployeeAttendance(EmployeeAttendanceModel employeeAttendanceModel, string submitButton)
        {
            employeeAttendanceModel.EmployeeList = _iDropDownService.GetEmployeeList();

            if (!ModelState.IsValid)
            {
                string errorString = this.ValidationEmployeeAttendance(employeeAttendanceModel);
                if (!string.IsNullOrEmpty(errorString))
                {
                    ViewBag.Validate = errorString;
                    return(View(employeeAttendanceModel));
                }
            }

            if (_iemployeeAttendanceService.ValidationEmployeeAttendance(employeeAttendanceModel) == 0)
            {
                ViewBag.Validate = "Employee with same log date already exits";

                return(View(employeeAttendanceModel));
            }
            else
            {
                if (employeeAttendanceModel.Id > 0)
                {
                    var result = _iemployeeAttendanceService.UpdateEmployeeAttendance(employeeAttendanceModel);
                    ViewBag.Result = _locService.GetLocalizedHtmlString("EditSuccss");
                }
                else
                {
                    var result = _iemployeeAttendanceService.InsertEmployeeAttendance(employeeAttendanceModel);
                    ViewBag.Result = _locService.GetLocalizedHtmlString("SaveSuccess");
                }
            }

            return(RedirectToAction("Index", "EmployeeAttendance"));
        }
Пример #8
0
        public ActionResult EmployeeAttendance(int?id)
        {
            EmployeeAttendanceModel employeeAttendanceModel = new EmployeeAttendanceModel();

            if (UserRolePermissionForPage.Add == true || UserRolePermissionForPage.Edit == true)
            {
                if (id > 0)
                {
                    int userId = Convert.ToInt32(id);
                    employeeAttendanceModel = _iemployeeAttendanceService.GetEmployeeAttendaceById(userId);
                }
                else
                {
                    employeeAttendanceModel.LogDate = DateTime.Now;
                }
                employeeAttendanceModel.EmployeeList = _iDropDownService.GetEmployeeList();

                return(View(employeeAttendanceModel));
            }
            else
            {
                return(RedirectToAction("NotFound", "Error"));
            }
        }
Пример #9
0
        public async Task <ApiResponse> Handle(GetEmployeesAttendanceByDateQuery request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                int month = DateTime.Parse(request.SelectedDate).Month;

                List <EmployeeAttendance> empattendancelist = await _dbContext.EmployeeAttendance.Where(x => x.Date.Date == DateTime.Parse(request.SelectedDate).Date).ToListAsync();  //marked or not

                List <EmployeeDetail> activelist = await _dbContext.EmployeeDetail
                                                   .Include(x => x.EmployeeProfessionalDetail)                  // use to get officeId
                                                   .Include(x => x.EmployeeAttendance)
                                                   .Where(x => x.EmployeeProfessionalDetail.OfficeId == request.OfficeId &&
                                                          x.EmployeeProfessionalDetail.HiredOn.Value.Date <= DateTime.Parse(request.SelectedDate).Date&&
                                                          x.EmployeeProfessionalDetail.EmployeeTypeId == (int)EmployeeTypeStatus.Active &&
                                                          x.IsDeleted == false && x.EmployeeProfessionalDetail.AttendanceGroupId == request.AttendanceGroupId)
                                                   .OrderBy(x => x.EmployeeID)
                                                   .ToListAsync();                                  //EmployeeTypeId is moved to EmployeeProfessionalDetails table

                IList <EmployeeAttendanceModel> empAttModel = new List <EmployeeAttendanceModel>();
                if (request.AttendanceStatus)
                {
                    empAttModel = activelist.SelectMany(x => x.EmployeeAttendance)
                                  .Where(x => x.Date.Date == DateTime.Parse(request.SelectedDate).Date)
                                  .Select(x => new EmployeeAttendanceModel
                    {
                        AttendanceId     = x.AttendanceId,
                        EmployeeId       = x.EmployeeId,
                        Date             = x.Date,
                        InTime           = x.InTime.Value,
                        OutTime          = x.OutTime,
                        AttendanceTypeId = x.AttendanceTypeId,
                        EmployeeName     = x.EmployeeDetails.EmployeeName,
                        EmployeeCode     = x.EmployeeDetails.EmployeeCode,
                        LeaveStatus      = x.AttendanceId == (int)AttendanceType.L ? true : false,
                        OfficeId         = x.EmployeeDetails.EmployeeProfessionalDetail.OfficeId
                    }).ToList();


                    if (empAttModel.Count == 0 || empAttModel == null)
                    {
                        response.data.AttendanceStatus = false;  //attendance already marked
                    }
                    else
                    {
                        response.data.AttendanceStatus = true; //not marked
                    }
                }
                else
                {
                    int count = 0;

                    //Get Default In-time and out-time for an office and for current year and current month
                    PayrollMonthlyHourDetail xPayrollMonthlyHourDetail = _dbContext.PayrollMonthlyHourDetail.FirstOrDefault(x => x.IsDeleted == false && x.OfficeId == request.OfficeId && x.PayrollYear == DateTime.Now.Year &&
                                                                                                                            x.PayrollMonth == month && x.AttendanceGroupId == request.AttendanceGroupId);
                    if (xPayrollMonthlyHourDetail != null)
                    {
                        foreach (var item in activelist)
                        {
                            EmployeeAttendanceModel obj = new EmployeeAttendanceModel();
                            count = empattendancelist.Where(x => x.EmployeeId == item.EmployeeID).ToList().Count();
                            if (count == 0)
                            {
                                obj.EmployeeId       = item.EmployeeID;
                                obj.EmployeeName     = item.EmployeeName;
                                obj.EmployeeCode     = item.EmployeeCode;
                                obj.AttendanceTypeId = (int)AttendanceType.P;
                                obj.Date             = DateTime.UtcNow;
                                obj.InTime           = xPayrollMonthlyHourDetail.InTime;
                                obj.OutTime          = xPayrollMonthlyHourDetail.OutTime;
                                obj.LeaveStatus      = false;
                                obj.OfficeId         = request.OfficeId;
                                empAttModel.Add(obj);
                            }
                        }

                        if (empAttModel.Count == 0 || empAttModel == null)
                        {
                            response.data.AttendanceStatus = false;  //attendance already marked
                        }
                        else
                        {
                            response.data.AttendanceStatus = true; //not marked
                        }
                    }
                    else
                    {
                        response.StatusCode = StaticResource.failStatusCode;

                        response.Message = "Intime and Outtime not set for office";
                    }
                }

                response.data.EmployeeAttendanceList = empAttModel;
                response.StatusCode = response.StatusCode == 0 ? StaticResource.successStatusCode : response.StatusCode;

                //if message is empty then success else there is already some error message
                response.Message = string.IsNullOrEmpty(response.Message) ? "Success" : response.Message;
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
Пример #10
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 <EmployeeAttendanceModel> employeeAttendancemodelList = new List <EmployeeAttendanceModel>();

            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 (Employee employee in db.Employees.ToList())
            {
                EmployeeAttendance isEmployeeAdded = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isEmployeeAdded == null)
                {
                    EmployeeAttendance employeeAttendancenew = new EmployeeAttendance();
                    employeeAttendancenew.AttendanceTypeID = 2;
                    employeeAttendancenew.AttendanceDate   = calendar.Date;
                    employeeAttendancenew.EmployeeID       = employee.EmployeeID;
                    employeeAttendancenew.UserID           = userid;
                    employeeAttendancenew.UpdatedDate      = DateTime.Now;
                    db.EmployeeAttendances.Add(employeeAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //EmployeeAttendance employeeAttendanceexist = db.EmployeeAttendances.Find(isEmployeeAdded.EmployeeAttendanceID);
                    //int attendeddays = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && 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));
                    //employeeAttendanceexist.Percentage = perc1;
                    //db.Entry(employeeAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }

            var employeeAttendance = db.EmployeeAttendances.Include(s => s.CurrentEmployee).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentEmployee.Name).ToList();

            foreach (EmployeeAttendance ta in employeeAttendance)
            {
                int presentdays = db.EmployeeAttendances.Where(s => s.EmployeeID == ta.EmployeeID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 1).Count();
                int absentdays  = db.EmployeeAttendances.Where(s => s.EmployeeID == ta.EmployeeID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 2).Count();
                int leavedays   = db.EmployeeAttendances.Where(s => s.EmployeeID == ta.EmployeeID && s.AttendanceDate <= calendar.Date && s.AttendanceTypeID == 3).Count();

                EmployeeAttendanceModel employeeAttendancemodel = new EmployeeAttendanceModel();
                employeeAttendancemodel.EmployeeAttendanceID = ta.EmployeeAttendanceID;
                employeeAttendancemodel.EmployeeID           = ta.EmployeeID;
                employeeAttendancemodel.EmployeeName         = ta.CurrentEmployee.Name;
                employeeAttendancemodel.AttendanceTypeID     = ta.AttendanceTypeID;
                employeeAttendancemodel.BackDay1             = "";
                employeeAttendancemodel.BackDay2             = "";
                employeeAttendancemodel.BackDay3             = "";
                employeeAttendancemodel.BackDay4             = "";
                employeeAttendancemodel.BackDay5             = "";
                employeeAttendancemodel.BackDay6             = "";
                employeeAttendancemodel.Present = presentdays;
                employeeAttendancemodel.Absent  = absentdays;
                employeeAttendancemodel.Leave   = leavedays;
                employeeAttendancemodelList.Add(employeeAttendancemodel);
            }
            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 (Employee employee in db.Employees.ToList())
            {
                EmployeeAttendance isEmployeeAdded = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isEmployeeAdded == null)
                {
                    EmployeeAttendance employeeAttendancenew = new EmployeeAttendance();
                    employeeAttendancenew.AttendanceTypeID = 2;
                    employeeAttendancenew.AttendanceDate   = calendar.Date;
                    employeeAttendancenew.EmployeeID       = employee.EmployeeID;
                    employeeAttendancenew.UserID           = userid;
                    employeeAttendancenew.UpdatedDate      = DateTime.Now;
                    db.EmployeeAttendances.Add(employeeAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //EmployeeAttendance employeeAttendanceexist = db.EmployeeAttendances.Find(isEmployeeAdded.EmployeeAttendanceID);
                    //int attendeddays = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && 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));
                    //employeeAttendanceexist.Percentage = perc1;
                    //db.Entry(employeeAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            employeeAttendance = db.EmployeeAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentEmployee).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentEmployee.Name).ToList();
            foreach (EmployeeAttendance ta in employeeAttendance)
            {
                EmployeeAttendanceModel employeeattendanceid = employeeAttendancemodelList.Find(item => item.EmployeeID == ta.EmployeeID);
                employeeattendanceid.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 (Employee employee in db.Employees.ToList())
            {
                EmployeeAttendance isEmployeeAdded = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isEmployeeAdded == null)
                {
                    EmployeeAttendance employeeAttendancenew = new EmployeeAttendance();
                    employeeAttendancenew.AttendanceTypeID = 2;
                    employeeAttendancenew.AttendanceDate   = calendar.Date;
                    employeeAttendancenew.EmployeeID       = employee.EmployeeID;
                    employeeAttendancenew.UserID           = userid;
                    employeeAttendancenew.UpdatedDate      = DateTime.Now;
                    db.EmployeeAttendances.Add(employeeAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //EmployeeAttendance employeeAttendanceexist = db.EmployeeAttendances.Find(isEmployeeAdded.EmployeeAttendanceID);
                    //int attendeddays = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && 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));
                    //employeeAttendanceexist.Percentage = perc1;
                    //db.Entry(employeeAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            employeeAttendance = db.EmployeeAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentEmployee).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentEmployee.Name).ToList();
            foreach (EmployeeAttendance ta in employeeAttendance)
            {
                EmployeeAttendanceModel employeeattendanceid = employeeAttendancemodelList.Find(item => item.EmployeeID == ta.EmployeeID);
                employeeattendanceid.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 (Employee employee in db.Employees.ToList())
            {
                EmployeeAttendance isEmployeeAdded = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isEmployeeAdded == null)
                {
                    EmployeeAttendance employeeAttendancenew = new EmployeeAttendance();
                    employeeAttendancenew.AttendanceTypeID = 2;
                    employeeAttendancenew.AttendanceDate   = calendar.Date;
                    employeeAttendancenew.EmployeeID       = employee.EmployeeID;
                    employeeAttendancenew.UserID           = userid;
                    employeeAttendancenew.UpdatedDate      = DateTime.Now;
                    db.EmployeeAttendances.Add(employeeAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //EmployeeAttendance employeeAttendanceexist = db.EmployeeAttendances.Find(isEmployeeAdded.EmployeeAttendanceID);
                    //int attendeddays = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && 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));
                    //employeeAttendanceexist.Percentage = perc1;
                    //db.Entry(employeeAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            employeeAttendance = db.EmployeeAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentEmployee).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentEmployee.Name).ToList();
            foreach (EmployeeAttendance ta in employeeAttendance)
            {
                EmployeeAttendanceModel employeeattendanceid = employeeAttendancemodelList.Find(item => item.EmployeeID == ta.EmployeeID);
                employeeattendanceid.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 (Employee employee in db.Employees.ToList())
            {
                EmployeeAttendance isEmployeeAdded = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isEmployeeAdded == null)
                {
                    EmployeeAttendance employeeAttendancenew = new EmployeeAttendance();
                    employeeAttendancenew.AttendanceTypeID = 2;
                    employeeAttendancenew.AttendanceDate   = calendar.Date;
                    employeeAttendancenew.EmployeeID       = employee.EmployeeID;
                    employeeAttendancenew.UserID           = userid;
                    employeeAttendancenew.UpdatedDate      = DateTime.Now;
                    db.EmployeeAttendances.Add(employeeAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //EmployeeAttendance employeeAttendanceexist = db.EmployeeAttendances.Find(isEmployeeAdded.EmployeeAttendanceID);
                    //int attendeddays = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && 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));
                    //employeeAttendanceexist.Percentage = perc1;
                    //db.Entry(employeeAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            employeeAttendance = db.EmployeeAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentEmployee).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentEmployee.Name).ToList();
            foreach (EmployeeAttendance ta in employeeAttendance)
            {
                EmployeeAttendanceModel employeeattendanceid = employeeAttendancemodelList.Find(item => item.EmployeeID == ta.EmployeeID);
                employeeattendanceid.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 (Employee employee in db.Employees.ToList())
            {
                EmployeeAttendance isEmployeeAdded = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isEmployeeAdded == null)
                {
                    EmployeeAttendance employeeAttendancenew = new EmployeeAttendance();
                    employeeAttendancenew.AttendanceTypeID = 2;
                    employeeAttendancenew.AttendanceDate   = calendar.Date;
                    employeeAttendancenew.EmployeeID       = employee.EmployeeID;
                    employeeAttendancenew.UserID           = userid;
                    employeeAttendancenew.UpdatedDate      = DateTime.Now;
                    db.EmployeeAttendances.Add(employeeAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //EmployeeAttendance employeeAttendanceexist = db.EmployeeAttendances.Find(isEmployeeAdded.EmployeeAttendanceID);
                    //int attendeddays = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && 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));
                    //employeeAttendanceexist.Percentage = perc1;
                    //db.Entry(employeeAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            employeeAttendance = db.EmployeeAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentEmployee).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentEmployee.Name).ToList();
            foreach (EmployeeAttendance ta in employeeAttendance)
            {
                EmployeeAttendanceModel employeeattendanceid = employeeAttendancemodelList.Find(item => item.EmployeeID == ta.EmployeeID);
                employeeattendanceid.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 (Employee employee in db.Employees.ToList())
            {
                EmployeeAttendance isEmployeeAdded = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && s.AttendanceDate == calendar.Date).FirstOrDefault();
                if (isEmployeeAdded == null)
                {
                    EmployeeAttendance employeeAttendancenew = new EmployeeAttendance();
                    employeeAttendancenew.AttendanceTypeID = 2;
                    employeeAttendancenew.AttendanceDate   = calendar.Date;
                    employeeAttendancenew.EmployeeID       = employee.EmployeeID;
                    employeeAttendancenew.UserID           = userid;
                    employeeAttendancenew.UpdatedDate      = DateTime.Now;
                    db.EmployeeAttendances.Add(employeeAttendancenew);
                    db.SaveChanges();
                }
                else
                {
                    //EmployeeAttendance employeeAttendanceexist = db.EmployeeAttendances.Find(isEmployeeAdded.EmployeeAttendanceID);
                    //int attendeddays = db.EmployeeAttendances.Where(s => s.EmployeeID == employee.EmployeeID && 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));
                    //employeeAttendanceexist.Percentage = perc1;
                    //db.Entry(employeeAttendanceexist).State = EntityState.Modified;
                    //db.SaveChanges();
                }
            }
            employeeAttendance = db.EmployeeAttendances.Include(s => s.CurrentAttendanceType).Include(s => s.CurrentEmployee).Include(s => s.CurrentUser).Where(s => s.AttendanceDate == calendar.Date).OrderBy(t => t.CurrentEmployee.Name).ToList();
            foreach (EmployeeAttendance ta in employeeAttendance)
            {
                EmployeeAttendanceModel employeeattendanceid = employeeAttendancemodelList.Find(item => item.EmployeeID == ta.EmployeeID);
                employeeattendanceid.BackDay6 = ta.CurrentAttendanceType.Name;
            }
            ViewBag.BackDay6 = calendar.Date.Day + " " + mfi.GetMonthName(calendar.Date.Month).Substring(0, 3);

            ViewBag.AttendanceTypeID = db.AttendanceTypes.ToList();
            return(View(employeeAttendancemodelList));
        }
Пример #11
0
        public ActionResult EmployeeAttendanceUpdate([DataSourceRequest] DataSourceRequest request, EmployeeAttendanceModel model)
        {
            var results = new List <EmployeeAttendanceModel>();

            if (model != null)
            {
                try
                {
                    this._attendanceService.UpdateWorkDaysAttendance(model);
                    results.Add(model);
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }

            return(Json(results.ToDataSourceResult(request, ModelState)));
        }
Пример #12
0
 public static EmployeeAttendance ToEntity(this EmployeeAttendanceModel model, EmployeeAttendance destination)
 {
     return(model.MapTo(destination));
 }
Пример #13
0
 public static EmployeeAttendance ToEntity(this EmployeeAttendanceModel model)
 {
     return(model.MapTo <EmployeeAttendanceModel, EmployeeAttendance>());
 }
 public int ValidationEmployeeAttendance(EmployeeAttendanceModel employeeAttendanceModel)
 {
     return(_iEmployeeAttendanceReportsitory.ValidationEmployeeAttendance(employeeAttendanceModel));
 }
 public int UpdateEmployeeAttendance(EmployeeAttendanceModel employeeAttendanceModel)
 {
     return(_iEmployeeAttendanceReportsitory.UpdateEmployeeAttendance(employeeAttendanceModel));
 }
 public int InsertEmployeeAttendance(EmployeeAttendanceModel employeeAttendanceModel)
 {
     return(_iEmployeeAttendanceReportsitory.InsertEmployeeAttendance(employeeAttendanceModel));
 }