示例#1
0
        public async Task <ActionResult> RemoverReplenishmentBinItem(CreateBinItemForReplenishmentDto createBinItemForReplenishementDto)
        {
            var fromBin = await _binRepository.GetBinByCode("REPLENISHMENT");

            var item = await _itemRepository.GetItemByNumber(createBinItemForReplenishementDto.ItemNumber.ToUpper());

            var quantity = createBinItemForReplenishementDto.Quantity;

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

            var bi = await _binItemRepository.GetBinItemByThree("REPLENISHMENT", createBinItemForReplenishementDto.ItemNumber.ToUpper(), createBinItemForReplenishementDto.LotNumber);

            if (bi is null)
            {
                return(BadRequest("Failed to remove REPLENISHMENT binItem."));
            }
            else
            {
                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 REPLENISHMENT binItem."));
                }
            }
            return(Ok());
        }
示例#2
0
        public async Task <ActionResult <BinItemDto> > CreateBinItemAfterReplenishment(CreateBinItemForReplenishmentDto createBinItemForReplenishementDto)
        {
            var fromBin = await _binRepository.GetBinByCode("OVERSTOCK");

            var item = await _itemRepository.GetItemByNumber(createBinItemForReplenishementDto.ItemNumber);

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

            var destinationBin = await _binRepository.GetBinByCode(createBinItemForReplenishementDto.DestinationBinCode);

            var bi = await _binItemRepository.GetBinItemByThree(createBinItemForReplenishementDto.DestinationBinCode, createBinItemForReplenishementDto.ItemNumber.ToUpper(), createBinItemForReplenishementDto.LotNumber);

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

                _binItemRepository.AddBinItem(binItem);

                if (await _binItemRepository.SaveAllAsync())
                {
                    return(Ok(_mapper.Map <BinItemDto>(binItem)));
                }

                return(BadRequest("Failed to add item."));
            }
            else
            {
                bi.Quantity += createBinItemForReplenishementDto.Quantity;
                _binItemRepository.UpdateBinItemAsync(bi);

                if (await _binItemRepository.SaveAllAsync())
                {
                    return(Ok(_mapper.Map <BinItemDto>(bi)));
                }

                return(BadRequest("Failed to update item."));
            }
        }