Beispiel #1
0
        public async Task <ActionResult> RemovePutawayBinItems(CreateBinItemsDto createBinItemsDto)
        {
            var bin = await _binRepository.GetBinByCode("PUTAWAY");

            //var lot = await _shippingRepository.GetShippingLotByNumber(createBinItemDto.LotNumber);

            foreach (CreateBinItemForPutawayDto element in createBinItemsDto.createBinItemForPutawayDtos)
            {
                var item = await _itemRepository.GetItemByNumber(element.ItemNumber.ToUpper());

                var quantity = element.Quantity;

                var lot = await _shippingRepository.GetShippingLotByNumber(element.LotNumber);

                var bi = await _binItemRepository.GetBinItemByThree("PUTAWAY", element.ItemNumber.ToUpper(), element.LotNumber);

                if (bi is null)
                {
                    return(BadRequest("Failed to remove PUTAWAY binItems."));
                }
                else
                {
                    //element.OldQuantity = bi.Quantity;

                    if (bi.Quantity > quantity)
                    {
                        bi.Quantity -= quantity;
                        _binItemRepository.UpdateBinItemAsync(bi);
                    }
                    else if (bi.Quantity == quantity)
                    {
                        _binItemRepository.DeleteBinItem(bi);
                    }
                    else
                    {
                        return(BadRequest("Remove quantity is greater than exists."));
                    }

                    if (!await _binItemRepository.SaveAllAsync())
                    {
                        return(BadRequest("Failed to  remove PUTAWAY binItems."));
                    }
                }
            }

            return(Ok());
        }
Beispiel #2
0
        public async Task <ActionResult <IEnumerable <BinItemDto> > > CreatePutAwayBinItems(CreateBinItemsDto createBinItemsDto)
        {
            var bin = await _binRepository.GetBinByCode("PUTAWAY");

            //var lot = await _shippingRepository.GetShippingLotByNumber(createBinItemsDto.LotNumber);

            var binItems = new List <BinItem>();

            foreach (CreateBinItemForPutawayDto element in createBinItemsDto.createBinItemForPutawayDtos)
            {
                var item = await _itemRepository.GetItemByNumber(element.ItemNumber.ToUpper());

                var quantity = element.Quantity;

                var lot = await _shippingRepository.GetShippingLotByNumber(element.LotNumber);

                var bi = await _binItemRepository.GetBinItemByThree("PUTAWAY", element.ItemNumber.ToUpper(), element.LotNumber);

                if (bi is null)
                {
                    var binItem = new BinItem
                    {
                        Quantity    = quantity,
                        Bin         = bin,
                        Item        = item,
                        ShippingLot = lot,
                    };

                    _binItemRepository.AddBinItem(binItem);
                    binItems.Add(binItem);

                    if (!await _binItemRepository.SaveAllAsync())
                    {
                        return(BadRequest("Failed to add item."));
                    }
                }
                else
                {
                    bi.Quantity += quantity;
                    _binItemRepository.UpdateBinItemAsync(bi);
                    binItems.Add(bi);

                    if (!await _binItemRepository.SaveAllAsync())
                    {
                        return(BadRequest("Failed to update item."));
                    }
                }
            }

            return(Ok(_mapper.Map <IEnumerable <BinItemDto> >(binItems)));
        }