public ActionResult Create(RateQuoteViewModel model) { if (ModelState.IsValid) { try { var fromList = model.RateQuote.From.Split(';'); foreach (var ft in fromList) { RQLeg legs = new RQLeg(); legs.From = ft; legs.To = model.RateQuote.To; model.RqLegs.Add(legs); } //var res = db.CreateRateQuote(model.BillTo, string.Empty, model.GUID); //db.SaveChanges(); } catch (Exception e) { ViewData["EditError"] = e.Message; } } else { ViewData["EditError"] = "Please, correct all errors."; } //return RedirectToAction("Index"); return(View(model)); }
public ActionResult SaveLegsAndAddItem(RateQuoteViewModel model) { if (ModelState.IsValid) { try { var rqIds = model.RQStatus.Split(','); foreach (var id in rqIds) { var rqid = Convert.ToInt32(id); var rq = db.RateQuotes.Where(item => item.RateQuoteId == rqid).FirstOrDefault(); foreach (var item in model.RqLegs) { RQLeg rqLegs = item; rqLegs.RateQuoteId = Convert.ToInt32(id); if (rqLegs.RQLegId > 0) { db.RQLegs.Attach(rqLegs); db.Entry(rqLegs).State = System.Data.Entity.EntityState.Modified; //this.UpdateModel(rqLegs); } else { db.RQLegs.Add(rqLegs); } } db.SaveChanges(); } foreach (var id in rqIds) { foreach (var item in model.RqAdditionalItems) { RQAdditionalItem rqAI = item; rqAI.RateQuoteId = Convert.ToInt32(id); db.RQAdditionalItems.Add(rqAI); //if (rqAI.Id > 0) //{ // db.Entry(rqAI).State = System.Data.Entity.EntityState.Modified; // //this.UpdateModel(rqAI); //} //else //{ db.RQAdditionalItems.Add(rqAI); //} } db.SaveChanges(); } } catch (Exception e) { ViewData["EditError"] = e.Message; } } else { ViewData["EditError"] = "Please, correct all errors."; } return(Json(true)); }
public ActionResult NewRQLegs(RateQuoteViewModel model) { if (ModelState.IsValid) { try { var fs = db.Settings.Where(item => item.Item.Equals("Fuel Surcharge", StringComparison.OrdinalIgnoreCase)).FirstOrDefault().Value; RQLeg legs = new RQLeg(); legs.RQFrom = model.RQTriggerLegFrom; legs.From = model.RQNewFrom; legs.To = model.RQNewTo; legs = CalculateFaresAndFS(legs); legs.ToDispatch = true; model.RqLegs.Add(legs); } catch (Exception e) { ViewData["EditError"] = e.Message; } } else { ViewData["EditError"] = "Please, correct all errors."; } return(PartialView("RQLegs", model)); }
public ActionResult RQLegs(RateQuoteViewModel model) { if (ModelState.IsValid) { try { model.RateQuote.RoundTrip = model.RoundTrip; var fromList = model.RateQuote.From.Split(';'); foreach (var ft in fromList) { if (!string.IsNullOrWhiteSpace(ft)) { RQLeg legs = new RQLeg(); legs.RQFrom = ft; legs.From = ft; legs.To = model.RateQuote.To; legs.ToDispatch = true; // Need to test on edit or ratequote legs = CalculateFaresAndFS(legs); model.RqLegs.Add(legs); if (model.RateQuote.RoundTrip != null && Convert.ToBoolean(model.RateQuote.RoundTrip)) { RQLeg rtlegs = new RQLeg(); rtlegs.RQFrom = ft; rtlegs.From = model.RateQuote.To; rtlegs.To = ft; rtlegs.ToDispatch = true; // Need to test on edit or ratequote rtlegs = CalculateFaresAndFS(rtlegs); model.RqLegs.Add(rtlegs); } } } } catch (Exception e) { ViewData["EditError"] = e.Message; } } else { ViewData["EditError"] = "Please, correct all errors."; } return(PartialView("RQLegs", model)); }
private RQLeg CalculateFaresAndFS(RQLeg legs) { var fs = db.Settings.Where(item => item.Item.Equals("Fuel Surcharge", StringComparison.OrdinalIgnoreCase)).FirstOrDefault().Value; var from = GetFullAddress(legs.From); var to = GetFullAddress(legs.To); var distanceAndTime = GetDistance(from, to); legs.OneWayMiles = distanceAndTime[0]; legs.TravelTime = distanceAndTime[1]; legs.LineHaul = CalculateFares(legs.OneWayMiles); legs.FuelSurcharge = (legs.LineHaul * Convert.ToDecimal(fs)) / 100; legs.TotalAmount = legs.LineHaul + legs.FuelSurcharge; return(legs); }