internal static SalesOrderPickedItem ConstrainByKeys(this SalesOrderPickedItem pickedItem, ISalesOrderKey salesOrderKey) { if (pickedItem == null) { throw new ArgumentNullException("pickedItem"); } if (salesOrderKey == null) { throw new ArgumentNullException("salesOrderKey"); } pickedItem.SalesOrder = null; pickedItem.DateCreated = salesOrderKey.SalesOrderKey_DateCreated; pickedItem.Sequence = salesOrderKey.SalesOrderKey_Sequence; if (pickedItem.PickedInventoryItem != null) { pickedItem.PickedInventoryItem.PickedInventory = null; } if (pickedItem.SalesOrderItem != null) { pickedItem.SalesOrderItem.ConstrainByKeys(salesOrderKey); } return(pickedItem); }
public ModifySalesOrderPickedInventoryItemParameters(SalesOrderPickedItem pickedItem) : base(pickedItem.PickedInventoryItem) { SalesOrderPickedItemKey = new SalesOrderPickedItemKey((ISalesOrderPickedItemKey)pickedItem); if (pickedItem.OrderItemSequence != null) { SalesOrderItemKey = new SalesOrderItemKey(pickedItem); } }
internal static SalesOrderPickedItem SetToCustomerOrderItem(this SalesOrderPickedItem pickedItem, SalesOrderItem orderItem) { if (pickedItem == null) { throw new ArgumentNullException("orderItem"); } if (orderItem == null) { throw new ArgumentNullException("orderItem"); } pickedItem.SalesOrder = null; pickedItem.DateCreated = orderItem.DateCreated; pickedItem.Sequence = orderItem.Sequence; pickedItem.SalesOrderItem = null; pickedItem.OrderItemSequence = orderItem.ItemSequence; pickedItem.PickedInventoryItem.ConstrainByKeys(pickedItem, null, orderItem.InventoryPickOrderItem, orderItem.InventoryPickOrderItem); return(pickedItem); }
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()); }