<?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-v2.xsd">

    <simple-method method-name="createRegister"
        short-description="Create person when new register" login-required="false">
        <if-empty field="parameters.firstName"><property-to-field field="errorMessage" resource="MyPortalUiLabels" property="MyPortalFirstNameMissing"/><field-to-list field="errorMessage" list="error_list"/></if-empty>
        <if-empty field="parameters.lastName"><property-to-field field="errorMessage" resource="MyPortalUiLabels" property="MyPortalLastNameMissing"/><field-to-list field="errorMessage" list="error_list"/></if-empty>
        <if-empty field="parameters.USERNAME"><property-to-field field="errorMessage" resource="PartyUiLabels" property="PartyUserNameMissing"/><field-to-list field="errorMessage" list="error_list"/></if-empty>
        <if-empty field="parameters.PASSWORD"><property-to-field field="errorMessage" resource="PartyUiLabels" property="PartyPasswordMissing"/><field-to-list field="errorMessage" list="error_list"/></if-empty>
        <if-empty field="parameters.USER_EMAIL"><property-to-field field="errorMessage" resource="PartyUiLabels" property="PartyEmailAddressMissing"/><field-to-list field="errorMessage" list="error_list"/></if-empty>
        <check-errors error-list-name="error_list" error-code="resultPage"/>

        <!-- set parameter of person to personContext Map -->
        <set field="personContext.salutation" from-field="parameters.salutation"/>
        <set field="personContext.firstName" from-field="parameters.firstName"/>
        <set field="personContext.middleName" from-field="parameters.middleName"/>
        <set field="personContext.lastName" from-field="parameters.lastName"/>
        <set field="personContext.comments" from-field="parameters.comments"/>

        <!-- set parameter of userLogin to userLoginContext Map -->
        <set field="userLoginContext.userLoginId" from-field="parameters.USERNAME"/>
        
        <now-timestamp field="nowStamp"/>
        <call-object-method obj-field="parameters.PASSWORD" method-name="toLowerCase" ret-field="parameters.PASSWORD"/>
        <call-object-method obj-field="parameters.CONFIRM_PASSWORD" method-name="toLowerCase" ret-field="parameters.CONFIRM_PASSWORD"/>
        <call-object-method obj-field="parameters.captcha" method-name="toLowerCase" ret-field="submittedCaptcha"/>
        <script>groovy: context.actualCaptcha = request.getSession().getAttribute("_CAPTCHA_CODE_")?.get("captchaImage")?.toLowerCase()</script>
        <if-compare field="parameters.PASSWORD" value="${parameters.CONFIRM_PASSWORD}" operator="equals">
            <if-compare-field operator="equals" field="submittedCaptcha" to-field="actualCaptcha">

                <!-- Create user login and Person -->
                <find-by-primary-key entity-name="UserLogin" map="userLoginContext" value-field="existingUserLogin"/>
                <if-empty field="existingUserLogin">
                    <set field="userLoginContext.currentPassword" from-field="parameters.PASSWORD"/>
                    <set field="userLoginContext.currentPasswordVerify" from-field="parameters.CONFIRM_PASSWORD"/>
                    <set-service-fields map="personContext" service-name="createPersonAndUserLogin" to-map="personUserLoginContext"/>
                    <set-service-fields map="userLoginContext" service-name="createPersonAndUserLogin" to-map="personUserLoginContext"/>
                    <call-service service-name="createPersonAndUserLogin" in-map-name="personUserLoginContext">
                        <result-to-field result-name="partyId" field="partyId"/>
                        <result-to-field field="createdUserLogin" result-name="newUserLogin"/>
                    </call-service>
                    <set-current-user-login value-field="createdUserLogin"/>
                    <else>
                        <set field="errorMessage" value="${uiLabelMap.PartyUserNameInUse}"/>
                        <field-to-list field="errorMessage" list="error_list"/>
                        <check-errors error-list-name="error_list" error-code="resultPage"/>
                    </else>
                </if-empty>

                <!-- create the PartyDataSource entry to track where this info came from... -->
                <make-value entity-name="PartyDataSource" value-field="partyDataSource"/>
                <set value="MY_PORTAL" field="partyDataSource.dataSourceId"/>
                <set from-field="nowStamp" field="partyDataSource.fromDate"/>
                <set value="Y" field="partyDataSource.isCreate"/>
                <set from-field="partyId" field="partyDataSource.partyId"/>
                <session-to-field field="visit"/>
                <set from-field="visit.visitId" field="partyDataSource.visitId"/>
                <create-value value-field="partyDataSource"/>

                <!-- Create E-mail address -->
                <set field="emailContext.emailAddress" from-field="parameters.USER_EMAIL"/>
                <call-service service-name="createPartyEmailAddress" in-map-name="emailContext">
                    <result-to-field result-name="contactMechId" field="emailPurposeContext.contactMechId"/>
                </call-service>
                <set from-field="partyId" field="emailPurposeContext.partyId"/>
                <set value="PRIMARY_EMAIL" field="emailPurposeContext.contactMechPurposeTypeId"/>
                <call-service service-name="createPartyContactMechPurpose" in-map-name="emailPurposeContext"/>

                <!-- Send e-mail to new create user -->
                <entity-one entity-name="WebSite" value-field="webSite"/>
                <set field="storeEmailLookup.emailTemplateSettingId" value="PARTY_REGISTER"/>
                <find-by-primary-key map="storeEmailLookup" entity-name="EmailTemplateSetting"  value-field="storeEmail"/>
                <if-not-empty field="storeEmail">
                    <get-related-one value-field="createdUserLogin" relation-name="Person" to-value-field="person"/>
                    <set field="bodyParameters.person" from-field="person"/>
                    <set field="emailParams.bodyParameters" from-field="bodyParameters"/>
                    <set field="emailParams.sendTo" from-field="emailContext.emailAddress"/>
                    <set field="emailParams.subject" from-field="storeEmail.subject"/>
                    <set field="emailParams.sendFrom" from-field="storeEmail.fromAddress"/>
                    <set field="emailParams.sendCc" from-field="storeEmail.ccAddress"/>
                    <set field="emailParams.sendBcc" from-field="storeEmail.bccAddress"/>
                    <set field="emailParams.contentType" from-field="storeEmail.contentType"/>
                    <set field="emailParams.bodyScreenUri" from-field="storeEmail.bodyScreenLocation"/>
                    <set field="emailParams.webSiteId" from-field="webSite.webSiteId"/>
                    <set field="emailParams.emailType" from-field="storeEmail.emailType"/>
                    <call-service service-name="sendMailFromScreen" in-map-name="emailParams"/>
                    <else>
                        <log level="error" message="Email template ${storeEmailLookup.emailTemplateSettingId} not found in entity EmailTemplateSetting, no confirmation email sent"></log>
                    </else>
                </if-not-empty>
                
                <!-- Create Customer Request to show new registration-->
                <set field="custRequest.custRequestTypeId" value="RF_SUPPORT"/>
                <set field="custRequest.fromPartyId" from-field="partyId"/>
                <set field="custRequest.custRequestName" value="New user account created by registration"/>
                <set field="custRequest.productStoreId" from-field="webSite.productStoreId"/>
                <set field="custRequest.statusId" value="CRQ_SUBMITTED"/>
                <call-service service-name="createCustRequest" in-map-name="custRequest">
                    <result-to-field result-name="custRequestId"/>
                </call-service>
                <set field="custRequestItem.custRequestId" from-field="custRequestId"/>
                <set field="custRequestItem.story" from-field="parameters.whyWouldYouLikeToRegister"/>
                <call-service service-name="createCustRequestItem" in-map-name="custRequestItem"/>    
                <!-- set field to request -->
                <field-to-request field="partyId" request-name="partyId"/>
                <field-to-request field="emailPurposeContext.contactMechId" request-name="contactMechId"/>
                <return response-code="resultPage"/>
                <else>
                    <property-to-field field="errorMessage" resource="MyPortalUiLabels" property="MyPortalCaptchaMissingError"/><field-to-list field="errorMessage" list="error_list"/>
                </else>
            </if-compare-field>
            <else>
                <property-to-field field="errorMessage" resource="PartyUiLabels" property="PartyPasswordMatchError"/><field-to-list field="errorMessage" list="error_list"/>
            </else>
        </if-compare>
        <check-errors error-list-name="error_list" error-code="resultPage"/>
    </simple-method>
</simple-methods>
