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()); }
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.")); } }