<?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.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="https://ofbiz.apache.org/dtds/services.xsd">
    <description>Human Resources Services</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>
    <!-- Ability Group -->
    <service name="createPartyQual" engine="entity-auto" default-entity-name="PartyQual" invoke="create" auth="true">
        <description>Create a Party Qualification entry</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <attribute name="partyId" mode="IN" type="String">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingPartyId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute name="partyQualTypeId" mode="IN" type="String">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingPartyQualTypeId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute name="fromDate" mode="INOUT" type="Timestamp" optional="true"/>
    </service>

    <service name="updatePartyQual" engine="entity-auto" default-entity-name="PartyQual" invoke="update" auth="true">
        <description>Update Qualification of Party</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePartyQual" engine="entity-auto" default-entity-name="PartyQual" invoke="delete" auth="true">
        <description>Delete Qualification of Party</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPartyResume" engine="entity-auto" default-entity-name="PartyResume" invoke="create" auth="true">
        <description>Create Resume for a Party</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="updatePartyResume" engine="entity-auto" default-entity-name="PartyResume" invoke="update" auth="true">
        <description>Update a Resume of Party</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePartyResume" engine="entity-auto" default-entity-name="PartyResume" invoke="delete" auth="true">
        <description>Delete a Resume of Party</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPartySkill" engine="entity-auto" default-entity-name="PartySkill" invoke="create" auth="true">
        <description>Create Skill for a Party</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="updatePartySkill" engine="entity-auto" default-entity-name="PartySkill" invoke="update" auth="true">
        <description>Update a PartySkill</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePartySkill" engine="entity-auto" default-entity-name="PartySkill" invoke="delete" auth="true">
        <description>Delete a PartySkill</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPerfReview" engine="entity-auto" default-entity-name="PerfReview" invoke="create" auth="true">
        <description>Create an Performance Review</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <attribute mode="IN" type="String" name="perfReviewId" optional="true"/>
        <attribute mode="OUT" type="String" name="perfReviewId" optional="false">
            <type-validate>
                <fail-property property="NoPrefReviewId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute mode="INOUT" type="String" name="employeePartyId" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingEmployeePartyId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute mode="INOUT" type="String" name="employeeRoleTypeId" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingEmployeeRoleTypeId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
    </service>

    <service name="updatePerfReview" engine="entity-auto" default-entity-name="PerfReview" invoke="update" auth="true">
        <description>Update a Performance Review</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePerfReview" engine="entity-auto" default-entity-name="PerfReview" invoke="delete" auth="true">
        <description>Delete a Performance Review</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPerfReviewItem" engine="entity-auto" default-entity-name="PerfReviewItem" invoke="create" auth="true">
        <description>Create Performance Review Item</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <attribute mode="IN" type="String" name="employeePartyId" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingEmployeePartyId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute mode="IN" type="String" name="employeeRoleTypeId" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingEmployeeRoleTypeId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute mode="IN" type="String" name="perfReviewId" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingPrefReviewID" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute mode="OUT" type="String" name="perfReviewItemSeqId" optional="false"/>
    </service>

    <service name="updatePerfReviewItem" engine="entity-auto" default-entity-name="PerfReviewItem" invoke="update" auth="true">
        <description>Update a Performance Review Item</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePerfReviewItem" engine="entity-auto" default-entity-name="PerfReviewItem" invoke="delete" auth="true">
        <description>Delete a Performance Review Item</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPerformanceNote" engine="entity-auto" default-entity-name="PerformanceNote" invoke="create" auth="true">
        <description>Create Performance Note</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updatePerformanceNote" engine="entity-auto" default-entity-name="PerformanceNote" invoke="update" auth="true">
        <description>Update a Performance Note</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePerformanceNote" engine="entity-auto" default-entity-name="PerformanceNote" invoke="delete" auth="true">
        <description>Delete a Performance Note</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- Employment Group -->
    <service name="createEmployment" engine="simple" default-entity-name="Employment"
             location="component://humanres/minilang/HumanResServices.xml" invoke="createEmployment" auth="true">
        <description>Create Employment and first record in PayHistory</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <!-- For PayHistory -->
        <attribute name="amount" mode="IN" type="BigDecimal" optional="true"/>
        <attribute name="payGradeId" mode="IN" type="String" optional="true"/>
        <attribute name="salaryStepSeqId" mode="IN" type="String" optional="true"/>
        <attribute name="periodTypeId" mode="IN" type="String" optional="true"/>
        <attribute name="comments" mode="IN" type="String" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updateEmployment" engine="entity-auto" default-entity-name="Employment" invoke="update" auth="true">
        <description>Update an Employment</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deleteEmployment" engine="entity-auto" default-entity-name="Employment" invoke="delete" auth="true">
        <description>Delete an Employment</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createEmploymentApp" engine="entity-auto" default-entity-name="EmploymentApp" invoke="create" auth="true">
        <description>Create an Employment Application</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="updateEmploymentApp" engine="entity-auto" default-entity-name="EmploymentApp" invoke="update" auth="true">
        <description>Update an Employment Application</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deleteEmploymentApp" engine="entity-auto" default-entity-name="EmploymentApp" invoke="delete" auth="true">
        <description>Delete an Employment Application</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPartyBenefit" engine="entity-auto" default-entity-name="PartyBenefit" invoke="create" auth="true">
        <description>Create Party Benefit</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updatePartyBenefit" engine="entity-auto" default-entity-name="PartyBenefit" invoke="update" auth="true">
        <description>Update Party Benefit</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePartyBenefit" engine="entity-auto" default-entity-name="PartyBenefit" invoke="delete" auth="true">
        <description>Delete Party Benefit</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPayGrade" engine="entity-auto" default-entity-name="PayGrade" invoke="create" auth="true">
        <description>Create a Pay Grade</description>
        <!-- permission-service service-name="humanResManagerPermission" main-action="CREATE"/> -->
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="payGradeName" optional="false"/>
    </service>

    <service name="updatePayGrade" engine="entity-auto" default-entity-name="PayGrade" invoke="update" auth="true">
        <description>Update a Pay Grade</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="payGradeName" optional="false"/>
    </service>

    <service name="deletePayGrade" engine="entity-auto" default-entity-name="PayGrade" invoke="delete" auth="true">
        <description>Delete a Pay Grade</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPayHistory" engine="entity-auto" default-entity-name="PayHistory" invoke="create" auth="true">
        <description>Create Pay History</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updatePayHistory" engine="simple" default-entity-name="PayHistory"
             location="component://humanres/minilang/HumanResServices.xml" invoke="updatePayHistory" auth="true">
        <description>Update Pay History</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <attribute name="changeDate" mode="IN" type="Timestamp" optional="true"/>
        <attribute name="fromDate" mode="OUT" type="Timestamp"/>
    </service>

    <service name="deletePayHistory" engine="entity-auto" default-entity-name="PayHistory" invoke="delete" auth="true">
        <description>Delete Pay History</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>
    <service name="expirePayHistory" engine="entity-auto" default-entity-name="PayHistory" invoke="expire" auth="true">
        <description>Expire Pay History</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createPayrollPreference" engine="entity-auto" default-entity-name="PayrollPreference" invoke="create" auth="true">
        <description>Create Payroll Preference</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <!-- <attribute name="payrollPreferenceSeqId" mode="OUT" type="String" optional="false"/> -->
        <override type="String" mode="IN" name="payrollPreferenceSeqId" optional="true"/>
    </service>

    <service name="updatePayrollPreference" engine="entity-auto" default-entity-name="PayrollPreference" invoke="update" auth="true">
        <description>Update Payroll Preference</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deletePayrollPreference" engine="entity-auto" default-entity-name="PayrollPreference" invoke="delete" auth="true">
        <description>Delete Payroll Preference</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- SalaryStep services -->
    <service name="createSalaryStep" engine="entity-auto" default-entity-name="SalaryStep" invoke="create" auth="true">
        <description>Create Salary Step</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="String" mode="IN" name="salaryStepSeqId" optional="true"/>
    </service>
    <service name="updateSalaryStep" engine="entity-auto" default-entity-name="SalaryStep" invoke="update" auth="true">
        <description>Update Salary Step</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deleteSalaryStep" engine="entity-auto" default-entity-name="SalaryStep" invoke="delete" auth="true">
        <description>Delete Salary Step</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- TerminationReason services -->
    <service name="createTerminationReason" engine="entity-auto" default-entity-name="TerminationReason" invoke="create" auth="true">
        <description>Create an Termination Reason</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="updateTerminationReason" engine="entity-auto" default-entity-name="TerminationReason" invoke="update" auth="true">
        <description>Update an Termination Reason</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="deleteTerminationReason" engine="entity-auto" default-entity-name="TerminationReason" invoke="delete" auth="true">
        <description>Delete an Termination Reason</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- UnemploymentClaim services -->
    <service name="createUnemploymentClaim" engine="entity-auto" default-entity-name="UnemploymentClaim" invoke="create" auth="true">
        <description>Create an Unemployment Claim</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updateUnemploymentClaim" engine="entity-auto" default-entity-name="UnemploymentClaim" invoke="update" auth="true">
        <description>Update an Unemployment Claim</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deleteUnemploymentClaim" engine="entity-auto" default-entity-name="UnemploymentClaim" invoke="delete" auth="true">
        <description>Delete an Unemployment Claim</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- Position Group -->
    <service name="createEmplPosition" engine="entity-auto" default-entity-name="EmplPosition" invoke="create" auth="true">
        <description>Create an Employee Position</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="updateEmplPosition" engine="entity-auto" default-entity-name="EmplPosition" invoke="update" auth="true">
        <description>Update an Employee Position</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deleteEmplPosition" engine="entity-auto" default-entity-name="EmplPosition" invoke="delete" auth="true">
        <description>Delete an Employee Position</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createEmplPositionFulfillment" engine="entity-auto" default-entity-name="EmplPositionFulfillment" invoke="create" auth="true">
        <description>Create Employee Position Fulfillment</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updateEmplPositionFulfillment" engine="entity-auto" default-entity-name="EmplPositionFulfillment" invoke="update" auth="true">
        <description>Update Employee Position Fulfillment</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deleteEmplPositionFulfillment" engine="entity-auto" default-entity-name="EmplPositionFulfillment" invoke="delete" auth="true">
        <description>Delete Employee Position Fulfillment</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createEmplPositionReportingStruct" engine="simple" default-entity-name="EmplPositionReportingStruct"
             location="component://humanres/minilang/HumanResServices.xml" invoke="createEmplPositionReportingStruct" auth="true">
        <description>Create Employee Position Reporting Structure</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updateEmplPositionReportingStruct" engine="entity-auto" default-entity-name="EmplPositionReportingStruct" invoke="update" auth="true">
        <description>Update Employee Position Reporting Structure</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deleteEmplPositionReportingStruct" engine="entity-auto" default-entity-name="EmplPositionReportingStruct" invoke="delete" auth="true">
        <description>Delete Employee Position Reporting Structure</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createEmplPositionResponsibility" engine="entity-auto" default-entity-name="EmplPositionResponsibility" invoke="create" auth="true">
        <description>Create Employee Position Responsibility</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updateEmplPositionResponsibility" engine="entity-auto" default-entity-name="EmplPositionResponsibility" invoke="update" auth="true">
        <description>Update Employee Position Responsibility</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deleteEmplPositionResponsibility" engine="entity-auto" default-entity-name="EmplPositionResponsibility" invoke="delete" auth="true">
        <description>Delete Employee Position Responsibility</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createValidResponsibility" engine="entity-auto" default-entity-name="ValidResponsibility" invoke="create" auth="true">
        <description>Create Valid Responsibility</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override type="Timestamp" mode="IN" name="fromDate" optional="true"/>
    </service>

    <service name="updateValidResponsibility" engine="entity-auto" default-entity-name="ValidResponsibility" invoke="update" auth="true">
        <description>Update Valid Responsibility</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="deleteValidResponsibility" engine="entity-auto" default-entity-name="ValidResponsibility" invoke="delete" auth="true">
        <description>Delete Valid Responsibility</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="humanResManagerPermission" engine="simple"
        location="component://humanres/minilang/permission/HumanResPermissionServices.xml" invoke="humanResManagerPermission" auth="true">
        <implements service="permissionInterface"/>
    </service>

    <service name="createSkillType" engine="entity-auto" default-entity-name="SkillType" invoke="create" auth="true">
        <description>Create Valid SkillType</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>

    <service name="updateSkillType" engine="entity-auto" default-entity-name="SkillType" invoke="update" auth="true">
        <description>Update Valid SkillType</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="deleteSkillType" engine="entity-auto" default-entity-name="SkillType" invoke="delete" auth="true">
        <description>Delete Valid SkillType</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>
    <service name="createEmployee" engine="simple"
        location="component://humanres/minilang/HumanResServices.xml" invoke="createEmployee">
        <description>Create an Employee its role and contact details</description>
        <auto-attributes entity-name="Person" mode="IN" optional="true">
            <exclude field-name="partyId"/>
        </auto-attributes>
        <auto-attributes entity-name="PostalAddress" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <auto-attributes entity-name="TelecomNumber" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <attribute name="emailAddress" type="String" mode="IN" optional="true"/>
        <attribute name="fromDate" type="String" mode="IN" optional="true"/>
        <attribute name="postalAddContactMechPurpTypeId" type="String" mode="IN" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingPostalAddContactMechPurpTypeId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute name="partyId" type="String" mode="OUT"/>
    </service>

    <service name="createResponsibilityType" default-entity-name="ResponsibilityType" engine="entity-auto" invoke="create" auth="true">
        <description>Create Valid ResponsibilityType</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes include="pk" mode="INOUT" optional="true"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="updateResponsibilityType" default-entity-name="ResponsibilityType" engine="entity-auto" invoke="update" auth="true">
        <description>Update Valid ResponsibilityType</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="deleteResponsibilityType" default-entity-name="ResponsibilityType" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete Valid ResponsibilityTrype</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <service name="createTerminationType" engine="entity-auto" default-entity-name="TerminationType" invoke="create" auth="true">
        <description>Create Valid TerminationType</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>

    <service name="updateTerminationType" engine="entity-auto" default-entity-name="TerminationType" invoke="update" auth="true">
        <description>Update Valid TerminationType</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="deleteTerminationType" engine="entity-auto" default-entity-name="TerminationType" invoke="delete" auth="true">
        <description>Delete Valid TerminationType</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- EmplPositionType services -->
    <service name="createEmplPositionType" engine="entity-auto" default-entity-name="EmplPositionType" invoke="create" auth="true">
        <description>Create Valid PositionType</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="updateEmplPositionType" engine="entity-auto" default-entity-name="EmplPositionType" invoke="update" auth="true">
        <description>Update Valid PositionType</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="deleteEmplPositionType" engine="entity-auto" default-entity-name="EmplPositionType" invoke="delete" auth="true">
        <description>Delete EmplPositionType</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="updateEmplPositionTypeRate" engine="simple" default-entity-name="EmplPositionTypeRate"
             location="component://humanres/minilang/HumanResServices.xml" invoke="updateEmplPositionTypeRate" auth="true">
        <description>Update Valid EmplPositionTypeRate</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <attribute name="rateAmount" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="rateCurrencyUomId" type="String" mode="IN" optional="true"/>
        <attribute name="periodTypeId" type="String" mode="IN">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingPeriodTypeId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <override name="fromDate" optional="true"/>
    </service>

    <service name="deleteEmplPositionTypeRate" engine="simple" default-entity-name="EmplPositionTypeRate"
             location="component://humanres/minilang/HumanResServices.xml" invoke="deleteEmplPositionTypeRate" auth="true">
        <description>Delete Valid EmplPositionTypeRate</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <attribute name="rateAmountFromDate" type="Timestamp" mode="IN" optional="true"/><!-- to be able to expire rateamount specific to a party records....-->
        <attribute name="periodTypeId" type="String" mode="IN" optional="true"/>
    </service>

    <!-- AgreementEmploymentAppl services -->
    <service name="createAgreementEmploymentAppl" engine="entity-auto" default-entity-name="AgreementEmploymentAppl" invoke="create" auth="true">
        <description>Create Agreement Employment Appl</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updateAgreementEmploymentAppl" engine="entity-auto" default-entity-name="AgreementEmploymentAppl" invoke="update" auth="true">
        <description>Update Valid AgreementEmploymentAppl</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deleteAgreementEmploymentAppl" engine="entity-auto" default-entity-name="AgreementEmploymentAppl" invoke="delete" auth="true">
        <description>Delete AgreementEmploymentAppl</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- EmplLeave services -->
    <service name="createEmplLeave" engine="entity-auto" default-entity-name="EmplLeave" invoke="create" auth="true">
        <description>Create Employee Leave</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="approverPartyId" optional="false"/>
        <override name="thruDate" optional="false"/>
    </service>
    <service name="updateEmplLeave" engine="entity-auto" default-entity-name="EmplLeave" invoke="update" auth="true">
        <description>Update Valid Employee Leave</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="approverPartyId" optional="false"/>
        <override name="thruDate" optional="false"/>
    </service>
    <service name="deleteEmplLeave" engine="entity-auto" default-entity-name="EmplLeave" invoke="delete" auth="true">
        <description>Delete AgreementEmploymentAppl</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- EmplLeaveType services -->
    <service name="createEmplLeaveType" engine="entity-auto" default-entity-name="EmplLeaveType" invoke="create" auth="true">
        <description>Create Valid LeaveType</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="updateEmplLeaveType" engine="entity-auto" default-entity-name="EmplLeaveType" invoke="update" auth="true">
        <description>Update Valid LeaveType</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>
    <service name="deleteEmplLeaveType" engine="entity-auto" default-entity-name="EmplLeaveType" invoke="delete" auth="true">
        <description>Delete Valid LeaveType</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="getCurrentPartyEmploymentData" engine="simple"
        location="component://humanres/minilang/HumanResServices.xml" invoke="getCurrentPartyEmploymentData" auth="true">
        <description>Delete Valid LeaveType</description>
        <permission-service service-name="humanResManagerPermission" main-action="VIEW"/>
        <attribute name="partyId" type="String" mode="IN">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingPartyId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute name="partyBenefitTypes" type="java.util.List" mode="OUT" optional="true"/>
        <attribute name="employment" type="org.apache.ofbiz.entity.GenericValue" mode="OUT" optional="true"/>
        <attribute name="emplPosition" type="org.apache.ofbiz.entity.GenericValue" mode="OUT" optional="true"/>
        <attribute name="emplPositionType" type="org.apache.ofbiz.entity.GenericValue" mode="OUT" optional="true"/>
        <attribute name="emplPositionRateType" type="org.apache.ofbiz.entity.GenericValue" mode="OUT" optional="true"/>
        <attribute name="emplPositionRateAmount" type="org.apache.ofbiz.entity.GenericValue" mode="OUT" optional="true"/>
    </service>

    <service name="createJobRequisition" engine="entity-auto" default-entity-name="JobRequisition" invoke="create" auth="true">
        <description>Create a new Job Requisition</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" entity-name="JobRequisition" include="pk" optional="true"/>
        <auto-attributes mode="IN" entity-name="JobRequisition" include="nonpk" optional="true"/>
        <override name="noOfResources" optional="false"/>
        <override name="qualification" optional="false"/>
        <override name="jobLocation" optional="false"/>
        <override name="skillTypeId" optional="false"/>
        <override name="experienceMonths" optional="false"/>
        <override name="experienceYears" optional="false"/>
    </service>

    <service name="updateJobRequisition" engine="entity-auto" default-entity-name="JobRequisition" invoke="update" auth="true">
        <description>Update Job Requisition</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="noOfResources" optional="false"/>
        <override name="jobLocation" optional="false"/>
        <override name="skillTypeId" optional="false"/>
        <override name="experienceMonths" optional="false"/>
        <override name="experienceYears" optional="false"/>
    </service>

    <service name="deleteJobRequisition" engine="entity-auto" default-entity-name="JobRequisition" invoke="delete" auth="true">
        <description>Delete a Job Requisition</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createInternalJobPosting" engine="entity-auto" default-entity-name="EmploymentApp" invoke="create" auth="true">
        <description>Create a New Internal Job Posting</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" entity-name="EmploymentApp" include="pk" optional="true"/>
        <auto-attributes mode="IN" entity-name="EmploymentApp" include="nonpk" optional="true"/>
        <override name="applyingPartyId" optional="false"/>
        <override name="approverPartyId" optional="false"/>
        <override name="jobRequisitionId" optional="false"/>
    </service>

    <service name="updateInternalJobPosting" engine="entity-auto" default-entity-name="EmploymentApp" invoke="update" auth="true">
        <description>Update Internal Job Posting</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="applyingPartyId" optional="false"/>
        <override name="approverPartyId" optional="false"/>
        <override name="jobRequisitionId" optional="false"/>
    </service>

    <service name="deleteInternalJobPosting" engine="entity-auto" default-entity-name="EmploymentApp" invoke="delete" auth="true">
        <description>Delete an Internal Job Posting</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createJobInterview" engine="entity-auto" default-entity-name="JobInterview" invoke="create" auth="true">
        <description>Create Job Interview</description>
        <auto-attributes mode="INOUT" entity-name="JobInterview" include="pk"  optional="true"/>
        <auto-attributes mode="IN" entity-name="JobInterview" include="nonpk" optional="true"/>
        <override name="jobIntervieweePartyId" optional="false"/>
        <override name="jobRequisitionId" optional="false"/>
        <override name="jobInterviewerPartyId" optional="false"/>
    </service>

    <service name="updateJobInterview" engine="entity-auto" default-entity-name="JobInterview" invoke="update" auth="true">
        <description>Update Job Interview</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="jobIntervieweePartyId" optional="false"/>
        <override name="jobRequisitionId" optional="false"/>
        <override name="jobInterviewTypeId" optional="false"/>
    </service>

    <service name="deleteJobInterview" engine="entity-auto" default-entity-name="JobInterview" invoke="delete" auth="true">
        <description>Delete Job Interview</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createJobInterviewType" engine="entity-auto" default-entity-name="JobInterviewType" invoke="create" auth="true">
        <description>Create a New Interview Type</description>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>

    <service name="updateJobInterviewType" engine="entity-auto" default-entity-name="JobInterviewType" invoke="update" auth="true">
        <description>Update Interview Type</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>

    <service name="deleteJobInterviewType" engine="entity-auto" default-entity-name="JobInterviewType" invoke="delete" auth="true">
        <description>Delete Interview Type</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="updateApprovalStatus" engine="entity-auto" default-entity-name="EmploymentApp" invoke="update" auth="true">
        <description>Update Approval Status</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <service name="updateTrainingStatus" engine="entity-auto" default-entity-name="PersonTraining" invoke="update" auth="true">
        <description>Update Training Status</description>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="reason" optional="false"/>
    </service>

    <service name="applyTraining" engine="simple" default-entity-name="PersonTraining" 
             location="component://humanres/minilang/HumanResServices.xml" invoke="applyTraining" auth="true">
        <description>Create Training Request</description>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="approverId" optional="false"/>
        <override name="trainingClassTypeId" optional="false">
            <type-validate>
                <fail-property resource="HumanResErrorUiLabels.xml" property="HumanResRequiredFieldMissingTrainingClassTypeId"/>
            </type-validate>
        </override>
        <override name="fromDate" optional="true"/>
        <override name="workEffortId" optional="false"/>
    </service>

    <service name="assignTraining" engine="simple" default-entity-name="PersonTraining" 
             location="component://humanres/minilang/HumanResServices.xml" invoke="assignTraining" auth="true">
        <description>Create Training Request</description>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="approverId" optional="false"/>
        <override name="trainingClassTypeId" optional="false">
            <type-validate>
                <fail-property resource="HumanResErrorUiLabels.xml" property="HumanResRequiredFieldMissingTrainingClassTypeId"/>
            </type-validate>
        </override>
    </service>

    <service name="createTrainingTypes" engine="entity-auto" default-entity-name="TrainingClassType" invoke="create" auth="true">
        <description>Create a New Training type</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <attribute name="trainingClassTypeId" mode="IN" type="String" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingTrainingClassTypeId" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
        <attribute name="parentTypeId" mode="IN" type="String" optional="true"/>
        <attribute name="description" mode="IN" type="String" optional="false">
            <type-validate>
                <fail-property property="HRRequiredFieldMissingDescription" resource="HumanResErrorUiLabels"/>
            </type-validate>
        </attribute>
    </service>

    <service name="updateTrainingTypes" engine="entity-auto" default-entity-name="TrainingClassType" invoke="update" auth="true">
        <description>Update a Training Type</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>

    <service name="deleteTrainingTypes" engine="entity-auto" default-entity-name="TrainingClassType" invoke="delete" auth="true">
        <description>Delete a Training Type</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createEmplLeaveReasonType" engine="entity-auto" default-entity-name="EmplLeaveReasonType" invoke="create" auth="true">
        <description>Create Valid Leave Reason Type</description>
        <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>

    <service name="updateEmplLeaveReasonType" engine="entity-auto" default-entity-name="EmplLeaveReasonType" invoke="update" auth="true">
        <description>Update Valid Leave Reason Type</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" optional="false"/>
    </service>

    <service name="deleteEmplLeaveReasonType" engine="entity-auto" default-entity-name="EmplLeaveReasonType" invoke="delete" auth="true">
        <description>Delete Valid Leave Reason Type</description>
        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="updateEmplLeaveStatus" engine="entity-auto" default-entity-name="EmplLeave" invoke="update" auth="true">
        <description>Update Leave Approval Status</description>
        <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>

    <!-- PartyQualType services -->
    <service name="createPartyQualType" default-entity-name="PartyQualType" engine="entity-auto" invoke="create" auth="true">
        <description>Create a PartyQualType record</description>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updatePartyQualType" default-entity-name="PartyQualType" engine="entity-auto" invoke="update" auth="true">
        <description>Update a PartyQualType record</description>
        <auto-attributes mode="IN" include="pk"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deletePartyQualType" default-entity-name="PartyQualType" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a PartyQualType record</description>
        <auto-attributes mode="IN" include="pk"/>
    </service>

</services>
