public IResult <IPickableInventoryReturn> GetInventoryItemsToPickTreatmentOrder(FilterInventoryForShipmentOrderParameters parameters) { parameters = parameters ?? new FilterInventoryForShipmentOrderParameters(); InventoryShipmentOrderKey orderKey; InventoryPickOrderItemKey orderItemKey; var filterResults = parameters.ParseToPredicateBuilderFilters(out orderKey, out orderItemKey); if (!filterResults.Success) { return(filterResults.ConvertTo <IPickableInventoryReturn>()); } var treatmentOrderKey = new TreatmentOrderKey(orderKey); var treatmentOrder = _inventoryShipmentOrderUnitOfWork.TreatmentOrderRepository.FindByKey(treatmentOrderKey, o => o.InventoryShipmentOrder.SourceFacility); if (treatmentOrder == null) { return(new InvalidResult <IPickableInventoryReturn>(null, string.Format(UserMessages.TreatmentOrderNotFound, treatmentOrderKey))); } var facilityKey = treatmentOrder.InventoryShipmentOrder.SourceFacility.ToFacilityKey(); var itemsResult = new GetPickableInventoryCommand(_inventoryShipmentOrderUnitOfWork).Execute(filterResults.ResultingObject, _timeStamper.CurrentTimeStamp, PickedInventoryValidator.ForTreatmentOrder(facilityKey, treatmentOrder, _inventoryShipmentOrderUnitOfWork), false); return(itemsResult); }
internal IResult Execute(TreatmentOrderKey key, out int?moveNum) { if (key == null) { throw new ArgumentNullException("key"); } moveNum = null; var treatmentOrder = UnitOfWork.TreatmentOrderRepository.FindByKey(key, t => t.InventoryShipmentOrder.ShipmentInformation, t => t.InventoryShipmentOrder.PickedInventory.Items.Select(i => i.CurrentLocation), t => t.InventoryShipmentOrder.InventoryPickOrder.Items); if (treatmentOrder == null) { return(new InvalidResult(string.Format(UserMessages.TreatmentOrderNotFound, key))); } moveNum = treatmentOrder.InventoryShipmentOrder.MoveNum; var deleteShipmentOrder = DeleteInventoryShipmentOrder(treatmentOrder.InventoryShipmentOrder); if (!deleteShipmentOrder.Success) { return(deleteShipmentOrder); } UnitOfWork.TreatmentOrderRepository.Remove(treatmentOrder); return(new SuccessResult()); }
public IResult <ITreatmentOrderDetailReturn> GetTreatmentOrder(string treatmentOrderKey) { if (treatmentOrderKey == null) { throw new ArgumentNullException("treatmentOrderKey"); } var keyResult = KeyParserHelper.ParseResult <ITreatmentOrderKey>(treatmentOrderKey); if (!keyResult.Success) { return(keyResult.ConvertTo <ITreatmentOrderDetailReturn>()); } var context = ((EFUnitOfWorkBase)_inventoryShipmentOrderUnitOfWork).Context; context.Configuration.AutoDetectChangesEnabled = false; var predicate = new TreatmentOrderKey(keyResult.ResultingObject).FindByPredicate; var select = TreatmentOrderProjectors.SplitSelectDetail(_inventoryShipmentOrderUnitOfWork, _timeStamper.CurrentTimeStamp.Date); var treatmentOrder = _inventoryShipmentOrderUnitOfWork.TreatmentOrderRepository.Filter(predicate).SplitSelect(select).FirstOrDefault(); if (treatmentOrder == null) { return(new FailureResult <ITreatmentOrderDetailReturn>(null, string.Format(UserMessages.TreatmentOrderNotFound, treatmentOrderKey))); } return(new SuccessResult <ITreatmentOrderDetailReturn>(treatmentOrder)); }
public UpdateTreatmentOrderConductorParameters(TParams parameters) : base(parameters) { if (Result.Success) { var keyResult = KeyParserHelper.ParseResult <ITreatmentOrderKey>(parameters.TreatmentOrderKey); if (!keyResult.Success) { Result = keyResult; return; } TreatmentOrderKey = new TreatmentOrderKey(keyResult.ResultingObject); var setItemCodesResult = ParseParameters(parameters.PickedInventoryItemCodes); if (!setItemCodesResult.Success) { Result = setItemCodesResult; return; } SetPickedInventoryItemCodes = setItemCodesResult.ResultingObject; } }