public void restrictToUserLocations(final SearchCriteriaBuilder scb, final FilterValueHolder filterValue) { Long currentUserId = securityService.getCurrentUserId(); if (Objects.nonNull(currentUserId)) { EntityList userLocations = userDataDefinition().get(currentUserId).getHasManyField(UserFieldsMF.USER_LOCATIONS); if (!userLocations.isEmpty()) { Set<Integer> locationIds = userLocations.stream().map(ul -> ul.getBelongsToField(UserLocationFields.LOCATION)) .mapToInt(e -> e.getId().intValue()).boxed().collect(Collectors.toSet()); scb.add(SearchRestrictions.in(LOCATION_ID, locationIds)); } } }
private boolean deletePreviousReservations(List<Entity> orderedOrDeliveredProducts) { int countReservations = 0; for (Entity p : orderedOrDeliveredProducts) { EntityList reservations = p.getHasManyField(DeliveredProductFields.RESERVATIONS); countReservations += reservations.size(); reservations.stream().forEach(reservation -> { reservation.getDataDefinition().delete(reservation.getId()); }); } return countReservations > 0; }
public Entity getOrderForTechnology(final ViewDefinitionState state) { DataDefinition orderDD = dataDefinitionService.get(OrdersConstants.PLUGIN_IDENTIFIER, OrdersConstants.MODEL_ORDER); String orderId = null; try { orderId = state.getJsonContext().getString("window.mainTab.technology.orderId"); } catch (JSONException ex) { // throw new RuntimeException(ex); EntityList entities = ((FormComponent) state.getComponentByReference(L_FORM)).getPersistedEntityWithIncludedFormValues().getHasManyField("orders"); if(!entities.isEmpty()){ orderId = String.valueOf(entities.get(0).getId()); } } return orderDD.get(Long.valueOf(orderId)); }
private Optional<Entity> getOrderCategoryColor(final String orderCategory) { return Optional.ofNullable(parameterService.getParameter().getHasManyField(ParameterFieldsO.ORDER_CATEGORY_COLORS).find() .add(SearchRestrictions.eq(OrderCategoryColorFields.ORDER_CATEGORY, orderCategory)).setMaxResults(1) .uniqueResult()); }
private boolean hasNoActions(Entity event) { return event.getHasManyField(PlannedEventFields.ACTIONS).isEmpty(); }
public Set<Long> findIdsOfEffectiveProgressForDay(Entity pps, boolean corrected) { Set<Long> pfdIds = Sets.newHashSet(); if (corrected) { pfdIds = pps.getHasManyField(ProductionPerShiftFields.PROGRES_FOR_DAYS).stream() .filter(pfd -> pfd.getBooleanField(ProgressForDayFields.CORRECTED)).map(pfdf -> pfdf.getId()) .collect(Collectors.toSet()); } else { pfdIds = pps.getHasManyField(ProductionPerShiftFields.PROGRES_FOR_DAYS).stream() .filter(pfd -> !pfd.getBooleanField(ProgressForDayFields.CORRECTED) == corrected).map(pfdf -> pfdf.getId()) .collect(Collectors.toSet()); } return pfdIds; }
private List<Entity> findPresentDeliveredProductForProductReservations(Entity deliveredProduct) { Entity delivery = deliveredProduct.getBelongsToField(DeliveredProductFields.DELIVERY); Entity additionalCode = deliveredProduct.getBelongsToField(DeliveredProductFields.ADDITIONAL_CODE); SearchCriteriaBuilder findDeliveredProducts = delivery.getHasManyField(DeliveryFields.DELIVERED_PRODUCTS).find(); findDeliveredProducts.add(SearchRestrictions.belongsTo(DeliveredProductFields.PRODUCT, deliveredProduct.getBelongsToField(DeliveredProductFields.PRODUCT))); if (additionalCode == null) { findDeliveredProducts.add(SearchRestrictions.isNull(DeliveredProductFields.ADDITIONAL_CODE)); } else { findDeliveredProducts.add(SearchRestrictions.belongsTo(DeliveredProductFields.ADDITIONAL_CODE, additionalCode)); } if(PluginUtils.isEnabled("supplyNegotiations")) { findDeliveredProducts.add(SearchRestrictions.belongsTo(OFFER, deliveredProduct.getBelongsToField(OFFER))); } List<Entity> deliveredProducts = findDeliveredProducts.list().getEntities(); List<Entity> allReservationsFromDeliveredProducts = deliveredProducts.stream().flatMap(p -> { return p.getHasManyField(DeliveredProductFields.RESERVATIONS).stream(); }).collect(Collectors.toList()); return allReservationsFromDeliveredProducts; }
private boolean checkIfItIsLastProductionCountingQuantity(final Entity basicProductionCounting) { return (basicProductionCounting.getHasManyField(BasicProductionCountingFields.PRODUCTION_COUNTING_QUANTITIES) .size() == 1); }
private Optional<Entity> getSetProductTechnology(final Long productId) { DataDefinition technologyDD = dataDefinitionService.get(TechnologiesConstants.PLUGIN_IDENTIFIER, TechnologiesConstants.MODEL_TECHNOLOGY); Entity masterTechnology = technologyDD.find().add(SearchRestrictions.eq(TechnologyFields.PRODUCT + ".id", productId)) .add(SearchRestrictions.eq(TechnologyFields.MASTER, true)).uniqueResult(); if (masterTechnology != null) { EntityTree operationComponents = masterTechnology.getTreeField(TechnologyFields.OPERATION_COMPONENTS); boolean isSet = operationComponents.getRoot() .getHasManyField(TechnologyOperationComponentFields.OPERATION_PRODUCT_OUT_COMPONENTS).get(0) .getBooleanField(OperationProductOutComponentFields.SET); if (isSet) { return Optional.of(masterTechnology); } } return Optional.empty(); }
private boolean checkIfOrderHasProductionTrackings(final Entity order) { SearchResult searchResult = order.getHasManyField(OrderFieldsPC.PRODUCTION_TRACKINGS).find() .add(SearchRestrictions.eq(ProductionTrackingFields.STATE, ProductionTrackingStateStringValues.DRAFT)).list(); return (searchResult.getTotalNumberOfEntities() > 0); }
public boolean onDelete(final DataDefinition dataDefinition, final Entity division) { if (division.getHasManyField("operations").isEmpty() && division.getHasManyField("technologyOperationComponents").isEmpty()) { return true; } division.addGlobalError("basic.division.onDelete.error"); return false; }
private Entity findForOrder(Entity parentOrder, Entity coverageProduct) { return coverageProduct .getHasManyField(CoverageProductFields.COVERAGE_PRODUCT_LOGGINGS) .stream() .filter(e -> Objects.nonNull(e.getBelongsToField(CoverageProductLoggingFields.ORDER))) .filter(entity -> entity.getBelongsToField(CoverageProductLoggingFields.ORDER).getId() .equals(parentOrder.getId())).findFirst().get(); }
private List<Entity> filterCoverageProducts(Entity materialRequirementCoverage, List<Entity> coverageProducts) { boolean coverageForSelectedOrders = materialRequirementCoverage.getHasManyField("coverageOrders").size() > 0; if(coverageForSelectedOrders){ coverageProducts = coverageProducts.stream().filter(cp -> cp.getBooleanField((CoverageProductFields.FROM_SELECTED_ORDER))).collect( Collectors.toList()); } return coverageProducts; }
private Entity getBasicProductionCounting(final Entity order, final Entity product) { return order.getHasManyField(OrderFieldsBPC.BASIC_PRODUCTION_COUNTINGS).find() .add(SearchRestrictions.belongsTo(BasicProductionCountingFields.PRODUCT, product)).setMaxResults(1) .uniqueResult(); }
public void restrictToUserLocations(final SearchCriteriaBuilder scb, final FilterValueHolder filterValue) { Long currentUserId = securityService.getCurrentUserId(); if (Objects.nonNull(currentUserId)) { EntityList userLocations = userDataDefinition().get(currentUserId).getHasManyField(UserFieldsMF.USER_LOCATIONS); if (!userLocations.isEmpty()) { Set<Integer> locationIds = userLocations.stream().map(ul -> ul.getBelongsToField(UserLocationFields.LOCATION)) .mapToInt(e -> e.getId().intValue()).boxed().collect(Collectors.toSet()); scb.add(SearchRestrictions.in(LOCATION_ID, locationIds)); } } }
public boolean onDelete(final DataDefinition dataDefinition, final Entity workstation) { boolean canDelete = workstation.getHasManyField(WorkstationFields.SUBASSEMBLIES).isEmpty(); if (!canDelete) { workstation.addGlobalError("basic.workstation.delete.hasSubassemblies"); } return canDelete; } }
private void checkDeliveredProductsSynchronizationStatus(StateChangeContext stateChangeContext) { final Set<String> notSynchronizedOrderedProducts = stateChangeContext.getOwner() .getHasManyField(DeliveryFields.DELIVERED_PRODUCTS).stream() .map(productsHolder -> productsHolder.getBelongsToField(DeliveredProductFields.PRODUCT)) .filter(product -> isBlank(product.getStringField(ProductFields.EXTERNAL_NUMBER))) .map(product -> product.getStringField(ProductFields.NUMBER)).collect(Collectors.toSet()); if(!notSynchronizedOrderedProducts.isEmpty()){ stateChangeContext.addValidationError("deliveries.deliveredProducts.notSynchronized", false, String.join(", ", notSynchronizedOrderedProducts)); } }
private Entity getOrderWithTechnology(final ViewDefinitionState view) { DataDefinition orderDD = dataDefinitionService.get(OrdersConstants.PLUGIN_IDENTIFIER, OrdersConstants.MODEL_ORDER); String orderId = null; try { orderId = view.getJsonContext().getString("window.mainTab.technology.orderId"); } catch (JSONException ex) { // throw new RuntimeException(ex); EntityList entities = ((FormComponent) view.getComponentByReference("form")) .getPersistedEntityWithIncludedFormValues().getHasManyField("orders"); if (!entities.isEmpty()) { orderId = String.valueOf(entities.get(0).getId()); } } return orderDD.get(Long.valueOf(orderId)); }
private boolean eachOperationHasLastRecords(final Entity order, final Entity productionTracking) { Entity technology = order.getBelongsToField(OrderFields.TECHNOLOGY); int numOfOrderOperations = technology.getHasManyField(TechnologyFields.OPERATION_COMPONENTS).size(); Set<Long> matchingRecordIds = getIdsOfAcceptedLastRecords(productionTracking.getDataDefinition(), order.getId()); int numOfMatchingRecords = matchingRecordIds.size(); long recordId = productionTracking.getId(); return (numOfMatchingRecords >= numOfOrderOperations) || (numOfMatchingRecords == (numOfOrderOperations - 1) && !matchingRecordIds.contains(recordId)); }