Пример #1
0
        public async Task TestAddbyElapsedTime()
        {
            long       employeeId = 1;
            UnitOfWork unitOfWork = new UnitOfWork();

            TimeAndAttendanceModule  taMod     = new TimeAndAttendanceModule();
            TimeAndAttendancePunchIn taPunchin = null;

            DateTime asOfDate = DateTime.Now;

            string account               = "1200.215";
            int    mealDeduction         = 30;
            int    manual_elapsedHours   = 12;
            int    manual_elapsedMinutes = 30;

            TimeAndAttendancePunchIn openTA = await taMod.TimeAndAttendance.Query().IsPunchOpen(employeeId, asOfDate);

            if (openTA == null)
            {
                taPunchin = await taMod.TimeAndAttendance.Query().BuildPunchin(employeeId, account, asOfDate);

                taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();
            }

            //taPunchin = await taMod.TimeAndAttendance.Query().GetPunchOpen(employeeId);

            taMod.TimeAndAttendance.UpdatePunchIn(taPunchin, mealDeduction, manual_elapsedHours, manual_elapsedMinutes).Apply();

            taPunchin = await taMod.TimeAndAttendance.Query().GetEntityById(taPunchin.TimePunchinId);

            Assert.NotNull(taPunchin.PunchinDate);
        }
Пример #2
0
        public async Task TestGetPunchOpenView2()
        {
            long employeeId = 1;
            TimeAndAttendanceModule      taMod = new TimeAndAttendanceModule();
            TimeAndAttendancePunchInView view  = null;

            view = await taMod.TimeAndAttendance.Query().GetPunchOpenView(employeeId);
        }
Пример #3
0
        //http://localhost:61612/api/TimeAndAttendance/TAViews?StartDate=10/1/2018&EndDate=10/14/2018

        public async Task <IList <TimeAndAttendanceView> > Get([FromQuery] FilterTimeAndAttendance filter)
        {
            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            IList <TimeAndAttendanceView> views = await taMod.TimeAndAttendance.Query().GetViewsByDate(filter.StartDate, filter.EndDate);

            return(views);
        }
Пример #4
0
        public async Task <IActionResult> GetOpenPunch(long employeeId)
        {
            TimeAndAttendanceModule      taMod = new TimeAndAttendanceModule();
            TimeAndAttendancePunchInView view  = null;

            view = await taMod.TimeAndAttendance.Query().GetPunchOpenView(employeeId);

            return(Ok(view));
        }
Пример #5
0
        public async Task TestTimeAndAttendanceViewsByDate()
        {
            DateTime startDate = DateTime.Parse("10/12/2018");
            DateTime endDate   = DateTime.Now;

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            IList <TimeAndAttendanceView> list = await taMod.TimeAndAttendance.Query().GetViewsByDate(startDate, endDate);

            if (list.Count > 0)
            {
                Assert.True(true);
            }
        }
Пример #6
0
        public async Task TestTimeAndAttendanceViewsByIdAndDate(long?employeeId, DateTime startDate, DateTime endDate)
        {
            // long employeeId = 4;
            //DateTime startDate = DateTime.Parse("10/12/2018");
            //DateTime endDate = DateTime.Now;

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            IList <TimeAndAttendanceView> list = await taMod.TimeAndAttendance.Query().GetViewsByIdAndDate(employeeId, startDate, endDate);

            if (list.Count > 0)
            {
                Assert.True(true);
            }
        }
Пример #7
0
        //[ProducesResponseType(typeof(TimeAndAttendanceViewContainer), StatusCodes.Status200OK)]
        //public async Task<IActionResult> GetTimeAndAttendanceByPage(long employeeId,int pageNumber,int pageSize)
        public async Task <PageListViewContainer <TimeAndAttendancePunchInView> > GetTimeAndAttendanceByPage(long employeeId, int pageNumber, int pageSize)
        {
            //int pageSize = 1;
            //int pageNumber = 1;
            //int employeeId = 3;

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            Expression <Func <TimeAndAttendancePunchIn, bool> >   predicate = e => e.EmployeeId == employeeId;
            Expression <Func <TimeAndAttendancePunchIn, object> > order     = e => e.PunchinDateTime;

            PageListViewContainer <TimeAndAttendancePunchInView> container = await taMod.TimeAndAttendance.Query().GetViewsByPage(predicate, order, pageSize, pageNumber);

            return(container);

            //return Ok(container);
        }
Пример #8
0
        public void TestUpdateTAPunchin()
        {
            long timePunchinId = 3;
            //UnitOfWork unitOfWork = new UnitOfWork();

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            TimeAndAttendancePunchIn taPunchinLookUp = taMod.TimeAndAttendance.Query().GetPunchInById(timePunchinId);

            taPunchinLookUp.DurationInMinutes     = 480;
            taPunchinLookUp.MealDurationInMinutes = 30;

            taMod.TimeAndAttendance.UpdatePunchIn(taPunchinLookUp).Apply();


            Assert.True(true);
        }
Пример #9
0
        public async Task TestUpdateTAPunchin()
        {
            long?timePunchinId = 3;
            //UnitOfWork unitOfWork = new UnitOfWork();

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            TimeAndAttendancePunchIn taPunchinLookUp = await taMod.TimeAndAttendance.Query().GetEntityById(timePunchinId);

            taPunchinLookUp.DurationInMinutes     = 480;
            taPunchinLookUp.MealDurationInMinutes = 30;
            int mealDeduction = 0;

            taMod.TimeAndAttendance.UpdatePunchIn(taPunchinLookUp, mealDeduction).Apply();


            Assert.True(true);
        }
Пример #10
0
        public void TestGetTAPunchin()
        {
            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();
            int employeeId = 3;

            IList <TimeAndAttendancePunchInView> queryList = taMod.TimeAndAttendance.Query().GetTAPunchinByEmployeeId(employeeId);

            IList <TimeAndAttendancePunchInView> list = new List <TimeAndAttendancePunchInView>();

            foreach (var item in queryList)
            {
                output.WriteLine($"{item.EmployeeId} Date: {item.PunchinDateTime} Duration: {item.DurationInMinutes}");
                list.Add(item);
            }
            var Employee = list.Where(e => e.EmployeeId == employeeId).FirstOrDefault();

            Assert.True(Employee != null);
        }
Пример #11
0
        public void TestAddTAPunchin()
        {
            //UnitOfWork unitOfWork = new UnitOfWork();
            DateTime punchinDate         = DateTime.Parse("6/24/2018 08:01:02");
            int      employeeId          = 3;
            int      jobCodeXrefId       = 31;
            int      supervisorId        = 1;
            int      typeOfTimeUdcXrefId = 11;
            int      approvingAddressId  = 1;
            int      payCodeXrefId       = 16;
            int      scheduleId          = 1;

            TimeAndAttendancePunchIn taPunchin = new TimeAndAttendancePunchIn();

            taPunchin.PunchinDate = punchinDate;


            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            string punchinDateTime = taMod.TimeAndAttendance.FormatPunchDateTime(taPunchin.PunchinDate);

            taPunchin.PunchinDateTime = punchinDateTime;

            taPunchin.EmployeeId          = employeeId;
            taPunchin.JobCodeXrefId       = jobCodeXrefId;
            taPunchin.SupervisorId        = supervisorId;
            taPunchin.TypeOfTimeUdcXrefId = typeOfTimeUdcXrefId;
            taPunchin.ApprovingAddressId  = approvingAddressId;
            taPunchin.PayCodeXrefId       = payCodeXrefId;
            taPunchin.ScheduleId          = scheduleId;


            taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();

            //TODO Get the new created punchin
            TimeAndAttendancePunchIn taPunchinLookUp = taMod.TimeAndAttendance.Query().GetPunchInByExpression(e => e.PunchinDateTime == punchinDateTime && e.EmployeeId == employeeId);

            //TimeAndAttendancePunchIn taPunchinLookUp=  taMod.Query().GetPunchInById(timePunchinId);

            taMod.TimeAndAttendance.DeletePunchIn(taPunchinLookUp).Apply();

            Assert.True(true);
        }
Пример #12
0
        public async Task <IActionResult> CreatePunchin([FromBody] TimeAndAttendanceParam param)
        {
            TimeAndAttendanceModule  taMod     = new TimeAndAttendanceModule();
            TimeAndAttendancePunchIn taPunchin = null;

            TimeAndAttendanceTimeView currentTime = await taMod.TimeAndAttendance.Query().GetUTCAdjustedTime();

            DateTime asOfDate = currentTime.PunchDate;

            taPunchin = await taMod.TimeAndAttendance.Query().BuildPunchin(param.EmployeeId, param.Account, asOfDate);

            taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();

            TimeAndAttendancePunchInView view = null;

            view = await taMod.TimeAndAttendance.Query().GetPunchOpenView(param.EmployeeId);

            return(Ok(view));
        }
Пример #13
0
        public async Task <IActionResult> UpdatePunch([FromBody] TimeAndAttendanceParam param)
        {
            TimeAndAttendanceModule  taMod     = new TimeAndAttendanceModule();
            TimeAndAttendancePunchIn taPunchin = null;

            TimeAndAttendanceTimeView currentTime = await taMod.TimeAndAttendance.Query().GetUTCAdjustedTime();

            DateTime asOfDate = currentTime.PunchDate;

            taPunchin = await taMod.TimeAndAttendance.Query().GetPunchOpen(param.EmployeeId);

            taMod.TimeAndAttendance.UpdatePunchIn(taPunchin, param.MealDeduction).Apply();

            TimeAndAttendancePunchInView view = null;

            //view = await taMod.TimeAndAttendance.Query().GetPunchOpenView(param.employeeId);
            view = await taMod.TimeAndAttendance.Query().GetViewById(taPunchin.TimePunchinId);

            return(Ok(view));
        }
Пример #14
0
        public void TestAddScheduledToWork()
        {
            int supervisorId = 1;

            AddressBookModule abMod = new AddressBookModule();

            List <EmployeeView> employeeViews = abMod.AddressBook.Query().GetEmployeesBySupervisorId(supervisorId);


            string   scheduleName = "Schedule A";
            DateTime startDate    = DateTime.Parse("9/10/2018");
            DateTime endDate      = DateTime.Parse("9/14/2018");

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            TimeAndAttendanceScheduleView scheduleView = taMod.TimeAndAttendanceSchedule.Query().GetScheduleByExpression(e => e.ScheduleName == scheduleName && e.StartDate == startDate && e.EndDate == endDate);

            IList <TimeAndAttendanceScheduledToWork> items = taMod.TimeAndAttendanceScheduleToWork.BuildScheduledToWork(scheduleView, employeeViews);

            taMod.TimeAndAttendanceScheduleToWork.AddScheduledToWork(items).Apply();
        }
Пример #15
0
        public async Task TestScheduledToWorkPunchin()
        {
            long employeeId = 1;

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            //DateTime asOfDate = DateTime.Now;

            TimeAndAttendanceTimeView currentTime = await taMod.TimeAndAttendance.Query().GetUTCAdjustedTime();

            string account = "1200.215";

            TimeAndAttendancePunchIn openTA = await taMod.TimeAndAttendance.Query().IsPunchOpen(employeeId, currentTime.PunchDate);

            if (openTA == null)
            {
                TimeAndAttendancePunchIn taPunchin = await taMod.TimeAndAttendance.Query().BuildPunchin(employeeId, account, currentTime.PunchDate);

                taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();
            }
        }
Пример #16
0
        public async Task TestMoveTo()
        {
            int pageSize   = 1;
            int pageNumber = 1;
            int employeeId = 3;

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();


            Expression <Func <TimeAndAttendancePunchIn, bool> >   predicate = e => e.EmployeeId == employeeId && e.PunchinDate == DateTime.Parse("6/23/2018");
            Expression <Func <TimeAndAttendancePunchIn, object> > order     = e => e.PunchinDateTime;

            PageListViewContainer <TimeAndAttendancePunchInView> container = await taMod.TimeAndAttendance.Query().GetViewsByPage(predicate, order, pageSize, pageNumber);


            foreach (var item in container.Items)
            {
                output.WriteLine($"{item.EmployeeId} Date: {item.PunchinDateTime} Duration: {item.DurationInMinutes}");
            }
            Assert.True(container.TotalItemCount > 0);
        }
Пример #17
0
        public async Task TestAddTimeByDuration()
        {
            //No UTC lookup time
            long employeeId = 1;

            int      hours   = 9;
            int      minutes = 0;
            int      mealDurationInMinutes = 0;
            DateTime workDay = DateTime.Now;
            string   account = "1200.215";

            TimeAndAttendanceModule  taMod  = new TimeAndAttendanceModule();
            TimeAndAttendancePunchIn openTA = await taMod.TimeAndAttendance.Query().IsPunchOpen(employeeId, workDay);

            if (openTA != null)
            {
                TimeAndAttendancePunchIn taPunchin = await taMod.TimeAndAttendance.Query().BuildByTimeDuration(employeeId, hours, minutes, mealDurationInMinutes, workDay, account);

                taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();
            }
        }
Пример #18
0
        public async Task TestPunchOut()
        {
            long employeeId = 1;


            TimeAndAttendanceModule  taMod     = new TimeAndAttendanceModule();
            TimeAndAttendancePunchIn taPunchin = null;

            DateTime asOfDate = DateTime.Now;

            string account       = "1200.215";
            int    mealDeduction = 0;

            TimeAndAttendancePunchIn openTA = await taMod.TimeAndAttendance.Query().IsPunchOpen(employeeId, asOfDate);

            if (openTA == null)
            {
                taPunchin = await taMod.TimeAndAttendance.Query().BuildPunchin(employeeId, account, asOfDate);

                taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();

                Thread.Sleep(60000);
                taMod.TimeAndAttendance.UpdatePunchIn(taPunchin, mealDeduction).Apply();
            }
            else
            {
                Thread.Sleep(60000);
                taMod.TimeAndAttendance.UpdatePunchIn(openTA, mealDeduction).Apply();
            }

            //taPunchin = await taMod.TimeAndAttendance.Query().GetPunchOpen(employeeId);



            taPunchin = await taMod.TimeAndAttendance.Query().GetEntityById(taPunchin.TimePunchinId);

            Assert.NotNull(taPunchin.PunchinDate);

            // taMod.TimeAndAttendance.DeletePunchIn(taPunchin).Apply();
        }
Пример #19
0
        public async Task <IActionResult> ManualPunchOut(TimeAndAttendanceParam param)
        {
            TimeAndAttendanceModule      taMod     = new TimeAndAttendanceModule();
            TimeAndAttendancePunchIn     taPunchin = null;
            TimeAndAttendancePunchInView view      = null;
            //long employeeId=1;
            //string account = "1200.215";
            //int mealDeduction = 30;
            //int manual_elapsedHours = 12;
            //int manual_elapsedMinutes = 30;

            TimeAndAttendancePunchIn openTA = await taMod.TimeAndAttendance.Query().IsPunchOpen(param.EmployeeId, param.AsOfDate);

            if (openTA != null)
            {
                taMod.TimeAndAttendance.UpdatePunchIn(openTA, param.MealDeduction, param.Manual_ElapsedHours, param.Manual_ElapsedMinutes).Apply();

                taPunchin = await taMod.TimeAndAttendance.Query().GetEntityById(openTA.TimePunchinId);

                view = await taMod.TimeAndAttendance.Query().MapToView(taPunchin);
            }
            else
            {
                taPunchin = await taMod.TimeAndAttendance.Query().BuildPunchin(param.EmployeeId, param.Account, param.AsOfDate);

                taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();

                taPunchin = await taMod.TimeAndAttendance.Query().GetPunchOpen(param.EmployeeId);

                taMod.TimeAndAttendance.UpdatePunchIn(taPunchin, param.MealDeduction, param.Manual_ElapsedHours, param.Manual_ElapsedMinutes).Apply();

                taPunchin = await taMod.TimeAndAttendance.Query().GetEntityById(taPunchin.TimePunchinId);

                view = await taMod.TimeAndAttendance.Query().MapToView(taPunchin);
            }


            return(Ok(view));
            //Assert.NotNull(taPunchin.PunchinDate);
        }
Пример #20
0
        public async Task TestAddSchedule()
        {
            UnitOfWork unitOfWork = new UnitOfWork();
            long       shiftId    = 1;
            Task <TimeAndAttendanceShift> shiftTask = Task.Run(async() => await unitOfWork.timeAndAttendanceRepository.GetShiftById(shiftId));

            Task.WaitAll(shiftTask);
            TimeAndAttendanceScheduleView view = new TimeAndAttendanceScheduleView();


            view.ScheduleName = "Schedule A";
            view.StartDate    = DateTime.Parse("2/18/2019");
            view.EndDate      = DateTime.Parse("2/22/2019");

            view.ShiftId         = shiftTask.Result.ShiftId;
            view.ShiftName       = shiftTask.Result.ShiftName;
            view.ShiftStartTime  = shiftTask.Result.ShiftStartTime;
            view.ShiftEndTime    = shiftTask.Result.ShiftEndTime;
            view.DurationHours   = shiftTask.Result.DurationHours;
            view.DurationMinutes = shiftTask.Result.DurationMinutes;
            view.Monday          = shiftTask.Result.Monday;
            view.Tuesday         = shiftTask.Result.Tuesday;
            view.Wednesday       = shiftTask.Result.Wednesday;
            view.Thursday        = shiftTask.Result.Thursday;
            view.Friday          = shiftTask.Result.Friday;
            view.Saturday        = shiftTask.Result.Saturday;
            view.Sunday          = shiftTask.Result.Sunday;

            view.ScheduleGroup = "A";

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            TimeAndAttendanceSchedule schedule = await taMod.Schedule.Query().MapToEntity(view);

            taMod.Schedule.AddTimeAndAttendanceSchedule(schedule).Apply();

            TimeAndAttendanceScheduleView scheduleView = await taMod.Schedule.Query().GetScheduleByExpression(e => e.ScheduleName == view.ScheduleName && e.StartDate == view.StartDate && e.EndDate == view.EndDate);

            Assert.True(scheduleView != null);
        }
Пример #21
0
        public async Task TestGetPunchOpenView()
        {
            long     employeeId = 1;
            DateTime asOfDate   = DateTime.Now;

            TimeAndAttendanceModule      taMod = new TimeAndAttendanceModule();
            TimeAndAttendancePunchInView view  = null;
            string account = "1200.215";
            TimeAndAttendancePunchIn taPunchin = null;

            taPunchin = await taMod.TimeAndAttendance.Query().BuildPunchin(employeeId, account, asOfDate);

            taMod.TimeAndAttendance.AddPunchIn(taPunchin).Apply();

            view = await taMod.TimeAndAttendance.Query().GetPunchOpenView(employeeId);

            taPunchin = await taMod.TimeAndAttendance.Query().GetEntityById(view.TimePunchinId ?? 0);

            taMod.TimeAndAttendance.DeletePunchIn(taPunchin).Apply();

            Assert.True(view != null);
        }
Пример #22
0
        //[InlineData("Schedule A",  "2/18/2019" ,  "2/22/2019" )]
        public async Task TestAddScheduledToWork(string scheduleName, DateTime startDate, DateTime endDate, string payCode)
        {
            int supervisorId = 2;

            AddressBookModule abMod = new AddressBookModule();

            List <EmployeeView> employeeViews = await abMod.Employee.Query().GetViewsBySupervisorId(supervisorId);


            //string scheduleName = "Schedule A";
            //DateTime startDate = DateTime.Parse("2/11/2019");
            // DateTime endDate = DateTime.Parse("2/15/2019");

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            TimeAndAttendanceScheduleView scheduleView = await taMod.Schedule.Query().GetScheduleByExpression(e => e.ScheduleName == scheduleName && e.StartDate == startDate && e.EndDate == endDate);

            IList <TimeAndAttendanceScheduledToWork> items = taMod.ScheduleToWork.BuildScheduledToWork(scheduleView, employeeViews, payCode);

            taMod.ScheduleToWork.AddTimeAndAttendanceScheduledToWorks(items.ToList <TimeAndAttendanceScheduledToWork>()).Apply();

            Assert.True(items.Count > 0);
        }
Пример #23
0
        public void TestAddSchedule()
        {
            UnitOfWork unitOfWork = new UnitOfWork();
            long       shiftId    = 1;
            Task <TimeAndAttendanceShift> shiftTask = Task.Run(async() => await unitOfWork.timeAndAttendanceRepository.GetShiftById(shiftId));

            Task.WaitAll(shiftTask);
            TimeAndAttendanceScheduleView view = new TimeAndAttendanceScheduleView();


            view.ScheduleName = "Schedule A";
            view.StartDate    = DateTime.Parse("9/10/2018");
            view.EndDate      = DateTime.Parse("9/14/2018");

            view.ShiftId        = shiftTask.Result.ShiftId;
            view.ShiftName      = shiftTask.Result.ShiftName;
            view.ShiftStartTime = shiftTask.Result.ShiftStartTime;
            view.ShiftEndTime   = shiftTask.Result.ShiftEndTime;
            view.ScheduleGroup  = "A";

            TimeAndAttendanceModule taMod = new TimeAndAttendanceModule();

            taMod.TimeAndAttendanceSchedule.AddSchedule(view).Apply();
        }