protected override IEnumerable <TreatmentOrder> BirthRecords() { foreach (var order in SelectMovementOrdersToLoad()) { var entityType = GetEntityType(order.TTypeID); LoadCount.AddRead(entityType); if (order.EntryDate == null) { Log(new CallbackParameters(CallbackReason.NullEntryDate) { MovementOrder = order }); continue; } var dateCreated = order.EntryDate.Value.ConvertLocalToUTC().Date; var sourceFacility = NewContextHelper.GetFacility(order.FromWHID); if (sourceFacility == null) { Log(new CallbackParameters(CallbackReason.SourceWarehouseNotLoaded) { MovementOrder = order }); continue; } var destinationFacility = NewContextHelper.GetFacility(order.ToWHID); if (destinationFacility == null) { Log(new CallbackParameters(CallbackReason.TreatmentFaciltyNotLoaded) { MovementOrder = order }); continue; } destinationFacility.FacilityType = FacilityType.Treatment; var deserialized = SerializableMove.Deserialize(order.Serialized); var treatment = DeterminedOrderTreatment(order, deserialized); if (treatment == null) { Log(new CallbackParameters(CallbackReason.TreatmentNotDetermined) { MovementOrder = order }); continue; } var shipmentDate = order.Date.GetDate() ?? order.EntryDate.GetDate(); if (shipmentDate == null) { Log(new CallbackParameters(CallbackReason.UndeterminedShipmentDate) { MovementOrder = order }); continue; } var sequence = PickedInventoryKeyHelper.Singleton.GetNextSequence(dateCreated); var shipmentOrder = SetOrderProperties(new InventoryShipmentOrder { DateCreated = dateCreated, Sequence = sequence, ShipmentInfoDateCreated = dateCreated, ShipmentInfoSequence = NewContextHelper.ShipmentInformationKeys.GetNextSequence(dateCreated), DestinationFacilityId = destinationFacility.Id, SourceFacilityId = sourceFacility.Id }, order); if (shipmentOrder == null) { continue; } var treatmentOrder = new TreatmentOrder { DateCreated = dateCreated, Sequence = sequence, InventoryTreatmentId = treatment.InventoryTreatmentKey_Id, InventoryShipmentOrder = shipmentOrder, Returned = order.Returned.ConvertLocalToUTC() }; treatmentOrder.InventoryShipmentOrder.ShipmentInformation = CreateShipmentInformation(treatmentOrder.InventoryShipmentOrder, order); treatmentOrder.InventoryShipmentOrder.InventoryPickOrder = CreateInventoryPickOrder(treatmentOrder.InventoryShipmentOrder, order); treatmentOrder.InventoryShipmentOrder.PickedInventory = CreatePickedInventory(treatmentOrder.InventoryShipmentOrder, order, treatmentOrder.InventoryShipmentOrder.ShipmentInformation.Status); if (treatmentOrder.InventoryShipmentOrder.PickedInventory == null) { continue; } treatmentOrder.InventoryShipmentOrder.PickedInventory.Items.ForEach(i => i.TreatmentId = NewContextHelper.NoTreatment.Id); if (deserialized != null) { deserialized.SetOrder(treatmentOrder); } LoadCount.AddLoaded(entityType); LoadCount.AddLoaded(EntityTypes.InventoryShipmentOrder); LoadCount.AddLoaded(EntityTypes.PickOrder); LoadCount.AddLoaded(EntityTypes.PickOrderItem, (uint)treatmentOrder.InventoryShipmentOrder.InventoryPickOrder.Items.Count); LoadCount.AddLoaded(EntityTypes.PickedInventory); LoadCount.AddLoaded(EntityTypes.PickedInventoryItem, (uint)treatmentOrder.InventoryShipmentOrder.PickedInventory.Items.Count); LoadCount.AddLoaded(EntityTypes.ShipmentInformation); yield return(treatmentOrder); } LoadCount.LogResults(l => Log(new CallbackParameters(l))); }
protected override IEnumerable <InventoryShipmentOrder> BirthRecords() { LoadCount.Reset(); foreach (var order in SelectMovementOrdersToLoad()) { var entityType = GetEntityType(order.TTypeID); LoadCount.AddRead(entityType); if (order.EntryDate == null) { Log(new CallbackParameters(CallbackReason.NullEntryDate) { MovementOrder = order }); continue; } var dateCreated = order.EntryDate.Value.ConvertLocalToUTC().Date; var sequence = PickedInventoryKeyHelper.Singleton.GetNextSequence(dateCreated); var sourceWarehouse = NewContextHelper.GetFacility(order.FromWHID); if (sourceWarehouse == null) { Log(new CallbackParameters(CallbackReason.SourceWarehouseNotLoaded) { MovementOrder = order }); continue; } var destinationWarehouse = NewContextHelper.GetFacility(order.ToWHID); if (destinationWarehouse == null) { Log(new CallbackParameters(CallbackReason.DestinationWarehouseNotLoaded) { MovementOrder = order }); continue; } var shipmentInformationSequence = NewContextHelper.ShipmentInformationKeys.GetNextSequence(dateCreated); var shipmentOrder = SetOrderProperties(new InventoryShipmentOrder { DateCreated = dateCreated, Sequence = sequence, ShipmentInfoDateCreated = dateCreated, ShipmentInfoSequence = shipmentInformationSequence, DestinationFacilityId = destinationWarehouse.Id, SourceFacilityId = sourceWarehouse.Id }, order); if (shipmentOrder == null) { continue; } shipmentOrder.ShipmentInformation = CreateShipmentInformation(shipmentOrder, order); shipmentOrder.InventoryPickOrder = CreateInventoryPickOrder(shipmentOrder, order); shipmentOrder.PickedInventory = CreatePickedInventory(shipmentOrder, order, shipmentOrder.ShipmentInformation.Status); if (shipmentOrder.PickedInventory == null) { continue; } var deserialized = SerializableMove.Deserialize(order.Serialized); if (deserialized != null) { deserialized.SetOrder(shipmentOrder); } LoadCount.AddLoaded(entityType); LoadCount.AddLoaded(EntityTypes.InventoryShipmentOrder); LoadCount.AddLoaded(EntityTypes.PickOrder); LoadCount.AddLoaded(EntityTypes.PickOrderItem, (uint)shipmentOrder.InventoryPickOrder.Items.Count); LoadCount.AddLoaded(EntityTypes.PickedInventory); LoadCount.AddLoaded(EntityTypes.PickedInventoryItem, (uint)shipmentOrder.PickedInventory.Items.Count); LoadCount.AddLoaded(EntityTypes.ShipmentInformation); yield return(shipmentOrder); } LoadCount.LogResults(l => Log(new CallbackParameters(l))); }