protected virtual void InitializeValidPickedInventoryItem(PickedInventoryItem item, TOrder order, int?quantity = null) { item.Lot.SetValidToPick(); item.FromLocation.ConstrainByKeys(RinconFacility); item.ConstrainByKeys(order.PickedInventory).SetCurrentLocationToSource(); item.Quantity = quantity ?? item.Quantity; }
internal static PickedInventoryItem NullCustomerCodes(this PickedInventoryItem item) { if (item == null) { throw new ArgumentNullException("item"); } item.CustomerProductCode = item.CustomerLotCode = null; return(item); }
internal static PickedInventoryItem ConstrainByKeys(this PickedInventoryItem item, IPickedInventoryKey pickedInventoryKey = null, ILotKey lotKey = null, IPackagingProductKey packagingProductKey = null, IInventoryTreatmentKey treatmentKey = null, ILocationKey sourceLocationKey = null, ILocationKey currentLocationKey = null, string toteKey = null) { if (item == null) { throw new ArgumentNullException("item"); } if (pickedInventoryKey != null) { item.PickedInventory = null; item.DateCreated = pickedInventoryKey.PickedInventoryKey_DateCreated; item.Sequence = pickedInventoryKey.PickedInventoryKey_Sequence; } if (lotKey != null) { item.Lot = null; item.LotDateCreated = lotKey.LotKey_DateCreated; item.LotDateSequence = lotKey.LotKey_DateSequence; item.LotTypeId = lotKey.LotKey_LotTypeId; } if (packagingProductKey != null) { item.PackagingProduct = null; item.PackagingProductId = packagingProductKey.PackagingProductKey_ProductId; } if (treatmentKey != null) { item.Treatment = null; item.TreatmentId = treatmentKey.InventoryTreatmentKey_Id; } if (sourceLocationKey != null) { item.FromLocation = null; item.FromLocationId = sourceLocationKey.LocationKey_Id; } if (currentLocationKey != null) { item.CurrentLocation = null; item.CurrentLocationId = currentLocationKey.LocationKey_Id; } if (toteKey != null) { item.ToteKey = toteKey; } return(item); }
internal static PickedInventoryItem SetCurrentLocationToSource(this PickedInventoryItem item) { if (item == null) { throw new ArgumentNullException("item"); } item.CurrentLocation = null; item.CurrentLocationId = item.FromLocationId; return(item); }
internal static PickedInventoryItem SetPicked(this PickedInventoryItem item, int quantity, double packagingWeight) { if (item == null) { throw new ArgumentNullException("item"); } item.Quantity = quantity; item.PackagingProduct.Weight = packagingWeight; return(item); }
internal static PickedInventoryItem SetFromLocation(this PickedInventoryItem item, ILocationKey fromLocationKey) { if (item == null) { throw new ArgumentNullException("item"); } item.FromLocation = null; item.FromLocationId = fromLocationKey.LocationKey_Id; return(item); }
internal static PickedInventoryItem SetToInventory(this PickedInventoryItem item, IInventoryKey inventoryKey) { if (item == null) { throw new ArgumentNullException("item"); } if (inventoryKey == null) { throw new ArgumentNullException("inventoryKey"); } return(item.ConstrainByKeys(null, inventoryKey, inventoryKey, inventoryKey, inventoryKey, inventoryKey, inventoryKey.InventoryKey_ToteKey)); }
private static void SetInventoryToPickedInventory(Inventory inventory, PickedInventoryItem pickedInventory) { inventory.Lot = null; inventory.PackagingProduct = null; inventory.Location = null; inventory.Treatment = null; inventory.LotDateCreated = pickedInventory.LotDateCreated; inventory.LotDateSequence = pickedInventory.LotDateSequence; inventory.LotTypeId = pickedInventory.LotTypeId; inventory.PackagingProductId = pickedInventory.PackagingProductId; inventory.LocationId = pickedInventory.FromLocationId; inventory.TreatmentId = pickedInventory.TreatmentId; inventory.ToteKey = pickedInventory.ToteKey; }
public ModifyPickedInventoryItemParameters(PickedInventoryItem pickedItem) { if (pickedItem.CurrentLocation == null) { throw new ArgumentNullException("Expected pickedItem.CurrentLocation but was null, verify navigational property is being included in selection."); } PickedInventoryItemKey = new PickedInventoryItemKey(pickedItem); InventoryKey = new InventoryKey(pickedItem, pickedItem, pickedItem, pickedItem, pickedItem.ToteKey); CurrentLocationKey = new LocationKey(pickedItem.CurrentLocation); OriginalQuantity = pickedItem.Quantity; CustomerLotCode = pickedItem.CustomerLotCode; CustomerProductCode = pickedItem.CustomerProductCode; NewQuantity = 0; }
internal static PickedInventoryItem SetSourceWarehouse(this PickedInventoryItem item, IFacilityKey facilityKey) { if (item == null) { throw new ArgumentNullException("item"); } if (facilityKey == null) { throw new ArgumentNullException("facilityKey"); } if (item.FromLocation != null) { item.FromLocation.ConstrainByKeys(facilityKey); } return(item); }
private tblBOM GetDaBOM(IDictionary<int, tblBOM> daBOMs, PickedInventoryItem pickedItem) { tblBOM daBOM = null; var ingredient = ToLotTypeIngredient((LotTypeEnum)pickedItem.LotTypeId); if(ingredient != null) { daBOMs.TryGetValue((int)ingredient, out daBOM); } else { var additiveLot = _unitOfWork.AdditiveLotRepository.FilterByKey(new LotKey(pickedItem), a => a.AdditiveProduct.AdditiveType).FirstOrDefault(); if(additiveLot != null) { daBOMs.TryGetValue(additiveLot.AdditiveProduct.AdditiveTypeId, out daBOM); } } return daBOM; }
private tblOutgoing CreateOutgoing(InventoryShipmentOrder order, PickedInventoryItem item, Location location, int quantity, bool forMove) { return(new tblOutgoing { EntryDate = DateTime.UtcNow.ConvertUTCToLocal().RoundMillisecondsForSQL(), Lot = LotNumberParser.BuildLotNumber(item), TTypeID = (int?)order.OrderType.ToTransType(), PkgID = OldContextHelper.GetPackaging(item.PackagingProduct).PkgID, Tote = item.ToteKey, Quantity = quantity, NetWgt = (decimal?)item.PackagingProduct.Weight, TtlWgt = (decimal?)(quantity * item.PackagingProduct.Weight), LocID = (int)location.LocID, TrtmtID = OldContextHelper.GetTreatment(item).TrtmtID, EmployeeID = order.EmployeeId, BOMID = 0, BatchLot = 0, MoveNum = forMove ? order.MoveNum : null, MDetail = forMove ? item.DetailID : null, OrderNum = !forMove ? order.MoveNum : null, ODetail = !forMove ? item.DetailID : null, CustProductCode = item.CustomerProductCode }); }
public RinconDetail(PickedInventoryItem newItem, tblRincon rincon, OldContextHelper oldContextHelper) { _newItem = newItem; _rincon = rincon; _oldContextHelper = oldContextHelper; }
internal IResult <List <PickedInventoryItem> > Execute(IPickedInventoryKey pickedInventoryKey, IEnumerable <ModifyPickedInventoryItemParameters> items) { if (pickedInventoryKey == null) { throw new ArgumentNullException("pickedInventoryKey"); } if (items == null) { throw new ArgumentNullException("items"); } var newItems = new List <PickedInventoryItem>(); foreach (var item in items) { if (item.PickedInventoryItemKey != null) { var notPendingResult = _unitOfWorkHelper.EntityHasNoPendingChanges(item.PickedInventoryItemKey, item.PickedInventoryItemKey); if (!notPendingResult.Success) { return(notPendingResult.ConvertTo <List <PickedInventoryItem> >()); } var pickedItem = _pickedInventoryUnitOfWork.PickedInventoryItemRepository.FindByKey(item.PickedInventoryItemKey); if (pickedItem == null) { return(new InvalidResult <List <PickedInventoryItem> >(null, string.Format(UserMessages.PickedInventoryItemNotFound, item.PickedInventoryItemKey.KeyValue))); } if (pickedItem.CurrentLocationId != pickedItem.FromLocationId) { return(new InvalidResult <List <PickedInventoryItem> >(null, string.Format(UserMessages.PickedInventoryItemNotInOriginalLocation, new PickedInventoryItemKey(pickedItem).KeyValue))); } pickedItem.Quantity = item.NewQuantity; pickedItem.CurrentLocationId = item.CurrentLocationKey.LocationKey_Id; pickedItem.CustomerLotCode = item.CustomerLotCode; pickedItem.CustomerProductCode = item.CustomerProductCode; if (pickedItem.Quantity < 0) { return(new InvalidResult <List <PickedInventoryItem> >(null, string.Format(UserMessages.QuantityForPickedCannotBeNegative, item.PickedInventoryItemKey.KeyValue))); } if (pickedItem.Quantity == 0) { _pickedInventoryUnitOfWork.PickedInventoryItemRepository.Remove(pickedItem); } else { newItems.Add(pickedItem); } } else { if (item.NewQuantity <= 0) { return(new InvalidResult <List <PickedInventoryItem> >(null, string.Format(UserMessages.QuantityForPickingFromInventoryMustBeGreaterThanZero, item.InventoryKey.KeyValue))); } var newSequence = _unitOfWorkHelper.GetNextSequence(PickedInventoryItemPredicates.FilterByPickedInventoryKey(pickedInventoryKey), i => i.ItemSequence); var newPickedInventoryItem = new PickedInventoryItem { DateCreated = pickedInventoryKey.PickedInventoryKey_DateCreated, Sequence = pickedInventoryKey.PickedInventoryKey_Sequence, ItemSequence = newSequence, LotDateCreated = item.InventoryKey.LotKey_DateCreated, LotDateSequence = item.InventoryKey.LotKey_DateSequence, LotTypeId = item.InventoryKey.LotKey_LotTypeId, PackagingProductId = item.InventoryKey.PackagingProductKey_ProductId, TreatmentId = item.InventoryKey.InventoryTreatmentKey_Id, ToteKey = item.InventoryKey.InventoryKey_ToteKey, FromLocationId = item.InventoryKey.LocationKey_Id, CurrentLocationId = item.CurrentLocationKey.LocationKey_Id, CustomerLotCode = item.CustomerLotCode, CustomerProductCode = item.CustomerProductCode, Quantity = item.NewQuantity }; newItems.Add(_pickedInventoryUnitOfWork.PickedInventoryItemRepository.Add(newPickedInventoryItem)); } } return(new SuccessResult <List <PickedInventoryItem> >(newItems)); }
internal IResult Execute(PickedInventoryKey pickedInventoryKey, List <ModifySalesOrderPickedInventoryItemParameters> items) { if (items == null) { throw new ArgumentNullException("items"); } foreach (var item in items) { if (item.SalesOrderPickedItemKey != null) { var notPendingResult = new EFUnitOfWorkHelper(_salesUnitOfWork).EntityHasNoPendingChanges(item.SalesOrderPickedItemKey, item.SalesOrderPickedItemKey); if (!notPendingResult.Success) { return(notPendingResult); } var pickedItem = _salesUnitOfWork.SalesOrderPickedItemRepository.FindByKey(item.SalesOrderPickedItemKey); if (pickedItem == null) { return(new InvalidResult(string.Format(UserMessages.SalesOrderPickedItemNotFound, item.SalesOrderPickedItemKey.KeyValue))); } if (pickedItem.PickedInventoryItem.CurrentLocationId != pickedItem.PickedInventoryItem.FromLocationId) { return(new InvalidResult(string.Format(UserMessages.PickedInventoryItemNotInOriginalLocation, new PickedInventoryItemKey(pickedItem).KeyValue))); } pickedItem.PickedInventoryItem.Quantity = item.NewQuantity; pickedItem.OrderItemSequence = item.SalesOrderItemKey.SalesOrderItemKey_ItemSequence; if (pickedItem.PickedInventoryItem.Quantity < 0) { return(new InvalidResult(string.Format(UserMessages.QuantityForPickedCannotBeNegative, item.PickedInventoryItemKey.KeyValue))); } if (pickedItem.PickedInventoryItem.Quantity == 0) { _salesUnitOfWork.PickedInventoryItemRepository.Remove(pickedItem.PickedInventoryItem); _salesUnitOfWork.SalesOrderPickedItemRepository.Remove(pickedItem); } else { pickedItem.PickedInventoryItem.CustomerLotCode = item.CustomerLotCode; pickedItem.PickedInventoryItem.CustomerProductCode = item.CustomerProductCode; } } else { if (item.NewQuantity <= 0) { return(new InvalidResult(string.Format(UserMessages.QuantityForPickingFromInventoryMustBeGreaterThanZero, item.InventoryKey.KeyValue))); } var newSequence = new EFUnitOfWorkHelper(_salesUnitOfWork).GetNextSequence(PickedInventoryItemPredicates.FilterByPickedInventoryKey(pickedInventoryKey), i => i.ItemSequence); var newPickedInventoryItem = new PickedInventoryItem { DateCreated = pickedInventoryKey.PickedInventoryKey_DateCreated, Sequence = pickedInventoryKey.PickedInventoryKey_Sequence, ItemSequence = newSequence, LotDateCreated = item.InventoryKey.LotKey_DateCreated, LotDateSequence = item.InventoryKey.LotKey_DateSequence, LotTypeId = item.InventoryKey.LotKey_LotTypeId, PackagingProductId = item.InventoryKey.PackagingProductKey_ProductId, FromLocationId = item.InventoryKey.LocationKey_Id, TreatmentId = item.InventoryKey.InventoryTreatmentKey_Id, CurrentLocationId = item.InventoryKey.LocationKey_Id, ToteKey = item.InventoryKey.InventoryKey_ToteKey, Quantity = item.NewQuantity, CustomerLotCode = item.CustomerLotCode, CustomerProductCode = item.CustomerProductCode }; _salesUnitOfWork.PickedInventoryItemRepository.Add(newPickedInventoryItem); var customerOrderPickedItem = new SalesOrderPickedItem { DateCreated = pickedInventoryKey.PickedInventoryKey_DateCreated, Sequence = pickedInventoryKey.PickedInventoryKey_Sequence, ItemSequence = newSequence, OrderItemSequence = item.SalesOrderItemKey.SalesOrderItemKey_ItemSequence }; _salesUnitOfWork.SalesOrderPickedItemRepository.Add(customerOrderPickedItem); } } return(new SuccessResult()); }
internal static Inventory SetToPickedCurrentLocation(this Inventory inventory, PickedInventoryItem pickedInventory) { inventory.Quantity = pickedInventory.Quantity; return(inventory.ConstrainByKeys(pickedInventory, pickedInventory, pickedInventory.CurrentLocation, pickedInventory, null, pickedInventory.ToteKey)); }
internal PickedInventoryParameters(PickedInventoryItem item) : this(item, item.Quantity, item.CustomerLotCode, item.CustomerProductCode) { }
internal static ModifyInventoryParameters ToModifyInventoryDestinationParameters(this PickedInventoryItem item, ILocationKey destinationLocation, IInventoryTreatmentKey newTreamentKey = null) { return(new ModifyInventoryParameters(item, item, destinationLocation, newTreamentKey ?? item, item.ToteKey, item.Quantity)); }