コード例 #1
0
        public IActionResult CreateOrEdit(QuoteViewModel quoteViewModel)
        {
            if (quoteViewModel.thisQuote.Id == null)
            {
                // New Quote
                quoteViewModel.thisQuote.Id = Guid.NewGuid().ToString();
                quoteViewModel.thisQuote.CreatedByUserId      = HttpContext.Session.GetString("UserId");
                quoteViewModel.thisQuote.CreatedDateTime      = DateTime.Now;
                quoteViewModel.thisQuote.LastModifiedByUserId = HttpContext.Session.GetString("UserId");
                quoteViewModel.thisQuote.LastModifiedDateTime = DateTime.Now;

                quoteViewModel.thisCustomer = _context.Customers.Where(c => c.Id == quoteViewModel.thisQuote.CustomerId).Single();

                quoteViewModel.thisQuote.IsTaxExempt = quoteViewModel.thisCustomer.IsTaxExempt;

                // Extract despatch site from delivery/collection address.

                if (quoteViewModel.thisQuote.DeliveryAddress != null)
                {
                    quoteViewModel.thisQuote.DespatchSite =
                        quoteViewModel.thisQuote.DeliveryAddress.Substring(quoteViewModel.thisQuote.DeliveryAddress.IndexOf("[")).Replace("[", "").Replace("]", "").TrimEnd();
                }


                // Establish next quote ref
                string lastRef = "";
                lastRef = _context.Quotes
                          .Where(q => (q.QuoteReferenceNumber).Substring(0, q.QuoteReferenceNumber.IndexOf("-")) == quoteViewModel.thisQuote.CustomerId.Substring(0, 3))
                          .OrderByDescending(x => x.CreatedDateTime)
                          .Take(1)
                          .Select(q => q.QuoteReferenceNumber).FirstOrDefault();

                if (lastRef != null)
                {
                    int increment = Convert.ToInt32(lastRef.Substring(9));
                    quoteViewModel.thisQuote.QuoteReferenceNumber = $"{quoteViewModel.thisQuote.CustomerId.Substring(0, 3)}-{DateTime.Now.Year}-{increment += 1}";
                }
                else
                {
                    quoteViewModel.thisQuote.QuoteReferenceNumber = $"{quoteViewModel.thisQuote.CustomerId.Substring(0, 3)}-{DateTime.Now.Year}-1";
                }



                if (ModelState.IsValid)
                {
                    if (quoteViewModel.thisCustomerDeliveryAddress.DeliverySaveAddress == true)
                    {
                        // Save new delivery address to customer record.
                        CustomerAddress newDeliveryAddress = new CustomerAddress();
                        newDeliveryAddress.AddressLine1    = quoteViewModel.thisCustomerDeliveryAddress.DeliveryAddressLine1;
                        newDeliveryAddress.AddressLine2    = quoteViewModel.thisCustomerDeliveryAddress.DeliveryAddressLine2;
                        newDeliveryAddress.TownCity        = quoteViewModel.thisCustomerDeliveryAddress.DeliveryTownCity;
                        newDeliveryAddress.County          = quoteViewModel.thisCustomerDeliveryAddress.DeliveryCounty;
                        newDeliveryAddress.PostCode        = quoteViewModel.thisCustomerDeliveryAddress.DeliveryPostCode;
                        newDeliveryAddress.CreatedByUserId = HttpContext.Session.GetString("UserId");
                        newDeliveryAddress.CreatedDateTime = DateTime.Now;
                        newDeliveryAddress.CustomerId      = quoteViewModel.thisQuote.CustomerId;
                        newDeliveryAddress.DespatchSite    = quoteViewModel.thisCustomerDeliveryAddress.DeliveryDespatchSite;

                        newDeliveryAddress.Id = Guid.NewGuid().ToString();
                        newDeliveryAddress.IsInvoiceAddress = false;

                        newDeliveryAddress.IsPrimaryDeliveryAddress = false;
                        newDeliveryAddress.ValidatedByGoogleAPI     = quoteViewModel.thisCustomerDeliveryAddress.ValidatedByGoogleAPI;

                        _context.CustomerAddresses.Add(newDeliveryAddress);
                        _context.SaveChanges();
                    }



                    _context.Quotes.Add(quoteViewModel.thisQuote);
                    _context.SaveChanges();

                    return(RedirectToAction("CreateOrEdit", new { id = quoteViewModel.thisQuote.Id }));
                }
                else
                {
                    // Populate collections etc so validation form is populated with options.
                    quoteViewModel.ActiveCustomers = _context.Customers.ToList();
                    ViewBag.ActiveCustomers        = quoteViewModel.ActiveCustomers;

                    List <CustomerAddress> customerAddresses = new List <CustomerAddress>();
                    customerAddresses = _context.CustomerAddresses.Where(c => c.CustomerId == quoteViewModel.thisQuote.CustomerId).ToList();

                    List <SelectListItem> stringAddresses = new List <SelectListItem>();

                    if (customerAddresses.Count > 0)
                    {
                        //'<option selected="selected" selected disabled value="-1">-- Select Delivery Address --</option>'
                        if (quoteViewModel.thisQuote.DeliveryAddress == null)
                        {
                            stringAddresses.Add(new SelectListItem {
                                Selected = true, Disabled = true, Value = "-1", Text = "-- Select Delivery Address --"
                            });
                        }
                        else
                        {
                            stringAddresses.Add(new SelectListItem {
                                Disabled = true, Value = "-1", Text = "-- Select Delivery Address --"
                            });
                        }


                        foreach (CustomerAddress address in customerAddresses)
                        {
                            stringAddresses.Add(new SelectListItem
                            {
                                Value = $"{address.AddressLine1}, {address.AddressLine2}, {address.TownCity}, {address.County}, {address.PostCode}, [{address.DespatchSite}]",
                                Text  = $"{address.AddressLine1}, {address.AddressLine2}, {address.TownCity}, {address.County}, {address.PostCode}, [{address.DespatchSite}]"
                            });
                        }
                    }

                    quoteViewModel.DeliveryAddresses = stringAddresses;

                    quoteViewModel.StockProfileColours = _context.ProfileColours.Where(p => p.IsAffordableStockColour == true && p.IsEnabled == true).OrderBy(p => p.ColourCode).ToList();

                    quoteViewModel.NonStockProfileColours = _context.ProfileColours.Where(p => p.IsAffordableStockColour == false && p.IsEnabled == true).OrderBy(p => p.ColourCode).ToList();

                    foreach (ProfileColour col in quoteViewModel.StockProfileColours)
                    {
                        col.ColourDisplayName = $"{col.ColourCode} {col.ColourName} {col.ColourFinish}";
                    }

                    foreach (ProfileColour col in quoteViewModel.NonStockProfileColours)
                    {
                        col.ColourDisplayName = $"{col.ColourCode} {col.ColourName} {col.ColourFinish}";
                    }



                    quoteViewModel.thisBifoldItems     = new List <BifoldItem>();
                    quoteViewModel.thisExtraItems      = new List <ExtraItem>();
                    quoteViewModel.thisGlassItems      = new List <GlassItem>();
                    quoteViewModel.thisPeripheralItems = new List <PeripheralItem>();
                    quoteViewModel.IsNewQuote          = true;

                    return(View("CreateOrEdit", quoteViewModel));
                }
            }
            else
            {
                // Edit Existing Quote


                if (ModelState.IsValid)
                {
                    //Save edit details

                    quoteViewModel.thisQuote.LastModifiedByUserId = HttpContext.Session.GetString("UserId");
                    quoteViewModel.thisQuote.LastModifiedDateTime = DateTime.Now;

                    bool updateBifoldItem = false;

                    quoteViewModel.thisBifoldItems = _context.BifoldItems.Where(b => b.QuoteId == quoteViewModel.thisQuote.Id).OrderBy(b => b.ItemNumber).ToList();

                    quoteViewModel.thisBifoldItemViewModels = new List <BifoldItemViewModel>();
                    BifoldItemViewModel bifoldItemViewModel;

                    if (quoteViewModel.thisBifoldItems.Count > 0)
                    {
                        foreach (BifoldItem bifoldItem in quoteViewModel.thisBifoldItems)
                        {
                            bifoldItemViewModel = new BifoldItemViewModel();
                            bifoldItemViewModel.thisBifoldItem = bifoldItem;
                            // bifoldItemViewModel.InternalColourName = _context.ProfileColours.Where(c => c.Id == bifoldItem.InternalColourId).Select(c => c.ColourName).Single();
                            //bifoldItemViewModel.ExternalColourName = _context.ProfileColours.Where(c => c.Id == bifoldItem.ExternalColourId).Select(c => c.ColourName).Single();

                            ProfileColour internalColour = _context.ProfileColours.Where(p => p.Id == bifoldItem.InternalColourId).Single();

                            if (internalColour.IsAffordableStockColour == true)
                            {
                                quoteViewModel.IsStockColourChosen = true;
                            }
                            else
                            {
                                quoteViewModel.IsStockColourChosen = false;
                            }


                            quoteViewModel.thisBifoldItemViewModels.Add(bifoldItemViewModel);
                        }
                    }

                    foreach (BifoldItemViewModel bifold in quoteViewModel.thisBifoldItemViewModels)
                    {
                        if (bifold.thisBifoldItem.InternalColourId != quoteViewModel.thisQuote.MasterInternalColourId)
                        {
                            bifold.thisBifoldItem.InternalColourId = quoteViewModel.thisQuote.MasterInternalColourId;
                            updateBifoldItem = true;
                        }

                        if (bifold.thisBifoldItem.ExternalColourId != quoteViewModel.thisQuote.MasterExternalColourId)
                        {
                            bifold.thisBifoldItem.ExternalColourId = quoteViewModel.thisQuote.MasterExternalColourId;
                            updateBifoldItem = true;
                        }

                        if (bifold.thisBifoldItem.IsMarineOrHazardousCoating != quoteViewModel.thisQuote.IsMarineOrHazardousCoating)
                        {
                            bifold.thisBifoldItem.IsMarineOrHazardousCoating = quoteViewModel.thisQuote.IsMarineOrHazardousCoating;
                            updateBifoldItem = true;
                        }



                        if (updateBifoldItem == true)
                        {
                            //Update Bifold Item
                            _context.Entry(bifold.thisBifoldItem).State = EntityState.Modified;
                            _context.SaveChanges();
                        }


                        updateBifoldItem = false;
                    }

                    //Update the rest of the quote

                    if (quoteViewModel.thisQuote.DeliveryAddress != null)
                    {
                        quoteViewModel.thisQuote.DespatchSite =
                            quoteViewModel.thisQuote.DeliveryAddress.Substring(quoteViewModel.thisQuote.DeliveryAddress.IndexOf("[")).Replace("[", "").Replace("]", "").TrimEnd();
                    }


                    if (quoteViewModel.thisCustomerDeliveryAddress.DeliverySaveAddress == true)
                    {
                        // Save new delivery address to customer record.
                        CustomerAddress newDeliveryAddress = new CustomerAddress();
                        newDeliveryAddress.AddressLine1    = quoteViewModel.thisCustomerDeliveryAddress.DeliveryAddressLine1;
                        newDeliveryAddress.AddressLine2    = quoteViewModel.thisCustomerDeliveryAddress.DeliveryAddressLine2;
                        newDeliveryAddress.TownCity        = quoteViewModel.thisCustomerDeliveryAddress.DeliveryTownCity;
                        newDeliveryAddress.County          = quoteViewModel.thisCustomerDeliveryAddress.DeliveryCounty;
                        newDeliveryAddress.PostCode        = quoteViewModel.thisCustomerDeliveryAddress.DeliveryPostCode;
                        newDeliveryAddress.CreatedByUserId = HttpContext.Session.GetString("UserId");
                        newDeliveryAddress.CreatedDateTime = DateTime.Now;
                        newDeliveryAddress.CustomerId      = quoteViewModel.thisQuote.CustomerId;
                        newDeliveryAddress.DespatchSite    = quoteViewModel.thisCustomerDeliveryAddress.DeliveryDespatchSite;

                        newDeliveryAddress.Id = Guid.NewGuid().ToString();
                        newDeliveryAddress.IsInvoiceAddress = false;

                        newDeliveryAddress.IsPrimaryDeliveryAddress = false;
                        newDeliveryAddress.ValidatedByGoogleAPI     = quoteViewModel.thisCustomerDeliveryAddress.ValidatedByGoogleAPI;

                        _context.CustomerAddresses.Add(newDeliveryAddress);
                        _context.SaveChanges();
                    }

                    _context.Entry(quoteViewModel.thisQuote).State = EntityState.Modified;
                    _context.SaveChanges();


                    return(RedirectToAction("CreateOrEdit", new { id = quoteViewModel.thisQuote.Id }));
                }
                else
                {
                    // Populate collections etc so validation form is populated with options.
                    quoteViewModel.ActiveCustomers = _context.Customers.ToList();
                    ViewBag.ActiveCustomers        = quoteViewModel.ActiveCustomers;

                    List <CustomerAddress> customerAddresses = new List <CustomerAddress>();
                    customerAddresses = _context.CustomerAddresses.Where(c => c.CustomerId == quoteViewModel.thisQuote.CustomerId).ToList();

                    List <SelectListItem> stringAddresses = new List <SelectListItem>();

                    if (customerAddresses.Count > 0)
                    {
                        //'<option selected="selected" selected disabled value="-1">-- Select Delivery Address --</option>'
                        if (quoteViewModel.thisQuote.DeliveryAddress == null)
                        {
                            stringAddresses.Add(new SelectListItem {
                                Selected = true, Disabled = true, Value = "-1", Text = "-- Select Delivery Address --"
                            });
                        }
                        else
                        {
                            stringAddresses.Add(new SelectListItem {
                                Disabled = true, Value = "-1", Text = "-- Select Delivery Address --"
                            });
                        }


                        foreach (CustomerAddress address in customerAddresses)
                        {
                            stringAddresses.Add(new SelectListItem
                            {
                                Value = $"{address.AddressLine1}, {address.AddressLine2}, {address.TownCity}, {address.County}, {address.PostCode}, [{address.DespatchSite}]",
                                Text  = $"{address.AddressLine1}, {address.AddressLine2}, {address.TownCity}, {address.County}, {address.PostCode}, [{address.DespatchSite}]"
                            });
                        }
                    }

                    quoteViewModel.DeliveryAddresses = stringAddresses;

                    quoteViewModel.StockProfileColours = _context.ProfileColours.Where(p => p.IsAffordableStockColour == true && p.IsEnabled == true).OrderBy(p => p.ColourCode).ToList();

                    quoteViewModel.NonStockProfileColours = _context.ProfileColours.Where(p => p.IsAffordableStockColour == false && p.IsEnabled == true).OrderBy(p => p.ColourCode).ToList();

                    foreach (ProfileColour col in quoteViewModel.StockProfileColours)
                    {
                        col.ColourDisplayName = $"{col.ColourCode} {col.ColourName} {col.ColourFinish}";
                    }

                    foreach (ProfileColour col in quoteViewModel.NonStockProfileColours)
                    {
                        col.ColourDisplayName = $"{col.ColourCode} {col.ColourName} {col.ColourFinish}";
                    }

                    quoteViewModel.thisBifoldItemViewModels = new List <BifoldItemViewModel>();
                    BifoldItemViewModel bifoldItemViewModel;

                    quoteViewModel.thisBifoldItems = _context.BifoldItems.Where(b => b.QuoteId == quoteViewModel.thisQuote.Id).OrderBy(b => b.ItemNumber).ToList();

                    if (quoteViewModel.thisBifoldItems.Count > 0)
                    {
                        foreach (BifoldItem bifoldItem in quoteViewModel.thisBifoldItems)
                        {
                            bifoldItemViewModel = new BifoldItemViewModel();
                            bifoldItemViewModel.thisBifoldItem = bifoldItem;
                            // bifoldItemViewModel.InternalColourName = _context.ProfileColours.Where(c => c.Id == bifoldItem.InternalColourId).Select(c => c.ColourName).Single();
                            //bifoldItemViewModel.ExternalColourName = _context.ProfileColours.Where(c => c.Id == bifoldItem.ExternalColourId).Select(c => c.ColourName).Single();

                            ProfileColour internalColour = _context.ProfileColours.Where(p => p.Id == bifoldItem.InternalColourId).Single();

                            if (internalColour.IsAffordableStockColour == true)
                            {
                                quoteViewModel.IsStockColourChosen = true;
                            }
                            else
                            {
                                quoteViewModel.IsStockColourChosen = false;
                            }

                            quoteViewModel.thisBifoldItemViewModels.Add(bifoldItemViewModel);
                        }
                    }

                    quoteViewModel.thisExtraItems      = new List <ExtraItem>();
                    quoteViewModel.thisGlassItems      = new List <GlassItem>();
                    quoteViewModel.thisPeripheralItems = new List <PeripheralItem>();
                    quoteViewModel.IsNewQuote          = false;

                    return(View("CreateOrEdit", quoteViewModel));
                }
            }
        }
コード例 #2
0
        public ActionResult CalculateItemQuote(BifoldItemViewModel bifoldItemViewModel)
        {
            // Add Validation to cancel calculation if missing values.


            bifoldItemViewModel.PricingFactors = _context.PricingFactors.Where(p => p.Id == 1).Single();


            // Reset base to zero.
            bifoldItemViewModel.ItemQuoteValue = 0.00M;

            // Set base bifold cost depending on sash widths.
            if ((bifoldItemViewModel.thisBifoldItem.Width / bifoldItemViewModel.SelectedDoorQuantity) < 1000)
            {
                bifoldItemViewModel.ItemQuoteValue = Math.Round(bifoldItemViewModel.PricingFactors.MullionSplitsUnder1000MMSurcharge * bifoldItemViewModel.SelectedDoorQuantity, 2);
            }
            else
            {
                bifoldItemViewModel.ItemQuoteValue = Math.Round(bifoldItemViewModel.PricingFactors.MullionSplits1000MMAndOverSurcharge * bifoldItemViewModel.SelectedDoorQuantity, 2);
            }

            // Add surcharge for sash height's over 2100mm.
            if (bifoldItemViewModel.thisBifoldItem.Height > 2100)
            {
                bifoldItemViewModel.ItemQuoteValue = bifoldItemViewModel.ItemQuoteValue + (Math.Round((bifoldItemViewModel.ItemQuoteValue / 100) * bifoldItemViewModel.PricingFactors.SashHeightAbove2100MMSurcharge, 2));
            }

            // Add surcharge for Marine Grade Coating.
            if (bifoldItemViewModel.thisBifoldItem.IsMarineOrHazardousCoating)
            {
                bifoldItemViewModel.ItemQuoteValue = bifoldItemViewModel.ItemQuoteValue + (Math.Round((bifoldItemViewModel.ItemQuoteValue / 100) * bifoldItemViewModel.PricingFactors.MarineHazardousCoatingSurcharge, 2));
            }


            ProfileColour internalColour = _context.ProfileColours.Where(p => p.Id == bifoldItemViewModel.thisBifoldItem.InternalColourId).FirstOrDefault();
            ProfileColour externalColour = _context.ProfileColours.Where(p => p.Id == bifoldItemViewModel.thisBifoldItem.ExternalColourId).FirstOrDefault();


            if (externalColour.IsSmartSensations == true || internalColour.IsSmartSensations == true)
            {
                // Add surcharge for Sensations Coating
                bifoldItemViewModel.ItemQuoteValue = bifoldItemViewModel.ItemQuoteValue + (Math.Round((bifoldItemViewModel.ItemQuoteValue / 100) * bifoldItemViewModel.PricingFactors.SmartSensationSurCharge, 2));
            }
            else if (externalColour.IsSmartAlchemy == true || internalColour.IsSmartAlchemy == true)
            {
                // Add surcharge for Alchemy Coating
                bifoldItemViewModel.ItemQuoteValue = bifoldItemViewModel.ItemQuoteValue + (Math.Round((bifoldItemViewModel.ItemQuoteValue / 100) * bifoldItemViewModel.PricingFactors.SmartAlchemySurcharge, 2));
            }
            else if (internalColour.IsAffordableStockColour == false || externalColour.IsAffordableStockColour == false)
            {
                if (externalColour.Id == internalColour.Id)
                {
                    // Add Surcharge for Non stock single RAL colour
                    bifoldItemViewModel.ItemQuoteValue = bifoldItemViewModel.ItemQuoteValue + (Math.Round((bifoldItemViewModel.ItemQuoteValue / 100) * bifoldItemViewModel.PricingFactors.NonStockSingleColourSurCharge, 2));
                }
                else
                {
                    // Add surcharge for non stock dual RAL colour
                    bifoldItemViewModel.ItemQuoteValue = bifoldItemViewModel.ItemQuoteValue + (Math.Round((bifoldItemViewModel.ItemQuoteValue / 100) * bifoldItemViewModel.PricingFactors.NonStockDualColourSurCharge, 2));
                }
            }



            return(PartialView("~/Views/BifoldItem/_BifoldItemHeader.cshtml", bifoldItemViewModel));
        }
コード例 #3
0
        // GET: Quote/Create
        public IActionResult CreateOrEdit(string Id = "")
        {
            QuoteViewModel quoteViewModel = new QuoteViewModel();


            // Populate combo's etc
            if (Id == "")
            {
                // Create new quote with default values
                quoteViewModel.thisQuote                   = new Quote();
                quoteViewModel.IsNewQuote                  = true;
                quoteViewModel.thisBifoldItems             = new List <BifoldItem>();
                quoteViewModel.thisBifoldItemViewModels    = new List <BifoldItemViewModel>();
                quoteViewModel.thisCustomer                = new Customer();
                quoteViewModel.thisCustomerDeliveryAddress = new AddressViewModel();
                quoteViewModel.thisCustomerInvoiceAddress  = new CustomerAddress();
                quoteViewModel.thisExtraItems              = new List <ExtraItem>();
                quoteViewModel.thisGlassItems              = new List <GlassItem>();
                quoteViewModel.thisPeripheralItems         = new List <PeripheralItem>();
                quoteViewModel.IsNewQuote                  = true;


                quoteViewModel.thisCustomerDeliveryAddress.thisAddress = new CustomerAddress();

                //quoteViewModel.ActiveCustomers = _context.Customers.ToList();
                //ViewBag.ActiveCustomers = quoteViewModel.ActiveCustomers;
            }
            else
            {
                // Load existing quote data for editing.

                quoteViewModel.IsNewQuote      = false;
                quoteViewModel.thisQuote       = _context.Quotes.Where(q => q.Id == Id).Single();
                quoteViewModel.thisBifoldItems = _context.BifoldItems.Where(b => b.QuoteId == Id).OrderBy(b => b.ItemNumber).ToList();

                quoteViewModel.thisCustomerInvoiceAddress = _context.CustomerAddresses.Where(a => a.CustomerId == quoteViewModel.thisQuote.CustomerId && a.IsInvoiceAddress == true).Single();

                // Created to handle a newly added customer address.
                quoteViewModel.thisCustomerDeliveryAddress             = new AddressViewModel();
                quoteViewModel.thisCustomerDeliveryAddress.thisAddress = new CustomerAddress();
                quoteViewModel.thisCustomerDeliveryAddress.thisAddress.SaveToCustomerAddresses = false;

                quoteViewModel.thisBifoldItemViewModels = new List <BifoldItemViewModel>();
                BifoldItemViewModel bifoldItemViewModel;

                if (quoteViewModel.thisBifoldItems.Count > 0)
                {
                    foreach (BifoldItem bifoldItem in quoteViewModel.thisBifoldItems)
                    {
                        bifoldItemViewModel = new BifoldItemViewModel();
                        bifoldItemViewModel.thisBifoldItem = bifoldItem;
                        // bifoldItemViewModel.InternalColourName = _context.ProfileColours.Where(c => c.Id == bifoldItem.InternalColourId).Select(c => c.ColourName).Single();
                        //bifoldItemViewModel.ExternalColourName = _context.ProfileColours.Where(c => c.Id == bifoldItem.ExternalColourId).Select(c => c.ColourName).Single();

                        ProfileColour internalColour = _context.ProfileColours.Where(p => p.Id == bifoldItem.InternalColourId).Single();

                        if (internalColour.IsAffordableStockColour == true)
                        {
                            quoteViewModel.IsStockColourChosen = true;
                        }
                        else
                        {
                            quoteViewModel.IsStockColourChosen = false;
                        }


                        quoteViewModel.thisBifoldItemViewModels.Add(bifoldItemViewModel);
                    }
                }
            }



            quoteViewModel.ActiveCustomers = _context.Customers.ToList();
            ViewBag.ActiveCustomers        = quoteViewModel.ActiveCustomers;


            //quoteViewModel.StockProfileColours = _context.ProfileColours.Where(p => p.IsAffordableStockColour == true && p.IsEnabled == true).OrderBy(p => p.ColourCode).ToList();


            quoteViewModel.StockProfileColours = _context.ProfileColours.Where(p => p.IsAffordableStockColour == true && p.IsEnabled == true).OrderBy(p => p.ColourCode).ToList();

            quoteViewModel.NonStockProfileColours = _context.ProfileColours.Where(p => p.IsAffordableStockColour == false && p.IsEnabled == true).OrderBy(p => p.ColourCode).ToList();

            foreach (ProfileColour col in quoteViewModel.StockProfileColours)
            {
                col.ColourDisplayName = $"{col.ColourCode} {col.ColourName} {col.ColourFinish}";
            }

            foreach (ProfileColour col in quoteViewModel.NonStockProfileColours)
            {
                col.ColourDisplayName = $"{col.ColourCode} {col.ColourName} {col.ColourFinish}";
            }


            return(View(quoteViewModel));
        }