Пример #1
0
        private VMRosterApplication GetRosterApplication(List <RosterDetail> rosterDetails, RosterApplication rosterApp, VMRosterContinue obj)
        {
            VMRosterApplication vm = new VMRosterApplication();

            vm.DateEnded     = obj.EndDate;
            vm.DateStarted   = rosterApp.DateEnded.Value.AddDays(1);
            vm.CrewID        = (int)rosterApp.CriteriaData;
            vm.RosterTypeID  = (byte)rosterApp.RotaTypeID;
            vm.RotaApplD     = rosterApp.RotaAppID;
            vm.ShiftID       = (int)rosterApp.ShiftID;
            vm.FriMin        = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Friday).First());
            vm.FriStartTime  = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Friday).First());
            vm.SatMin        = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Saturday).First());
            vm.SatStartTime  = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Saturday).First());
            vm.SunMin        = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Sunday).First());
            vm.SunStartTime  = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Sunday).First());
            vm.MonMin        = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Monday).First());
            vm.MonStartTime  = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Monday).First());
            vm.TueMin        = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Tuesday).First());
            vm.TueStartTime  = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Tuesday).First());
            vm.WedMin        = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Wednesday).First());
            vm.WedStartTime  = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Wednesday).First());
            vm.ThruMin       = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Thursday).First());
            vm.ThruStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Thursday).First());
            return(vm);
        }
Пример #2
0
        private VMRosterModel CalculateRosterFields(VMRosterApplication vm, int _RotaAppID)
        {
            VAT_Shift     shift     = DDService.GetShift().Where(aa => aa.PShiftID == vm.ShiftID).First();
            VMRosterModel _objmodel = new VMRosterModel();

            try
            {
                int endPoint = 0;
                if (vm.RosterTypeID == 2)
                {
                    endPoint = (vm.DateEnded.Value - vm.DateStarted.Value).Days + 1;
                }
                else if (vm.RosterTypeID == 3)
                {
                    endPoint = 15;
                }
                else if (vm.RosterTypeID == 4)
                {
                    endPoint = System.DateTime.DaysInMonth(vm.DateStarted.Value.Year, vm.DateEnded.Value.Month);
                }
                else if (vm.RosterTypeID == 4)
                {
                    endPoint = 84;
                }

                _objmodel._RosterAttributes = new List <RosterAttributes>();
                _objmodel.Criteria          = ConvertCriteriaAbrvToFull("C");
                _objmodel.RotaAppID         = _RotaAppID;
                _objmodel.CriteriaValue     = vm.CrewID;
                _objmodel.ShiftID           = vm.ShiftID;
                _objmodel.StartDate         = vm.DateStarted.Value;
                _objmodel.EndDate           = vm.DateEnded.Value;
                _objmodel.NoOfDays          = endPoint;
                _objmodel.CriteriaValueName = DDService.GetCrew().Where(aa => aa.PCrewID == vm.CrewID).First().CrewName;
                _objmodel.ShiftName         = shift.ShiftName;
                DateTime _StartDate = vm.DateStarted.Value;
                for (int i = 1; i <= endPoint; i++)
                {
                    string   _day  = _StartDate.Date.ToString("dddd");
                    string   _date = _StartDate.Date.ToString("dd-MMM-yyyy");
                    string   shiftStartTimeString = GetShiftStartTimeString(_StartDate.DayOfWeek, vm);
                    TimeSpan shiftStartTime       = ATAssistant.ConvertTime(shiftStartTimeString);
                    int      workMin = GetWorkMinutesForSpecificDates(_StartDate, vm);
                    _objmodel._RosterAttributes.Add(new RosterAttributes {
                        ID = i, DateString = _date, Day = _day, DutyDate = _StartDate.Date, DutyTimeString = shiftStartTimeString, DutyTime = shiftStartTime, WorkMin = workMin
                    });
                    _StartDate = _StartDate.AddDays(1);
                }
                Expression <Func <RosterApplication, bool> > SpecificEntries = c => c.RotaAppID == _RotaAppID;
                RosterApplication rosterApp = RosterApplicationService.GetIndexSpecific(SpecificEntries).First();
                rosterApp.DateEnded = _StartDate.AddDays(-1);
                RosterApplicationService.PostEdit(rosterApp);
                return(_objmodel);
            }
            catch (Exception ex)
            {
                return(_objmodel);
            }
        }
Пример #3
0
        public ActionResult Create1()
        {
            VMRosterApplication vm = new VMRosterApplication();

            CreateHelper();
            ViewBag.ErrorList = "";
            return(View("Create1", vm));
        }
Пример #4
0
        public VMRosterModel ContinueRoster(VMRosterContinue vm)
        {
            RosterApplication rosterApp = RosterApplicationService.GetEdit(vm.RotaAppID);
            Expression <Func <RosterDetail, bool> > SpecificEntries = c => c.RosterAppID == vm.RotaAppID;
            List <RosterDetail> rosterDetails = RosterDetailService.GetIndexSpecific(SpecificEntries);
            VMRosterApplication vmRotaApp     = GetRosterApplication(rosterDetails, rosterApp, vm);

            rosterApp.DateEnded = vm.EndDate;
            RosterApplicationService.PostEdit(rosterApp);
            return(CalculateRosterFields(vmRotaApp, rosterApp.RotaAppID));
        }
Пример #5
0
        public ActionResult RosterDelete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            VMRosterApplication vm = new VMRosterApplication();

            vm.RotaApplD = (int)id;
            //DeleteRoster((int)id);
            return(View("Delete", vm));
        }
Пример #6
0
        public VMRosterModel PostCreate1(VMRosterApplication vm, VMLoggedUser LoggedInUser)

        {
            //Saves the entry in the database table RosterApplication
            RosterApplication ra = new RosterApplication()
            {
                DateStarted    = vm.DateStarted,
                DateEnded      = vm.DateEnded,
                DateCreated    = DateTime.Now,
                RosterCriteria = "C",
                CriteriaData   = vm.CrewID,
                RotaTypeID     = (byte)vm.RosterTypeID,
                Status         = true,
                ShiftID        = (byte)vm.ShiftID,
                UserID         = LoggedInUser.PUserID
            };

            RosterApplicationService.PostCreate(ra);

            return(CalculateRosterFields(vm, ra.RotaAppID));
        }
Пример #7
0
        public ActionResult Delete(VMRosterApplication obj)
        {
            RosterApplication RApp = new RosterApplication();

            //User uid = new User();
            RApp = RosterApplicationService.GetEdit(obj.RotaApplD);
            try
            {
                Expression <Func <RosterDetail, bool> > SpecificEntries = c => c.RosterAppID == obj.RotaApplD;
                List <RosterDetail> RAppDetail = RosterDetailService.GetIndexSpecific(SpecificEntries);
                foreach (var item in RAppDetail)
                {
                    RosterDetailService.PostDelete(item);
                }
            }
            catch (Exception)
            {
                throw;
            }
            RosterApplicationService.PostDelete(RApp);
            return(RedirectToAction("Index"));
        }
Пример #8
0
        public ActionResult Create1(VMRosterApplication obj)
        {
            List <string> ValidationError = new List <string>();
            // check for validation
            Expression <Func <RosterApplication, bool> > SpecificEntries = item => obj.DateStarted <item.DateEnded && item.DateEnded> item.DateStarted && item.CriteriaData == obj.CrewID;
            List <RosterApplication> tempVM = RosterApplicationService.GetIndexSpecific(SpecificEntries);

            if (tempVM.Count > 0)
            {
                ValidationError.Add("Rosters already created with same criteria");
            }
            if (ValidationError.Count == 0)
            {
                VMLoggedUser  LoggedInUser = Session["LoggedInUser"] as VMLoggedUser;
                VMRosterModel vm           = RosterService.PostCreate1(obj, LoggedInUser);
                return(View("Create2", vm));
            }
            else
            {
                ViewBag.ErrorList = ValidationError.ToList();
                CreateHelper();
                return(View("Create1", obj));
            }
        }
Пример #9
0
        private int GetWorkMinutesForSpecificDates(DateTime startDate, VMRosterApplication vm)
        {
            int workMin = 0;

            switch (startDate.DayOfWeek)
            {
            case DayOfWeek.Monday:
                workMin = vm.MonMin;
                break;

            case DayOfWeek.Tuesday:
                workMin = vm.TueMin;
                break;

            case DayOfWeek.Wednesday:
                workMin = vm.WedMin;
                break;

            case DayOfWeek.Thursday:
                workMin = vm.ThruMin;
                break;

            case DayOfWeek.Friday:
                workMin = vm.FriMin;
                break;

            case DayOfWeek.Saturday:
                workMin = vm.SatMin;
                break;

            case DayOfWeek.Sunday:
                workMin = vm.SunMin;
                break;
            }
            return(workMin);
        }
Пример #10
0
        private string GetShiftStartTimeString(DayOfWeek dayOfWeek, VMRosterApplication vm)
        {
            string time = "0000";

            switch (dayOfWeek)
            {
            case DayOfWeek.Monday:
                time = vm.MonStartTime;
                break;

            case DayOfWeek.Tuesday:
                time = vm.TueStartTime;
                break;

            case DayOfWeek.Wednesday:
                time = vm.WedStartTime;
                break;

            case DayOfWeek.Thursday:
                time = vm.ThruStartTime;
                break;

            case DayOfWeek.Friday:
                time = vm.FriStartTime;
                break;

            case DayOfWeek.Saturday:
                time = vm.SatStartTime;
                break;

            case DayOfWeek.Sunday:
                time = vm.SunStartTime;
                break;
            }
            return(time);
        }