public IActionResult Guesstimate() { if (UserRoles.Contains("Product Accountant")) { } else if (!UserRoles.Contains("Costing Officer")) { return(View("Unauthorize")); } string QRFID = Request.Query["QRFId"]; GuesstimateViewModel model = new GuesstimateViewModel(); model.MenuViewModel.QRFID = QRFID; model.MenuViewModel.MenuName = "Guesstimate"; #region Get Costing Officer Tour Info Header By QRFId NewQuoteViewModel modelQuote = new NewQuoteViewModel(); modelQuote.QRFID = QRFID; model.COHeaderViewModel = cOCommonLibrary.GetCOTourInfoHeader(ref modelQuote, token); model.MenuViewModel.EnquiryPipeline = modelQuote.mdlMenuViewModel.EnquiryPipeline; #endregion return(View(model)); }
public IActionResult Guesstimate(string QRFID) { GuesstimateViewModel model = new GuesstimateViewModel(); model.MenuViewModel.QRFID = QRFID; model.MenuViewModel.MenuName = "Guesstimate"; #region Get Costing Officer Tour Info Header By QRFId NewQuoteViewModel modelQuote = new NewQuoteViewModel(); modelQuote.QRFID = QRFID; model.COHeaderViewModel = cOCommonLibrary.GetCOTourInfoHeader(ref modelQuote, token); model.MenuViewModel.EnquiryPipeline = modelQuote.mdlMenuViewModel.EnquiryPipeline; #endregion return(View(model)); }
public JsonResult SetGuesstimatePrices(GuesstimateViewModel model) { model.Guesstimate.CreateUser = ckUserEmailId; model.Guesstimate.EditUser = ckUserEmailId; model.Guesstimate.VersionId = model.NextVersionId; GuesstimateSetRes response = new GuesstimateSetRes(); GuesstimateSetReq request = new GuesstimateSetReq(); request.Guesstimate = model.Guesstimate; request.IsNewVersion = model.IsNewVersion; request.DepartureId = Convert.ToInt64(model.DepartureDate); request.PaxSlabId = Convert.ToInt64(model.PaxSlab); request.Qrfid = model.Guesstimate.QRFID; request.VoyagerUserId = ckLoginUser_Id; response = coProviders.SetGuesstimate(request, token).Result; if (response != null) { return(Json(response.ResponseStatus)); } return(Json("failure")); }
public IActionResult GetGuesstimateData(string QRFID, string filterByDay = null, string filterByServiceType = null, string filterByPackageType = null, long filterByDeparture = 0, long filterByPaxSlab = 0, string SuccessMessage = null, string ErrorMessage = null, string CalculateFor = null) { try { if (!(string.IsNullOrEmpty(SuccessMessage))) { TempData["success"] = SuccessMessage; } if (!(string.IsNullOrEmpty(ErrorMessage))) { TempData["error"] = ErrorMessage; } GuesstimateViewModel model = new GuesstimateViewModel(); //#region Get Summary Detailsby QRFId //qrfSummaryGetReq = new QRFSummaryGetReq(); //qrfSummaryGetReq.QRFID = QRFID; //qrfSummaryGetRes = qrfSummaryProviders.GetQRFSummary(qrfSummaryGetReq, token).Result; //model.SummaryDetails = qrfSummaryMapping.GetQRFSummaryDetails(qrfSummaryGetRes, token); //#endregion #region Filter Dropdown Bindings var objKeepAs = new List <AttributeValues>(); MasterTypeRequest objMasterTypeRequest = new MasterTypeRequest(); objMasterTypeRequest.Property = "QRF Masters"; objMasterTypeRequest.Name = "Position Type"; SalesProviders objSalesProvider = new SalesProviders(_configuration); MasterTypeResponse objMasterTypeResponse = objSalesProvider.GetGenericMasterForType(objMasterTypeRequest, token).Result; if (objMasterTypeResponse.Status == "Success" && objMasterTypeResponse.PropertyList.Count > 0) { if (objMasterTypeResponse.PropertyList[0].Attribute[0].AttributeName == "Position Type") { objKeepAs = objMasterTypeResponse.PropertyList[0].Attribute[0].Values.ToList(); } } QRFDepartureDateGetReq objDepartureDatesReq = new QRFDepartureDateGetReq() { QRFID = QRFID, date = (DateTime?)null }; QRFDepartureDateGetRes objDepartureDatesRes = coProviders.GetDepartureDatesForCostingByQRF_Id(objDepartureDatesReq, token).Result; QRFPaxSlabGetReq objPaxSlabReq = new QRFPaxSlabGetReq() { QRFID = QRFID }; QRFPaxGetResponse objPaxSlabRes = coProviders.GetPaxSlabDetailsForCostingByQRF_Id(objPaxSlabReq, token).Result; model.PaxSlabList = (objPaxSlabRes.PaxSlabDetails.QRFPaxSlabs).Select(a => new AttributeValues { AttributeValue_Id = a.PaxSlab_Id.ToString(), Value = a.From + "-" + a.To }).ToList(); model.DepartureDatesList = (objDepartureDatesRes.DepartureDates).Select(a => new AttributeValues { AttributeValue_Id = a.Departure_Id.ToString(), Value = Convert.ToDateTime(a.Date).ToString("dd MMM yy") }).ToList(); #endregion #region Get Guesstimate by QRFId GuesstimateGetRes response = new GuesstimateGetRes(); GuesstimateGetReq request = new GuesstimateGetReq(); request.QRFID = QRFID; request.DepartureId = filterByDeparture == 0 ? objDepartureDatesRes.DepartureDates[0].Departure_Id : filterByDeparture; request.PaxSlabId = filterByPaxSlab == 0 ? objPaxSlabRes.PaxSlabDetails.QRFPaxSlabs[0].PaxSlab_Id : filterByPaxSlab; request.CalculateFor = CalculateFor; request.LoginUserId = ckUserEmailId; response = coProviders.GetGuesstimate(request, token).Result; GetDistinctRanges(response.Guesstimate, ref model); model.Guesstimate = response.Guesstimate; model.Guesstimate.VersionId = model.Guesstimate.VersionId; ViewBag.VersionName = model.Guesstimate.VersionName; ViewBag.VersionDescription = model.Guesstimate.VersionDescription; model.Guesstimate.VersionName = ""; model.Guesstimate.VersionDescription = ""; model.NextVersionId = response.LastVersionId + 1; model.IsStandardPrice = response.IsStandardPrice; #endregion #region Filter Logic model.DayList = GetDays(model.Guesstimate.GuesstimatePosition); model.ServiceTypeList = GetProductTypes(model.Guesstimate.GuesstimatePosition); model.KeepAsList = objKeepAs; if (filterByDay == "All") { filterByDay = null; } if (filterByServiceType == "All") { filterByServiceType = null; } if (filterByPackageType == "All") { filterByPackageType = null; } if (!string.IsNullOrEmpty(filterByDay)) { model.Guesstimate.GuesstimatePosition = model.Guesstimate.GuesstimatePosition.Where(x => x.Day == filterByDay).ToList(); } if (!string.IsNullOrEmpty(filterByServiceType)) { model.Guesstimate.GuesstimatePosition = model.Guesstimate.GuesstimatePosition.Where(x => x.ProductType == filterByServiceType).ToList(); } if (!string.IsNullOrEmpty(filterByPackageType)) { model.Guesstimate.GuesstimatePosition = model.Guesstimate.GuesstimatePosition.Where(x => x.KeepAs == filterByPackageType).ToList(); } //model.Guesstimate.GuesstimateDetails = model.Guesstimate.GuesstimateDetails.Where(x => model.SummaryDetails.Any(a => a.OriginalItineraryDetails.Any(b => b.PositionId == x.PositionId))).ToList(); model.Day = filterByDay; model.Service = filterByServiceType; model.KeepAs = filterByPackageType; model.DepartureDate = filterByDeparture.ToString(); model.PaxSlab = filterByPaxSlab.ToString(); #endregion return(PartialView("_Guesstimate", model)); } catch (Exception ex) { throw; return(View()); } }
public bool GetDistinctRanges(mGuesstimate prices, ref GuesstimateViewModel model) { List <AttributeValues> lstRangesAcco = new List <AttributeValues>(); foreach (var p in prices.GuesstimatePosition) { if (p.ProductType != null) { if (p.ProductType.ToLower() == "hotel" || p.ProductType.ToLower() == "apartments" || p.ProductType.ToLower() == "overnight ferry") { foreach (var pr in p.GuesstimatePrice) { if (pr.ProductRange != null) { if (lstRangesAcco.Where(a => a.Value == pr.ProductRange.Replace("ADULT", "A").Replace("GUIDE", "G").Replace("DRIVER", "D")).Count() <= 0) { lstRangesAcco.Add(new AttributeValues { AttributeValue_Id = pr.ProductRangeId, Value = pr.ProductRange.Replace("ADULT", "A").Replace("GUIDE", "G").Replace("DRIVER", "D") }); } } } } } } #region Sort for (int i = 0; i < lstRangesAcco.Count; i++) { if (lstRangesAcco[i].Value.ToLower() == "single (a)") { lstRangesAcco[i].SequenceNo = 1; } else if (lstRangesAcco[i].Value.ToLower() == "double (a)") { lstRangesAcco[i].SequenceNo = 2; } else if (lstRangesAcco[i].Value.ToLower() == "twin (a)") { lstRangesAcco[i].SequenceNo = 3; } else if (lstRangesAcco[i].Value.ToLower() == "triple (a)") { lstRangesAcco[i].SequenceNo = 4; } else if (lstRangesAcco[i].Value.ToLower() == "quad (a)") { lstRangesAcco[i].SequenceNo = 5; } else if (lstRangesAcco[i].Value.ToLower() == "single (d)") { lstRangesAcco[i].SequenceNo = 6; } else if (lstRangesAcco[i].Value.ToLower() == "double (d)") { lstRangesAcco[i].SequenceNo = 7; } else if (lstRangesAcco[i].Value.ToLower() == "twin (d)") { lstRangesAcco[i].SequenceNo = 8; } else if (lstRangesAcco[i].Value.ToLower() == "triple (d)") { lstRangesAcco[i].SequenceNo = 9; } else if (lstRangesAcco[i].Value.ToLower() == "quad (d)") { lstRangesAcco[i].SequenceNo = 10; } else if (lstRangesAcco[i].Value.ToLower() == "single (g)") { lstRangesAcco[i].SequenceNo = 11; } else if (lstRangesAcco[i].Value.ToLower() == "double (g)") { lstRangesAcco[i].SequenceNo = 12; } else if (lstRangesAcco[i].Value.ToLower() == "twin (g)") { lstRangesAcco[i].SequenceNo = 13; } else if (lstRangesAcco[i].Value.ToLower() == "triple (g") { lstRangesAcco[i].SequenceNo = 14; } else if (lstRangesAcco[i].Value.ToLower() == "quad (g)") { lstRangesAcco[i].SequenceNo = 15; } else if (lstRangesAcco[i].Value.ToLower() == "child") { lstRangesAcco[i].SequenceNo = 16; } else if (lstRangesAcco[i].Value.ToLower() == "child + bed") { lstRangesAcco[i].SequenceNo = 17; } else if (lstRangesAcco[i].Value.ToLower() == "child - bed") { lstRangesAcco[i].SequenceNo = 18; } else if (lstRangesAcco[i].Value.ToLower() == "infant") { lstRangesAcco[i].SequenceNo = 19; } else { lstRangesAcco[i].SequenceNo = 100; } } lstRangesAcco = lstRangesAcco.OrderBy(a => a.SequenceNo).ToList(); model.RangeAccoList = lstRangesAcco; #endregion List <AttributeValues> lstRangesServ = new List <AttributeValues>(); foreach (var p in prices.GuesstimatePosition) { if (p.ProductType != null) { if (p.ProductType.ToLower() == "meal" || p.ProductType.ToLower() == "attractions" || p.ProductType.ToLower() == "sightseeing - citytour" || p.ProductType.ToLower() == "visa" || p.ProductType.ToLower() == "insurance" || p.ProductType.ToLower() == "ferry passenger" || p.ProductType.ToLower() == "scheduled transfer" || p.ProductType.ToLower() == "train" || p.ProductType.ToLower() == "domestic flight" ) { foreach (var pr in p.GuesstimatePrice) { if (pr.IsSupplement) { if (pr.ProductRange != null) { if (lstRangesServ.Where(a => a.Value == pr.ProductRange.Replace("ADULT", "A").Replace("CHILD", "C")).Count() <= 0) { lstRangesServ.Add(new AttributeValues { AttributeValue_Id = pr.ProductRangeId, Value = pr.ProductRange.Replace("ADULT", "A").Replace("CHILD", "C") }); } } } else { if (pr.Type != null) { if (lstRangesServ.Where(a => a.Value == pr.Type).Count() <= 0) { lstRangesServ.Add(new AttributeValues { AttributeValue_Id = pr.ProductRangeId, Value = pr.Type }); } } } } } } } #region Sort for (int i = 0; i < lstRangesServ.Count; i++) { if (lstRangesServ[i].Value.ToLower() == "adult") { lstRangesServ[i].SequenceNo = 1; } else if (lstRangesServ[i].Value.ToLower() == "child") { lstRangesServ[i].SequenceNo = 2; } else { lstRangesServ[i].SequenceNo = 100; } } lstRangesServ = lstRangesServ.OrderBy(a => a.SequenceNo).ToList(); model.RangeServicesList = lstRangesServ; #endregion List <AttributeValues> lstRangesUnit = new List <AttributeValues>(); foreach (var p in prices.GuesstimatePosition) { if (p.ProductType != null) { if (p.ProductType.ToLower() == "coach" || p.ProductType.ToLower() == "ferry transfer" || p.ProductType.ToLower() == "guide" || p.ProductType.ToLower() == "private transfer" || p.ProductType.ToLower() == "ldc" || p.ProductType.ToLower() == "assistant" || p.ProductType.ToLower() == "fee" || p.ProductType.ToLower() == "other") { foreach (var pr in p.GuesstimatePrice) { if (pr.ProductRangeCode != null) { if (lstRangesUnit.Where(a => a.Value == pr.ProductRangeCode).Count() <= 0) { lstRangesUnit.Add(new AttributeValues { AttributeValue_Id = pr.ProductRangeId, Value = pr.ProductRangeCode }); } } } } } } model.RangeUnitList = lstRangesUnit; model.RangesList = new List <AttributeValues>(); model.RangesList.AddRange(lstRangesAcco); model.RangesList.AddRange(lstRangesServ); model.RangesList.AddRange(lstRangesUnit); return(true); }