private void copyTrackingOperationProductInComponents(Entity productionTracking, Entity correctingProductionTracking) { EntityList trackingOperationProductInComponents = productionTracking .getHasManyField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_IN_COMPONENTS); List<Entity> copiedTrackingOperationProductInComponents = Lists.newArrayList(); trackingOperationProductInComponents.forEach(t -> copiedTrackingOperationProductInComponents.add(t.getDataDefinition() .copy(t.getId()).get(0))); correctingProductionTracking.setField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_IN_COMPONENTS, copiedTrackingOperationProductInComponents); }
private void copyTrackingOperationProductOutComponents(Entity productionTracking, Entity correctingProductionTracking) { EntityList trackingOperationProductOutComponents = productionTracking .getHasManyField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_OUT_COMPONENTS); List<Entity> copiedTrackingOperationProductOutComponents = Lists.newArrayList(); trackingOperationProductOutComponents.forEach(t -> copiedTrackingOperationProductOutComponents.add(t.getDataDefinition() .copy(t.getId()).get(0))); correctingProductionTracking.setField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_OUT_COMPONENTS, copiedTrackingOperationProductOutComponents); }
@RunInPhase(WarehouseIssueStateChangePhase.LAST) @RunForStateTransition(sourceState = WarehouseIssueStringValues.DRAFT, targetState = WarehouseIssueStringValues.DISCARD) @After(PHASE_EXECUTION_POINTCUT) public void onDiscard(final StateChangeContext stateChangeContext, final int phase) { Entity warehouseIssue = stateChangeContext.getOwner(); EntityList productsToIssue = warehouseIssue.getHasManyField(WarehouseIssueFields.PRODUCTS_TO_ISSUES); productsToIssue.forEach(productToIssue -> { reservationsServiceForProductsToIssue.deleteReservationFromProductToIssue(productToIssue); }); }
@RunInPhase(WarehouseIssueStateChangePhase.PRE_VALIDATION) @RunForStateTransition(sourceState = WarehouseIssueStringValues.IN_PROGRESS, targetState = WarehouseIssueStringValues.COMPLETED) @After(PHASE_EXECUTION_POINTCUT) public void onCompleted(final StateChangeContext stateChangeContext, final int phase) { if (issueStateService.checkIfAnyNotIssuedPositionsExists(stateChangeContext)) { return; } Entity warehouseIssue = stateChangeContext.getOwner(); EntityList productsToIssue = warehouseIssue.getHasManyField(WarehouseIssueFields.PRODUCTS_TO_ISSUES); productsToIssue.forEach(productToIssue -> { reservationsServiceForProductsToIssue.deleteReservationFromProductToIssue(productToIssue); }); }