You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mb...@apache.org on 2020/02/09 14:48:36 UTC

[ofbiz-framework] branch release17.12 updated: Revert "Improved: Remove unused services from party/services_view.xml and PartyServices.java/.xml. (OFBIZ-9988)"

This is an automated email from the ASF dual-hosted git repository.

mbrohl pushed a commit to branch release17.12
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/release17.12 by this push:
     new df460fc  Revert "Improved: Remove unused services from party/services_view.xml and  PartyServices.java/.xml. (OFBIZ-9988)"
df460fc is described below

commit df460fc680e5f7b6803aa079f6b8d75a84e7e3c0
Author: Michael Brohl <mb...@apache.org>
AuthorDate: Sun Feb 9 15:47:59 2020 +0100

    Revert "Improved: Remove unused services from party/services_view.xml and  PartyServices.java/.xml. (OFBIZ-9988)"
    
    This reverts commit 00a5d3413a238e0d2b18f2e076cd90670a2e5f71.
---
 .../party/minilang/party/PartyServices.xml         |  21 ++
 applications/party/servicedef/services_view.xml    |  70 ++++++
 .../apache/ofbiz/party/party/PartyServices.java    | 270 +++++++++++++++++++++
 3 files changed, 361 insertions(+)

diff --git a/applications/party/minilang/party/PartyServices.xml b/applications/party/minilang/party/PartyServices.xml
index 57b2621..fcdebf7 100644
--- a/applications/party/minilang/party/PartyServices.xml
+++ b/applications/party/minilang/party/PartyServices.xml
@@ -375,6 +375,27 @@ under the License.
         <field-to-result  field="parameters.contentId" result-name="contentId"/>
     </simple-method>
 
+    <!-- get parties based on PartyRelationship -->
+    <simple-method method-name="getPartiesByRelationship"
+            short-description="Gets all parties related to partyIdFrom using the PartyRelationship entity" login-required="false">
+        <set from-field="parameters.partyIdFrom" field="lookupMap.partyIdFrom"/>
+        <set from-field="parameters.partyIdTo" field="lookupMap.partyIdTo"/>
+        <set from-field="parameters.roleTypeIdFrom" field="lookupMap.roleTypeIdFrom"/>
+        <set from-field="parameters.roleTypeIdTo" field="lookupMap.roleTypeIdTo"/>
+        <set from-field="parameters.statusId" field="lookupMap.statusId"/>
+        <set from-field="parameters.priorityTypeId" field="lookupMap.priorityTypeId"/>
+        <set from-field="parameters.partyRelationshipTypeId" field="lookupMap.partyRelationshipTypeId"/>
+
+        <find-by-and entity-name="PartyRelationship" map="lookupMap" list="partyRelationships"/>
+        <iterate list="partyRelationships" entry="partyRelationship">
+            <get-related-one value-field="partyRelationship" relation-name="ToParty" to-value-field="party"/>
+            <field-to-list field="party" list="parties"/>
+        </iterate>
+        <if-not-empty field="parties">
+            <field-to-result field="parties"/>
+        </if-not-empty>
+    </simple-method>
+
     <simple-method method-name="getParentOrganizations" short-description="Gets Parent Organizations for an Organization Party">
         <set from-field="parameters.organizationPartyId" field="relatedPartyIdList[]"/>
         <set from-field="parameters.getParentsOfParents" field="recurse"/>
diff --git a/applications/party/servicedef/services_view.xml b/applications/party/servicedef/services_view.xml
index e36dbf1..d0d2793 100644
--- a/applications/party/servicedef/services_view.xml
+++ b/applications/party/servicedef/services_view.xml
@@ -126,6 +126,76 @@ under the License.
         <attribute name="lookupPerson" type="org.apache.ofbiz.entity.GenericValue" mode="OUT"/>
     </service>
 
+    <service name="getPartiesFromExactEmail" engine="java"
+            location="org.apache.ofbiz.party.party.PartyServices" invoke="getPartiesFromExactEmail">
+        <description>Gets a collection of parties from an exact email address, uses SQL EQUALS</description>
+        <attribute name="email" type="String" mode="IN"/>
+        <attribute name="parties" type="java.util.Collection" mode="OUT" optional="true"/>
+    </service>
+
+    <service name="getPartiesFromPartOfEmail" engine="java"
+            location="org.apache.ofbiz.party.party.PartyServices" invoke="getPartiesFromPartOfEmail">
+        <description>Gets a collection of parties from a part of an email address, uses SQL LIKE</description>
+        <attribute name="email" type="String" mode="IN"/>
+        <attribute name="parties" type="java.util.Collection" mode="OUT" optional="true"/>
+    </service>
+
+    <service name="getPartiesFromPartOfUserloginId" engine="java"
+            location="org.apache.ofbiz.party.party.PartyServices" invoke="getPartiesFromPartOfUserloginId">
+        <description>Gets a collection of parties from a part of an UserloginId, uses SQL LIKE</description>
+        <attribute name="userLoginId" type="String" mode="IN"/>
+        <attribute name="parties" type="java.util.Collection" mode="OUT" optional="true"/>
+    </service>
+
+    <service name="getPartiesFromName" engine="java"
+            location="org.apache.ofbiz.party.party.PartyServices" invoke="getPartiesFromPerson">
+        <description>Gets a collection of parties from a first/last name, uses SQL LIKE</description>
+        <attribute name="firstName" type="String" mode="IN" optional="true"/>
+        <attribute name="lastName" type="String" mode="IN" optional="true"/>
+        <attribute name="parties" type="java.util.Collection" mode="OUT" optional="true"/>
+    </service>
+
+    <service name="getPartiesFromGroupName" engine="java"
+            location="org.apache.ofbiz.party.party.PartyServices" invoke="getPartiesFromPartyGroup">
+        <description>Gets a collection of parties from a group name, uses SQL LIKE</description>
+        <attribute name="groupName" type="String" mode="IN" optional="false"/>
+        <attribute name="parties" type="java.util.Collection" mode="OUT" optional="true"/>
+    </service>
+
+    <service name="getPartiesFromExternalId" engine="java"
+            location="org.apache.ofbiz.party.party.PartyServices" invoke="getPartiesFromExternalId">
+        <description>Gets a list of parties from a party externalId </description>
+        <attribute name="externalId" type="String" mode="IN" optional="false"/>
+        <attribute name="parties" type="java.util.List" mode="OUT" optional="true"/>
+    </service>
+    
+    <service name="getPartiesByRelationship" engine="simple"
+        location="component://party/minilang/party/PartyServices.xml" invoke="getPartiesByRelationship">
+        <description>Gets all parties related to partyIdFrom through the PartyRelationship entity</description>
+        <auto-attributes mode="IN" include="all" optional="true" entity-name="PartyRelationship"/>
+        <attribute name="parties" type="java.util.Collection" mode="OUT" optional="true"/>
+        <override name="partyIdFrom" optional="false"/>
+    </service>
+    <service name="getRelatedParties" engine="simple"
+            location="component://party/minilang/party/PartyServices.xml" invoke="getRelatedParties">
+        <description>
+            Get Parties Related to a Party
+            - The relatedPartyIdList coming out will include the original partyIdFrom
+            - The includeFromToSwitched and recurse attributes should by "Y" or "N" and default to N.
+            - The useCache attribute should be "true" or "false", defaults to "false"
+        </description>
+        <attribute name="partyIdFrom" type="String" mode="IN" optional="false"/>
+        <attribute name="partyRelationshipTypeId" type="String" mode="IN" optional="true"/>
+        <attribute name="roleTypeIdFrom" type="String" mode="IN" optional="true"/>
+        <attribute name="roleTypeIdFromInclueAllChildTypes" type="String" mode="IN" optional="true"/>
+        <attribute name="roleTypeIdTo" type="String" mode="IN" optional="true"/>
+        <attribute name="roleTypeIdToIncludeAllChildTypes" type="String" mode="IN" optional="true"/>
+        <attribute name="includeFromToSwitched" type="String" mode="IN" optional="true"/>
+        <attribute name="recurse" type="String" mode="IN" optional="true"/>
+        <attribute name="useCache" type="String" mode="IN" optional="true"/>
+        <attribute name="relatedPartyIdList" type="List" mode="OUT" optional="false"/>
+    </service>
+
     <service name="getParentOrganizations" engine="simple"
             location="component://party/minilang/party/PartyServices.xml" invoke="getParentOrganizations">
         <description>
diff --git a/applications/party/src/main/java/org/apache/ofbiz/party/party/PartyServices.java b/applications/party/src/main/java/org/apache/ofbiz/party/party/PartyServices.java
index f970f34..184fe55 100644
--- a/applications/party/src/main/java/org/apache/ofbiz/party/party/PartyServices.java
+++ b/applications/party/src/main/java/org/apache/ofbiz/party/party/PartyServices.java
@@ -26,6 +26,7 @@ import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.sql.Timestamp;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -45,6 +46,8 @@ import org.apache.ofbiz.entity.GenericEntity;
 import org.apache.ofbiz.entity.GenericEntityException;
 import org.apache.ofbiz.entity.GenericValue;
 import org.apache.ofbiz.entity.condition.EntityCondition;
+import org.apache.ofbiz.entity.condition.EntityConditionList;
+import org.apache.ofbiz.entity.condition.EntityExpr;
 import org.apache.ofbiz.entity.condition.EntityFunction;
 import org.apache.ofbiz.entity.condition.EntityOperator;
 import org.apache.ofbiz.entity.model.DynamicViewEntity;
@@ -693,6 +696,273 @@ public class PartyServices {
         return result;
     }
 
+    /**
+     * Get the party object(s) from an e-mail address
+     * @param dctx The DispatchContext that this service is operating in.
+     * @param context Map containing the input parameters.
+     * @return Map with the result of the service, the output parameters.
+     */
+    public static Map<String, Object> getPartiesFromExactEmail(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Map<String, Object> result = new HashMap<>();
+        Delegator delegator = dctx.getDelegator();
+        Collection<Map<String, GenericValue>> parties = new LinkedList<>();
+        String email = (String) context.get("email");
+        Locale locale = (Locale) context.get("locale");
+
+        if (email.length() == 0) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.required_parameter_email_cannot_be_empty", locale));
+        }
+
+        try {
+            List<GenericValue> c = EntityQuery.use(delegator).from("PartyAndContactMech")
+                    .where(EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("infoString"), EntityOperator.EQUALS, EntityFunction.UPPER(email.toUpperCase(Locale.getDefault()))))
+                    .orderBy("infoString")
+                    .filterByDate()
+                    .queryList();
+
+            if (Debug.verboseOn()) {
+                Debug.logVerbose("List: " + c, module);
+            }
+            if (Debug.infoOn()) {
+                Debug.logInfo("PartyFromEmail number found: " + c.size(), module);
+            }
+            if (c != null) {
+                for (GenericValue pacm: c) {
+                    GenericValue party = delegator.makeValue("Party", UtilMisc.toMap("partyId", pacm.get("partyId"), "partyTypeId", pacm.get("partyTypeId")));
+
+                    parties.add(UtilMisc.<String, GenericValue>toMap("party", party));
+                }
+            }
+        } catch (GenericEntityException e) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.cannot_get_party_entities_read",
+                    UtilMisc.toMap("errMessage", e.getMessage()), locale));
+        }
+        if (parties.size() > 0) {
+            result.put("parties", parties);
+        }
+        return result;
+    }
+
+    public static Map<String, Object> getPartiesFromPartOfEmail(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Map<String, Object> result = new HashMap<>();
+        Delegator delegator = dctx.getDelegator();
+        Collection<Map<String, GenericValue>> parties = new LinkedList<>();
+        String email = (String) context.get("email");
+        Locale locale = (Locale) context.get("locale");
+
+        if (email.length() == 0) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.required_parameter_email_cannot_be_empty", locale));
+        }
+
+        try {
+            List<GenericValue> c = EntityQuery.use(delegator).from("PartyAndContactMech")
+                    .where(EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("infoString"), EntityOperator.LIKE, EntityFunction.UPPER(("%" + email.toUpperCase(Locale.getDefault())) + "%")))
+                    .orderBy("infoString")
+                    .filterByDate()
+                    .queryList();
+
+            if (Debug.verboseOn()) {
+                Debug.logVerbose("List: " + c, module);
+            }
+            if (Debug.infoOn()) {
+                Debug.logInfo("PartyFromEmail number found: " + c.size(), module);
+            }
+            if (c != null) {
+                for (GenericValue pacm: c) {
+                    GenericValue party = delegator.makeValue("Party", UtilMisc.toMap("partyId", pacm.get("partyId"), "partyTypeId", pacm.get("partyTypeId")));
+
+                    parties.add(UtilMisc.<String, GenericValue>toMap("party", party));
+                }
+            }
+        } catch (GenericEntityException e) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.cannot_get_party_entities_read",
+                    UtilMisc.toMap("errMessage", e.getMessage()), locale));
+        }
+        if (parties.size() > 0) {
+            result.put("parties", parties);
+        }
+        return result;
+    }
+
+    /**
+     * Get the party object(s) from a user login ID
+     * @param dctx The DispatchContext that this service is operating in.
+     * @param context Map containing the input parameters.
+     * @return Map with the result of the service, the output parameters.
+     */
+    public static Map<String, Object> getPartiesFromPartOfUserloginId(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Debug.logWarning("Running the getPartiesFromPartOfUserloginId Service...", module);
+        Map<String, Object> result = new HashMap<>();
+        Delegator delegator = dctx.getDelegator();
+        Collection<Map<String, GenericValue>> parties = new LinkedList<>();
+        String userLoginId = (String) context.get("userLoginId");
+        Locale locale = (Locale) context.get("locale");
+
+        if (userLoginId.length() == 0) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "PartyCannotGetUserLoginFromParty", locale));
+        }
+
+        try {
+            Collection<GenericValue> ulc = EntityQuery.use(delegator).from("PartyAndUserLogin")
+                    .where(EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("userLoginId"), EntityOperator.LIKE, EntityFunction.UPPER("%" + userLoginId.toUpperCase(Locale.getDefault()) + "%")))
+                    .orderBy("userLoginId")
+                    .queryList();
+
+            if (Debug.verboseOn()) {
+                Debug.logVerbose("Collection: " + ulc, module);
+            }
+            if (Debug.infoOn()) {
+                Debug.logInfo("PartyFromUserLogin number found: " + ulc.size(), module);
+            }
+            if (ulc != null) {
+                for (GenericValue ul: ulc) {
+                    GenericValue party = delegator.makeValue("Party", UtilMisc.toMap("partyId", ul.get("partyId"), "partyTypeId", ul.get("partyTypeId")));
+
+                    parties.add(UtilMisc.<String, GenericValue>toMap("party", party));
+                }
+            }
+        } catch (GenericEntityException e) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.cannot_get_party_entities_read",
+                    UtilMisc.toMap("errMessage", e.getMessage()), locale));
+        }
+        if (UtilValidate.isNotEmpty(parties)) {
+            result.put("parties", parties);
+        }
+        return result;
+    }
+
+    /**
+     * Get the party object(s) from person information
+     * @param dctx The DispatchContext that this service is operating in.
+     * @param context Map containing the input parameters.
+     * @return Map with the result of the service, the output parameters.
+     */
+    public static Map<String, Object> getPartiesFromPerson(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Map<String, Object> result = new HashMap<>();
+        Delegator delegator = dctx.getDelegator();
+        Collection<Map<String, GenericValue>> parties = new LinkedList<>();
+        String firstName = (String) context.get("firstName");
+        String lastName = (String) context.get("lastName");
+        Locale locale = (Locale) context.get("locale");
+
+        if (firstName == null) {
+            firstName = "";
+        }
+        if (lastName == null) {
+            lastName = "";
+        }
+        if (firstName.length() == 0 && lastName.length() == 0) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.both_names_cannot_be_empty", locale));
+        }
+
+        try {
+            EntityConditionList<EntityExpr> ecl = EntityCondition.makeCondition(EntityOperator.AND,
+                    EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("firstName"), EntityOperator.LIKE,
+                            EntityFunction.UPPER("%" + firstName.toUpperCase(Locale.getDefault()) + "%")),
+                    EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("lastName"), EntityOperator.LIKE,
+                            EntityFunction.UPPER("%" + lastName.toUpperCase(Locale.getDefault()) + "%")));
+            Collection<GenericValue> pc = EntityQuery.use(delegator).from("Person").where(ecl).orderBy("lastName", "firstName", "partyId").queryList();
+
+            if (Debug.infoOn()) {
+                Debug.logInfo("PartyFromPerson number found: " + pc.size(), module);
+            }
+            if (pc != null) {
+                for (GenericValue person: pc) {
+                    GenericValue party = delegator.makeValue("Party", UtilMisc.toMap("partyId", person.get("partyId"), "partyTypeId", "PERSON"));
+
+                    parties.add(UtilMisc.<String, GenericValue>toMap("person", person, "party", party));
+                }
+            }
+        } catch (GenericEntityException e) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.cannot_get_party_entities_read",
+                    UtilMisc.toMap("errMessage", e.getMessage()), locale));
+        }
+        if (parties.size() > 0) {
+            result.put("parties", parties);
+        }
+        return result;
+    }
+
+    /**
+     * Get the party object(s) from party group name.
+     * @param dctx The DispatchContext that this service is operating in.
+     * @param context Map containing the input parameters.
+     * @return Map with the result of the service, the output parameters.
+     */
+    public static Map<String, Object> getPartiesFromPartyGroup(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Map<String, Object> result = new HashMap<>();
+        Delegator delegator = dctx.getDelegator();
+        Collection<Map<String, GenericValue>> parties = new LinkedList<>();
+        String groupName = (String) context.get("groupName");
+        Locale locale = (Locale) context.get("locale");
+
+        if (groupName.length() == 0) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "PartyCannotgetPartiesFromPartyGroup", locale));
+        }
+
+        try {
+            Collection<GenericValue> pc = EntityQuery.use(delegator).from("PartyGroup")
+                    .where(EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("groupName"), EntityOperator.LIKE, EntityFunction.UPPER("%" + groupName.toUpperCase(Locale.getDefault()) + "%")))
+                    .orderBy("groupName", "partyId")
+                    .queryList();
+
+            if (Debug.infoOn()) {
+                Debug.logInfo("PartyFromGroup number found: " + pc.size(), module);
+            }
+            if (pc != null) {
+                for (GenericValue group: pc) {
+                    GenericValue party = delegator.makeValue("Party", UtilMisc.toMap("partyId", group.get("partyId"), "partyTypeId", "PARTY_GROUP"));
+
+                    parties.add(UtilMisc.<String, GenericValue>toMap("partyGroup", group, "party", party));
+                }
+            }
+        } catch (GenericEntityException e) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.cannot_get_party_entities_read",
+                    UtilMisc.toMap("errMessage", e.getMessage()), locale));
+        }
+        if (parties.size() > 0) {
+            result.put("parties", parties);
+        }
+        return result;
+    }
+
+    /**
+     * Get the party object(s) from party externalId.
+     * @param dctx The DispatchContext that this service is operating in.
+     * @param context Map containing the input parameters.
+     * @return Map with the result of the service, the output parameters.
+     */
+    public static Map<String, Object> getPartiesFromExternalId(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Map<String, Object> result = ServiceUtil.returnSuccess();
+        Delegator delegator = dctx.getDelegator();
+        List<GenericValue> parties;
+        String externalId = (String) context.get("externalId");
+        Locale locale = (Locale) context.get("locale");
+
+        try {
+            parties = EntityQuery.use(delegator).from("Party")
+                    .where(EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("externalId"), EntityOperator.EQUALS, EntityFunction.UPPER(externalId)))
+                    .orderBy("externalId", "partyId")
+                    .queryList();
+        } catch (GenericEntityException e) {
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "partyservices.cannot_get_party_entities_read",
+                    UtilMisc.toMap("errMessage", e.getMessage()), locale));
+        }
+        result.put("parties", parties);
+        return result;
+    }
+
     public static Map<String, Object> getPerson(DispatchContext dctx, Map<String, ? extends Object> context) {
         Map<String, Object> result = new HashMap<>();
         Delegator delegator = dctx.getDelegator();