public ActionResult EditDispatchPallets(int PalletsDispatchID)
        {
            PalletDispatchViewModel model = new PalletDispatchViewModel();
            var PalletDispatch            = _palletingService.GetPalletsDispatchByDispatchId(PalletsDispatchID);

            model.PalletDispatchId              = PalletsDispatchID;
            model.MarketVehicleID               = PalletDispatch.MarketVehicleID;
            model.SentMethodID                  = PalletDispatch.SentMethodID;
            model.TrackingReference             = PalletDispatch.TrackingReference;
            model.CustomVehicleModel            = PalletDispatch.CustomVehicleModel;
            model.MarketVehicleDriverID         = PalletDispatch.VehicleDriverResourceID;
            model.CustomDriverDetails           = PalletDispatch.CustomDriverDetails;
            model.DispatchNotes                 = PalletDispatch.DispatchNotes;
            model.ProofOfDeliveryImageFilenames = PalletDispatch.ProofOfDeliveryImageFilenames;
            model.AllVehicles = _marketServices.GetAllValidMarketVehicles(CurrentTenantId).MarketVehicles
                                .Select(m => new SelectListItem()
            {
                Text = m.Name, Value = m.Id.ToString()
            });
            model.AllDrivers = _employeeServices.GetAllEmployees(CurrentTenantId)
                               .Select(m => new SelectListItem()
            {
                Text = m.Name, Value = m.ResourceId.ToString()
            });
            model.AllSentMethods = _palletingService.GetAllSentMethods()
                                   .Select(m => new SelectListItem()
            {
                Text = m.Name, Value = m.SentMethodID.ToString()
            });
            model.DispatchRefrenceNumber       = PalletDispatch.DispatchReference;
            Session["UploadedPalletEvidences"] = null;
            ViewBag.ControllerName             = "Pallets";
            if (!string.IsNullOrEmpty(PalletDispatch.ProofOfDeliveryImageFilenames))
            {
                var filePaths = PalletDispatch.ProofOfDeliveryImageFilenames.Split(',').ToList();
                if (filePaths.Count() > 0)
                {
                    List <string> files = new List <string>();
                    Session["UploadedPalletEvidences"] = files;
                    ViewBag.Files = files;
                    foreach (var file in filePaths)
                    {
                        DirectoryInfo dInfo = new DirectoryInfo(file);
                        files.Add(dInfo.Name);
                    }
                }
            }



            return(PartialView("_PalletDisptachDetail", model));
        }
        public ActionResult SavePalletsDispatch(PalletDispatchViewModel model)
        {
            ViewBag.ControllerName = "Pallets";
            if (Session["UploadedPalletEvidences"] != null)
            {
                var filelist = Session["UploadedPalletEvidences"] as List <string>;
                model.ProofOfDeliveryImageFilenames = string.Join(",", filelist);
            }
            else
            {
                model.ProofOfDeliveryImageFilenames = "";
            }
            _palletingService.DispatchPallets(model, CurrentUserId);

            return(RedirectToAction("Index", "Pallets"));
        }
 public ActionResult DispatchPallets(PalletDispatchViewModel model)
 {
     model.AllVehicles = _marketServices.GetAllValidMarketVehicles(CurrentTenantId).MarketVehicles
                         .Select(m => new SelectListItem()
     {
         Text = m.Name, Value = m.Id.ToString()
     });
     model.AllDrivers = _employeeServices.GetAllEmployees(CurrentTenantId)
                        .Select(m => new SelectListItem()
     {
         Text = m.Name, Value = m.ResourceId.ToString()
     });
     model.AllSentMethods = _palletingService.GetAllSentMethods()
                            .Select(m => new SelectListItem()
     {
         Text = m.Name, Value = m.SentMethodID.ToString()
     });
     model.DispatchRefrenceNumber       = GaneStaticAppExtensions.GenerateDateRandomNo();
     ViewBag.ControllerName             = "Pallets";
     Session["UploadedPalletEvidences"] = null;
     return(PartialView("_PalletDisptachDetail", model));
 }
Beispiel #4
0
        public PalletsDispatch DispatchPallets(PalletDispatchViewModel dispatch, int userId)
        {
            if (dispatch.PalletDispatchId > 0)
            {
                var item = _currentDbContext.PalletsDispatches.FirstOrDefault(u => u.PalletsDispatchID == dispatch.PalletDispatchId);
                if (item != null)
                {
                    item.MarketVehicleID               = dispatch.MarketVehicleID;
                    item.VehicleDriverResourceID       = dispatch.MarketVehicleDriverID;
                    item.ProofOfDeliveryImageFilenames = dispatch.ProofOfDeliveryImageFilenames;
                    item.DispatchNotes     = dispatch.DispatchNotes;
                    item.DispatchReference = dispatch.DispatchRefrenceNumber;
                    item.UpdatedBy         = userId;
                    item.DateUpdated       = DateTime.UtcNow;
                    item.TrackingReference = dispatch.TrackingReference;
                    item.SentMethodID      = dispatch.SentMethodID > 0 ? dispatch.SentMethodID : (int?)null;
                    _currentDbContext.Entry(item).State = EntityState.Modified;
                    _currentDbContext.SaveChanges();
                }

                return(item);
            }
            else
            {
                var item = new PalletsDispatch
                {
                    CompletedBy                   = userId,
                    MarketVehicleID               = dispatch.MarketVehicleID,
                    VehicleDriverResourceID       = dispatch.MarketVehicleDriverID,
                    ProofOfDeliveryImageFilenames = dispatch.ProofOfDeliveryImageFilenames,
                    DispatchNotes                 = dispatch.DispatchNotes,
                    DispatchReference             = dispatch.DispatchRefrenceNumber,
                    CreatedBy         = userId,
                    DateCreated       = DateTime.UtcNow,
                    OrderProcessID    = int.Parse(!string.IsNullOrEmpty(dispatch.DispatchSelectedPalletIds) ? dispatch.DispatchSelectedPalletIds : "0"),
                    TrackingReference = dispatch.TrackingReference,
                    SentMethodID      = dispatch.SentMethodID > 0 ? dispatch.SentMethodID : (int?)null,
                    DateCompleted     = DateTime.UtcNow,
                    DispatchStatus    = PalletDispatchStatusEnum.Created
                };
                _currentDbContext.PalletsDispatches.Add(item);
                if (!string.IsNullOrEmpty(dispatch.DispatchSelectedPalletIds))
                {
                    int OrderProcessId = int.Parse(dispatch.DispatchSelectedPalletIds);
                    var PalletList     = _currentDbContext.Pallets.Where(u => u.OrderProcessID == OrderProcessId).ToList();
                    var orderProcess   = _currentDbContext.OrderProcess.FirstOrDefault(u => u.OrderProcessID == OrderProcessId);

                    foreach (var palletId in PalletList)
                    {
                        var pallet = _currentDbContext.Pallets.Find(palletId.PalletID);
                        if (pallet != null && pallet.PalletProducts.Count > 0)
                        {
                            pallet.DateCompleted   = DateTime.UtcNow;
                            pallet.DateUpdated     = DateTime.UtcNow;
                            pallet.CompletedBy     = userId;
                            pallet.PalletsDispatch = item;


                            _currentDbContext.Entry(pallet).State = EntityState.Modified;
                        }
                    }
                    if (orderProcess != null)
                    {
                        orderProcess.OrderProcessStatusId           = (int)OrderProcessStatusEnum.Dispatched;
                        orderProcess.DateUpdated                    = DateTime.UtcNow;
                        orderProcess.UpdatedBy                      = userId;
                        _currentDbContext.Entry(orderProcess).State = EntityState.Modified;
                    }
                }
                _currentDbContext.SaveChanges();
                return(item);
            }
        }