示例#1
0
        public TimeAndAttendanceScheduledToWork BuildScheduledToWork(TimeAndAttendanceScheduleView scheduleView, TimeAndAttendanceScheduleDayView dayView, EmployeeView employeeItem, string payCode)
        {
            TimeAndAttendanceScheduledToWork scheduledToWork = new TimeAndAttendanceScheduledToWork();

            applicationViewFactory.MapTimeAndAttendanceScheduledToWorkEntity(ref scheduledToWork, scheduleView, dayView, employeeItem, payCode);

            return(scheduledToWork);
        }
        public ITimeAndAttendanceSchedule AddSchedule(TimeAndAttendanceScheduleView view)
        {
            Task <CreateProcessStatus> statusTask = Task.Run(async() => await unitOfWork.timeAndAttendanceScheduleRepository.AddSchedule(view));

            Task.WaitAll(statusTask);
            processStatus = statusTask.Result;
            return(this as ITimeAndAttendanceSchedule);
        }
        public async Task <IActionResult> GetTimeAndAttendanceScheduleView(long timeAndAttendanceScheduleId)
        {
            TimeAndAttendanceScheduleModule invMod = new TimeAndAttendanceScheduleModule();

            TimeAndAttendanceScheduleView view = await invMod.Schedule.Query().GetViewById(timeAndAttendanceScheduleId);

            return(Ok(view));
        }
        public async Task <IActionResult> DeleteTimeAndAttendanceSchedule([FromBody] TimeAndAttendanceScheduleView view)
        {
            TimeAndAttendanceScheduleModule invMod = new TimeAndAttendanceScheduleModule();
            TimeAndAttendanceSchedule       timeAndAttendanceSchedule = await invMod.Schedule.Query().MapToEntity(view);

            invMod.Schedule.DeleteTimeAndAttendanceSchedule(timeAndAttendanceSchedule).Apply();

            return(Ok(view));
        }
示例#5
0
        public IList <TimeAndAttendanceScheduledToWork> BuildScheduledToWork(TimeAndAttendanceScheduleView scheduleView, IList <EmployeeView> employeeViews)
        {
            IList <TimeAndAttendanceScheduledToWork> retList = new List <TimeAndAttendanceScheduledToWork>();

            foreach (var employeeItem in employeeViews)
            {
                TimeAndAttendanceScheduledToWork scheduledToWork = unitOfWork.timeAndAttendanceScheduledToWorkRepository.BuildScheduledToWork(scheduleView, employeeItem);
                retList.Add(scheduledToWork);
            }

            return(retList);
        }
        public async Task <IActionResult> AddTimeAndAttendanceSchedule([FromBody] TimeAndAttendanceScheduleView view)
        {
            TimeAndAttendanceScheduleModule invMod = new TimeAndAttendanceScheduleModule();

            NextNumber nnTimeAndAttendanceSchedule = await invMod.Schedule.Query().GetNextNumber();

            view.TimeAndAttendanceScheduleNumber = nnTimeAndAttendanceSchedule.NextNumberValue;

            TimeAndAttendanceSchedule timeAndAttendanceSchedule = await invMod.Schedule.Query().MapToEntity(view);

            invMod.Schedule.AddTimeAndAttendanceSchedule(timeAndAttendanceSchedule).Apply();

            TimeAndAttendanceScheduleView newView = await invMod.Schedule.Query().GetViewByNumber(view.TimeAndAttendanceScheduleNumber);


            return(Ok(newView));
        }
 public TimeAndAttendanceScheduleView GetScheduleByExpression(Expression <Func <TimeAndAttendanceSchedule, bool> > predicate)
 {
     try
     {
         var query = _unitOfWork.timeAndAttendanceScheduleRepository.GetObjectsQueryable(predicate) as IQueryable <TimeAndAttendanceSchedule>;
         TimeAndAttendanceScheduleView retItem = null;
         foreach (var item in query)
         {
             retItem = _unitOfWork.timeAndAttendanceScheduleRepository.BuildTimeAndAttendanceScheduleView(item);
             break;
         }
         return(retItem);
     }
     catch (Exception ex)
     {
         throw new Exception(GetMyMethodName(), ex);
     }
 }
示例#8
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();
        }
        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);
        }
示例#10
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);
        }
示例#11
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();
        }
        public IList <TimeAndAttendanceScheduledToWork> BuildScheduledToWork(TimeAndAttendanceScheduleView scheduleView, IList <EmployeeView> employeeViews, string payCode)
        {
            IList <TimeAndAttendanceScheduledToWork> retList = new List <TimeAndAttendanceScheduledToWork>();

            DateTime startDay = scheduleView.StartDate ?? DateTime.Now;
            DateTime endDay   = scheduleView.EndDate ?? DateTime.Now;

            TimeSpan difference = endDay - startDay;

            foreach (var employeeItem in employeeViews)
            {
                for (int i = 0; i <= difference.Days; i++)
                {
                    bool monday    = scheduleView.Monday ?? false;
                    bool tuesday   = scheduleView.Tuesday ?? false;
                    bool wednesday = scheduleView.Wednesday ?? false;
                    bool thursday  = scheduleView.Thursday ?? false;
                    bool friday    = scheduleView.Friday ?? false;
                    bool saturday  = scheduleView.Saturday ?? false;
                    bool sunday    = scheduleView.Sunday ?? false;


                    DateTime scheduleStartDate = scheduleView.StartDate ?? DateTime.Now;
                    DateTime currentDate       = scheduleStartDate.AddDays(i);
                    int?     durationHours     = scheduleView.DurationHours ?? 0;
                    int?     durationMinutes   = scheduleView.DurationMinutes ?? 0;

                    string shiftStartTime = scheduleView.ShiftStartTime;
                    string shiftEndTime   = scheduleView.ShiftEndTime;


                    DateTime startDate = unitOfWork.timeAndAttendanceRepository.BuildShortDate(currentDate, shiftStartTime);
                    DateTime endDate   = unitOfWork.timeAndAttendanceRepository.AddTimeShortDate(startDate, durationHours ?? 0, durationMinutes ?? 0);

                    string startDateTime = unitOfWork.timeAndAttendanceRepository.BuildLongDate(currentDate, shiftStartTime);
                    string endDateTime   = unitOfWork.timeAndAttendanceRepository.BuildLongDate(endDate);

                    TimeAndAttendanceScheduleDayView currentDayView = new TimeAndAttendanceScheduleDayView();
                    currentDayView.StartDate     = currentDate;
                    currentDayView.StartDateTime = startDateTime;
                    currentDayView.EndDate       = endDate;
                    currentDayView.EndDateTime   = endDateTime;


                    if (
                        (currentDate.DayOfWeek == DayOfWeek.Monday && monday) ||
                        (currentDate.DayOfWeek == DayOfWeek.Tuesday && tuesday) ||
                        (currentDate.DayOfWeek == DayOfWeek.Wednesday && wednesday) ||
                        (currentDate.DayOfWeek == DayOfWeek.Thursday && thursday) ||
                        (currentDate.DayOfWeek == DayOfWeek.Friday && friday) ||
                        (currentDate.DayOfWeek == DayOfWeek.Saturday && saturday) ||
                        (currentDate.DayOfWeek == DayOfWeek.Sunday && sunday)
                        )
                    {
                        TimeAndAttendanceScheduledToWork scheduledToWork = unitOfWork.timeAndAttendanceScheduledToWorkRepository.BuildScheduledToWork(scheduleView, currentDayView, employeeItem, payCode);
                        retList.Add(scheduledToWork);
                    }
                }
            }

            return(retList);
        }
示例#13
0
        public override void MapTimeAndAttendanceScheduledToWorkEntity(ref TimeAndAttendanceScheduledToWork scheduledToWork, TimeAndAttendanceScheduleView scheduleView, TimeAndAttendanceScheduleDayView dayView, EmployeeView employeeView, string payCode)

        {
            scheduledToWork.EmployeeId    = employeeView.EmployeeId;
            scheduledToWork.EmployeeName  = employeeView.EmployeeName;
            scheduledToWork.ScheduleId    = scheduleView.ScheduleId;
            scheduledToWork.ScheduleName  = scheduleView.ScheduleName;
            scheduledToWork.StartDate     = dayView.StartDate;
            scheduledToWork.EndDate       = dayView.EndDate;
            scheduledToWork.StartDateTime = dayView.StartDateTime;
            scheduledToWork.EndDateTime   = dayView.EndDateTime;
            scheduledToWork.ShiftId       = scheduleView.ShiftId ?? 0;
            scheduledToWork.JobCode       = employeeView.JobCode;
            scheduledToWork.WorkedJobCode = employeeView.JobCode;
            scheduledToWork.PayCode       = payCode;
        }
示例#14
0
 public abstract void MapTimeAndAttendanceScheduledToWorkEntity(ref TimeAndAttendanceScheduledToWork scheduledToWork, TimeAndAttendanceScheduleView scheduleView, TimeAndAttendanceScheduleDayView dayView, EmployeeView employeeView, string payCode);