public void changeTechnologyState(final Entity technology, final String targetState) { final StateChangeContext stateChangeContextT = stateChangeContextBuilder.build( technologyStateChangeAspect.getChangeEntityDescriber(), technology, targetState); stateChangeContextT.setStatus(StateChangeStatus.IN_PROGRESS); technologyStateChangeAspect.changeState(stateChangeContextT); }
public void closeOrder(final StateChangeContext stateChangeContext) { final Entity productionTracking = stateChangeContext.getOwner(); final Entity order = productionTracking.getBelongsToField(ORDER); if (!orderClosingHelper.orderShouldBeClosed(productionTracking)) { return; } if (order.getStringField(STATE).equals(COMPLETED.getStringValue())) { stateChangeContext.addMessage( "productionCounting.order.orderIsAlreadyClosed", StateMessageType.INFO, false); return; } final StateChangeContext orderStateChangeContext = stateChangeContextBuilder.build( orderStateChangeAspect.getChangeEntityDescriber(), order, OrderState.COMPLETED.getStringValue()); orderStateChangeAspect.changeState(orderStateChangeContext); Entity orderFromDB = order.getDataDefinition().get(orderStateChangeContext.getOwner().getId()); if (orderFromDB.getStringField(STATE).equals(COMPLETED.getStringValue())) { stateChangeContext.addMessage( "productionCounting.order.orderClosed", StateMessageType.INFO, false); } else if (StateChangeStatus.PAUSED.equals(orderStateChangeContext.getStatus())) { stateChangeContext.addMessage( "productionCounting.order.orderWillBeClosedAfterExtSync", StateMessageType.INFO, false); } else { stateChangeContext.addMessage( "productionCounting.order.orderCannotBeClosed", StateMessageType.FAILURE, false); List<ErrorMessage> errors = Lists.newArrayList(); if (!orderFromDB.getErrors().isEmpty()) { errors.addAll(order.getErrors().values()); } if (!orderFromDB.getGlobalErrors().isEmpty()) { errors.addAll(order.getGlobalErrors()); } if (!errors.isEmpty()) { StringBuilder errorMessages = new StringBuilder(); for (ErrorMessage errorMessage : errors) { String translatedErrorMessage = translationService.translate( errorMessage.getMessage(), Locale.getDefault(), errorMessage.getVars()); errorMessages.append(translatedErrorMessage); errorMessages.append(", "); } stateChangeContext.addValidationError( "orders.order.orderStates.error", errorMessages.toString()); } } }