private static String createMessageForValidationErrors(final String message, final Entity entity) { StringBuilder sb = new StringBuilder(); sb.append(message).append("\n"); for (ErrorMessage error : entity.getGlobalErrors()) { sb.append("- ").append(error.getMessage()).append("\n"); } for (Map.Entry<String, ErrorMessage> error : entity.getErrors().entrySet()) { sb.append("- ").append(error.getKey()).append(" - ").append(error.getValue().getMessage()).append("\n"); } return sb.toString(); } }
private void copyErrors(Entity resource, FormComponent resourceForm) { resource.getGlobalErrors().forEach(error -> { resourceForm.addMessage(error); }); resource.getErrors().values().forEach(error -> { resourceForm.addMessage(error); }); } }
private Entity saveAndValidate(final Entity entity) { if (entity == null) { return null; } Entity saved = entity.getDataDefinition().save(entity); if (!saved.isValid()) { throw new RuntimeException(String.format("Error on save state entity: %s", saved.getErrors())); } return saved; }
private void copyPositionErrors(final Entity position, final Entity newPosition) { for (Map.Entry<String, ErrorMessage> error : newPosition.getErrors().entrySet()) { position.addError(position.getDataDefinition().getField(error.getKey()), error.getValue().getMessage()); } }
private void populateImportStatusWithEntityErrors(Entity entity) { if (!entity.isValid()) { for (Map.Entry<String, ErrorMessage> entry : entity.getErrors().entrySet()) { importStatus.addError( new ImportError( currentRow, entry.getKey(), entry.getValue().getMessage(), entry.getValue().getVars()) ); } } } }
public boolean checkIfTransferIsValid(FormComponent formComponent, Entity transfer) { if (!transfer.isValid()) { Map<String, ErrorMessage> errors = transfer.getErrors(); for (Entry<String, ErrorMessage> error : errors.entrySet()) { String field = error.getKey(); ErrorMessage errorMessage = error.getValue(); if (formComponent.findFieldComponentByName(field) != null) { formComponent.findFieldComponentByName(field).addMessage(errorMessage); } } return false; } return true; }
private void addPositionErrors(ViewDefinitionState view, Entity saved) { saved.getGlobalErrors().forEach(view::addMessage); if (!saved.getErrors().isEmpty()) { view.addMessage("materialFlow.document.fillResources.global.error.positionNotValid", ComponentState.MessageType.FAILURE, false, saved.getBelongsToField(PositionFields.PRODUCT).getStringField(ProductFields.NUMBER)); } }
private void copyResourceErrorsToPosition(Entity position, Entity newResource) { for (Map.Entry<String, ErrorMessage> error : newResource.getErrors().entrySet()) { if (!error.getKey().equals(ResourceFields.QUANTITY_IN_ADDITIONAL_UNIT)) { position.addError(position.getDataDefinition().getField(error.getKey()), error.getValue().getMessage()); } else { position.addError(position.getDataDefinition().getField(PositionFields.GIVEN_UNIT), error.getValue().getMessage()); } } }
public StateChangeStatus tryCorrect(final Entity productionRecord, final boolean logMessages) { Long userId = securityService.getCurrentUserId(); productionRecord.setField(USER_CHANGE_STATE, userId); String userLogin = securityService.getCurrentUserName(); stateExecutorService.changeState(ProductionTrackingStateServiceMarker.class, productionRecord, userLogin, ProductionTrackingStateStringValues.CORRECTED); if (productionRecord.isValid()) { return StateChangeStatus.SUCCESSFUL; } else { if (logMessages) { LOGGER.error(productionRecord.getErrors().toString()); LOGGER.error(productionRecord.getGlobalErrors().toString()); } return StateChangeStatus.FAILURE; } }
public StateChangeStatus tryAccept(final Entity productionRecord, final boolean logMessages) { Long userId = securityService.getCurrentUserId(); productionRecord.setField(USER_CHANGE_STATE, userId); String userLogin = securityService.getCurrentUserName(); stateExecutorService.changeState(ProductionTrackingStateServiceMarker.class, productionRecord, userLogin, ProductionTrackingStateStringValues.ACCEPTED); if (productionRecord.isValid()) { return StateChangeStatus.SUCCESSFUL; } else { if (logMessages) { LOGGER.error(productionRecord.getErrors().toString()); LOGGER.error(productionRecord.getGlobalErrors().toString()); } return StateChangeStatus.FAILURE; } }
public static void copyErrorsFromEntity(final StateChangeContext stateChangeContext, final Entity entity) { for (ErrorMessage globalError : entity.getGlobalErrors()) { stateChangeContext.addValidationError(globalError.getMessage(), globalError.getVars()); } for (Entry<String, ErrorMessage> fieldErrorMessageEntry : entity.getErrors().entrySet()) { final ErrorMessage fieldErrorMessage = fieldErrorMessageEntry.getValue(); stateChangeContext.addFieldValidationError(fieldErrorMessageEntry.getKey(), fieldErrorMessage.getMessage(), fieldErrorMessage.getVars()); } }
private boolean checkValueOfQuantity(final DataDefinition basicProductionCountingDD, final Entity basicProductionCounting) { BigDecimal usedQuantity = basicProductionCounting.getDecimalField(BasicProductionCountingFields.USED_QUANTITY); BigDecimal producedQuantity = basicProductionCounting.getDecimalField(BasicProductionCountingFields.PRODUCED_QUANTITY); if ((usedQuantity == null) && (producedQuantity == null)) { return true; } if ((usedQuantity != null) && (usedQuantity.compareTo(BigDecimal.ZERO) == -1)) { basicProductionCounting.addError(basicProductionCountingDD.getField(BasicProductionCountingFields.USED_QUANTITY), "basicProductionCounting.basicProductionCounting.quantity.error.lowerThanZero"); } if ((producedQuantity != null) && (producedQuantity.compareTo(BigDecimal.ZERO) == -1)) { basicProductionCounting.addError(basicProductionCountingDD.getField(BasicProductionCountingFields.PRODUCED_QUANTITY), "basicProductionCounting.basicProductionCounting.quantity.error.lowerThanZero"); } if (!basicProductionCounting.getGlobalErrors().isEmpty() || !basicProductionCounting.getErrors().isEmpty()) { return false; } return true; }
private void copyMessages(Entity entity, final ViewDefinitionState componentMessagesHolder) { if (componentMessagesHolder == null) { return; } for (ErrorMessage errorMessage : entity.getGlobalErrors()) { componentMessagesHolder.addMessage(errorMessage); } for (ErrorMessage errorMessage : entity.getErrors().values()) { componentMessagesHolder.addMessage(errorMessage); } for (GlobalMessage globalMessage : entity.getGlobalMessages()) { componentMessagesHolder.addMessage(globalMessage); } }
private void copyMessages(Entity entity, Entity mainEntity) { if (mainEntity != null && mainEntity.equals(entity) && entity.getGlobalErrors() == mainEntity.getGlobalErrors()) { return; } if (componentMessagesHolder == null) { return; } for (ErrorMessage errorMessage : entity.getGlobalErrors()) { componentMessagesHolder.addMessage(errorMessage); } for (ErrorMessage errorMessage : entity.getErrors().values()) { componentMessagesHolder.addMessage(errorMessage); } for (GlobalMessage globalMessage : entity.getGlobalMessages()) { componentMessagesHolder.addMessage(globalMessage); } }
private void addPositionErrors(final Entity document, final Entity saved) { if (!saved.isValid()) { document.setNotValid(); saved.getGlobalErrors().forEach(e -> document.addGlobalError(e.getMessage(), e.getAutoClose(), e.getVars())); if (!saved.getErrors().isEmpty()) { document.addGlobalError("materialFlow.document.fillResources.global.error.positionNotValid", false, saved .getBelongsToField(PositionFields.PRODUCT).getStringField(ProductFields.NUMBER)); } } }
@Transactional(propagation = Propagation.REQUIRES_NEW) public void trySaveDeliveredProducts(final Entity deliveredProductMulti, final List<Entity> deliveredProductMultiPositions) { Entity delivery = deliveredProductMulti.getBelongsToField(DeliveredProductMultiFields.DELIVERY); for (Entity position : deliveredProductMultiPositions) { Entity deliveredProduct = createDeliveredProduct(position, getDeliveredProductDD()); setStorageLocationFields(deliveredProduct, deliveredProductMulti); deliveredProduct.setField(DeliveredProductFields.DELIVERY, delivery); deliveredProduct = deliveredProduct.getDataDefinition().save(deliveredProduct); if (!deliveredProduct.isValid()) { for (Map.Entry<String, ErrorMessage> entry : deliveredProduct.getErrors().entrySet()) { if (position.getDataDefinition().getField(entry.getKey()) != null) { position.addError(position.getDataDefinition().getField(entry.getKey()), entry.getValue().getMessage()); } else { position.addGlobalError(entry.getValue().getMessage(), false); } } deliveredProductMulti.addGlobalError("deliveries.deliveredProductMulti.error.invalid"); throw new IllegalStateException("Undone saved delivered product"); } } }
@Override @Transactional public void createResourcesForReceiptDocuments(final Entity document) { Entity warehouse = document.getBelongsToField(DocumentFields.LOCATION_TO); Object date = document.getField(DocumentFields.TIME); for (Entity position : document.getHasManyField(DocumentFields.POSITIONS)) { createResource(document, warehouse, position, date); position = position.getDataDefinition().save(position); if (!position.isValid()) { document.setNotValid(); position.getGlobalErrors().forEach(e -> document.addGlobalError(e.getMessage(), e.getAutoClose(), e.getVars())); position.getErrors().values() .forEach(e -> document.addGlobalError(e.getMessage(), e.getAutoClose(), e.getVars())); } } }
public void onSave(DataDefinition subassemblyToWorkstationHelperDD, Entity subassemblyToWorkstationHelper) { DataDefinition subassemblyDD = dataDefinitionService.get(BasicConstants.PLUGIN_IDENTIFIER, BasicConstants.MODEL_SUBASSEMBLY); Entity subassembly = subassemblyToWorkstationHelper.getBelongsToField(SubassemblyToWorkstationHelperFields.SUBASSEMBLY); if (subassembly != null) { subassembly.setField(SubassemblyFields.WORKSTATION, subassemblyToWorkstationHelper.getField(SubassemblyToWorkstationHelperFields.WORKSTATION)); subassembly.setField(SubassemblyFields.TYPE, subassemblyToWorkstationHelper.getField(SubassemblyToWorkstationHelperFields.TYPE)); subassembly = subassemblyDD.save(subassembly); if (!subassembly.isValid()) { for (Map.Entry<String, ErrorMessage> entry : subassembly.getErrors().entrySet()) { subassemblyToWorkstationHelper.addGlobalError(entry.getValue().getMessage(), entry.getValue().getAutoClose(), entry.getValue().getVars()); subassemblyToWorkstationHelper.addError(subassemblyToWorkstationHelperDD.getField(SubassemblyToWorkstationHelperFields.TYPE), entry.getValue().getMessage()); } for (ErrorMessage msg : subassembly.getGlobalErrors()) { subassemblyToWorkstationHelper.addGlobalError(msg.getMessage(), msg.getAutoClose(), msg.getVars()); subassemblyToWorkstationHelper.addError(subassemblyToWorkstationHelperDD.getField(SubassemblyToWorkstationHelperFields.TYPE), msg.getMessage()); } subassemblyToWorkstationHelper.setNotValid(); } } }
public void continueStateChange(final ViewDefinitionState view, final ComponentState component, final String[] args) { final FormComponent form = (FormComponent) component; Entity eventStateChange = form.getPersistedEntityWithIncludedFormValues(); plannedEventStateChangeValidators.validate(eventStateChange.getDataDefinition(), eventStateChange); form.setEntity(eventStateChange); if (!eventStateChange.getErrors().isEmpty()) { return; } form.performEvent(view, "save"); if (!form.isValid()) { return; } final Entity stateChangeEntity = ((FormComponent) form).getEntity(); final StateChangeContext stateContext = stateChangeContextBuilder.build( plannedEventStateChangeAspect.getChangeEntityDescriber(), stateChangeEntity); stateContext.setStatus(StateChangeStatus.IN_PROGRESS); plannedEventStateChangeAspect.changeState(stateContext); plannedEventStateChangeViewClient.showMessages(new ViewContextHolder(view, form), stateContext); }
public void continueStateChange(final ViewDefinitionState view, final ComponentState component, final String[] args) { final FormComponent form = (FormComponent) component; Entity eventStateChange = form.getPersistedEntityWithIncludedFormValues(); maintenanceEventStateChangeValidators.validate(eventStateChange.getDataDefinition(), eventStateChange); form.setEntity(eventStateChange); if (!eventStateChange.getErrors().isEmpty()) { return; } form.performEvent(view, "save"); if (!form.isValid()) { return; } final Entity stateChangeEntity = ((FormComponent) form).getEntity(); final StateChangeContext stateContext = stateChangeContextBuilder.build( maintenanceEventStateChangeAspect.getChangeEntityDescriber(), stateChangeEntity); stateContext.setStatus(StateChangeStatus.IN_PROGRESS); maintenanceEventStateChangeAspect.changeState(stateContext); maintenanceEventStateChangeViewClient.showMessages(new ViewContextHolder(view, form), stateContext); }