// 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;
            }
        }
    }
示例#2
0
        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));
        }
示例#3
0
        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);
        }
示例#4
0
        //
        // 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());
        }
示例#7
0
        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));
        }
示例#8
0
        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));
        }
示例#9
0
        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());
        }
示例#10
0
        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));
        }
示例#11
0
        public IHttpActionResult CheckCertificateStatus(string idEvent, string idParticipant)
        {
            AttendanceHelper helper = new AttendanceHelper();

            return(Ok(helper.CheckCertificateStatus(idEvent, idParticipant)));
        }
示例#12
0
        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));
        }