<?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"
        xsi:noNamespaceSchemaLocation="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>

        <if-empty field="parameters.roleTypeId">
            <set field="lookupPKMap.roleTypeId" value="_NA_"/>
        <else>
            <set from-field="parameters.roleTypeId" field="lookupPKMap.roleTypeId"/>
        </else>
        </if-empty>
        <find-by-primary-key entity-name="PartyRole" map="lookupPKMap" value-field="lookedUpValue"/>
        <if-empty field="lookedUpValue">
            <make-value value-field="newValue" entity-name="PartyRole" map="lookupPKMap"/>
            <create-value value-field="newValue"/>
        </if-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/script/org/ofbiz/party/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/script/org/ofbiz/party/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/script/org/ofbiz/party/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/script/org/ofbiz/party/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/script/org/ofbiz/party/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/script/org/ofbiz/party/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" to-map="deleteBillingAccountCtx" map="parameters"/>
        <call-service service-name="updateBillingAccount" in-map-name="deleteBillingAccountCtx"/>
    </simple-method>
</simple-methods>
