예제 #1
0
        private async Task <List <AttendanceDetail> > getAttendanceDetail(DateTime AttendanceDate)
        {
            DataTable getData = new DataTable();
            List <AttendanceDetail> attendanceDetail = new List <AttendanceDetail>();
            string attendanceDate = DataAccess.DateStringConverter(AttendanceDate);

            try
            {
                getData = DataAccess.GetAttendanceDetail("ras_AttRecord", "Synchronized", "Clock", attendanceDate, "*");

                foreach (DataRow dr in getData.Rows)
                {
                    string           attDate             = Convert.ToDateTime(dr["Clock"]).ToString(dateFormat);
                    AttendanceDetail attendanceDetailObj = new AttendanceDetail();

                    DateTime dtAttendanceDate = dateConverter(attDate);
                    dtAttendanceDate = dtAttendanceDate.Date;

                    attendanceDetailObj.AttendanceDate = dtAttendanceDate;
                    attendanceDetailObj.EmployeeId     = dr["DIN"].ToString();
                    //DateTime timeIn = Convert.ToDateTime(dr["Clock"].ToString());
                    attendanceDetailObj.TimeIn = dateConverter(attDate);
                    attendanceDetail.Add(attendanceDetailObj);
                }
            }
            catch (Exception ex)
            {
            }

            return(await Task.FromResult(attendanceDetail));
        }
예제 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("PkAttndId,FkStudId,Attendance,CreatedDate")] AttendanceDetail attendanceDetail)
        {
            if (id != attendanceDetail.PkAttndId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(attendanceDetail);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AttendanceDetailExists(attendanceDetail.PkAttndId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FkStudId"] = new SelectList(_context.StudentDetails, "PkStudentId", "Contact", attendanceDetail.FkStudId);
            return(View(attendanceDetail));
        }
예제 #3
0
        public async Task <JsonResult> SaveAttendance(AttendanceModelDto veri)
        {
            if (ModelState.IsValid)
            {
                List <MessagesObj> messagesObjs  = new List <MessagesObj>();
                AttendanceDto      attendanceDto = new AttendanceDto();
                attendanceDto.CourseId   = veri.CourseId;
                attendanceDto.CreatedOn  = DateTime.ParseExact(veri.CreatedOn, "dd/MM/yyyy", null);
                attendanceDto.ModifiedOn = DateTime.Now;

                for (int i = 0; i < veri.students.Length; i++)
                {
                    AttendanceDetail attendanceDetail = new AttendanceDetail();
                    attendanceDetail.StudentId  = veri.students[i];
                    attendanceDetail.CreatedOn  = DateTime.Now;
                    attendanceDetail.ModifiedOn = DateTime.Now;
                    attendanceDto.AttendanceDetails.Add(attendanceDetail);
                }
                messagesObjs = await _attendanceApiService.Add(attendanceDto, ApiUrl + "api/Attendance", Session["access_token"] as String);

                if (messagesObjs.Count == 0)
                {
                    return(Json(new { messages = new List <string> {
                                          "Kaydınız başarılı bir şekilde gerçekleştirilmiştir."
                                      } }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new { messages = messagesObjs.Select(y => y.Message).ToList() }, JsonRequestBehavior.AllowGet));
            }
            //return Json(new { success = false, errors = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage).ToList() }, JsonRequestBehavior.AllowGet);
            var test = ModelState.Values.SelectMany(x => x.Errors.Select(y => y.ErrorMessage)).ToList();

            return(Json(new { messages = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage).ToList() }, JsonRequestBehavior.AllowGet));
        }
예제 #4
0
        public ActionResult HealerAttendance(FormCollection collection)
        {
            int count = Convert.ToInt32(collection["count"].ToString());
            AttendanceDetail        ad  = new AttendanceDetail();
            List <AttendanceDetail> ads = new List <AttendanceDetail>();

            for (int i = 0; i < count; i++)
            {
                ad.EmpId = Convert.ToInt32(collection["emps " + i].ToString());
                ad.AttendanceStatusId = Convert.ToInt32(collection["attendance " + i].ToString());
                ad.AttendanceTime     = DateTime.Now;
                ad.CreatedBy          = "admin";
                ad.CreatedOn          = DateTime.Now;
                db.AttendanceDetails.Add(ad);
                db.SaveChanges();
            }
            //AttendanceDetail ad = new AttendanceDetail();
            //ad.AttendanceStatusID = Convert.ToInt32(collection["attendance"].ToString());
            //ad.EmpId = Convert.ToInt32(collection["empcode"].ToString());
            //ad.AttendanceDate = DateTime.Now;
            //ad.CreatedBy ="1";
            //ad.CreatedOn = DateTime.Now;
            //db.AttendanceDetails.Add(ad);
            //int i = db.SaveChanges();
            //if(i==1)
            //{
            //    return Content("<script>alert('Attendance Registered Successfully');window.location = '/Home/Attendance';</script>");
            //}
            return(RedirectToAction("HealerAttendance"));
        }
예제 #5
0
        public ActionResult SaveAttendance(Attendance model)
        {
            /*           var temp = db.Enrollments.Where(x=>x.CourseName == my.CourseName).ToList();
             *         //  var temp = db.Enrollments.Where(x => x.CourseId == my.CourseId).ToList();
             *           List<Student> listStudentsInCourse = new List<Student>();
             *           foreach (var s in temp)
             *           {
             *               listStudentsInCourse.Add(s.Student);
             *           }
             */

            if (!string.IsNullOrWhiteSpace(model.CourseName))
            {
                String            coursename      = db.Courses.Where(x => x.CourseName == model.CourseName).FirstOrDefault().CourseName;
                var               temp            = db.Enrollments.Where(x => x.CourseName == model.CourseName).ToList();
                List <Attendance> objOrder        = new List <Attendance>();
                AttendanceDetail  ObjorderDetails = new AttendanceDetail();
                foreach (var e in temp)
                {
                    Student myStu = new Student();
                    myStu.StudentEmail = e.StudentEmail;
                    var x = db.Students.Where(xx => xx.StudentEmail == e.StudentEmail).ToList();
                    foreach (var q in x)
                    {
                        myStu.HomeNumber   = q.HomeNumber;
                        myStu.ParentId     = q.ParentId;
                        myStu.Address      = q.Address;
                        myStu.DateOfBirth  = q.DateOfBirth;
                        myStu.DepartmentId = q.DepartmentId;
                        myStu.FatherName   = q.FatherName;
                        myStu.FirstName    = q.FirstName;
                        myStu.LastName     = q.LastName;
                        myStu.Gender       = q.Gender;
                        myStu.StudentId    = q.StudentId;

                        // mymodel.students.Clear();


                        Attendance a = new Attendance {
                            StudentEmail = myStu.StudentEmail, CourseName = coursename, date = model.date, Status = "false"
                        };
                        objOrder.Add(a);
                    }
                }

                ObjorderDetails.attendances = objOrder;
                return(View(ObjorderDetails));
            }
            else
            {
                //  mymodel.students = db.Students.ToList();
            }


            return(View());
        }
예제 #6
0
        public async Task <IActionResult> Create([Bind("PkAttndId,FkStudId,Attendance,CreatedDate")] AttendanceDetail attendanceDetail)
        {
            if (ModelState.IsValid)
            {
                attendanceDetail.CreatedDate = DateTime.Now;
                _context.Add(attendanceDetail);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FkStudId"] = new SelectList(_context.StudentDetails, "PkStudentId", "Contact", attendanceDetail.FkStudId);
            return(View(attendanceDetail));
        }
        private bool insertAttendanceDetail(Apitoken apiToken, List <AttendanceDetail> attendanceDetail)
        {
            AttendanceDetail        payrollHrpayrollAttDetail = new AttendanceDetail();
            List <AttendanceDetail> attend = attendanceDetail;

            bool   status     = false;
            string employeeID = "";

            try
            {
                if (attendanceDetail != null)
                {
                    List <AttendanceDetail> att = attendanceDetail.GroupBy(x => x.EmployeeId).Select(g => g.First()).ToList();
                    foreach (AttendanceDetail attendanceDetailObj in att)
                    {
                        PayrollHrpayrollAttDetail payrollHrpayrollAttDetailObj = new PayrollHrpayrollAttDetail();

                        payrollHrpayrollAttDetailObj.CompanyId      = apiToken.CompanyId;
                        payrollHrpayrollAttDetailObj.DivisionId     = apiToken.DivisionId;
                        payrollHrpayrollAttDetailObj.DepartmentId   = apiToken.DepartmentId;
                        payrollHrpayrollAttDetailObj.AttendanceDate = attendanceDetailObj.AttendanceDate;

                        employeeID = getEmployeeID(apiToken, attendanceDetailObj);

                        payrollHrpayrollAttDetailObj.EmployeeId     = employeeID == null || employeeID == "" ? attendanceDetailObj.EmployeeId : employeeID;
                        payrollHrpayrollAttDetailObj.EmployeeName   = attendanceDetailObj.EmployeeName;
                        payrollHrpayrollAttDetailObj.ExpectedTimeIn = attendanceDetailObj.ExpectedTimeIn;
                        payrollHrpayrollAttDetailObj.TimeIn         = attendanceDetailObj.TimeIn;
                        payrollHrpayrollAttDetailObj.ShiftType      = attendanceDetailObj.ShiftType;
                        payrollHrpayrollAttDetailObj.Absent         = attendanceDetailObj.Absent;
                        payrollHrpayrollAttDetailObj.Remarks        = attendanceDetailObj.Remarks;
                        payrollHrpayrollAttDetailObj.LatePeriod     = attendanceDetailObj.LatePeriod;
                        payrollHrpayrollAttDetailObj.Period         = attendanceDetailObj.Period;
                        payrollHrpayrollAttDetailObj.BranchCode     = attendanceDetailObj.BranchCode;


                        _DBContext.Entry(payrollHrpayrollAttDetailObj).State = EntityState.Added;
                    }

                    return(status = true);
                }
            }
            catch (Exception ex)
            {
                return(status = false);
            }

            return(status);
        }
예제 #8
0
        public BusinessLayerResult <Attendance> SaveAttendance(Attendance attendances)
        {
            BusinessLayerResult <Attendance> res = new BusinessLayerResult <Attendance>();

            res.Result = attendances;
            if (_attendanceDal.Get(x => x.CourseId == attendances.CourseId && x.CreatedOn == attendances.CreatedOn) != null)
            {
                res.AddError(MessagesCodes.AlreadyExist, $"{attendances.CreatedOn} tarihli yoklama zaten yapılmış.");
                return(res);
            }
            _attendanceDal.Add(attendances);
            AttendanceDetail attendanceDetail = new AttendanceDetail {
                Attendance = attendances
            };

            return(res);
        }
예제 #9
0
        public IHttpActionResult Delete(int id)
        {
            AttendanceDetail attendance = new AttendanceDetail();

            attendance = _attendanceService.GetAttendanceDetail(id);
            if (attendance == null)
            {
                var response = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content      = new StringContent(string.Format($"{0} id'li kayıt bulunamadı.", id)),
                    ReasonPhrase = "Course Not Found",
                    StatusCode   = HttpStatusCode.NotFound
                };
                throw new HttpResponseException(response);
            }
            _attendanceService.DeleteStudentFromAttendance(attendance);
            return(Ok());
        }
        public string getEmployeeID(Apitoken apiToken, AttendanceDetail attendanceDetail)
        {
            string employeeID = "";

            try
            {
                PayrollEmployees empl = _DBContext.PayrollEmployees.Where(x => x.CompanyId == apiToken.CompanyId &&
                                                                          x.DivisionId == apiToken.DivisionId &&
                                                                          x.DepartmentId == apiToken.DepartmentId &&
                                                                          x.EmployeeBiometricID == attendanceDetail.EmployeeId).AsNoTracking().
                                        FirstOrDefault();

                employeeID = empl.EmployeeId;
            }
            catch (Exception ex)
            {
            }

            return(employeeID);
        }
예제 #11
0
        public ActionResult HealerAttendance(FormCollection collection)
        {
            int count = Convert.ToInt32(collection["count"].ToString());
            AttendanceDetail        ad  = new AttendanceDetail();
            List <AttendanceDetail> ads = new List <AttendanceDetail>();

            for (int i = 0; i < count; i++)
            {
                var emp      = Convert.ToInt32(collection["emps " + i].ToString());
                var personal = mis.AttendanceDetails.FirstOrDefault(j => j.EmpId == emp && EntityFunctions.TruncateTime(j.AttendanceTime) == DateTime.Today);
                if (personal == null)
                {
                    ad.EmpId = Convert.ToInt32(collection["emps " + i].ToString());
                    ad.AttendanceStatusId = Convert.ToInt32(collection["attendance " + i].ToString());
                    ad.AttendanceTime     = DateTime.Now;
                    ad.CreatedBy          = "admin";
                    ad.CreatedOn          = DateTime.Now;
                    mis.AttendanceDetails.Add(ad);
                    mis.SaveChanges();
                }
                else
                {
                    // return Content("<script>alert('Attendance Registered already For this Employee'+emp);window.location = '/Home/Attendance';</script>");
                }
                //AttendanceDetail ad = new AttendanceDetail();
                //ad.AttendanceStatusID = Convert.ToInt32(collection["attendance"].ToString());
                //ad.EmpId = Convert.ToInt32(collection["empcode"].ToString());
                //ad.AttendanceDate = DateTime.Now;
                //ad.CreatedBy ="1";
                //ad.CreatedOn = DateTime.Now;
                //db.AttendanceDetails.Add(ad);
                //int i = db.SaveChanges();
                //if(i==1)
                //{
                //    return Content("<script>alert('Attendance Registered Successfully');window.location = '/Home/Attendance';</script>");
                //}
            }
            return(Content("<script>alert('Attendance Registered Successfully');window.location = 'HealerAttendance';</script>"));

            //return RedirectToAction("HealerAttendance");
        }
예제 #12
0
        public static int EarlyRole(AttendanceDetail details, int validOfAtt, string[] timesOfCheck, StaffAttenType staffAttenType)
        {
            //同一小时内取min
            var records = details.Records.GroupBy(x => x.AttendanceTime.ToString("hh"))
                          .Select(x => x.ToList().Min()).OrderBy(x => x.AttendanceTime).ToArray();

            //var records = details.Records.OrderBy(x => x.AddtendanceTime).ToArray();

            if (records.Count() < validOfAtt || details.AttType != AttendanceType.Normal || staffAttenType != StaffAttenType.NormalWork)
            {
                //异常,不计入迟到范围,人工判定
                return(0);
            }
            else
            {
                var counter = 0;
                for (int i = 0; i < records.Count(); i++)
                {
                    if (i >= validOfAtt)
                    {
                        //超出部分无法判定
                        break;
                    }
                    var attendanceTime = records[i].AttendanceTime;
                    var flag           = i % 2 != 0;
                    //true , even, 判定早退
                    if (flag)
                    {
                        var normalTime = new DateTime(attendanceTime.Year, attendanceTime.Month, attendanceTime.Day);
                        var tm         = TimeSpan.Parse(timesOfCheck[i]);
                        normalTime = normalTime.Add(tm);
                        if (attendanceTime < normalTime)
                        {
                            counter++;
                        }
                    }
                }
                return(counter);
            }
        }
예제 #13
0
        private void getNotesFromDb(Attendance <DateSplitAttRecord> staff)
        {
            var details = staff.Details;

            //填空白
            Calendar.Days.Where(x => x.IsTargetMonth).ToList().ForEach(x =>
            {
                x.AttendanceType = AttendanceType.Normal;
                if (!details.Any(y => y.Day == x.Date))
                {
                    AttendanceDetail detail = new AttendanceDetail
                    {
                        AttType = AttendanceType.Exception,
                        Day     = x.Date,
                        Records = new List <DateSplitAttRecord>()
                    };
                    details.Add(detail);
                }
            });

            List <Days> days = details.Select(x => new Days
            {
                date           = x.Day,
                AttendanceType = x.AttType,
                notes          = x.Records.Aggregate("", (count, next) => count + next.AttendanceTime.ToString("HH:mm:ss") + "\r\n")
            }).ToList();

            //var month =  cboMonth.SelectedIndex + 1;
            Calendar.Days.Where(x => x.IsTargetMonth).ToList().ForEach(x => x.AttendanceType = AttendanceType.Normal);
            foreach (Days dbDay in days)
            {
                var day = Calendar.Days.Where(x => x.Date == dbDay.date).FirstOrDefault();
                if (day != null)
                {
                    day.Notes          = dbDay.notes;
                    day.AttendanceType = dbDay.AttendanceType;
                }
            }
        }
        public ActionResult AddFinancialReference(AttendanceDetail objAD)
        {
            HRMDB    objHRMEmp      = new HRMDB();
            var      data           = (from x in objHRMEmp.FinancialYearDetails.Where(x => x.FinancialId == objAD.financialId) select x).SingleOrDefault();
            int      count          = (from x in objHRMEmp.LeaveDetails where x.Status == true && x.Id == objAD.Id select x).Count();
            DateTime enddate        = Convert.ToDateTime(data.YearEnd);
            DateTime joindate       = Convert.ToDateTime(objAD.JoiningDate);
            string   nonworkingdays = data.NonWorkingDays;
            string   totaldays      = enddate.Subtract(joindate).TotalDays.ToString();
            int      totaldaysafternonworkingdays = int.Parse(totaldays) - int.Parse(nonworkingdays);
            string   totalleaves              = count.ToString();
            int      totalworkingdays         = (totaldaysafternonworkingdays) - int.Parse(count.ToString());
            DateTime currentdate              = DateTime.Now;
            string   totalworkingdaystilldate = currentdate.Subtract(joindate).TotalDays.ToString();

            objAD.Id                       = objAD.Id;
            objAD.TotalDays                = totaldaysafternonworkingdays.ToString();
            objAD.TotalLeaves              = totalleaves;
            objAD.TotalWorkingDays         = totalworkingdays.ToString();
            objAD.TotalWorkingDaysTillDate = totalworkingdaystilldate;
            objAD.financialId              = data.FinancialId.ToString();
            objEmpBLL.AddFinancialReference(objAD);
            return(View());
        }
예제 #15
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            btnSave.Enabled = false;

            AttendanceCode = generateAttendanceCode();

            Attendance rec = new Attendance(AttendanceCode, SelectedClassId,
                                            dtpDate.Value, Convert.ToInt32(LoginId), Convert.ToInt32(cmbPeriod.Text));

            Connector.AttendanceAdd(rec, DataSet);

            List <AttendanceDetail> details = new List <AttendanceDetail>();

            int i = 0;

            foreach (DataRow Row in DataSet.Tables["Student"].Rows)
            {
                AttendanceDetail recDetail = new AttendanceDetail(AttendanceCode, Convert.ToInt64(Row["RollNo"]), Convert.ToBoolean(dataGridView1.Rows[i].Cells["Presence"].Value));
                details.Add(recDetail);
                i++;
            }

            Connector.AttendanceDetailAdd(details, DataSet);
        }
예제 #16
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 /// <param name="entity"></param>
 public void AddAttendanceDetail(AttendanceDetail entity)
 {
     service.AddAttendanceDetail(entity);
 }
예제 #17
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 /// <param name="entity"></param>
 public void UpdateAttendanceDetail(AttendanceDetail entity)
 {
     new AttendanceDetailDAL().UpdateAttendanceDetail(entity);
 }
예제 #18
0
 public ActionResult SaveAttendance(AttendanceDetail Order)
 {
     db.AttendanceDetails.Add(Order);
     db.SaveChanges();
     return(RedirectToAction("Index", "Home"));
 }
예제 #19
0
 public static bool AttRole(AttendanceDetail details, int validOfAtt)
 {
     return(details.Records.Count() >= validOfAtt);
 }
예제 #20
0
 public void DeleteStudentFromAttendance(AttendanceDetail attendanceDetail)
 {
     var res = _AttendanceDetailDal.Delete(attendanceDetail);
 }
예제 #21
0
 public void AddFinancialReference(AttendanceDetail objAD)
 {
     objEmpDAL.AddFinancialReference(objAD);
 }