<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd">
    <simple-method method-name="updateAVSOverride" short-description="Create/Update The AVS Override String">
        <make-value value-field="lookupPKMap" entity-name="PartyIcsAvsOverride"/>
        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
        <find-by-primary-key entity-name="PartyIcsAvsOverride" map="lookupPKMap" value-field="lookedUpValue"/>
        <if-not-empty field="lookedUpValue.partyId">
            <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
            <store-value value-field="lookedUpValue"/>
        </if-not-empty>
        <if-empty field="lookedUpValue.partyId">
            <set-nonpk-fields map="parameters" value-field="lookupPKMap"/>
            <create-value value-field="lookupPKMap"/>
        </if-empty>
    </simple-method>

    <simple-method method-name="deleteAVSOverride" short-description="Delete The AVS Override String">
        <make-value value-field="lookupPKMap" entity-name="PartyIcsAvsOverride"/>
        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
        <find-by-primary-key entity-name="PartyIcsAvsOverride" map="lookupPKMap" value-field="lookedUpValue"/>
        <if-not-empty field="lookedUpValue.partyId">
            <remove-value value-field="lookedUpValue"/>
        </if-not-empty>
    </simple-method>

    <simple-method method-name="ensureNaPartyRole" short-description="Ensure Party is in _NA_ or the specified Role" login-required="false">
        <!-- must have a partyId, partyIdFrom, or partyIdTo in the parameters map, should be called through different service defs for each one -->
        <if-not-empty field="parameters.partyId">
            <set field="lookupPKMap.partyId" from-field="parameters.partyId"/>
            <else>
                <if-not-empty field="parameters.partyIdFrom">
                    <set field="lookupPKMap.partyId" from-field="parameters.partyIdFrom"/>
                    <else>
                        <if-not-empty field="parameters.partyIdTo">
                            <set field="lookupPKMap.partyId" from-field="parameters.partyIdTo"/>
                        </if-not-empty>
                    </else>
                </if-not-empty>
            </else>
        </if-not-empty>

        <!-- resolve the roleTypeId on this order roleTypeIdFrom, roleTypeIdTo, roleTypeId and if not find use _NA_-->
        <if-not-empty field="parameters.roleTypeIdFrom">
            <set field="lookupPKMap.roleTypeId" from-field="parameters.roleTypeIdFrom"/>
            <else>
                <if-not-empty field="parameters.roleTypeIdTo">
                    <set field="lookupPKMap.roleTypeId" from-field="parameters.roleTypeIdTo"/>
                    <else>
                        <if-not-empty field="parameters.roleTypeId">
                            <set from-field="parameters.roleTypeId" field="lookupPKMap.roleTypeId"/>
                            <else>
                                <set field="lookupPKMap.roleTypeId" value="_NA_"/>
                            </else>
                        </if-not-empty>
                    </else>
                </if-not-empty>
            </else>
        </if-not-empty>
        <if-not-empty field="lookupPKMap.partyId">
            <find-by-primary-key entity-name="PartyRole" map="lookupPKMap" value-field="lookedUpValue" use-cache="true"/>
            <if-empty field="lookedUpValue">
                <make-value value-field="partyRole" entity-name="PartyRole" map="lookupPKMap"/>
                <create-value value-field="partyRole"/>
            </if-empty>
        </if-not-empty>
    </simple-method>

    <simple-method method-name="createPersonAndUserLogin" short-description="Creates a person and userlogin" login-required="false">
        <set-service-fields service-name="createUserLogin" map="parameters" to-map="createUlInMap"/>

        <set-service-fields service-name="createPerson" map="parameters" to-map="createPersonCtx"/>
        <call-service service-name="createPerson" in-map-name="createPersonCtx">
            <result-to-field result-name="partyId" field="createUlInMap.partyId"/>
        </call-service>

        <!-- call the service with the system account to get around security constraints for this special create -->
        <entity-one entity-name="UserLogin" value-field="createUlInMap.userLogin" auto-field-map="false">
            <field-map field-name="userLoginId" value="system"/>
        </entity-one>

        <call-service service-name="createUserLogin" in-map-name="createUlInMap"/>
        <entity-one entity-name="UserLogin" value-field="newUserLogin"/>

        <field-to-result field="newUserLogin"/>
        <field-to-result field="createUlInMap.partyId" result-name="partyId"/>
    </simple-method>

    <!-- Simple method to create a person, its role and basic contact mechs -->
    <simple-method method-name="createPersonRoleAndContactMechs" short-description="Creates a person, role and contactMechs">
        <call-map-processor processor-name="person" in-map-name="parameters" out-map-name="personContext"
            xml-resource="component://party/minilang/party/PartyMapProcs.xml"/>

        <if-not-empty field="parameters.address1">
            <call-map-processor processor-name="postalAddress" in-map-name="parameters" out-map-name="postalAddressContext"
                xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml"/>
        </if-not-empty>

        <if-not-empty field="parameters.contactNumber">
            <call-map-processor processor-name="telecomNumber" in-map-name="parameters" out-map-name="telecomNumberContext"
                xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml"/>
        </if-not-empty>

        <if-not-empty field="parameters.emailAddress">
            <call-map-processor in-map-name="parameters" out-map-name="emailAddressContext">
                <simple-map-processor name="emailAddress">
                    <process field="emailAddress">
                        <copy/>
                        <validate-method method="isEmail"><fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/></validate-method>
                    </process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>
        <check-errors/>

        <call-service service-name="createPerson" in-map-name="personContext">
            <result-to-field result-name="partyId" field="partyId"/>
        </call-service>

        <if-not-empty field="parameters.roleTypeId">
            <set field="createPartyRoleCtx.partyId" from-field="partyId"/>
            <set field="createPartyRoleCtx.roleTypeId" from-field="parameters.roleTypeId"/>
            <call-service service-name="createPartyRole" in-map-name="createPartyRoleCtx"/>
        </if-not-empty>

        <set field="postalAddContactMechPurpTypeId" from-field="parameters.postalAddContactMechPurpTypeId"/>
        <set field="contactNumber" from-field="parameters.contactNumber"/>
        <set field="phoneContactMechPurpTypeId" from-field="parameters.phoneContactMechPurpTypeId"/>
        <set field="emailAddress" from-field="parameters.emailAddress"/>
        <set field="emailContactMechPurpTypeId" from-field="parameters.emailContactMechPurpTypeId"/>
        <call-simple-method method-name="createPartyContactMechs"/>
    </simple-method>

    <!-- Simple method to create a party group, its role and basic contact mechs -->
    <simple-method method-name="createPartyGroupRoleAndContactMechs" short-description="Creates a party group, role and contactMechs">
        <call-map-processor processor-name="partyGroup" in-map-name="parameters" out-map-name="partyGroupContext"
            xml-resource="component://party/minilang/party/PartyMapProcs.xml"/>
        <if-not-empty field="parameters.address1">
            <call-map-processor processor-name="postalAddress" in-map-name="parameters" out-map-name="postalAddressContext"
                xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml"/>
        </if-not-empty>
        <if-not-empty field="parameters.contactNumber">
            <call-map-processor processor-name="telecomNumber" in-map-name="parameters" out-map-name="telecomNumberContext"
                xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml"/>
        </if-not-empty>

        <if-not-empty field="parameters.emailAddress">
            <call-map-processor in-map-name="parameters" out-map-name="emailAddressContext">
                <simple-map-processor name="emailAddress">
                    <process field="emailAddress">
                        <copy/>
                        <validate-method method="isEmail"><fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/></validate-method>
                    </process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>
        <check-errors/>

        <set field="partyGroupContext.partyTypeId" value="PARTY_GROUP"/>
        <call-service service-name="createPartyGroup" in-map-name="partyGroupContext">
            <result-to-field result-name="partyId" field="partyId"/>
        </call-service>
        <check-errors/>
        <if-not-empty field="parameters.roleTypeId">
            <set field="createPartyRoleCtx.partyId" from-field="partyId"/>
            <set field="createPartyRoleCtx.roleTypeId" from-field="parameters.roleTypeId"/>
            <call-service service-name="createPartyRole" in-map-name="createPartyRoleCtx"/>
        </if-not-empty>
        <check-errors/>
        <set field="postalAddContactMechPurpTypeId" from-field="parameters.postalAddContactMechPurpTypeId"/>
        <set field="contactNumber" from-field="parameters.contactNumber"/>
        <set field="phoneContactMechPurpTypeId" from-field="parameters.phoneContactMechPurpTypeId"/>
        <set field="emailAddress" from-field="parameters.emailAddress"/>
        <set field="emailContactMechPurpTypeId" from-field="parameters.emailContactMechPurpTypeId"/>
        <call-simple-method method-name="createPartyContactMechs"/>
    </simple-method>

    <!-- Simple method to create Party Postal Address, Telecom Number and Email Address, to be used by
         createPersonRoleAndContactMechs and createPartyGroupRoleAndContactMechs simple methods -->
    <simple-method method-name="createPartyContactMechs" short-description="Create Contact Mechs">
        <!-- postal address -->
        <if-not-empty field="postalAddressContext">
            <set field="postalAddressContext.partyId" from-field="partyId"/>
            <set field="postalAddressContext.contactMechPurposeTypeId" value="GENERAL_LOCATION"/>
            <call-service service-name="createPartyPostalAddress" in-map-name="postalAddressContext">
                <result-to-field result-name="contactMechId" field="postalAddressContext.contactMechId"/>
            </call-service>
        </if-not-empty>

        <if-not-empty field="postalAddContactMechPurpTypeId">
            <set-service-fields service-name="createPartyContactMechPurpose" map="postalAddressContext" to-map="serviceCtx"/>
            <set field="serviceCtx.contactMechPurposeTypeId" from-field="postalAddContactMechPurpTypeId"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="serviceCtx"/>
        </if-not-empty>

        <!-- phone number -->
        <if-not-empty field="telecomNumberContext">
            <set field="telecomNumberContext.partyId" from-field="partyId"/>
            <set field="telecomNumberContext.contactMechPurposeTypeId" value="PRIMARY_PHONE"/>
            <if-not-empty field="phoneContactMechPurpTypeId"> <!-- override with purpose present in parameters, if any (This field is not used now, just here for future implementations) -->
                <set field="telecomNumberContext.contactMechPurposeTypeId" from-field="phoneContactMechPurpTypeId"/>
            </if-not-empty>
            <call-service service-name="createPartyTelecomNumber" in-map-name="telecomNumberContext"/>
        </if-not-empty>

        <!-- email address -->
        <if-not-empty field="emailAddressContext">
            <set field="emailAddressContext.partyId" from-field="partyId"/>
            <set field="emailAddressContext.contactMechPurposeTypeId" value="PRIMARY_EMAIL"/>
            <if-not-empty field="emailContactMechPurpTypeId"> <!-- override with purpose present in parameters, if any (This field is not used now, just here for future implementations) -->
                <set field="emailAddressContext.contactMechPurposeTypeId" from-field="emailContactMechPurpTypeId"/>
            </if-not-empty>
            <call-service service-name="createPartyEmailAddress" in-map-name="emailAddressContext"/>
        </if-not-empty>
    </simple-method>

    <simple-method method-name="deleteBillingAccount" short-description="delete billing account">
        <now-timestamp field="nowTimestamp"/>
        <set field="parameters.thruDate" from-field="nowTimestamp"/>
        <set-service-fields service-name="updateBillingAccount" map="parameters" to-map="deleteBillingAccountCtx"/>
        <call-service service-name="updateBillingAccount" in-map-name="deleteBillingAccountCtx"/>
    </simple-method>
</simple-methods>
