public int getCountNum() { int userId = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID)); var t1 = db.TAbsences .Where(a => a.CEmployeeId == userId && a.CCountNum > 0 && a.CCountNum < 3 && a.CDate.Value.Month == Con.Month) .ToList(); List <TAbsence> list1 = new List <TAbsence>(); foreach (var item in t1) { TAbsence avm1 = new TAbsence() { CApplyNumber = item.CApplyNumber, CDate = item.CDate, COn = item.COn, COff = item.COff, CStatus = item.CStatus, CCountNum = item.CCountNum }; list1.Add(avm1); } int total = list1.Sum(x => Convert.ToInt32(x.CCountNum)); //本月補登總數 ViewBag.totalCountNum = total; //傳到view return(total); }
public IActionResult Edit(int?applyNum) { TimeSpan ConTime = Con.TimeOfDay; //09:00 TimeSpan LateTime = Late.TimeOfDay; //10:00 int userId = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID)); int countNum = getCountNum(); TAbsence abs = db.TAbsences.FirstOrDefault(a => a.CApplyNumber == applyNum); ViewBag.absence = applyNum; if ((applyNum != null) && (abs != null) && (abs.COn == null ? true : abs.COn < LateTime) && (countNum < 3)) { CAbsenceViewModel obj = new CAbsenceViewModel() { CApplyNumber = abs.CApplyNumber, CDate = abs.CDate, CEmployeeId = abs.CEmployeeId, COn = abs.COn, COff = abs.COff }; return(View(obj)); } else { return(RedirectToAction("LeaveCreate", "Leave")); } }
public IActionResult yesterdayVal(DateTime ysd)//判斷前一天是否有打卡 { int userId = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID)); TAbsence ab = db.TAbsences.FirstOrDefault(a => a.CEmployeeId == userId && a.CDate.Value.Date == ysd); //尋找昨天的打卡紀錄 var day = ysd.DayOfWeek; //星期 TUser u = db.TUsers.FirstOrDefault(u => u.COnBoardDay != DateTime.Today && u.CEmployeeId == userId); if (u != null) { if (ab == null) { if (day != DayOfWeek.Sunday && day != DayOfWeek.Saturday)//判斷昨天是否為六日 { TAbsence absence = new TAbsence() { CEmployeeId = userId, CDate = ysd, CStatus = "異常" }; db.Add(absence); db.SaveChanges(); } } else if (ab != null)//昨天有打上班卡,但未打下班卡 { if (ab.COff == null) { ab.CStatus = "異常"; db.Update(ab); db.SaveChanges(); } } } DateTime dtMonday = DateTime.Now.AddDays(1 - Convert.ToInt16(DateTime.Now.DayOfWeek)); //當週週一 DateTime dtSunday = dtMonday.AddDays(6); //當週週日 var table = db.TAbsences .Where(a => a.CEmployeeId == userId && a.CDate >= dtMonday && a.CDate <= dtSunday) .OrderByDescending(a => a.CDate).ToList(); List <CAbsenceViewModel> list = new List <CAbsenceViewModel>(); foreach (var item in table) { CAbsenceViewModel avm = new CAbsenceViewModel() { CApplyNumber = item.CApplyNumber, CDate = item.CDate, COn = item.COn, COff = item.COff, CStatus = item.CStatus }; list.Add(avm); } getCountNum(); return(PartialView("date_search", list)); }
public IActionResult Edit(TAbsence absence, int id, DateTime?date, string?when, int?applyNum) { if (absence != null) { TAbsence absed = db.TAbsences.FirstOrDefault(a => a.CApplyNumber == applyNum); TimeSpan ConTime = Con.TimeOfDay; //09:00 TimeSpan tenOclck = Con.AddHours(1).TimeOfDay; //10:00 if (absed != null) { if (absed.COn == null && absed.COff != null)//補上班卡 { absed.COn = TimeSpan.Parse("09:00:00"); absed.CStatus = "正常"; } else if (absed.COn != null && absed.COff == null)//補下班卡 { absed.COff = TimeSpan.Parse("18:00:00");; if (absed.COn > ConTime && absed.COn < tenOclck)//9:01 { absed.CStatus = "遲到"; } else if (absed.COn <= ConTime)//9:00前 { absed.CStatus = "正常"; } } else if (absed.COn == null && absed.COff == null)//補上下班卡 { if (when == "上班") { absed.COn = TimeSpan.Parse("09:00:00"); absed.CStatus = "異常"; } else if (when == "下班") { absed.COff = TimeSpan.Parse("18:00:00"); absed.CStatus = "異常"; } } absed.CCountNum++; db.Update(absed); db.SaveChanges(); } } getCountNum(); TempData["fromEdit"] = 1; return(RedirectToAction("List")); }
public IActionResult getClockString_on(int id, DateTime date)//上班 { try { int userId = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID)); TAbsence td = db.TAbsences.FirstOrDefault(z => z.CDate.Value.Date == DateTime.Today && z.CEmployeeId == id && z.COn.HasValue); //尋找該員工今天的打卡紀錄 if (td == null) //今天未打卡 { if (now <= Con) //9:00前 { TAbsence b = new TAbsence() { CEmployeeId = id, CDate = date, COn = TimeSpan.Parse(now.ToString("HH:mm:ss")), CStatus = "正常", }; db.TAbsences.Add(b); } else if (now > Con && now < Late)//9:00-9:59 { TAbsence b = new TAbsence() { CEmployeeId = id, CDate = date, COn = TimeSpan.Parse(now.ToString("HH:mm:ss")), CStatus = "遲到", }; db.TAbsences.Add(b); } else if (now >= Late)//10:00(含)之後 { TAbsence b = new TAbsence() { CEmployeeId = id, CDate = date, COn = TimeSpan.Parse(now.ToString("HH:mm:ss")), CStatus = "異常", }; db.TAbsences.Add(b); } db.SaveChanges(); } DateTime dtMonday = DateTime.Now.AddDays(1 - Convert.ToInt16(DateTime.Now.DayOfWeek)); //當週週一 DateTime dtSunday = dtMonday.AddDays(6); //當週週日 var table = db.TAbsences .Where(a => a.CEmployeeId == userId && a.CDate >= dtMonday && a.CDate <= dtSunday) .OrderByDescending(a => a.CDate).ToList(); List <CAbsenceViewModel> list = new List <CAbsenceViewModel>(); foreach (var item in table) { CAbsenceViewModel avm = new CAbsenceViewModel() { CApplyNumber = item.CApplyNumber, CDate = item.CDate, COn = item.COn, COff = item.COff, CStatus = item.CStatus }; list.Add(avm); } getCountNum(); return(PartialView("ClockOnAndOff", list)); } catch (Exception) { throw; } }
public IActionResult getClockString_off(int id, DateTime date)//下班 { try { int userId = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID)); DateTime now = DateTime.Now; TAbsence td = db.TAbsences.FirstOrDefault(z => z.CDate.Value.Date == DateTime.Today && z.CEmployeeId == id && z.COn.HasValue); //尋找該員工今天的打卡紀錄 TAbsence yd = db.TAbsences.FirstOrDefault(z => z.CEmployeeId == id && z.CDate.Value.Date == DateTime.Today.AddDays(-1)); //尋找該員工今天的打卡紀錄 if (td != null) //有打上班卡 { TimeSpan aonTime = td.COn.Value; //上班卡的時間 TimeSpan ConTime = Con.TimeOfDay; //09:00 TimeSpan LateTime = Late.TimeOfDay; //10:00 if (date == td.CDate) { if (aonTime > ConTime && aonTime < LateTime) { td.COff = TimeSpan.Parse(now.ToString("HH:mm:ss")); td.CStatus = "遲到"; db.SaveChanges(); } else if (aonTime < ConTime) { td.COff = TimeSpan.Parse(now.ToString("HH:mm:ss")); td.CStatus = "正常"; db.SaveChanges(); } else if (aonTime > LateTime) { td.COff = TimeSpan.Parse(now.ToString("HH:mm:ss")); td.CStatus = "異常"; db.SaveChanges(); } } } else if (td == null)//沒打上班卡 { TAbsence b = new TAbsence() { CEmployeeId = id, CDate = date, COff = TimeSpan.Parse(now.ToString("HH:mm:ss")), CStatus = "異常", CCountNum = yd.CCountNum }; db.TAbsences.Add(b); db.SaveChanges(); } DateTime dtMonday = DateTime.Now.AddDays(1 - Convert.ToInt16(DateTime.Now.DayOfWeek)); //當週週一 DateTime dtSunday = dtMonday.AddDays(6); //當週週日 var table = db.TAbsences .Where(a => a.CEmployeeId == userId && a.CDate >= dtMonday && a.CDate <= dtSunday) .OrderByDescending(a => a.CDate).ToList(); List <CAbsenceViewModel> list = new List <CAbsenceViewModel>(); foreach (var item in table) { CAbsenceViewModel avm = new CAbsenceViewModel() { CApplyNumber = item.CApplyNumber, CDate = item.CDate, COn = item.COn, COff = item.COff, CStatus = item.CStatus }; list.Add(avm); } return(PartialView("ClockOnAndOff", list)); } catch (Exception) { throw; } }
public CAbsenceViewModel() { iv_absence = new TAbsence(); iv_User = new TUser(); //iv_Dep = new TUserDepartment(); }
//public TUserDepartment Dep { get { return iv_Dep; } } public CAbsenceViewModel(TAbsence a, TUser u /*, TUserDepartment d*/) { iv_absence = a; iv_User = u; //iv_Dep = d; }