Ejemplo n.º 1
0
        public ActionResult PickTickets()
        {
            var consigmentVms = new List <ConsigmentVm>();
            var consignments  = Db.Assignments
                                .Include(x => x.Drivers)
                                .Include(x => x.Vehicle)
                                .ToList();//.Where(x => x.CreatedBy == LoggedInUser.Id)

            foreach (var consignment in consignments)
            {
                var order = Db.Orders.FirstOrDefault(x => x.Id == consignment.OrderId);

                var consigmentVm = new ConsigmentVm()
                {
                    Id                = consignment.Id,
                    LegDate           = consignment.CreatedAt.ToString(),
                    OrderId           = consignment.OrderId?.ToString(),
                    OrderNumber       = order.OrderNumber,
                    ConsignmentNumber = consignment.AssignmentNumber,
                    DriverName        = String.Join(",", consignment.Drivers.Select(x => x.Name).ToList()),
                    VehicleName       = consignment.Vehicle?.Name,
                };
                consigmentVms.Add(consigmentVm);
            }
            return(View(consigmentVms));
        }
Ejemplo n.º 2
0
        // GET: New
        public ActionResult New()
        {
            ConsigmentVm model = new ConsigmentVm()
            {
                Id = Guid.NewGuid(),
            };

            ViewBag.Warehouses = new SelectList(WarehousesList, "Value", "Text");
            ViewBag.Vehicles   = new SelectList(VehiclesList, "Value", "Text");
            ViewBag.Drivers    = new SelectList(DriversList, "Value", "Text");
            ViewBag.Orders     = new SelectList(OrdersList, "Value", "Text");

            return(View(model));
        }
Ejemplo n.º 3
0
        public ActionResult Index()
        {
            var consigmentVms = new List <ConsigmentVm>();
            var consignments  = Db.Assignments
                                .Include(x => x.Leg)
                                .Include(x => x.Drivers)
                                .Include(x => x.Vehicle)
                                .Include(x => x.Statuses)
                                .ToList();//.Where(x => x.CreatedBy == LoggedInUser.Id)

            foreach (var consignment in consignments)
            {
                var order = Db.Orders.Include(x => x.Pianos).FirstOrDefault(x => x.Id == consignment.OrderId);

                var consigmentVm = new ConsigmentVm()
                {
                    Id                = consignment.Id,
                    LegDate           = consignment.Leg.LegDate?.ToString(StringConstants.DateFormatSlashes),
                    OrderId           = consignment.OrderId?.ToString(),
                    OrderNumber       = order.OrderNumber,
                    ConsignmentNumber = consignment.AssignmentNumber,
                    DriverName        = String.Join(",", consignment.Drivers.Select(x => x.Name).ToList()),
                    VehicleName       = consignment.Vehicle?.Name,
                    TripStatus        = consignment.Statuses.Count == 0 ? TripStatusEnum.NotStarted.ToString()
                    : ((TripStatusEnum)(consignment.Statuses.OrderByDescending(x => x.CreatedAt).FirstOrDefault().Status)).ToString(),
                    StartTime     = consignment.StartTime?.ToString(),
                    EstimatedTime = consignment.EstimatedTime?.ToString()
                };

                foreach (var status in consignment.Statuses.OrderByDescending(x => x.CreatedAt))
                {
                    consigmentVm.Statuses.Add(new StatusVm()
                    {
                        Status     = ((TripStatusEnum)status.Status).ToString(),
                        StatusBy   = status.StatusBy,
                        StatusTime = status.StatusTime.ToString(),
                        Comments   = status.Comments
                    });
                }
                consigmentVms.Add(consigmentVm);
            }
            return(View(consigmentVms));
        }
Ejemplo n.º 4
0
        public ActionResult Save(ConsigmentVm conVm)
        {
            //SetupLoggedInUser("test.user");
            if (ModelState.IsValid)
            {
                ViewBag.Warehouses = new SelectList(WarehousesList, "Value", "Text");
                ViewBag.Vehicles   = new SelectList(VehiclesList, "Value", "Text");
                ViewBag.Drivers    = new SelectList(DriversList, "Value", "Text");
                ViewBag.Orders     = new SelectList(OrdersList, "Value", "Text");

                try
                {
                    var order = Db.Orders
                                .Include(x => x.Pianos)
                                .Include(x => x.Legs)
                                .Include(x => x.Assignments)
                                .FirstOrDefault(x => x.Id == conVm.Orders);

                    if (order.Assignments.Count > 0)
                    {
                        throw new Exception(" Assignment already done.");
                    }

                    // Save Piano Statuses
                    foreach (var piano in order.Pianos)
                    {
                        Db.PianoStatuses.Add(new PianoStatus()
                        {
                            Id         = Guid.NewGuid(),
                            PianoId    = piano.Id,
                            CreatedAt  = DateTime.Now,
                            Status     = (int)PianoStatusEnum.Booked,
                            StatusTime = DateTime.Now,
                            StatusBy   = LoggedInUser?.UserName
                        });
                    }
                    Db.SaveChanges();

                    // Legs
                    var    legs             = order.Legs.OrderBy(x => x.LegNumber).ToList();
                    string assignmentNumber = $"CON-{order.OrderNumber}";

                    foreach (var l in order.Legs)
                    {
                        var leg = GetLeg(Db, l.Id);
                        if (legs.Count > 1)
                        {
                            assignmentNumber = $"CON-{order.OrderNumber}/{leg.LegNumber}";
                        }

                        Assignment assignment = new Assignment()
                        {
                            //Id = conVm.Orders.Value, //  Needs to be same as orderId to maintain 1 vs 1 realtion integrity
                            Id               = leg.Id,
                            CreatedAt        = DateTime.Now,
                            CreatedBy        = LoggedInUser?.UserName,
                            OrderId          = conVm.Orders,
                            VehicleId        = conVm.Vehicles,
                            AssignmentNumber = assignmentNumber,
                            LegId            = leg.Id
                        };

                        conVm.Drivers.ForEach(x =>
                        {
                            assignment.Drivers.Add(Db.Drivers.FirstOrDefault(y => y.Id == x.Value));
                        });
                        order.Assignments.Add(assignment);
                        Db.SaveChanges();

                        int odr   = 1;
                        var paths = JsonConvert.DeserializeObject <ConsignmentRouteVm[]>(conVm.Paths);
                        foreach (var path in paths)
                        {
                            Db.AssignmentRoutes.Add(new AssignmentRoute()
                            {
                                Id           = Guid.NewGuid(),
                                CreatedAt    = DateTime.Now,
                                AssignmentId = assignment.Id,
                                Order        = odr,
                                Lat          = path.Lat,
                                Lng          = path.Lng
                            });
                            odr++;
                        }
                        Db.SaveChanges();
                        // Save Trip Statuses
                        Db.TripStatuses.Add(new TripStatus()
                        {
                            Id           = Guid.NewGuid(),
                            AssignmentId = assignment.Id,
                            CreatedAt    = DateTime.Now,
                            Status       = (int)TripStatusEnum.NotStarted,
                            StatusTime   = DateTime.Now,
                            StatusBy     = LoggedInUser?.UserName
                        });
                        Db.SaveChanges();
                    }

                    //else
                    //{
                    //    assignment = Db.Assignments
                    //        .Include(x => x.Route)
                    //        .Include(x => x.Drivers)
                    //        .FirstOrDefault(x => x.Id == order.AssignmentId);

                    //    assignment.OrderId = conVm.Orders;
                    //    assignment.VehicleId = conVm.Vehicles;
                    //    assignment.AssignmentNumber = "CN-" + order.OrderNumber;
                    //    Db.SaveChanges();

                    //    assignment.Drivers.ToList().ForEach(x => {
                    //        assignment.Drivers.Remove(Db.Drivers.FirstOrDefault(y => y.Id == x.Id));
                    //    });
                    //    Db.SaveChanges();
                    //    conVm.Drivers.ForEach(x => {
                    //        assignment.Drivers.Add(Db.Drivers.FirstOrDefault(y => y.Id == x.Value));
                    //    });

                    //    assignment.Route.ToList().ForEach(x => {
                    //        assignment.Route.Remove(Db.AssignmentRoutes.FirstOrDefault(y => y.Id == x.Id));
                    //    });
                    //    Db.SaveChanges();

                    //    int odr = 1;
                    //    var paths = JsonConvert.DeserializeObject<ConsignmentRouteVm[]>(conVm.Paths);
                    //    foreach (var path in paths)
                    //    {
                    //        Db.AssignmentRoutes.Add(new AssignmentRoute()
                    //        {
                    //            Id = Guid.NewGuid(),
                    //            CreatedAt = DateTime.Now,
                    //            AssignmentId = assignment.Id,
                    //            Order = odr,
                    //            Lat = path.Lat,
                    //            Lng = path.Lng
                    //        });
                    //        odr++;
                    //    }
                    //    Db.SaveChanges();

                    //}

                    //var consignmentDrivers = Db.Assignments
                    //                          .Include(x => x.Drivers)
                    //                          .Where(x => x.Id == assignment.Id);

                    //consignmentDrivers.Drivers.ToList().ForEach(x =>
                    //{
                    //    BackgroundJob.Enqueue(() => FCMUitlity.SendConsignment(x.FCMToken, assignment.Id.ToString(), assignment.AssignmentNumber));
                    //});

                    TempData["Success"] = $"Assignment #: {order.OrderNumber} has been saved sucessfully.";
                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                    TempData["Error"] = "This is error while creating assignment." + ex.Message;
                    return(RedirectToAction("Index"));
                }
            }

            return(View(conVm));
        }