Ejemplo n.º 1
0
 /// <summary>
 /// Edit Holiday Detail
 /// </summary>
 /// <param name="createHoliday"></param>
 /// <returns></returns>
 public CreateHolidayViewModel EditHolidayDetail(CreateHolidayViewModel createHoliday, out string msg)
 {
     msg = "";
     try
     {
         var editHoli = (from rh in _db.Resource_Holiday
                         //join rhs in _db.Resource_HolidayStatus on rh.HolidayID equals rhs.HolidayID
                         where rh.HolidayID == createHoliday.HolidayID
                         // orderby rhs.StatusDateTime descending
                         select new CreateHolidayViewModel
         {
             HolidayID = rh.HolidayID,
             ResourceID = (int)rh.ResourceID,
             HolidayTypeID = (int)rh.HolidayTypeID,
             BookingHrs = (float)rh.BookingHrs,
             HolidayDate = (DateTime)rh.HolidayDate,
             StatusChangedOn = (DateTime)rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.StatusDateTime).FirstOrDefault(),
             //StatusChangedByID = rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.StatusChangedBy).FirstOrDefault(),
             StatusChangedBy = rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.StatusChangedBy).FirstOrDefault(),
             StatusID = rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.HolidayStatusTypeID).FirstOrDefault(),
             Status = _db.Resource_HolidayStatusType.Where(y => y.HolidayStatusTypeID == rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.HolidayStatusTypeID).FirstOrDefault()).Select(y => y.HolidayStatusType).FirstOrDefault(),
             Comment = rh.Comments,
         }).FirstOrDefault();
         if (editHoli == null)
         {
             msg = "Already Removed";
         }
         return(editHoli);
     }
     catch (Exception ex)
     {
         msg = ex.Message;
         return(createHoliday);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Create Assign Holiday
        /// </summary>
        /// <param name="createHoliday"></param>
        /// <returns></returns>
        public bool CreateAssignHoliday(CreateHolidayViewModel createHoliday, out string msg)
        {
            msg = "";
            try
            {
                Resource_Holiday resourceHoliday = new Resource_Holiday();

                resourceHoliday.ResourceID    = createHoliday.ResourceID;
                resourceHoliday.HolidayTypeID = createHoliday.HolidayTypeID;
                resourceHoliday.BookingHrs    = createHoliday.BookingHrs;
                resourceHoliday.HolidayDate   = createHoliday.HolidayStartDate;
                resourceHoliday.Comments      = createHoliday.Comment;
                _db.Resource_Holiday.Add(resourceHoliday);
                // _db.SaveChanges();

                Resource_HolidayStatus resourceHolidayStatus = new Resource_HolidayStatus();
                resourceHolidayStatus.HolidayID           = resourceHoliday.HolidayID;
                resourceHolidayStatus.StatusChangedBy     = HttpContext.Current.User.Identity.Name;
                resourceHolidayStatus.StatusDateTime      = createHoliday.RequestedOn.Add(DateTime.Now.TimeOfDay);
                resourceHolidayStatus.HolidayStatusTypeID = createHoliday.StatusID == 0? _db.Resource_HolidayStatusType.Where(x => x.HolidayStatusType == "Request").Select(x => x.HolidayStatusTypeID).FirstOrDefault(): createHoliday.StatusID;
                //resourceHolidayStatus.Comments = createHoliday.Comment;
                _db.Resource_HolidayStatus.Add(resourceHolidayStatus);
                _db.SaveChanges();
                msg = "Successfully Created";
                return(true);
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return(false);
            }
        }
Ejemplo n.º 3
0
        public ActionResult AddHoliday(int month, int year, int?searchResourceID)
        {
            CreateHolidayViewModel createHoliday = new CreateHolidayViewModel();

            createHoliday.SearchHoliday                  = new SearchHolidayViewModel();
            createHoliday.SearchHoliday.Month            = month;
            createHoliday.SearchHoliday.Year             = year;
            createHoliday.SearchHoliday.SearchResourceID = searchResourceID == null?0:(int)searchResourceID;
            _ViewBagListDetails();
            return(PartialView("_CreateHoliday", createHoliday));
        }
Ejemplo n.º 4
0
 public IActionResult Create(CreateHolidayViewModel viewModel)
 {
     try
     {
         holidayService.Add(viewModel.Type, viewModel.Days, viewModel.Description);
         return(RedirectToAction("Index"));
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Add Edit Holiday
        /// </summary>
        /// <param name="createHoliday"></param>
        /// <returns></returns>
        public bool AddEditHoliday(CreateHolidayViewModel createHoliday, out string msg)
        {
            msg = "";
            try
            {
                var checkRes = _db.Resource_Holiday.Where(x => x.HolidayDate == createHoliday.HolidayDate && x.ResourceID == createHoliday.ResourceID).FirstOrDefault();
                if (checkRes == null || checkRes.HolidayID == createHoliday.HolidayID)
                {
                    var addResHoli = (from rh in _db.Resource_Holiday where rh.HolidayID == createHoliday.HolidayID select rh).FirstOrDefault();

                    if (addResHoli != null)
                    {
                        addResHoli.BookingHrs    = createHoliday.BookingHrs;
                        addResHoli.HolidayDate   = createHoliday.HolidayDate;
                        addResHoli.HolidayTypeID = createHoliday.HolidayTypeID;
                        addResHoli.ResourceID    = createHoliday.ResourceID;
                        addResHoli.Comments      = createHoliday.Comment;
                    }
                    var addReHoliSta = _db.Resource_HolidayStatus.Where(x => x.HolidayID == createHoliday.HolidayID && x.HolidayStatusTypeID == createHoliday.StatusID).Select(x => x).FirstOrDefault();
                    if (addReHoliSta != null)
                    {
                        addReHoliSta.HolidayStatusTypeID = createHoliday.StatusID;
                        addReHoliSta.StatusChangedBy     = HttpContext.Current.User.Identity.Name;
                        addReHoliSta.StatusDateTime      = DateTime.Now;
                    }
                    else
                    {
                        Resource_HolidayStatus resourceHolidayStatus = new Resource_HolidayStatus();
                        resourceHolidayStatus.HolidayID           = createHoliday.HolidayID;
                        resourceHolidayStatus.StatusChangedBy     = HttpContext.Current.User.Identity.Name;
                        resourceHolidayStatus.StatusDateTime      = DateTime.Now;
                        resourceHolidayStatus.HolidayStatusTypeID = createHoliday.StatusID == 0 ? _db.Resource_HolidayStatusType.Where(x => x.HolidayStatusType == "Request").Select(x => x.HolidayStatusTypeID).FirstOrDefault() : createHoliday.StatusID;
                        //resourceHolidayStatus.Comments = createHoliday.Comment;
                        _db.Resource_HolidayStatus.Add(resourceHolidayStatus);
                    }
                    _db.SaveChanges();
                    msg = "Successfully Updated";

                    return(true);
                }
                msg = checkRes.Resource_Employee.FirstName + " already booked on " + createHoliday.HolidayDate.Date.ToString(globalVariables.GetCommonDate());
                return(false);
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return(false);
            }
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Create(CreateHolidayViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var isSuccess = await _holidayService.AddHoliday(viewModel);

                if (isSuccess)
                {
                    _logger.Info($"Holiday on {viewModel.HolidayDate} created successfully");
                    return(RedirectToAction("Index"));
                }
            }

            return(View(viewModel));
        }
Ejemplo n.º 7
0
        public ActionResult CreateHoliday(CreateHolidayViewModel createHoliday)
        {
            string msg;

            try
            {
                if (createHoliday.HolidayID != 0)
                {
                    ModelState.Remove("AssignType");
                }
                if (ModelState.IsValid)
                {
                    if (createHoliday.HolidayID != 0)
                    {
                        SearchHolidayViewModel searchHoliday = new SearchHolidayViewModel();
                        searchHoliday.Year             = createHoliday.SearchHoliday.Year;
                        searchHoliday.Month            = createHoliday.SearchHoliday.Month;
                        searchHoliday.SearchResourceID = createHoliday.SearchHoliday.SearchResourceID;
                        if (holidayBL.AddEditHoliday(createHoliday, out msg))
                        {
                            return(Json(new { success = true, searchHoliday = searchHoliday, message = msg }));
                        }
                        else
                        {
                            _ViewBagListDetails();
                            return(Json(new { success = false, searchHoliday = searchHoliday, message = msg, partialview = RenderViewToString("_CreateHoliday", createHoliday) }));
                        }
                    }
                    else
                    {
                        var dayDi = (createHoliday.HolidayEndDate - createHoliday.HolidayStartDate).Days + 1;
                        //var startDat = createHoliday.HolidayStartDate;
                        int           count    = 0;
                        List <string> dateList = new List <string>();
                        if (createHoliday.ResourceID != 0)
                        {
                            for (int i = 0; i < dayDi; i++)
                            {
                                var testDate = createHoliday.HolidayStartDate.AddDays(i);
                                var takeHoli = holidayBL.GetDayHoliday(testDate, createHoliday.ResourceID);
                                if (((testDate.DayOfWeek == DayOfWeek.Friday && createHoliday.WeeklyFriday == true) || (testDate.DayOfWeek == DayOfWeek.Monday && createHoliday.WeeklyMonday == true) || (testDate.DayOfWeek == DayOfWeek.Saturday && createHoliday.WeeklySaturday == true) || (testDate.DayOfWeek == DayOfWeek.Sunday && createHoliday.WeeklySunday == true) || (testDate.DayOfWeek == DayOfWeek.Thursday && createHoliday.WeeklyThursday == true) || (testDate.DayOfWeek == DayOfWeek.Tuesday && createHoliday.WeeklyTuesday == true) || (testDate.DayOfWeek == DayOfWeek.Wednesday && createHoliday.WeeklyWednesday == true)) && createHoliday.AssignType != "NoofDays")
                                {
                                    if (takeHoli == true)
                                    {
                                        dateList.Add(testDate.Date.ToString(MvcApplication.DateFormat));
                                    }
                                    count = count + 1;
                                }
                                if (createHoliday.AssignType == "NoofDays")
                                {
                                    if (takeHoli == true)
                                    {
                                        dateList.Add(testDate.Date.ToString(MvcApplication.DateFormat));
                                    }
                                }
                            }
                        }
                        if (createHoliday.HolidayStartDate < createHoliday.RequestedOn || createHoliday.HolidayStartDate > createHoliday.HolidayEndDate || (count == 0 && createHoliday.AssignType != "NoofDays") || dateList.Count > 0 || createHoliday.NoofDays < 0)
                        {
                            if (createHoliday.HolidayStartDate > createHoliday.HolidayEndDate)
                            {
                                ModelState.AddModelError("HolidayEndDate", "Invalid Date Range");
                            }
                            if (count == 0 && (createHoliday.WeeklyFriday == true || createHoliday.WeeklyMonday == true || createHoliday.WeeklySaturday == true || createHoliday.WeeklySunday == true || createHoliday.WeeklyThursday == true || createHoliday.WeeklyTuesday == true || createHoliday.WeeklyWednesday == true) && createHoliday.AssignType != "NoofDays")
                            {
                                ModelState.AddModelError("HolidayEndDate", "Not suitable to create shift Schedule within Your Required Days !");
                            }
                            if (dateList.Count > 0)
                            {
                                string outputName = string.Join(",", dateList.ToArray());
                                ModelState.AddModelError("HolidayEndDate", "You already Booked this Holiday on  " + "'" + outputName + "'");
                            }
                            if (createHoliday.NoofDays < 0)
                            {
                                ModelState.AddModelError("NoofDays", "NoofDays cannot be Zero or less than Zero!");
                            }
                            if (createHoliday.WeeklySunday == false && createHoliday.WeeklyMonday == false && createHoliday.WeeklyTuesday == false && createHoliday.WeeklyWednesday == false && createHoliday.WeeklyThursday == false && createHoliday.WeeklyFriday == false && createHoliday.WeeklySaturday == false && createHoliday.AssignType != "NoofDays")
                            {
                                ModelState.AddModelError("AssignType", "Please Select At least One Week Day");
                            }
                            if (createHoliday.HolidayStartDate < createHoliday.RequestedOn)
                            {
                                ModelState.AddModelError("RequestedOn", "Requested On date should be earlier than the holiday dates");
                            }
                            _ViewBagListDetails();
                            return(PartialView("_CreateHoliday", createHoliday));
                        }
                        if (holidayBL.AssignHoliday(createHoliday, out msg))
                        {
                            return(Json(new
                            {
                                succeed = true,
                                message = msg
                            }));
                        }
                        else
                        {
                            _ViewBagListDetails();
                            return(Json(new
                            {
                                succeed = false,
                                message = msg,
                                partialview = RenderViewToString("_CreateHoliday", createHoliday)
                            }));
                        }
                    }
                }
                _ViewBagListDetails();
                return(PartialView("_CreateHoliday", createHoliday));
            }
            catch (Exception ex)
            {
                _ViewBagListDetails();
                return(Json(new
                {
                    success = false,
                    message = ex.Message,
                    partialview = RenderViewToString("_CreateHoliday", createHoliday)
                }));
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Assign Holiday
        /// </summary>
        /// <param name="createHoliday"></param>
        public bool AssignHoliday(CreateHolidayViewModel createHoliday, out string msg)
        {
            msg = "";
            int datediffrent = createHoliday.HolidayEndDate.Date.Subtract(createHoliday.HolidayStartDate.Date).Days;

            datediffrent = datediffrent + 1;
            int      numofDays = createHoliday.NoofDays;
            DateTime startDate = (DateTime)createHoliday.HolidayStartDate;

            string assigntype = createHoliday.AssignType;

            if (assigntype == "Weekly")
            {
                for (int i = 0; i < datediffrent; i++)
                {
                    if (startDate.DayOfWeek == DayOfWeek.Monday && createHoliday.WeeklyMonday == true)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                    }
                    else if (startDate.DayOfWeek == DayOfWeek.Tuesday && createHoliday.WeeklyTuesday == true)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                    }
                    else if (startDate.DayOfWeek == DayOfWeek.Wednesday && createHoliday.WeeklyWednesday == true)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                    }
                    else if (startDate.DayOfWeek == DayOfWeek.Thursday && createHoliday.WeeklyThursday == true)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                    }
                    else if (startDate.DayOfWeek == DayOfWeek.Friday && createHoliday.WeeklyFriday == true)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                    }
                    else if (startDate.DayOfWeek == DayOfWeek.Saturday && createHoliday.WeeklySaturday == true)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        if (startDate.DayOfWeek == DayOfWeek.Sunday && createHoliday.WeeklySunday == true)
                        {
                            createHoliday.HolidayStartDate = startDate;
                            createHoliday.HolidayEndDate   = startDate;
                            if (CreateAssignHoliday(createHoliday, out msg) == false)
                            {
                                return(false);
                            }
                        }
                    }
                    startDate = startDate.AddDays(1);
                }
            }

            else
            {
                if (datediffrent >= numofDays)
                {
                    for (int i = 0; i < numofDays; i++)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                        startDate = startDate.AddDays(1);
                    }
                    startDate    = startDate.AddDays(numofDays);
                    datediffrent = datediffrent - 2 * numofDays;
                }
                else
                {
                    for (int i = 0; i < datediffrent; i++)
                    {
                        createHoliday.HolidayStartDate = startDate;
                        createHoliday.HolidayEndDate   = startDate;
                        if (CreateAssignHoliday(createHoliday, out msg) == false)
                        {
                            return(false);
                        }
                        startDate = startDate.AddDays(1);
                    }
                }
            }
            return(true);
        }