예제 #1
0
        public async Task <SearchingManifestItem> SearchItem()
        {
            var lst = await _shipmentBookingDataProvider.ListAsync();

            List <Booking> bookingModels   = lst.Items;
            var            DestinationPort = new List <string> {
                "Crooked Harbour", "Aberdeen", "Double Haven", "Gin Drinkers Bay", "Inner Port Shelter", "Cam Pha", "Cua Lo", "Hai Phong", "Hon Gai", "Nghi Son"
            };
            var OriginPorts = new List <string> {
                "Aberdeen", "Crooked Harbour", "Double Haven", "Gin Drinkers Bay", "Inner Port Shelter", "Cam Pha", "Cua Lo", "Hai Phong", "Hon Gai", "Nghi Son"
            };
            var           Carriers = bookingModels.Select(x => x.Carrier).Distinct();
            List <string> status   = new List <string> {
                OrderStatus.BookingMade.GetDescription <OrderStatus>(), OrderStatus.PartlyManifested.GetDescription <OrderStatus>(), OrderStatus.Manifested.GetDescription <OrderStatus>()
            };
            SearchingManifestItem getSearchItemDTO = new SearchingManifestItem()
            {
                DestinationPort = DestinationPort,
                OriginPorts     = OriginPorts,
                Carriers        = Carriers,
                Status          = status
            };

            return(getSearchItemDTO);
        }
        // GET: Manifest
        public async Task <ActionResult> Index(int?pageIndex, string DestinationPort = null, string OriginPort = null, string Carrier = null, DateTime?ETDFrom = null, DateTime?ETDTo = null, string Status = null, string Vendor = null, string PONumber = null, string Item = null, bool?checkClick = null)
        {
            ViewBag.Size = new List <string> {
                "20GP", "40HC"
            };
            ViewBag.PackType = new List <string> {
                "Boxed", "Carton"
            };
            ViewBag.Loading = new List <string> {
                "ROAD", "SEA", "AIR"
            };
            SearchingManifestItem searchItem = await _manifestService.SearchItem();

            ViewBag.OriginPorts = searchItem.OriginPorts;
            ViewBag.Carriers    = searchItem.Carriers;
            ViewBag.Dest        = searchItem.DestinationPort;
            ViewBag.Status      = searchItem.Status;
            int current = pageIndex ?? 1;

            if (String.IsNullOrEmpty(DestinationPort) && String.IsNullOrEmpty(OriginPort) && String.IsNullOrEmpty(Carrier))
            {
                DestinationPort = searchItem.DestinationPort.FirstOrDefault();
                OriginPort      = searchItem.OriginPorts.FirstOrDefault();
                Carrier         = searchItem.Carriers.FirstOrDefault();
            }
            ViewBag.pageIndex = current;
            PagedListResult <ShipmentManifestsDtos> listManifest = await _manifestService.ListManifestDtoAsync(current, 2, DestinationPort, OriginPort, Carrier, ETDFrom, ETDTo, Status, Vendor, PONumber, Item);

            listManifest.CurrentFilter = current.ToString();
            foreach (var item in listManifest.Items)
            {
                item.Manifests.OrderBy(p => p.PONumber).ThenBy(a => a.ItemNumber);
            }
            if (checkClick == true)
            {
                return(PartialView("_SearchingManifestPartial", listManifest));
            }
            return(View("Index", listManifest));
        }
        public async Task <ActionResult> CreateOrUpdate(string pageIndex, PagedListResult <ShipmentManifestsDtos> shipmentManifestDtos)
        {
            ViewBag.modalResult = "empty";
            ViewBag.Size        = new List <string> {
                "20GP", "40HC"
            };
            ViewBag.PackType = new List <string> {
                "Boxed", "Carton"
            };
            ViewBag.Loading = new List <string> {
                "ROAD", "SEA", "AIR"
            };
            SearchingManifestItem searchItem = await _manifestService.SearchItem();

            ViewBag.OriginPorts = searchItem.OriginPorts;
            ViewBag.Carriers    = searchItem.Carriers;
            ViewBag.Dest        = searchItem.DestinationPort;
            ViewBag.Status      = searchItem.Status;
            string DestinationPort = searchItem.DestinationPort.First();
            string OriginPort      = searchItem.OriginPorts.First();
            string Carrier         = searchItem.Carriers.First();
            PagedListResult <ShipmentManifestsDtos> pagedListResult = new PagedListResult <ShipmentManifestsDtos>();
            int current = int.Parse(shipmentManifestDtos.CurrentFilter);

            ViewBag.pageIndex             = current;
            pagedListResult.CurrentFilter = shipmentManifestDtos.CurrentFilter;
            for (int i = 0; i < shipmentManifestDtos.Items.Count(); i++)
            {
                for (int j = 0; j < shipmentManifestDtos.Items[i].Manifests.Count(); j++)
                {
                    if (shipmentManifestDtos.Items[i].Manifests[j].selectedItem == false && shipmentManifestDtos.Items[i].selectedContainer == true)
                    {
                        string shipQuantity = "Items[" + i + "].Manifests[" + j + "].ShipQuantity";
                        string id           = "Items[" + i + "].Manifests[" + j + "].Id";
                        if (ModelState.Keys.Contains(shipQuantity))
                        {
                            ModelState[shipQuantity].ValidationState = ModelState[id].ValidationState;
                        }
                    }
                    if (shipmentManifestDtos.Items[i].Manifests[j].selectedItem == false)
                    {
                        string shipQuantity = "Items[" + i + "].Manifests[" + j + "].ShipQuantity";
                        string id           = "Items[" + i + "].Manifests[" + j + "].Id";
                        if (ModelState.Keys.Contains(shipQuantity))
                        {
                            ModelState[shipQuantity].ValidationState = ModelState[id].ValidationState;
                        }
                    }
                    if (shipmentManifestDtos.Items[i].selectedContainer == true && shipmentManifestDtos.Items[i].Manifests[j].selectedItem == true)
                    {
                        if (shipmentManifestDtos.Items[i].Manifests[j].ShipQuantity == 0)
                        {
                            ViewBag.modalResult = "zero";
                            pagedListResult     = shipmentManifestDtos;
                            return(PartialView("_AchieveManifestPartial", pagedListResult));
                        }
                    }
                }
            }

            foreach (var manifest in shipmentManifestDtos.Items)
            {
                if (_manifestService.checkNameContainer(manifest.Name) == true && manifest.Id == 0)
                {
                    ViewBag.nameUnique = "Container name must be unique.";
                    pagedListResult    = shipmentManifestDtos;
                    return(PartialView("_AchieveManifestPartial", pagedListResult));
                }
                //if (manifest.selectedContainer == true && manifest.Manifests.Where(p => p.selectedItem == true).Count() == 0)
                //{
                //  ViewBag.modalResult = "emptybooking";
                //  pagedListResult = shipmentManifestDtos;
                //  return PartialView("_AchieveManifestPartial", pagedListResult);
                //}
            }
            //if (shipmentManifestDtos.Items.Where(p => p.selectedContainer == false).Count() == 2)
            //{
            //  ViewBag.modalResult = "empty";
            //  pagedListResult = shipmentManifestDtos;
            //  return PartialView("_AchieveManifestPartial", pagedListResult);
            //}
            if (ViewBag.nameUnique == null)
            {
                if (ModelState.IsValid)
                {
                    foreach (var manifest in shipmentManifestDtos.Items)
                    {
                        if (manifest.selectedContainer == true && manifest.Manifests.Where(p => p.selectedItem == true && p.ShipQuantity > 0).Count() > 0)
                        {
                            await _manifestService.CreateOrUpdateContainerAsync(manifest);

                            ViewBag.modalResult = "success";
                        }
                    }
                    pagedListResult = shipmentManifestDtos;
                }
                else
                {
                    ViewBag.modalResult = "invalid";
                    pagedListResult     = shipmentManifestDtos;
                }
            }
            return(PartialView("_AchieveManifestPartial", pagedListResult));
        }