<?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="CreateCustRequestAndAssignTaskToPerson" short-description="">
        <set field="parameters.statusId" value="CRQ_ACCEPTED"/><!-- entered by employee, should only enter accepted customer requests -->
        <if-not-empty field="parameters.communicationEventId">
            <set-service-fields service-name="createCustRequestFromCommEvent" map="parameters" to-map="eventCreateCust"/>
            <call-service service-name="createCustRequestFromCommEvent" in-map-name="eventCreateCust">
                <result-to-field result-name="custRequestId"/>
            </call-service>
            <!-- set the status of all participants to complete so not somebody else will also create a customer request -->
            <entity-and entity-name="CommunicationEventRole" list="commRoles">
                <field-map field-name="communicationEventId" from-field="parameters.communicationEventId"/>
            </entity-and>
            <iterate entry="commRole" list="commRoles">
                <set field="commRole.statusId" value="COM_ROLE_COMPLETED"/>
                <store-value value-field="commRole"/>
            </iterate>
            <else>
                <set-service-fields service-name="createCustRequest" map="parameters" to-map="eventCreateCust"/>
                <call-service service-name="createCustRequest" in-map-name="eventCreateCust">
                    <result-to-field result-name="custRequestId"/>
                </call-service>
            </else>
        </if-not-empty>
        <set field="eventMessage" value="Customer request: ${custRequestId} created"/>
        <if-not-empty field="parameters.workEffortParentId">
            <set-service-fields service-name="createWorkEffort" map="parameters" to-map="createTask"/>
            <set field="createTask.custRequestId" from-field="custRequestId"/>
            <set field="createTask.workEffortName" from-field="parameters.custRequestName"/>
            <call-service service-name="createWorkEffort" in-map-name="createTask" >
                <result-to-field result-name="workEffortId" field="workEffortId"/>
            </call-service>
            <set field="eventMessage" value="${eventMessage} and attached to task: ${workEffortId}"/>
            <set field="updCust.statusId" value="CRQ_REVIEWED"/>
            <set field="updCust.custRequestId" from-field="custRequestId"/>
            <call-service service-name="updateCustRequest" in-map-name="updCust"/>
            <if-not-empty field="parameters.partyId">
                <set field="assignParty.workEffortId" from-field="workEffortId"/>
                <set field="assignParty.partyId" from-field="parameters.partyId"/>
                <set field="assignParty.roleTypeId" from-field="parameters.roleTypeId"/>
                <set field="assignParty.statusId" value="PAS_ASSIGNED"/>
                <call-service service-name="assignPartyToWorkEffort" in-map-name="assignParty"/>
                <set field="eventMessage" value="${eventMessage} and assigned to party: ${parameters.partyId}"/>
            </if-not-empty>
        </if-not-empty>
        <set field="_event_message_" from-field="eventMessage"/>
    </simple-method>
    <simple-method method-name="acceptRequestAndConnectToTask" short-description="Accept a customer request and connect to an existing task">
        <entity-one entity-name="WorkEffort" value-field="workEffort"/>
        <if-empty field="workEffort">
            <add-error><fail-property resource="uiLabelMap" property="ProjectMgrErrorTaskNotFound"/></add-error>
        </if-empty>
        <if-compare field="workEffort.currentStatusId" value="PTS_CREATED" operator="not-equals">
            <add-error><fail-property resource="uiLabelMap" property="ProjectMgrErrorTaskStatusWrong"/></add-error>
        </if-compare>
        <entity-one entity-name="CustRequest" value-field="custRequest"/>
        <if-empty field="custRequest">
            <add-error><fail-property resource="uiLabelMap" property="ProjectMgrErrorRequestNotFound"/></add-error>
        </if-empty>
        <if-compare field="custRequest.statusId" value="CRQ_ACCEPTED" operator="not-equals">
            <entity-one entity-name="StatusItem" value-field="status">
                <field-map field-name="statusId" value="custRequest.statusId"/>
            </entity-one>
            <add-error><fail-property resource="uiLabelMap" property="ProjectMgrErrorRequestStatusWrong"/></add-error>
        </if-compare>
        <check-errors/>
        <set field="updCust.statusId" value="CRQ_REVIEWED"/>
        <set field="updCust.custRequestId" from-field="parameters.custRequestId"/>
        <call-service service-name="updateCustRequest" in-map-name="updCust"/>
        <set-service-fields service-name="createWorkEffortRequest" map="parameters" to-map="connectMap"/>
        <call-service service-name="createWorkEffortRequest" in-map-name="connectMap"/>
    </simple-method>
    <simple-method method-name="setTaskStatusToComplete" short-description="Set the task status to complete, if resources assigned that status will also be set to complete">
        <entity-one entity-name="WorkEffort" value-field="workEffort"/>
        <if-empty field="workEffort">
            <add-error><fail-property resource="uiLabelMap" property="ProjectMgrErrorTaskNotFound"/></add-error>
        </if-empty>
        <if-compare field="workEffort.currentStatusId" value="PTS_CREATED" operator="not-equals">
            <add-error><fail-property resource="uiLabelMap" property="ProjectMgrErrorTaskStatusWrong"/></add-error>
        </if-compare>
        <check-errors/>
        <entity-and entity-name="WorkEffortPartyAssignment" list="assigns" filter-by-date="true">
            <field-map field-name="workEffortId" from-field="parameters.workEffortId"/>
        </entity-and>
        <!-- if all assigns are complete the task will be set to complete -->
        <if-not-empty field="assigns">
            <iterate entry="assign" list="assigns">
                <set-service-fields service-name="updateTaskAssigment" map="assign" to-map="upd"/>
                <set field="upd.statusId" value="PAS_COMPLETED"/>
                <call-service service-name="updateTaskAssigment" in-map-name="upd"/>
            </iterate>
            <else>
                <set-service-fields service-name="updateWorkEffort" map="parameters" to-map="upd"/>
                <set field="upd.currentStatusId" value="PTS_COMPLETED"/>
                <call-service service-name="updateWorkEffort" in-map-name="upd"/>
            </else>
        </if-not-empty>
    </simple-method>
    <simple-method method-name="addProjectMgrResource" short-description="make parties available in the project manager.">
        <set-service-fields service-name="createPartyRole" map="parameters" to-map="roleData"/>
        <call-service service-name="createPartyRole" in-map-name="roleData"/>
        <set field="roleData.roleTypeId" value="PROJECT_TEAM"/>
        <call-service service-name="createPartyRole" in-map-name="roleData"/>
    </simple-method>
    <!-- create workEffort content -->
    <simple-method method-name="createWorkEffortContent" short-description="Creates Party Associated Content" login-required="false">
        <call-class-method class-name="org.ofbiz.content.layout.LayoutWorker"
            method-name="uploadImageAndParameters"
            ret-field="formInput">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <string value="dataResourceName"/>
        </call-class-method>
        <if-empty field="formInput.formInput.contentIdTo">
            <set-service-fields service-name="createContentFromUploadedFile" map="formInput.formInput" to-map="inMap"/>
            <set field="inMap._uploadedFile_fileName" from-field="formInput.imageFileName"/>
            <set field="inMap.uploadedFile" from-field="formInput.imageData"/>
            <set field="inMap._uploadedFile_contentType" from-field="formInput.formInput.mimeTypeId"/>
            
            <call-service service-name="createContentFromUploadedFile" in-map-name="inMap">
                <result-to-field result-name="contentId" field="context.contentId"/>
            </call-service>
            <else>
                <set field="context.contentId" from-field="formInput.formInput.contentIdTo"/>
            </else>
        </if-empty>
        <if-empty field="formInput.formInput.workEffortId">
            <if-not-empty field="formInput.formInput.projectId">
                <set field="context.workEffortId" from-field="formInput.formInput.projectId"/>
            </if-not-empty>
            <else>
                <set field="context.workEffortId" from-field="formInput.formInput.workEffortId"/>
            </else>
        </if-empty>
        <set field="context.workEffortContentTypeId" from-field="formInput.formInput.workEffortContentTypeId"/>
        <now-timestamp field="context.fromDate"/>
        <call-map-processor in-map-name="context" out-map-name="workEffortContext">
            <simple-map-processor name="newWorkEffortContent">
                <process field="workEffortContentTypeId"><copy to-field="workEffortContentTypeId"/></process>
                <process field="contentId"><copy to-field="contentId"/></process>
                <process field="workEffortId"><copy to-field="workEffortId"/></process>
                <process field="fromDate"><copy to-field="fromDate"/></process>
            </simple-map-processor>
        </call-map-processor>
        <!-- create WorkEffortContent-->
        <call-service service-name="createWorkEffortContent" in-map-name="workEffortContext">
            <result-to-field result-name="contentId" field="contentId"/>
        </call-service>
        
        <!-- create ContentAssoc-->
        <set field="context.contentAssocTypeId" value="SUB_CONTENT"/>
        <if-not-empty field="formInput.formInput.contentIdFrom">
            <set field="context.contentIdFrom" from-field="formInput.formInput.contentIdFrom"/>
            <call-map-processor in-map-name="context" out-map-name="contentAssocContext">
                <simple-map-processor name="newContentAssoc">
                    <process field="contentIdFrom"><copy to-field="contentId"/></process>
                    <process field="contentIdFrom"><copy to-field="contentIdFrom"/></process>
                    <process field="contentId"><copy to-field="contentIdTo"/></process>
                    <process field="contentAssocTypeId"><copy to-field="contentAssocTypeId"/></process>
                    <process field="fromDate"><copy to-field="fromDate"/></process>
                </simple-map-processor>
            </call-map-processor>
            <entity-and entity-name="ContentAssoc" list="contentAssoList">
                <field-map field-name="contentId" from-field="contentAssocContext.contentId"/>
                <field-map field-name="contentIdTo" from-field="contentAssocContext.contentIdTo"/>
            </entity-and>
            <if-empty field="contentAssonList">
                <call-service service-name="createContentAssoc" in-map-name="contentAssocContext"/>           
            </if-empty>
        </if-not-empty>
        
        <!-- set the partyId in the request -->
        <field-to-request field="context.workEffortId" request-name="workEffortId"/>
        <field-to-request field="context.projectId" request-name="projectId"/>
        <field-to-request field="contentId" request-name="contentId"/>
    </simple-method>

    <!-- Update workEffort content -->
    <simple-method method-name="updateWorkEffortContent" short-description="Update Party Associated Content" login-required="false">
        <call-class-method class-name="org.ofbiz.content.layout.LayoutWorker"
            method-name="uploadImageAndParameters"
            ret-field="formInput">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <string value="dataResourceName"/>
        </call-class-method>
        <entity-one entity-name="Content" value-field="content">
            <field-map field-name="contentId" from-field="formInput.formInput.contentId"/>
        </entity-one>
        <set-service-fields service-name="updateContentAndUploadedFile" map="formInput.formInput" to-map="inMap"/>
        <set field="inMap._uploadedFile_fileName" from-field="formInput.imageFileName"/>
        <set field="inMap.uploadedFile" from-field="formInput.imageData"/>
        <set field="inMap._uploadedFile_contentType" from-field="formInput.formInput.mimeTypeId"/>
        <set field="inMap.contentId" from-field="formInput.formInput.contentId"/>
        <set field="inMap.dataResourceId" from-field="content.dataResourceId"/>
        <call-service service-name="updateContentAndUploadedFile" in-map-name="inMap">
            <result-to-field result-name="contentId" field="context.contentId"/>
        </call-service>
        <if-empty field="formInput.formInput.workEffortId">
            <if-not-empty field="formInput.formInput.projectId">
                <set field="workEffortId" from-field="formInput.formInput.projectId"/>
            </if-not-empty>
            <else>
                <set field="workEffortId" from-field="formInput.formInput.workEffortId"/>
            </else>
        </if-empty>

        <!-- set the partyId in the request -->
        <field-to-request field="workEffortId" request-name="workEffortId"/>
        <field-to-request field="projectId" request-name="projectId"/>
        <field-to-request field="contentId" request-name="context"/>
    </simple-method>
</simple-methods>
