Ejemplo n.º 1
0
        public ActionResult AddAvailability(int Id, string BusNumber)
        {
            AvailabilityDetails AvailDetails = db.AvailabilityDetails.Find(Id);

            ViewBag.BusNumber = BusNumber;
            return(View(AvailDetails));
        }
        private void DoubleBedroomButton_Click(object sender, EventArgs e)
        {
            //DoubleBedroom _roomqualities = new DoubleBedroom();
            //BinddoubleRoomDetails(_roomqualities);

            AvailabilityDetails obj = new AvailabilityDetails();

            textBoxRoomDetails.Text = obj.GetDoubleBedRoomDetails();
        }
        private void TripleBedRoomButton_Click(object sender, EventArgs e)
        {
            //TripleBedRoom  _roomqualities = new TripleBedRoom();
            //BindTripleBedRoomDetails(_roomqualities);

            AvailabilityDetails availablaitydetails = new AvailabilityDetails();

            textBoxRoomDetails.Text = availablaitydetails.GetTripplebedRoomDetails();
        }
        private void SingleBedroomButton_Click(object sender, EventArgs e)
        {
            //throw new NotImplementedException();

            //SingleBedroom _roomqualities = new SingleBedroom();
            //BindSingleBedRoomDetails(_roomqualities);
            AvailabilityDetails obj = new AvailabilityDetails();

            textBoxRoomDetails.Text = obj.GetSinglebedRoomDetails();
        }
Ejemplo n.º 5
0
    public bool addAvailability(int index, DateTime dateTime1, DateTime dateTime2)
    {
        AvailabilityDetails availabilityDetails = new AvailabilityDetails();

        availabilityDetails.DateTime1 = dateTime1;
        availabilityDetails.DateTime2 = dateTime2;

        int conflict = getConflictFor(index, availabilityDetails);
        if (conflict != -1)
            return false;

        availabilities[index].Add(availabilityDetails);
        return true;
    }
Ejemplo n.º 6
0
        public ActionResult SaveAvailabilityDetails(AvailabilityDetails modObject)
        {
            AvailabilityDetails updateDetails = db.AvailabilityDetails.Find(modObject.Id);

            if (updateDetails.IsReturn)
            {
                var otherJourneyDetails = db.AvailabilityDetails.Where(m => m.BusDetailsId == updateDetails.BusDetailsId && !m.IsReturn).FirstOrDefault();
                return(IsDayOfWeekCoincide(otherJourneyDetails, updateDetails, modObject));
            }

            else
            {
                var otherJourneyDetails = db.AvailabilityDetails.Where(m => m.BusDetailsId == updateDetails.BusDetailsId && m.IsReturn).FirstOrDefault();
                return(IsDayOfWeekCoincide(otherJourneyDetails, updateDetails, modObject));
            }
        }
        public ActionResult EditBusDetails(BusDetailsViewModel mod)
        {
            BusDetails editDetails = db.BusDetails.Find(mod.Id);

            mod.CompanyId         = editDetails.BusCompanyNameId;
            mod.BusTypeId         = editDetails.BusTypeId;
            mod.NumOfChairSeats   = editDetails.NumOfChairSeats;
            mod.NumOfSleeperSeats = editDetails.NumOfSleeperSeats;
            mod.BusNumber         = editDetails.BusNumber;
            mod.Id = editDetails.Id;

            AvailabilityDetails editAvailDetails = db.AvailabilityDetails.FirstOrDefault(m => m.BusDetailsId == mod.Id);

            mod.OriginLocation      = editAvailDetails.OriginLocation;
            mod.DestinationLocation = editAvailDetails.DestinationLocation;

            mod.BusCompanyNames      = db.BusCompanyNames.ToList();
            mod.OriginLocations      = db.Locations.ToList();
            mod.DestinationLocations = db.Locations.ToList();
            mod.BusTypes             = db.BusTypes.ToList();
            mod.AvailabilityDetails  = db.AvailabilityDetails.Include("BusDetails").ToList();

            return(View("Index", mod));
        }
        public ActionResult addBusDetails(BusDetailsViewModel mod)
        {
            if (mod.DestinationLocation == mod.OriginLocation)
            {
                ModelState.AddModelError("DestinationLocation", "Destination location cannot be same as the origin location");
            }
            try
            {
                if (ModelState.IsValid)
                {
                    if (mod.Id == 0)
                    {
                        BusDetails addBusDetails = new BusDetails();
                        addBusDetails.BusCompanyNameId  = mod.CompanyId;
                        addBusDetails.BusTypeId         = mod.BusTypeId;
                        addBusDetails.NumOfChairSeats   = mod.NumOfChairSeats;
                        addBusDetails.NumOfSleeperSeats = mod.NumOfSleeperSeats;
                        addBusDetails.BusNumber         = mod.BusNumber;
                        db.BusDetails.Add(addBusDetails);
                        db.SaveChanges();

                        AvailabilityDetails availDetails = new AvailabilityDetails();
                        availDetails.BusDetailsId        = addBusDetails.Id;
                        availDetails.OriginLocation      = mod.OriginLocation;
                        availDetails.DestinationLocation = mod.DestinationLocation;
                        db.AvailabilityDetails.Add(availDetails);

                        AvailabilityDetails addReturnJourneyDetails = new AvailabilityDetails();
                        addReturnJourneyDetails.BusDetailsId        = addBusDetails.Id;
                        addReturnJourneyDetails.OriginLocation      = mod.DestinationLocation;
                        addReturnJourneyDetails.DestinationLocation = mod.OriginLocation;
                        addReturnJourneyDetails.IsReturn            = true;
                        db.AvailabilityDetails.Add(addReturnJourneyDetails);
                        db.SaveChanges();
                    }

                    else
                    {
                        BusDetails editedDetails = db.BusDetails.Find(mod.Id);
                        editedDetails.BusCompanyNameId  = mod.CompanyId;
                        editedDetails.BusTypeId         = mod.BusTypeId;
                        editedDetails.NumOfChairSeats   = mod.NumOfChairSeats;
                        editedDetails.NumOfSleeperSeats = mod.NumOfSleeperSeats;
                        editedDetails.BusNumber         = mod.BusNumber;


                        AvailabilityDetails editedAvailDetails = db.AvailabilityDetails.Where(m => m.BusDetailsId == editedDetails.Id).FirstOrDefault();
                        // editedAvailDetails.BusDetailsId = editedDetails.Id;
                        editedAvailDetails.OriginLocation      = mod.OriginLocation;
                        editedAvailDetails.DestinationLocation = mod.DestinationLocation;

                        AvailabilityDetails editReturnJourneyDetails = db.AvailabilityDetails.Where(m => m.BusDetailsId == editedDetails.Id && m.IsReturn == true).FirstOrDefault();
                        editReturnJourneyDetails.OriginLocation      = mod.DestinationLocation;
                        editReturnJourneyDetails.DestinationLocation = mod.OriginLocation;
                        db.SaveChanges();
                    }

                    return(RedirectToAction("Index"));
                }
            }

            catch (Exception ex)
            {
                if (ex.InnerException.InnerException.Message.Contains("Cannot insert duplicate key row"))
                {
                    ModelState.AddModelError("BusNumber", "This bus number is already in use");
                }
            }

            mod.BusCompanyNames      = db.BusCompanyNames.ToList();
            mod.OriginLocations      = db.Locations.ToList();
            mod.DestinationLocations = db.Locations.ToList();
            mod.BusTypes             = db.BusTypes.ToList();
            mod.AvailabilityDetails  = db.AvailabilityDetails.Include("BusDetails").ToList();
            return(View("Index", mod));
        }
Ejemplo n.º 9
0
        public ActionResult IsDayOfWeekCoincide(AvailabilityDetails otherJourneyDetails, AvailabilityDetails updateDetails, AvailabilityDetails modObject)
        {
            if (otherJourneyDetails.Monday && modObject.Monday)
            {
                ModelState.AddModelError("Monday", "Bus is travelling from " + otherJourneyDetails.OriginLocation + " to " + otherJourneyDetails.DestinationLocation + " on monday");
            }



            if (otherJourneyDetails.Tuesday && modObject.Tuesday)
            {
                ModelState.AddModelError("Tuesday", "Bus is travelling from " + otherJourneyDetails.OriginLocation + " to " + otherJourneyDetails.DestinationLocation + " on Tuesday");
            }


            if (otherJourneyDetails.Wednesday && modObject.Wednesday)
            {
                ModelState.AddModelError("Wednesday", "Bus is travelling from " + otherJourneyDetails.OriginLocation + " to " + otherJourneyDetails.DestinationLocation + " on Wednesday");
            }

            if (otherJourneyDetails.Thursday && modObject.Thursday)
            {
                ModelState.AddModelError("Thursday", "Bus is travelling from " + otherJourneyDetails.OriginLocation + " to " + otherJourneyDetails.DestinationLocation + " on Thursday");
            }


            if (otherJourneyDetails.Friday && modObject.Friday)
            {
                ModelState.AddModelError("Friday", "Bus is travelling from " + otherJourneyDetails.OriginLocation + " to " + otherJourneyDetails.DestinationLocation + " on Friday");
            }



            if (otherJourneyDetails.Saturday && modObject.Saturday)
            {
                ModelState.AddModelError("Saturday", "Bus is travelling from " + otherJourneyDetails.OriginLocation + " to " + otherJourneyDetails.DestinationLocation + " on Saturday");
            }



            if (otherJourneyDetails.Sunday && modObject.Sunday)
            {
                ModelState.AddModelError("Sunday", "Bus is travelling from " + otherJourneyDetails.OriginLocation + " to " + otherJourneyDetails.DestinationLocation + " on Sunday");
            }


            if (ModelState.IsValid)
            {
                updateDetails.Monday    = modObject.Monday;
                updateDetails.Tuesday   = modObject.Tuesday;
                updateDetails.Wednesday = modObject.Wednesday;
                updateDetails.Thursday  = modObject.Thursday;
                updateDetails.Friday    = modObject.Friday;
                updateDetails.Saturday  = modObject.Saturday;
                updateDetails.Sunday    = modObject.Sunday;
                db.SaveChanges();
                return(RedirectToAction("Availability"));
            }


            return(View("AddAvailability", updateDetails));
        }
        private void StudioButton_Click(object sender, EventArgs e)
        {
            AvailabilityDetails obj = new AvailabilityDetails();

            textBoxRoomDetails.Text = obj.GetStudioRoomDetails();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Get the availability details for a fixture-package combination
        /// </summary>
        /// <param name="product">The product object</param>
        /// <param name="packageID">Provide the PackageID when product is given</param>
        /// <param name="package">The package details object</param>
        /// <param name="componentList">List of components for selected package</param>
        /// <returns>AvailabilityDetails object containing details of availability for fixture-package combination</returns>
        private AvailabilityDetails getAvailabilityDetails(PackageDetails package, List <ComponentDetails> componentList)
        {
            AvailabilityDetails availabilityDetail = new AvailabilityDetails();
            Availability        av                  = new Availability();
            decimal             minCapacity         = 999;
            decimal             minAvailable        = 999;
            decimal             percentageRemaining = 0;
            string availabilityColour               = string.Empty;
            string availabilityText                 = string.Empty;
            string availabilityCSS                  = string.Empty;
            string stadiumCode          = Environment.Settings.DefaultValues.CorporateStadium;
            string businessunit         = Environment.Settings.BusinessUnit;
            long   seatBasedComponentID = 0;


            // Loop through components and set the package capacity and available units to that of the last available component
            availabilityDetail.SoldOutComponents = string.Empty;
            foreach (ComponentDetails component in componentList)
            {
                if (component.IsSeatComponent)
                {
                    seatBasedComponentID = component.ComponentID;
                    if (component.ComponentType == "A")
                    {
                        availabilityDetail.AvailabilityComponentID = component.ComponentID;
                    }
                    var availableUnits = Environment.Settings.DESettings.IsAgent ? component.AvailableUnitsBUI : component.AvailableUnitsPWS;
                    if (availableUnits < minAvailable)
                    {
                        minAvailable = availableUnits;
                    }
                    if (component.OriginalUnits < minCapacity)
                    {
                        minCapacity = component.OriginalUnits;
                    }
                    if (availableUnits == 0)
                    {
                        //add a comma after the first component description
                        if (availabilityDetail.SoldOutComponents.Length > 0)
                        {
                            availabilityDetail.SoldOutComponents = string.Concat(availabilityDetail.SoldOutComponents, ", ");
                        }
                        availabilityDetail.SoldOutComponents = string.Concat(availabilityDetail.SoldOutComponents, component.ComponentDescription);
                    }
                }
            }

            // If PWS may only be able to sell up to a % of what was originally available (maintained on jwalk web product maint and is Capacity Limit %)
            // If this is set reduce available qty and origianal qty as these were never available for PWS
            if (package.MaxPercentageToSellPWS != 0 && package.MaxPercentageToSellPWS != 0 && !Environment.Settings.DESettings.IsAgent)
            {
                decimal numberPackageUnitsReservedForBoxOffice = Math.Ceiling(minCapacity * (100 - package.MaxPercentageToSellPWS) / 100);
                minAvailable -= numberPackageUnitsReservedForBoxOffice;
                if (minAvailable < 0)
                {
                    minAvailable = 0;
                }
                minCapacity -= numberPackageUnitsReservedForBoxOffice;
                if (minCapacity < 0)
                {
                    minCapacity = 0;
                }
            }

            // We need a component to pass to the backend - if availability defined use that otherwise use a seat based one we found
            if (availabilityDetail.AvailabilityComponentID == 0)
            {
                availabilityDetail.AvailabilityComponentID = seatBasedComponentID;
            }
            availabilityDetail.AvailableUnits = Convert.ToInt16(minAvailable);
            availabilityDetail.OriginalUnits  = Convert.ToInt16(minCapacity);
            if (availabilityDetail.OriginalUnits > 0 && availabilityDetail.AvailableUnits > 0)
            {
                percentageRemaining = ((decimal)availabilityDetail.AvailableUnits / (decimal)availabilityDetail.OriginalUnits) * 100;
            }
            availabilityDetail.PercentageRemaining   = Convert.ToInt16(Math.Round(percentageRemaining, 0));
            availabilityDetail.HaveSoldOutComponents = false;
            if (percentageRemaining == 0)
            {
                availabilityDetail.HaveSoldOutComponents = true;
            }

            //Get the stadium based availability properties
            av.GetAvailabilityProperties(businessunit, ref availabilityText, ref availabilityCSS, ref availabilityColour, availabilityDetail.PercentageRemaining, stadiumCode);
            availabilityDetail.AvailabilityText     = availabilityText;
            availabilityDetail.AvailabilityCSS      = availabilityCSS;
            availabilityDetail.AvailabilityColour   = availabilityColour;
            availabilityDetail.ComponentListDetails = componentList;
            availabilityDetail.Sold      = package.Sold;
            availabilityDetail.Cancelled = package.Cancelled;
            availabilityDetail.Reserved  = package.Reserved;
            return(availabilityDetail);
        }
Ejemplo n.º 12
0
    private int getConflictFor(int dayIndex, AvailabilityDetails newTime)
    {
        int conflict = -1;

        foreach (AvailabilityDetails availability in availabilities[dayIndex])
        {
            if (newTime.DateTime1.CompareTo(availability.DateTime2) > 0 || newTime.DateTime2.CompareTo(availability.DateTime1) < 0)
            {
                continue;
            } else
            {
                conflict = availabilities[dayIndex].IndexOf(availability);
                break;
            }
        }

        return conflict;
    }