diff --git a/framework/src/main/groovy/org/moqui/impl/entity/EntityDynamicViewImpl.groovy b/framework/src/main/groovy/org/moqui/impl/entity/EntityDynamicViewImpl.groovy index 96255220a..18a05b831 100644 --- a/framework/src/main/groovy/org/moqui/impl/entity/EntityDynamicViewImpl.groovy +++ b/framework/src/main/groovy/org/moqui/impl/entity/EntityDynamicViewImpl.groovy @@ -43,6 +43,10 @@ class EntityDynamicViewImpl implements EntityDynamicView { @Override EntityDynamicView addMemberEntity(String entityAlias, String entityName, String joinFromAlias, Boolean joinOptional, Map entityKeyMaps) { + return addMemberEntity(entityAlias, entityName, joinFromAlias, joinOptional, entityKeyMaps, null, null) + } + EntityDynamicView addMemberEntity(String entityAlias, String entityName, String joinFromAlias, Boolean joinOptional, + Map entityKeyMaps, Map entityConditions, String subSelect) { MNode memberEntity = entityNode.append("member-entity", ["entity-alias":entityAlias, "entity-name":entityName]) if (joinFromAlias) { memberEntity.attributes.put("join-from-alias", joinFromAlias) @@ -51,6 +55,18 @@ class EntityDynamicViewImpl implements EntityDynamicView { if (entityKeyMaps) for (Map.Entry keyMapEntry in entityKeyMaps.entrySet()) { memberEntity.append("key-map", ["field-name":keyMapEntry.getKey(), "related":keyMapEntry.getValue()]) } + // Add entity-condition if provided + if (entityConditions && !entityConditions.isEmpty()) { + MNode entityCondition = memberEntity.append("entity-condition", null) + for (Map.Entry keyValueEntry in entityConditions.entrySet()) { + entityCondition.append("econdition", ["entity-alias": entityAlias, "field-name": keyValueEntry.getKey(), "value": keyValueEntry.getValue()]) + } + } + // Handle subSelect + if (subSelect) { + memberEntity.attributes.put("sub-select", subSelect) + } + return this } diff --git a/framework/src/main/java/org/moqui/entity/EntityDynamicView.java b/framework/src/main/java/org/moqui/entity/EntityDynamicView.java index 39345f5c7..565f1dc62 100644 --- a/framework/src/main/java/org/moqui/entity/EntityDynamicView.java +++ b/framework/src/main/java/org/moqui/entity/EntityDynamicView.java @@ -29,6 +29,8 @@ public interface EntityDynamicView { EntityDynamicView addMemberEntity(String entityAlias, String entityName, String joinFromAlias, Boolean joinOptional, Map entityKeyMaps); + EntityDynamicView addMemberEntity(String entityAlias, String entityName, String joinFromAlias, Boolean joinOptional, + Map entityKeyMaps, Map entityConditions, String subSelect); EntityDynamicView addRelationshipMember(String entityAlias, String joinFromAlias, String relationshipName, Boolean joinOptional);