Exemple #1
0
        //tbl_vehicletype tv
        public ActionResult CreateVehicle(tbl_vehicletype tv)
        {
            VehicleViewModel vm = new VehicleViewModel
            {
                tblvehicle    = new tbl_vehicle(),
                tblehicletype = tv,
                tblcar        = new tbl_Car(),
                tblbike       = new tbl_bike()
            };

            ViewBag.Vehiclename = tv.Vehicle_type_name;
            if (tv.ID == 1)
            {
                List <VehicleBodyType> items = new List <VehicleBodyType>()
                {
                    new VehicleBodyType()
                    {
                        text = "Hatchback", Body_type = "Hatchback"
                    },
                    new VehicleBodyType()
                    {
                        text = "Sedan", Body_type = "Sedan"
                    }
                };
                ViewBag.Body_type = new SelectList(items, "text", "Body_type");
            }

            if (tv.ID == 2)
            {
                List <string> items = new List <string>();
                items.Add("Kick");
                items.Add("Self");
                ViewBag.Type_of_start = items;
            }

            return(View(vm));
        }
Exemple #2
0
        public List <transportation> getbesttcost(decimal distance, decimal totalweight = 0)
        {
            decimal                cost = 0, mintotalcost = 0, number = 0, totalcost = 0;
            int                    number1 = 0;
            tbl_vehicletype        veh1    = new tbl_vehicletype();
            tbl_vehicletype        veh2    = new tbl_vehicletype();
            List <tbl_vehicletype> lstveh  = new List <tbl_vehicletype>();
            List <tbl_vehicletype> lstveh2 = new List <tbl_vehicletype>();

            decimal selectedcapacity, selectedcapacity2, capacitydif = 0, capacitydif2 = 0, remainingweight = 0;
            int     selectedveh1       = 0;
            List <transportation> tlst = new List <transportation>();

            foreach (var item in db.tbl_vehicletype)
            {
                capacitydif = totalweight - item.capacity.Value;
                if (capacitydif > 0)
                {
                    lstveh.Add(item);
                }
            }

            if (lstveh.Count() > 0)
            {
                selectedcapacity = lstveh.Max(a => a.capacity.Value);
                var vehsel1 = db.tbl_vehicletype.Where(a => a.capacity > selectedcapacity);
                if (vehsel1.Count() > 0)
                {
                    decimal selectedcapacityasl = vehsel1.Min(a => a.capacity.Value);
                    veh1 = vehsel1.Where(a => a.capacity == selectedcapacityasl).SingleOrDefault();
                }
                else
                {
                    veh1 = db.tbl_vehicletype.OrderByDescending(a => a.capacity.Value).FirstOrDefault();
                }
            }
            else
            {
                veh1 = db.tbl_vehicletype.OrderBy(a => a.capacity.Value).FirstOrDefault();
            }



            transportation t1 = new transportation();

            t1.number = Math.Floor(totalweight / veh1.capacity.Value) == 0 ? 1 : Math.Floor(totalweight / veh1.capacity.Value);
            number    = t1.number;

            cost             = (Math.Floor(veh1.factor.Value * distance) > db.tbl_vehicletype.Where(a => a.id == veh1.id).SingleOrDefault().mincost.Value) ? Math.Floor(veh1.factor.Value * distance) : db.tbl_vehicletype.Where(a => a.id == veh1.id).SingleOrDefault().mincost.Value;
            t1.cost          = cost.ToString();
            totalcost        = (t1.number * Convert.ToDecimal(cost));
            t1.totalcost     = totalcost.ToString();
            t1.vehicletype   = veh1.vehiclename;
            t1.vehicletypeid = veh1.id;
            t1.distance      = distance.ToString() + " km";
            t1.address       = "نحوه حمل پیشنهادی" + "= " + "حداقل کرایه کل";
            tlst.Add(t1);

            remainingweight = totalweight - (number * veh1.capacity.Value);
            if (remainingweight > 0)
            {
                foreach (var item2 in db.tbl_vehicletype)
                {
                    capacitydif2 = remainingweight - item2.capacity.Value;
                    if (capacitydif2 < 0)
                    {
                        lstveh2.Add(item2);
                    }
                }
                if (lstveh2.Count() > 0)
                {
                    selectedcapacity2 = lstveh2.Min(a => a.capacity.Value);
                    veh2 = lstveh.Where(a => a.capacity == selectedcapacity2).SingleOrDefault();

                    transportation t2 = new transportation();
                    t2.number        = Math.Ceiling(remainingweight / veh2.capacity.Value);
                    cost             = (Math.Floor(veh2.factor.Value * distance) > db.tbl_vehicletype.Where(a => a.id == veh2.id).SingleOrDefault().mincost.Value) ? Math.Floor(veh2.factor.Value * distance) : db.tbl_vehicletype.Where(a => a.id == veh2.id).SingleOrDefault().mincost.Value;
                    t2.cost          = cost.ToString();
                    totalcost        = (t2.number * Convert.ToDecimal(cost));
                    t2.totalcost     = totalcost.ToString();
                    t2.vehicletype   = veh2.vehiclename;
                    t2.vehicletypeid = veh2.id;
                    t2.distance      = distance.ToString() + " km";
                    t2.address       = "نحوه حمل پیشنهادی" + "= " + "حداقل کرایه کل";
                    tlst.Add(t2);
                }
                else
                {
                    transportation t2 = new transportation();
                    t2.number        = 1;
                    cost             = (Math.Floor(db.tbl_vehicletype.FirstOrDefault().factor.Value *distance) > db.tbl_vehicletype.FirstOrDefault().mincost.Value) ? Math.Floor(db.tbl_vehicletype.FirstOrDefault().factor.Value *distance) : db.tbl_vehicletype.FirstOrDefault().mincost.Value;
                    t2.cost          = cost.ToString();
                    totalcost        = (1 * Convert.ToDecimal(cost));
                    t2.totalcost     = totalcost.ToString();
                    t2.vehicletype   = db.tbl_vehicletype.FirstOrDefault().vehiclename;
                    t2.vehicletypeid = veh2.id;
                    t2.distance      = distance.ToString() + " km";
                    t2.address       = "نحوه حمل پیشنهادی" + "= " + "حداقل کرایه کل";
                    tlst.Add(t2);
                }
            }



            return(tlst);
        }