Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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);
        }