private boolean thereAreNoResourcesAssociatedWithGivenPalletNumber(Entity palletNumber) { return resourceDataDefinition().count(SearchRestrictions.belongsTo(ResourceFields.PALLET_NUMBER, palletNumber)) == 0; }
public boolean onDelete(final DataDefinition anomalyExplanationDD, final Entity entity) { Entity anomaly = entity.getBelongsToField(AnomalyExplanationFields.ANOMALY); String anomalyState = anomaly.getStringField(AnomalyFields.STATE); if (anomalyState.equals(AnomalyFields.State.COMPLETED)) { throw new IllegalStateException("Completed anomaly can't be updated"); } BooleanSupplier noMoreExplanationsForAnomaly = () -> anomalyExplanationDD .count(SearchRestrictions.and(SearchRestrictions.belongsTo(AnomalyExplanationFields.ANOMALY, anomaly), SearchRestrictions.idNe(entity.getId()))) == 0; if (anomalyState.equals(AnomalyFields.State.EXPLAINED) && noMoreExplanationsForAnomaly.getAsBoolean()) { anomaly.setField(AnomalyFields.STATE, AnomalyFields.State.DRAFT); anomaly.getDataDefinition().save(anomaly); } return true; }
public void validateUniquenessOfWorkstationAndType(final DataDefinition subassemblyDD, final Entity subassembly) { Entity workstationEntity = subassembly.getBelongsToField(SubassemblyFields.WORKSTATION); if (workstationEntity != null) { SearchCriterion criterionWorkstation = SearchRestrictions.belongsTo(SubassemblyFields.WORKSTATION, workstationEntity); SearchCriterion criterionType = SearchRestrictions.eq(SubassemblyFields.TYPE, subassembly.getStringField(SubassemblyFields.TYPE)); SearchCriterion criterionId = subassembly.getId() == null ? null : SearchRestrictions.idNe(subassembly.getId()); Long count = criterionId == null ? subassemblyDD.count(SearchRestrictions.and(criterionWorkstation, criterionType)) : subassemblyDD.count(SearchRestrictions.and(criterionWorkstation, criterionType, criterionId)); if (count > 0) { subassembly.addError(subassemblyDD.getField(SubassemblyFields.WORKSTATION), "basic.validate.global.error.uniquenessOfWorkstationAndType"); } } } }
private String getDataForTargetPallet(Entity position) { DataDefinition resourceDD = dataDefinitionService.get(MaterialFlowResourcesConstants.PLUGIN_IDENTIFIER, MaterialFlowResourcesConstants.MODEL_RESOURCE); Entity locationFrom = position.getBelongsToField(PositionFields.DOCUMENT).getBelongsToField(DocumentFields.LOCATION_FROM); Entity palletNumber = position.getBelongsToField(PositionFields.PALLET_NUMBER); if (palletNumber == null) { return ""; } SearchCriterion criterionLocation = SearchRestrictions.belongsTo(ResourceFields.LOCATION, locationFrom); SearchCriterion criterionPallet = SearchRestrictions.belongsTo(ResourceFields.PALLET_NUMBER, palletNumber); long count = resourceDD.count(SearchRestrictions.and(criterionLocation, criterionPallet)); return count > 0 ? "N" : palletNumber.getStringField(PalletNumberFields.NUMBER); }
private boolean checkIfUserLocationAlreadyExists(final DataDefinition userLocationDD, final Entity userLocation) { Entity location = requireNonNull(userLocation.getBelongsToField(UserLocationFields.LOCATION)); Entity user = requireNonNull(userLocation.getBelongsToField(UserLocationFields.USER)); SearchConjunction conjunction = SearchRestrictions.conjunction(); conjunction.add(belongsTo(UserLocationFields.LOCATION, location)); conjunction.add(belongsTo(UserLocationFields.USER, user)); if (userLocation.getId() != null) { conjunction.add(ne("id", userLocation.getId())); } boolean exists = 0 != userLocationDD.count(conjunction); if (exists) { userLocation.addError(userLocationDD.getField(UserLocationFields.LOCATION), "qcadooView.validate.field.error.invalidUniqueType"); } return exists; }
private boolean locationUnique(Entity deliveredProductReservation) { Entity location = deliveredProductReservation.getBelongsToField(DeliveredProductReservationFields.LOCATION); Entity deliveredProduct = deliveredProductReservation.getBelongsToField(DeliveredProductReservationFields.DELIVERED_PRODUCT); if (location != null) { SearchCriterion criterion; SearchCriterion criterionLocation = SearchRestrictions.belongsTo(DeliveredProductReservationFields.LOCATION, location); SearchCriterion criterionDeliveredProduct = SearchRestrictions.belongsTo(DeliveredProductReservationFields.DELIVERED_PRODUCT, deliveredProduct); if (deliveredProductReservation.getId() == null) { criterion = SearchRestrictions.and(criterionLocation, criterionDeliveredProduct); } else { SearchCriterion criterionId = SearchRestrictions.idNe(deliveredProductReservation.getId()); criterion = SearchRestrictions.and(criterionLocation, criterionDeliveredProduct, criterionId); } boolean locationUnique = deliveredProductReservation.getDataDefinition().count(criterion) == 0; if (!locationUnique) { FieldDefinition locationField = deliveredProductReservation.getDataDefinition().getField(DeliveredProductReservationFields.LOCATION); deliveredProductReservation.addError(locationField, "deliveries.deliveredProductReservation.error.locationNotUnique"); } return locationUnique; } return true; }
private boolean locationUnique(Entity orderedProductReservation) { Entity location = orderedProductReservation.getBelongsToField(OrderedProductReservationFields.LOCATION); Entity orderedProduct = orderedProductReservation.getBelongsToField(OrderedProductReservationFields.ORDERED_PRODUCT); if (location != null) { SearchCriterion criterion; SearchCriterion criterionLocation = SearchRestrictions.belongsTo(OrderedProductReservationFields.LOCATION, location); SearchCriterion criterionOrderedProduct = SearchRestrictions.belongsTo(OrderedProductReservationFields.ORDERED_PRODUCT, orderedProduct); if (orderedProductReservation.getId() == null) { criterion = SearchRestrictions.and(criterionLocation, criterionOrderedProduct); } else { SearchCriterion criterionId = SearchRestrictions.idNe(orderedProductReservation.getId()); criterion = SearchRestrictions.and(criterionLocation, criterionOrderedProduct, criterionId); } boolean locationUnique = orderedProductReservation.getDataDefinition().count(criterion) == 0; if (!locationUnique) { FieldDefinition locationField = orderedProductReservation.getDataDefinition().getField(OrderedProductReservationFields.LOCATION); orderedProductReservation.addError(locationField, "deliveries.deliveredProductReservation.error.locationNotUnique"); } return locationUnique; } return true; }
public boolean checkIfComponentForGivenTimeExists(final Entity workstationTypeComponent) { Entity productionLine = workstationTypeComponent.getBelongsToField(WorkstationTypeComponentFields.PRODUCTIONLINE); Entity workstationType = workstationTypeComponent.getBelongsToField(WorkstationTypeComponentFields.WORKSTATIONTYPE); Date dateFrom = workstationTypeComponent.getDateField(WorkstationTypeComponentFields.DATE_FROM); Date dateTo = workstationTypeComponent.getDateField(WorkstationTypeComponentFields.DATE_TO); SearchCriterion scb = SearchRestrictions.and( SearchRestrictions.belongsTo(WorkstationTypeComponentFields.PRODUCTIONLINE, productionLine), SearchRestrictions.belongsTo(WorkstationTypeComponentFields.WORKSTATIONTYPE, workstationType)); if (dateTo == null) { scb = SearchRestrictions.and(scb, SearchRestrictions.or(SearchRestrictions.ge( WorkstationTypeComponentFields.DATE_FROM, dateFrom), SearchRestrictions.and( SearchRestrictions.le(WorkstationTypeComponentFields.DATE_FROM, dateFrom), SearchRestrictions.gt(WorkstationTypeComponentFields.DATE_TO, dateFrom)))); } else { scb = SearchRestrictions.and(scb, SearchRestrictions.and( SearchRestrictions.le(WorkstationTypeComponentFields.DATE_FROM, dateFrom), SearchRestrictions.gt(WorkstationTypeComponentFields.DATE_TO, dateFrom))); } if (workstationTypeComponent.getId() != null) { scb = SearchRestrictions.and(scb, SearchRestrictions.ne("id", workstationTypeComponent.getId())); } long count = dataDefinitionService.get(ProductionLinesConstants.PLUGIN_IDENTIFIER, ProductionLinesConstants.MODEL_WORKSTATION_TYPE_COMPONENT).count(scb); return count != 0; }