예제 #1
0
        public static TransportOrderViewModel BindTransportOrderViewModel(TransportOrder transportOrder, string datePref, List <WorkflowStatus> statuses)
        {
            TransportOrderViewModel transportOrderViewModel = null;

            if (transportOrder != null)
            {
                transportOrderViewModel = new TransportOrderViewModel();
                transportOrderViewModel.BidDocumentNo = transportOrder.BidDocumentNo;
                transportOrderViewModel.OrderDate     = transportOrder.OrderDate;
                transportOrderViewModel.OrderDateET   =
                    transportOrder.OrderDate.ToCTSPreferedDateFormat(datePref);
                transportOrderViewModel.ContractNumber           = transportOrder.ContractNumber;
                transportOrderViewModel.PerformanceBondReceiptNo = transportOrder.PerformanceBondReceiptNo;
                transportOrderViewModel.OrderExpiryDate          = transportOrder.OrderExpiryDate;
                transportOrderViewModel.OrderExpiryDateET        = transportOrder.OrderExpiryDate.ToCTSPreferedDateFormat(datePref);
                transportOrderViewModel.Transporter             = transportOrder.Transporter.Name;
                transportOrderViewModel.RequestedDispatchDate   = transportOrder.RequestedDispatchDate;
                transportOrderViewModel.RequestedDispatchDateET = transportOrder.RequestedDispatchDate.ToCTSPreferedDateFormat(datePref);
                transportOrderViewModel.TransporterID           = transportOrder.TransporterID;
                transportOrderViewModel.TransportOrderNo        = transportOrder.TransportOrderNo;
                transportOrderViewModel.TransportOrderID        = transportOrder.TransportOrderID;
                transportOrderViewModel.StatusID  = transportOrder.StatusID;
                transportOrderViewModel.StartDate = transportOrder.StartDate.ToCTSPreferedDateFormat(datePref);
                transportOrderViewModel.EndDate   = transportOrder.EndDate.ToCTSPreferedDateFormat(datePref);
                transportOrderViewModel.Status    = transportOrder.StatusID.HasValue?
                                                    statuses.Find(t => t.StatusID == transportOrder.StatusID.Value).Description:string.Empty;
            }
            return(transportOrderViewModel);
        }
예제 #2
0
 public ActionResult CreateTransportOrder()
 {
     if (Session["TenantId"] == null)
     {
         TempData["Info"] = "Nastąpiło automatyczne wylogowanie. Proszę ponownie się zalogować";
         return(RedirectToAction("Login", "Home"));
     }
     else
     {
         HorseplayContext        db = new HorseplayContext();
         TransportOrderViewModel vm = new TransportOrderViewModel();
         vm = FillTransportOrderViewModel(vm);
         return(View(vm));
     }
 }
예제 #3
0
        public ActionResult MakeOrder(TransportOrderViewModel order)
        {
            try
            {
                var orderDto = new TransportOrderDTO {
                    TransportType = (int)order.TransportType,
                    DepartureDate = order.DepartureDate,
                    Email         = System.Web.HttpContext.Current.User.Identity.Name
                };

                orderService.OrderTransport(orderDto);
                TempData["successful"] = string.Format("Спасибо, Ваш заказ успешно обработан.");
                return(RedirectToAction("Index", "Home"));
            }
            catch (ValidationException ex)
            {
                return(Content(ex.Message));
            }
        }
예제 #4
0
        public TransportOrderViewModel FillTransportOrderViewModel(TransportOrderViewModel vm, int id = 0)
        {
            HorseplayContext db       = new HorseplayContext();
            int             tenantId  = (int)Session["TenantId"];
            var             emps      = db.Employees.Where(e => e.TenantId == tenantId);
            List <Employee> employees = new List <Employee>();

            if (emps.Any())
            {
                foreach (var emp in emps)
                {
                    employees.Add(emp);
                }
            }
            List <Vehicle> vehicles = new List <Vehicle>();
            var            vehs     = db.Vehicles.Where(v => v.TenantId == tenantId && (int)v.Type != 1);

            if (vehs.Any())
            {
                foreach (var veh in vehs)
                {
                    vehicles.Add(veh);
                }
            }

            List <Vehicle> trailers = new List <Vehicle>();
            var            trails   = db.Vehicles.Where(v => v.TenantId == tenantId && (int)v.Type == 1);

            if (trails.Any())
            {
                foreach (var tr in trails)
                {
                    trailers.Add(tr);
                }
            }

            List <Company> carriers = new List <Company>();
            var            cars     = db.Companies.Where(v => v.TenantId == tenantId && (int)v.Type == 1);

            if (cars.Any())
            {
                foreach (var car in cars)
                {
                    carriers.Add(car);
                }
            }
            List <Company> customers = new List <Company>();
            var            custs     = db.Companies.Where(v => v.TenantId == tenantId && (int)v.Type == 0);

            if (custs.Any())
            {
                foreach (var cust in custs)
                {
                    customers.Add(cust);
                }
            }

            vm.Employees = employees;
            vm.Vehicles  = vehicles;
            vm.Trailers  = trailers;
            vm.Carriers  = carriers;
            vm.Customers = customers;

            if (id > 0)
            {
                var tos = db.TransportOrders
                          .Include(to => to.Truck)
                          .Include(to => to.Trailer)
                          .Include(to => to.PrimaryDriver)
                          .Include(to => to.SecondaryDriver)
                          .Include(to => to.Carrier)
                          .Include(to => to.Customer)
                          .Include(to => to.Route)
                          .Include(to => to.Route.Stops)
                          .Include(to => to.Route.Stops.Select(s => s.Address))
                          .Where(t => t.TenantId == tenantId && t.TransportOrderId == id);

                if (tos.Any())
                {
                    vm.TransportOrder = tos.FirstOrDefault();
                    if (vm.TransportOrder.Carrier != null)
                    {
                        vm.SelectedCarrier = vm.TransportOrder.Carrier.CompanyId;
                    }
                    if (vm.TransportOrder.Customer != null)
                    {
                        vm.SelectedCustomer = vm.TransportOrder.Customer.CompanyId;
                    }
                    if (vm.TransportOrder.PrimaryDriver != null)
                    {
                        vm.SelectedPrimaryDriver = vm.TransportOrder.PrimaryDriver.EmployeeId;
                    }
                    if (vm.TransportOrder.SecondaryDriver != null)
                    {
                        vm.SelectedSecondaryDriver = vm.TransportOrder.SecondaryDriver.EmployeeId;
                    }
                    if (vm.TransportOrder.Truck != null)
                    {
                        vm.SelectedTruck = vm.TransportOrder.Truck.VehicleId;
                    }
                    if (vm.TransportOrder.Trailer != null)
                    {
                        vm.SelectedTrailer = vm.TransportOrder.Trailer.VehicleId;
                    }
                }
            }

            return(vm);
        }
예제 #5
0
 public ActionResult CreateTransportOrder(TransportOrderViewModel vm)
 {
     if (!ModelState.IsValid)
     {
         vm = FillTransportOrderViewModel(vm);
         return(View("CreateTransportOrder", vm));
     }
     else
     {
         HorseplayContext db = new HorseplayContext();
         vm.Rebuild(db);
         if (vm.TransportOrder.Route.Stops.Any())
         {
             int userId   = (int)Session["UserId"];
             int tenantId = (int)Session["TenantId"];
             int order    = 0;
             //if there are any stops, let's create them
             List <RouteStop> stops = new List <RouteStop>();
             foreach (var stop in vm.TransportOrder.Route.Stops)
             {
                 Address address = new Address();
                 address.Name      = stop.Address.Name;
                 address.Street    = stop.Address.Street;
                 address.ZipCode   = stop.Address.ZipCode;
                 address.City      = stop.Address.City;
                 address.Country   = stop.Address.Country;
                 address.AddedBy   = userId;
                 address.TenantId  = tenantId;
                 address.DateAdded = DateTime.Now;
                 RouteStop rs = new RouteStop();
                 rs.Address       = address;
                 rs.AddedBy       = userId;
                 rs.DepartureDate = stop.DepartureDate;
                 rs.ArrivalDate   = stop.ArrivalDate;
                 rs.StopType      = stop.StopType;
                 rs.TenantId      = tenantId;
                 rs.DateAdded     = DateTime.Now;
                 rs.Order         = order;
                 stops.Add(rs);
                 order++;
             }
             Route Route = new Route()
             {
                 AddedBy = userId, TenantId = tenantId, DateAdded = DateTime.Now, Length = vm.TransportOrder.Route.Length, Stops = stops
             };
             TransportOrder to = new TransportOrder()
             {
                 AddedBy = userId, DateAdded = DateTime.Now, TenantId = tenantId, Type = vm.TransportOrder.Type, Route = Route, Cost = vm.TransportOrder.Cost, Truck = vm.IntToVehicle(vm.SelectedTruck), Trailer = vm.IntToVehicle(vm.SelectedTrailer), PrimaryDriver = vm.IntToEmployee(vm.SelectedPrimaryDriver), SecondaryDriver = vm.IntToEmployee(vm.SelectedSecondaryDriver), Remarks = vm.TransportOrder.Remarks, Carrier = vm.IntToCarrier(vm.SelectedCarrier), Customer = vm.IntToCustomer(vm.SelectedCustomer)
             };
             db.TransportOrders.Add(to);
             try
             {
                 db.SaveChanges();
             }
             catch (DbEntityValidationException e)
             {
                 foreach (var error in e.EntityValidationErrors)
                 {
                     foreach (var propertyError in error.ValidationErrors)
                     {
                         Console.WriteLine($"{propertyError.PropertyName} had the following issue: {propertyError.ErrorMessage}");
                     }
                 }
             }
         }
         return(RedirectToAction("GetTransportOrders"));
     }
 }