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