// Set Contents Group(그룹 및 미션키로 갯수만 셋팅) static public void SetGroup(ArrayList arrList, Hashtable origin) { if (arrList == null) { return; } dicEventGroup.Clear(); for (int i = 0; i < arrList.Count; i++) { Hashtable headData = (Hashtable)arrList[i]; uint contentsID = uint.Parse(headData["eventType"].ToString()); EContentsEvent contentsType = (EContentsEvent)contentsID; ContentsEventGroup group = new ContentsEventGroup(headData, origin); switch (contentsType) // 타입 형태가 다르면 추가하여 셋팅할것 { case EContentsEvent.Attendance: AttendanceHelper.AddGroup(group); break; default: if (dicEventGroup.ContainsKey(contentsType)) { Debug.Log("ContentsEvent Exist Key:" + contentsType.ToString(), Color.magenta); continue; } dicEventGroup.Add(contentsType, group); break; } } }
public async Task <ActionResult> List() { DateTime work_date = CommonHelper.GetDateTime(Request["work_date"]); string employee = CommonHelper.GetValue(Request["employee"]); int pgnum = string.IsNullOrEmpty(Request["pgnum"]) ? 1 : Convert.ToInt32(Request["pgnum"]); int pgsize = string.IsNullOrEmpty(Request["pgsize"]) ? 0 : Convert.ToInt32(Request["pgsize"]); string sortcolumn = string.IsNullOrEmpty(Request["sortcolumn"]) ? EmployeeHelper.DEFAULT_SORT_COLUMN : Request["sortcolumn"]; string sortdir = string.IsNullOrEmpty(Request["sortdir"]) ? EmployeeHelper.DEFAULT_SORT_DIR : Request["sortdir"]; Sort sort = new Sort(sortcolumn, sortdir); Dictionary <string, object> filters = new Dictionary <string, object> { { "work_date", work_date }, { "employee", employee } }; ListModel <Attendance> l = null; if (work_date == default(DateTime) && string.IsNullOrEmpty(employee)) { l = await AttendanceHelper.GetAll(pgnum, pgsize, sort); } else { l = await AttendanceHelper.GetFilterBy(filters, pgnum, pgsize, sort); } return(View("_list", l)); }
public StudentAggregate CalculateStudentsStatistics(IEnumerable <Student> students) { var attendanceDictionary = new Dictionary <int, int>(); var annualGpaDictionary = new Dictionary <int, IList <float> >(); var bestStudents = new SortedDictionary <float, IList <Student> >(new GpaComparer()); Student mostInconsistentStudent = null; float maxInconsistency = -1; foreach (var student in students) { AttendanceHelper.AddStudentAttendance(student, attendanceDictionary); GpaHelper.AddStudentToBestStudents(student, bestStudents); GpaHelper.AddStudentGradesToAnnualGpa(student, annualGpaDictionary); float inconsistency = student.CalculateGradesInconsistency(); if (maxInconsistency < inconsistency) { maxInconsistency = inconsistency; mostInconsistentStudent = student; } } var statistics = new StudentAggregate(); statistics.YearWithHighestAttendance = AttendanceHelper.FindMostAttendedYear(attendanceDictionary); statistics.StudentIdMostInconsistent = (mostInconsistentStudent?.Id).GetValueOrDefault(); statistics.YearWithHighestOverallGpa = GpaHelper.GetHighestsAnnualGpaYear(annualGpaDictionary); statistics.Top10StudentIdsWithHighestGpa = GpaHelper.GetBestStudents(bestStudents, Constants.TopStudentsToSubmit).Select(x => x.Id).ToArray(); return(statistics); }
// // GET: /Admin/Attendance/ public async Task <ActionResult> Index() { ListModel <Attendance> l = null; l = await AttendanceHelper.GetAll(); return(View(l)); }
public void MustIncludeSeveralYears() { var student = _fixture.Build <Student>().With(x => x.StartYear, 2010).With(x => x.EndYear, 2012).Create(); var dictionary = new Dictionary <int, int>(); AttendanceHelper.AddStudentAttendance(student, dictionary); Assert.Equal(3, dictionary.Count); }
public void MustIncludeOneYear() { var student = _fixture.Build <Student>().With(x => x.StartYear, 2010).With(x => x.EndYear, 2010).Create(); var dictionary = new Dictionary <int, int>(); AttendanceHelper.AddStudentAttendance(student, dictionary); Assert.Single(dictionary); Assert.Equal(1, dictionary.Values.First()); }
public IActionResult AddDailyAttendance(DailyAttendanceAddViewModel model) { var err = ""; try { AttendanceHelper attHelper = new AttendanceHelper(); attHelper.AddDetailsAttendanceByHand(model.EMP_ID, model.ATT_DT, int.Parse(model.ONN_01.Replace(":", "") + T_String.GetMilisecondRandom()), int.Parse(model.OFF_01.Replace(":", "") + T_String.GetMilisecondRandom())); err += attHelper.err; return(Json(err)); } catch (Exception ex) { err += ex.Message + " - " + ex.StackTrace; } return(Json(err)); }
public async Task <JsonResult> Data() { string staff_id = CommonHelper.GetValue(Request["staff_id"]); string _month = Request["month"]; string _year = CommonHelper.GetValue(Request["year"], "0"); if (string.IsNullOrEmpty(_month)) { _month = Request["month[]"]; } if (string.IsNullOrEmpty(_month)) { _month = "0"; } string title = "Hourly Payroll"; string yaxis = "Total Amount (RM)"; object[] o = new object[12]; double[] b = new double[12]; string[] categories = new string[12]; double[] c = new double[12]; for (int i = 1; i < 13; i++) { o[i - 1] = new object[, ] { { CommonHelper.GetMonthName(i), 0 } }; categories[i - 1] = CommonHelper.GetAbbreviatedMonthName(i); } ISession se = NHibernateHelper.CurrentSession; ICriteria cr = se.CreateCriteria <Payrate>(); List <string> liststaff = new List <string>(); List <int> listyear = new List <int>(); List <int> listmonth = new List <int>(); if (!string.IsNullOrEmpty(staff_id)) { liststaff.Add(staff_id); } else { cr.SetProjection(Projections.Distinct(Projections.ProjectionList() .Add(Projections.Alias(Projections.Property("Staffid"), "Staffid")))); cr.SetResultTransformer(new AliasToBeanResultTransformer(typeof(Payrate))); IList <Payrate> list = await Task.Run(() => { return(cr.List <Payrate>()); }); await Task.Run(() => { foreach (Payrate x in list) { liststaff.Add(x.Staffid); } }); } if (_year != "0") { int year = Convert.ToInt32(_year); listyear.Add(year); title = string.Format("Hourly Payroll for {0}", year); } else { cr.SetProjection(Projections.Distinct(Projections.ProjectionList() .Add(Projections.Alias(Projections.Property("Year"), "Year")))); cr.SetResultTransformer(new AliasToBeanResultTransformer(typeof(Payrate))); IList <Payrate> list = await Task.Run(() => { return(cr.List <Payrate>()); }); await Task.Run(() => { foreach (Payrate x in list) { listyear.Add(x.Year); } }); } if (_month != "0") { string[] monthlist = _month.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string x in monthlist) { listmonth.Add(Convert.ToInt32(x)); } } else { for (int i = 1; i < 13; i++) { listmonth.Add(i); } } foreach (int y in listyear) { foreach (int m in listmonth) { foreach (string s in liststaff) { Dictionary <string, object> filters = new Dictionary <string, object> { { "year", y }, { "month", m }, { "staff_id", s } }; double total_hours = await AttendanceHelper.GetTotalHours(filters); double rate = await PayrateHelper.GetPayRate(filters); double v = total_hours * rate; object[,] t = o[m - 1] as object[, ]; double x = Convert.ToDouble(t[0, 1]); x += v; t[0, 1] = x; b[m - 1] += v; } } } for (int i = 0; i < b.Length; i++) { c[i] = Math.Round(b[i], 2); } return(Json(new Dictionary <string, object> { { "pie", o }, { "column", new Dictionary <string, object> { { "data", c }, { "categories", categories }, { "yaxis", yaxis } } }, { "title", title } }, JsonRequestBehavior.AllowGet)); }
public IActionResult CalDailyAttendancePost() { //var r = Request; QLNhaHangContext _db = new QLNhaHangContext(); List <Tbldetailsattendance> l = new List <Tbldetailsattendance>(); using (var reader = new StreamReader(Request.Body)) { var body = reader.ReadToEnd(); var _obj = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(body); foreach (var x in _obj) { var datt = _db.Tbldetailsattendance.Where(z => z.EmpId == x.Value <string>("EmpId") && z.AttDt == x.Value <DateTime>("AttDt")).FirstOrDefault(); string st = x.Value <string>("NotDr") + ""; if (st.IndexOf("Sign") < 0) { datt.NotOr = x.Value <string>("NotDr"); } datt.NotDr = "{UserLogin}" + " Sign"; datt.NotD1 = ""; //datt.EmpId = x.Value<string>("EmpId"); //datt.AttDt = x.Value<DateTime>("AttDt"); for (int j = 1; j <= 5; j++) { T_String.SetPropValue(datt, "Onn" + j.ToString("00"), x.Value <int>("Onn" + j.ToString("00"))); T_String.SetPropValue(datt, "Off" + j.ToString("00"), x.Value <int>("Off" + j.ToString("00"))); } _db.SaveChanges(); l.Add(datt); } // Do something } ArrayList a = new ArrayList(); var rsTypeShift = _db.Tbltypeshift.ToList(); int dem = 0 /*, i = 0;*/; for (int i = 0; i < l.Count; i++) { string EMP_ID = l[i].EmpId + ""; DateTime d1 = DateTime.Parse(l[i].AttDt + ""); string SHI_ID = l[i].ShiId + ""; var rsca = _db.Tbldetailsroster.Where(x => x.ShiId == SHI_ID).OrderBy(x => x.SeqNo).ToList(); ArrayList Ca = new ArrayList(); ArrayList ATT = new ArrayList(); for (int j = 0; j < rsca.Count(); j++) { Ca.Add(rsca[j].OnnTm); Ca.Add(rsca[j].OffTm); } Ca.Add(0); Ca.Add(0); Ca.Add(0); Ca.Add(0); for (int j = 1; j <= 5; j++) { ATT.Add(T_String.IsNullTo00(T_String.GetPropValue(l[i], "Onn" + j.ToString("00")) + "")); ATT.Add(T_String.IsNullTo00(T_String.GetPropValue(l[i], "Off" + j.ToString("00")) + "")); } AttendanceHelper.Attendance_Calc(EMP_ID, d1.ToString("yyyy/MM/dd"), null, Ca, ATT, SHI_ID, rsca, null, rsTypeShift, "TBLDETAILSATTENDANCE", l[i].NotDr + ""); dem++; } return(View()); }
public IActionResult CalDailyAttendance(DailyAttendanceEditViewModel model) { //var r = Request; var err = ""; try { QLNhaHangContext _db = new QLNhaHangContext(); List <Tbldetailsattendance> l = new List <Tbldetailsattendance>(); //using (var reader = new StreamReader(Request.Body)) //{ //var body = reader.ReadToEnd(); //var _obj = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(body); //foreach (var x in _obj) //{ var datt = _db.Tbldetailsattendance.Where(z => z.EmpId == model.EMP_ID && z.AttDt == model.ATT_DT).FirstOrDefault(); string st = model.NOT_DR + ""; if (st.IndexOf("Sign") < 0) { datt.NotOr = model.NOT_DR; } datt.NotDr = "{UserLogin}" + " Sign"; datt.NotD1 = ""; //datt.EmpId = x.Value<string>("EmpId"); //datt.AttDt = x.Value<DateTime>("AttDt"); for (int j = 1; j <= 5; j++) { var _onn = (T_String.GetPropValue(model, "ONN_" + j.ToString("00")) + "").Replace(":", ""); var _off = (T_String.GetPropValue(model, "OFF_" + j.ToString("00")) + "").Replace(":", ""); T_String.SetPropValue(datt, "Onn" + j.ToString("00"), _onn == "" ? "0" : _onn); T_String.SetPropValue(datt, "Off" + j.ToString("00"), _off == "" ? "0" : _off); } _db.SaveChanges(); l.Add(datt); //} // Do something //} ArrayList a = new ArrayList(); var rsTypeShift = _db.Tbltypeshift.ToList(); int dem = 0 /*, i = 0;*/; for (int i = 0; i < l.Count; i++) { string EMP_ID = l[i].EmpId + ""; DateTime d1 = DateTime.Parse(l[i].AttDt + ""); string SHI_ID = l[i].ShiId + ""; var rsca = _db.Tbldetailsroster.Where(x => x.ShiId == SHI_ID).OrderBy(x => x.SeqNo).ToList(); ArrayList Ca = new ArrayList(); ArrayList ATT = new ArrayList(); for (int j = 0; j < rsca.Count(); j++) { Ca.Add(rsca[j].OnnTm); Ca.Add(rsca[j].OffTm); } Ca.Add(0); Ca.Add(0); Ca.Add(0); Ca.Add(0); for (int j = 1; j <= 5; j++) { ATT.Add(T_String.IsNullTo00(T_String.GetPropValue(l[i], "Onn" + j.ToString("00")) + "")); ATT.Add(T_String.IsNullTo00(T_String.GetPropValue(l[i], "Off" + j.ToString("00")) + "")); } AttendanceHelper.Attendance_Calc(EMP_ID, d1.ToString("yyyy/MM/dd"), null, Ca, ATT, SHI_ID, rsca, null, rsTypeShift, "TBLDETAILSATTENDANCE", l[i].NotDr + ""); dem++; } } catch (Exception ex) { err += ex.Message + " - " + ex.StackTrace; } return(Json(err)); }
public IHttpActionResult CheckCertificateStatus(string idEvent, string idParticipant) { AttendanceHelper helper = new AttendanceHelper(); return(Ok(helper.CheckCertificateStatus(idEvent, idParticipant))); }
public IHttpActionResult CheckOutParticipant([FromBody] Attendance attendance) { AttendanceHelper helper = new AttendanceHelper(); return(Ok(helper.CheckOutCandidate(attendance))); }
public void MustThrowWhenIncorrectStartEndDates() { var student = _fixture.Build <Student>().With(x => x.StartYear, 2010).With(x => x.EndYear, 2000).Create(); Assert.Throws <ArgumentException>(() => AttendanceHelper.AddStudentAttendance(student, new Dictionary <int, int>())); }
public void MustThrowWhenStudentIsNull() { Assert.Throws <ArgumentNullException>(() => AttendanceHelper.AddStudentAttendance(null, new Dictionary <int, int>())); }
public ActionResult Attendance(Guid id) { var listOfAttencdance = AttendanceHelper.GetListAttendance(id); return(View(listOfAttencdance)); }