Пример #1
0
        public ActionResult EditTimecard(TimeCardEditViewModel editedViewModel)
        {
            editedViewModel = this.AddUserAddedValuesToTimeCard(editedViewModel);
            if (EditTimeCardErrorCheck(editedViewModel))
            {
                return(RedirectToAction("EditTimecard", "Shift", new { shiftId = editedViewModel.shiftId }));
            }
            string whereClause  = $"WHERE s.id ={editedViewModel.shiftId}";
            Shift  orignalShift = this.shiftDAL.GetAllShifts(whereClause)[0];
            //test
            Shift tempOrignalShift = this.shiftDAL.GetAllShifts(whereClause)[0];

            tempOrignalShift.scheduleShiftID = Int32.MinValue + 500;

            Shift updatedShift = this.ConvertTimeCardEditViewModelToShift(editedViewModel, orignalShift);

            //Alerts and prevents user from 'saving' when no changes are made
            if (!this.HasShiftChanged(updatedShift, tempOrignalShift))
            {
                TempData["alert"] = "No values where changed";
                return(RedirectToAction("EditTimecard", "Shift", new { shiftId = editedViewModel.shiftId }));
            }

            if (this.shiftDAL.EditShift(updatedShift, tempOrignalShift))
            {
                TempData["notice"] = "Shift Updated successfully";
            }
            else
            {
                TempData["alert"] = "There was an issue with the update";
            }
            var herefortest = updatedShift;

            return(RedirectToAction("GetLastTwoWeeksOfShiftsForEdit", "Shift", new { personid = updatedShift.personID }));
        }
Пример #2
0
        private Shift ConvertTimeCardEditViewModelToShift(TimeCardEditViewModel timeCardEditViewModel, Shift orignalShift)
        {
            Shift shift = orignalShift;

            shift.personFirstName          = timeCardEditViewModel.personFirstName;
            shift.personLastName           = timeCardEditViewModel.personLastName;
            shift.scheduledStartTime       = timeCardEditViewModel.scheduledStartTime;
            shift.scheduledEndTime         = timeCardEditViewModel.scheduledEndTime;
            shift.scheduledLunchBreakStart = timeCardEditViewModel.scheduledLunchBreakStart;
            shift.scheduledLunchBreakEnd   = timeCardEditViewModel.scheduledLunchBreakEnd;
            shift.actualStartTime          = timeCardEditViewModel.actualStartTime;
            shift.actualEndTime            = timeCardEditViewModel.actualEndTime;
            shift.actualLunchBreakStart    = timeCardEditViewModel.actualLunchBreakStart;
            shift.actualLunchBreakEnd      = timeCardEditViewModel.actualLunchBreakEnd;
            return(shift);
        }
Пример #3
0
        //displays oldest first to insure that mistakes can be corrected
        private List <TimeCardEditViewModel> CovertShiftToTimeCardView(List <Shift> shifts)
        {
            List <TimeCardEditViewModel> timeCardEdits = new List <TimeCardEditViewModel>();

            foreach (Shift shift in shifts)
            {
                TimeCardEditViewModel timeCard = new TimeCardEditViewModel();
                timeCard.shiftId                  = shift.shiftID;
                timeCard.personFirstName          = shift.personFirstName;
                timeCard.personLastName           = shift.personLastName;
                timeCard.scheduledStartTime       = shift.scheduledStartTime;
                timeCard.scheduledEndTime         = shift.scheduledEndTime;
                timeCard.scheduledLunchBreakStart = shift.scheduledLunchBreakStart;
                timeCard.scheduledLunchBreakEnd   = shift.scheduledLunchBreakEnd;
                timeCard.actualStartTime          = shift.actualStartTime;
                timeCard.actualEndTime            = shift.actualEndTime;
                timeCard.actualLunchBreakStart    = shift.actualLunchBreakStart;
                timeCard.actualLunchBreakEnd      = shift.actualLunchBreakEnd;
                timeCardEdits.Add(timeCard);
            }

            return(timeCardEdits);
        }
Пример #4
0
        private TimeCardEditViewModel AddUserAddedValuesToTimeCard(TimeCardEditViewModel timeCardEditViewModel)
        {
            DateTime temp;

            if (DateTime.TryParse(Request.Form["scheduledLunchBreakStart"], out temp))
            {
                timeCardEditViewModel.scheduledLunchBreakStart = temp;
            }

            if (DateTime.TryParse(Request.Form["scheduledLunchBreakEnd"], out temp))
            {
                timeCardEditViewModel.scheduledLunchBreakEnd = temp;
            }

            if (DateTime.TryParse(Request.Form["actualStartTime"], out temp))
            {
                timeCardEditViewModel.actualStartTime = temp;
            }

            if (DateTime.TryParse(Request.Form["actualEndTime"], out temp))
            {
                timeCardEditViewModel.actualEndTime = temp;
            }

            if (DateTime.TryParse(Request.Form["actualLunchBreakStart"], out temp))
            {
                timeCardEditViewModel.actualLunchBreakStart = temp;
            }

            if (DateTime.TryParse(Request.Form["actualLunchBreakEnd"], out temp))
            {
                timeCardEditViewModel.actualLunchBreakEnd = temp;
            }

            return(timeCardEditViewModel);
        }
Пример #5
0
        private bool EditTimeCardErrorCheck(TimeCardEditViewModel timeCardEditViewModel)
        {
            bool     hasErrors = false;
            string   alert     = "There are errors in this edit The fields have been reset";
            DateTime temp;

            #region Insure Valid DateTimes
            if (!DateTime.TryParse(timeCardEditViewModel.scheduledStartTime.ToString(), out temp))
            {
                hasErrors = true;
                alert    += "\n Scheduled Start Time is invalid datetime";
            }
            if (!DateTime.TryParse(timeCardEditViewModel.scheduledEndTime.ToString(), out temp))
            {
                hasErrors = true;
                alert    += "\n Scheduled End Time is invalid datetime";
            }
            if (timeCardEditViewModel.scheduledStartTime == null || timeCardEditViewModel.scheduledEndTime == null)
            {
                hasErrors = true;
                alert    += "\n Scheduled Start and End times cannot be empty";
            }
            if (timeCardEditViewModel.scheduledLunchBreakStart != null)
            {
                if (!DateTime.TryParse(timeCardEditViewModel.scheduledLunchBreakStart.ToString(), out temp))
                {
                    hasErrors = true;
                    alert    += "\n Scheduled LunchBreak Start is invalid datetime";
                }
            }
            if (timeCardEditViewModel.scheduledLunchBreakEnd != null)
            {
                if (!DateTime.TryParse(timeCardEditViewModel.scheduledLunchBreakEnd.ToString(), out temp))
                {
                    hasErrors = true;
                    alert    += "\n Scheduled LunchBreak End is invalid datetime";
                }
            }
            if (timeCardEditViewModel.actualStartTime != null)
            {
                if (!DateTime.TryParse(timeCardEditViewModel.actualStartTime.ToString(), out temp))
                {
                    hasErrors = true;
                    alert    += "\n Actual Start Time is invalid datetime";
                }
            }
            if (timeCardEditViewModel.actualEndTime != null)
            {
                if (!DateTime.TryParse(timeCardEditViewModel.actualEndTime.ToString(), out temp))
                {
                    hasErrors = true;
                    alert    += "\n Actual End Time is invalid datetime";
                }
            }
            if (timeCardEditViewModel.actualLunchBreakStart != null)
            {
                if (!DateTime.TryParse(timeCardEditViewModel.actualLunchBreakStart.ToString(), out temp))
                {
                    hasErrors = true;
                    alert    += "\n Actual LunchBreak Start is invalid datetime";
                }
            }
            if (timeCardEditViewModel.actualLunchBreakEnd != null)
            {
                if (!DateTime.TryParse(timeCardEditViewModel.actualLunchBreakEnd.ToString(), out temp))
                {
                    hasErrors = true;
                    alert    += "\n Actual LunchBreak End is invalid datetime";
                }
            }
            #endregion
            #region Insure Datetime logic
            if (timeCardEditViewModel.scheduledLunchBreakStart == null && timeCardEditViewModel.scheduledLunchBreakEnd != null)
            {
                hasErrors = true;
                alert    += "\n If a Lunch break is scheduled it must have both a start and end time";
            }
            if (timeCardEditViewModel.scheduledLunchBreakEnd == null && timeCardEditViewModel.scheduledLunchBreakStart != null)
            {
                hasErrors = true;
                alert    += "\n If a Lunch break is scheduled it must have both a start and end time";
            }
            if (timeCardEditViewModel.actualStartTime > timeCardEditViewModel.actualEndTime)
            {
                hasErrors = true;
                alert    += "\n Actual start time must exist before end time";
            }
            if (timeCardEditViewModel.scheduledStartTime > timeCardEditViewModel.scheduledEndTime)
            {
                hasErrors = true;
                alert    += "\n Scheduled start Time must exist before end time";
            }
            if (timeCardEditViewModel.scheduledLunchBreakStart > timeCardEditViewModel.scheduledLunchBreakEnd)
            {
                hasErrors = true;
                alert    += "\n Scheduled Lunch start Time must exist before end time";
            }
            if (timeCardEditViewModel.actualLunchBreakStart > timeCardEditViewModel.actualLunchBreakEnd)
            {
                hasErrors = true;
                alert    += "\n Actual Lunch start Time must exist before end time";
            }
            if (timeCardEditViewModel.scheduledLunchBreakStart > timeCardEditViewModel.scheduledEndTime)
            {
                hasErrors = true;
                alert    += "\n No Scheduled values can exist before Scheduled end time";
            }
            if (timeCardEditViewModel.scheduledLunchBreakEnd > timeCardEditViewModel.scheduledEndTime)
            {
                hasErrors = true;
                alert    += "\n No Scheduled values can exist before Scheduled end time";
            }
            if (timeCardEditViewModel.actualStartTime > timeCardEditViewModel.actualEndTime)
            {
                hasErrors = true;
                alert    += "\n No actual values can exist before actual end time";
            }
            if (timeCardEditViewModel.actualLunchBreakEnd > timeCardEditViewModel.actualEndTime)
            {
                hasErrors = true;
                alert    += "\n No actual values can exist before actual end time";
            }
            if (timeCardEditViewModel.actualLunchBreakStart > timeCardEditViewModel.actualEndTime)
            {
                hasErrors = true;
                alert    += "\n No actual values can exist before actual end time";
            }
            if (timeCardEditViewModel.actualEndTime != null && timeCardEditViewModel.actualStartTime == null)
            {
                hasErrors = true;
                alert    += "\n Actual Start time must exist for end time to exist";
            }
            if (timeCardEditViewModel.actualLunchBreakStart != null && timeCardEditViewModel.actualStartTime == null)
            {
                hasErrors = true;
                alert    += "\n Actual Start time must exist for Lunch start time to exist";
            }
            if (timeCardEditViewModel.actualLunchBreakEnd != null && timeCardEditViewModel.actualStartTime == null)
            {
                hasErrors = true;
                alert    += "\n Actual Start time must exist for Lunch end time to exist";
            }
            if (timeCardEditViewModel.actualLunchBreakEnd != null && timeCardEditViewModel.actualLunchBreakStart == null)
            {
                hasErrors = true;
                alert    += "\n Actual Start Lunch must exist for Lunch End time to exist";
            }
            if (timeCardEditViewModel.actualEndTime != null && timeCardEditViewModel.actualStartTime == null)
            {
                hasErrors = true;
                alert    += "\n Actual Start time must exist for end time to exist";
            }
            if (timeCardEditViewModel.actualLunchBreakEnd != null && timeCardEditViewModel.actualStartTime == null)
            {
                hasErrors = true;
                alert    += "\n Actual Start Lunch must exist for Lunch End time to exist";
            }
            if (timeCardEditViewModel.actualLunchBreakStart < timeCardEditViewModel.actualStartTime)
            {
                hasErrors = true;
                alert    += "\n Actual Start Lunch cannot exist before actual start time";
            }
            if (timeCardEditViewModel.scheduledLunchBreakStart < timeCardEditViewModel.scheduledStartTime)
            {
                hasErrors = true;
                alert    += "\n Scheduled Start Lunch cannot exist before Scheduled start time";
            }
            if (timeCardEditViewModel.scheduledLunchBreakStart != null && timeCardEditViewModel.scheduledLunchBreakEnd == null)
            {
                hasErrors = true;
                alert    += "\n Scheduled Lunch Breaks must have both start and end or not exist";
            }
            if (timeCardEditViewModel.scheduledLunchBreakStart == null && timeCardEditViewModel.scheduledLunchBreakEnd != null)
            {
                hasErrors = true;
                alert    += "\n Scheduled Lunch Breaks must have both start and end or not exist";
            }
            if (timeCardEditViewModel.actualLunchBreakStart == null && timeCardEditViewModel.actualLunchBreakEnd != null)
            {
                hasErrors = true;
                alert    += "\n Actual Lunch Breaks cannot end without starting";
            }
            if (timeCardEditViewModel.actualStartTime == null && timeCardEditViewModel.actualEndTime != null)
            {
                hasErrors = true;
                alert    += "\n Actual Start time must exist before any other actual time";
            }
            if (timeCardEditViewModel.actualStartTime == null && timeCardEditViewModel.actualLunchBreakStart != null)
            {
                hasErrors = true;
                alert    += "\n Actual Start time must exist before any other actual time";
            }
            if (timeCardEditViewModel.actualStartTime == null && timeCardEditViewModel.actualLunchBreakEnd != null)
            {
                hasErrors = true;
                alert    += "\n Actual Start time must exist before any other actual time";
            }
            if (timeCardEditViewModel.actualEndTime != null && timeCardEditViewModel.actualLunchBreakStart != null && timeCardEditViewModel.actualLunchBreakEnd == null)
            {
                hasErrors = true;
                alert    += "\n Shifts cannot end with an actual Start lunch and no actual end lunch";
            }
            #endregion



            if (hasErrors)
            {
                TempData["alert"] = MvcHtmlString.Create(HttpUtility.HtmlEncode(alert).Replace("\n", "<br />"));;
            }

            return(hasErrors);
        }