svn commit: r826429 - in /ofbiz/trunk/applications/humanres: config/ data/ entitydef/ script/org/ofbiz/humanres/ servicedef/ webapp/humanres/WEB-INF/ widget/ widget/forms/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r826429 - in /ofbiz/trunk/applications/humanres: config/ data/ entitydef/ script/org/ofbiz/humanres/ servicedef/ webapp/humanres/WEB-INF/ widget/ widget/forms/

jleroux@apache.org
Author: jleroux
Date: Sun Oct 18 13:15:59 2009
New Revision: 826429

URL: http://svn.apache.org/viewvc?rev=826429&view=rev
Log:
A patch from Pradeep Ruhil "HR Leave Enhancement " (https://issues.apache.org/jira/browse/OFBIZ-2938) - OFBIZ-2938
In this patch we are doing enhancement in HumanResource Leave Module. Initially we can only create new leave application for a partyId. But there was not functionality available for approval of leave. So in this patch we have given functionality for Leave approval as well as leave creation.

Modified:
    ofbiz/trunk/applications/humanres/config/HumanResUiLabels.xml
    ofbiz/trunk/applications/humanres/data/HumanResTypeData.xml
    ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml
    ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml
    ofbiz/trunk/applications/humanres/servicedef/services.xml
    ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
    ofbiz/trunk/applications/humanres/widget/EmplLeaveScreens.xml
    ofbiz/trunk/applications/humanres/widget/EmployeeScreens.xml
    ofbiz/trunk/applications/humanres/widget/GlobalHRSettingScreens.xml
    ofbiz/trunk/applications/humanres/widget/LookupScreens.xml
    ofbiz/trunk/applications/humanres/widget/Menus.xml
    ofbiz/trunk/applications/humanres/widget/forms/EmplLeaveForms.xml
    ofbiz/trunk/applications/humanres/widget/forms/EmployeeForms.xml
    ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml
    ofbiz/trunk/applications/humanres/widget/forms/LookupForms.xml

Modified: ofbiz/trunk/applications/humanres/config/HumanResUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/config/HumanResUiLabels.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/config/HumanResUiLabels.xml (original)
+++ ofbiz/trunk/applications/humanres/config/HumanResUiLabels.xml Sun Oct 18 13:15:59 2009
@@ -1873,4 +1873,34 @@
     <property key="PageTitleFindTrainingApprovals">
         <value xml:lang="en">Find Training Approvals</value>
     </property>
+    <property key="HumanResEmplReasonType">
+        <value xml:lang="en">EmplLeave Reason Type</value>
+    </property>
+    <property key="HumanResAddEmplLeaveReasonType">
+        <value xml:lang="en">Add Employee Leave Reason</value>
+    </property>
+    <property key="HumanResLeaveApproval">
+        <value xml:lang="en">Leave Approval</value>
+    </property>
+    <property key="HumanResLookupLeaveApp">
+        <value xml:lang="en">Lookup LeaveApp</value>
+    </property>
+    <property key="HumanResEditLeaveApprovalStatus">
+        <value xml:lang="en">Edit Leave Approval Status</value>
+    </property>
+    <property key="HumanResLeaveStatus">
+        <value xml:lang="en">Current Leave</value>
+    </property>
+    <property key="HumanResEmployeeLeave">
+        <value xml:lang="en">Employee Leave</value>
+    </property>
+    <property key="HumanResEmployeeLeaveType">
+        <value xml:lang="en">Leave Type</value>
+    </property>
+    <property key="HumanResEmployeeType">
+        <value xml:lang="en">Reason Type</value>
+    </property>
+    <property key="PartyApproverId">
+        <value xml:lang="en">Approver Id</value>
+    </property>    
 </resource>

Modified: ofbiz/trunk/applications/humanres/data/HumanResTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/data/HumanResTypeData.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/data/HumanResTypeData.xml (original)
+++ ofbiz/trunk/applications/humanres/data/HumanResTypeData.xml Sun Oct 18 13:15:59 2009
@@ -52,6 +52,10 @@
     <StatusType statusTypeId="TRAINING_STATUS" description="Training Status"/>
     <StatusItem statusId="TRAINING_APPROVED" statusTypeId="TRAINING_STATUS"  description="Approved"/>
     <StatusItem statusId="TRAINING_REJECTED" statusTypeId="TRAINING_STATUS"  description="Rejected"/>
+    
+    <StatusType statusTypeId="LEAVE_STATUS" description="Employee Leave Status"/>
+    <StatusItem statusId="LEAVE_APPROVED" statusTypeId="LEAVE_STATUS"  description="Approved"/>
+    <StatusItem statusId="LEAVE_REJECTED" statusTypeId="LEAVE_STATUS"  description="Rejected"/>
 
     <EmplPositionType description="Programmer" hasTable="N" parentTypeId="" emplPositionTypeId="PROGRAMMER"/>
     <EmplPositionType description="System Administrator" hasTable="N" parentTypeId="" emplPositionTypeId="SYS_ADMIN"/>
@@ -101,8 +105,10 @@
     <TerminationType description="Fired" hasTable="N" parentTypeId="" terminationTypeId="FIRE"/>
     <TerminationType description="Retirement" hasTable="N" parentTypeId="" terminationTypeId="RETIRE"/>
 
-    <EmplLeaveType description="Medical" hasTable="N" parentTypeId="" leaveTypeId="MEDICAL"/>
-    <EmplLeaveType description="Casual" hasTable="N" parentTypeId="" leaveTypeId="CASUAL"/>
+    <EmplLeaveType description="Inland Earned Leave" hasTable="N" parentTypeId="" leaveTypeId="INLAND_EARNED"/>
+    <EmplLeaveType description="Inland Loss of Pay" hasTable="N" parentTypeId="" leaveTypeId="LOSS_OF_PAY"/>
+    <EmplLeaveType description="Inland Restricted Holiday" hasTable="N" parentTypeId="" leaveTypeId="RESTRICTED_HOLIDAY"/>
+    <EmplLeaveType description="Inland Special Day Off" hasTable="N" parentTypeId="" leaveTypeId="SPECIAL_DAY_OFF"/>
 
     <WebSite webSiteId="HR" siteName="Human Resource Manager" visualThemeSetId="BACKOFFICE"/>
         
@@ -142,5 +148,8 @@
     <Enumeration description="Written Aptitude Exam" enumCode="WRITTEN_APT" enumId="EXAM_WRITTEN_APT" sequenceId="01" enumTypeId="EXAM_TYPE"/>
     <Enumeration description="Technical Exam" enumCode="TECHNICAL" enumId="EXAM_TECHNICAL" sequenceId="02" enumTypeId="EXAM_TYPE"/>
     <Enumeration description="Group Discussion" enumCode="GROUP_DISCN" enumId="EXAM_GROUP_DISCN" sequenceId="03" enumTypeId="EXAM_TYPE"/>
+    
+    <EmplLeaveReasonType description="Medical" hasTable="N" parentTypeId="" reasonTypeId="Fever"/>
+    <EmplLeaveReasonType description="Casual" hasTable="N" parentTypeId="" reasonTypeId="Personal Work"/>
 
 </entity-engine-xml>

Modified: ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml Sun Oct 18 13:15:59 2009
@@ -430,21 +430,26 @@
     <entity entity-name="EmplLeave"
             package-name="org.ofbiz.humanres.employment"
             title="Employee Leave Entity">
+        <field name="leaveApplicationId" type="id-ne"/>
         <field name="partyId" type="id-ne"/>
         <field name="leaveTypeId" type="id-ne"/>
+        <field name="reasonTypeId" type="id-ne"/>
         <field name="fromDate" type="date-time"/>
         <field name="thruDate" type="date-time"/>
+        <field name="approverId" type="id-ne"/>
+       <field name="approvalStatus" type="short-varchar"/>
         <field name="description" type="description"/>
-        <prim-key field="partyId"/>
-        <prim-key field="leaveTypeId"/>
-        <prim-key field="fromDate"/>
-        <relation type="one" fk-name="EMPL_LEAVE_PRTY" rel-entity-name="Party">
+        <prim-key field="leaveApplicationId"/>
+        <relation type="one-nofk" fk-name="EMPL_LEAVE_PRTY" rel-entity-name="Party">
             <key-map field-name="partyId"/>
         </relation>
         <relation type="one" fk-name="EMPL_LEAVE_ELETP" rel-entity-name="EmplLeaveType">
             <key-map field-name="leaveTypeId"/>
         </relation>
-    </entity>
+        <relation type="one-nofk" fk-name="EMPL_LEAVE_APPR" title="Approver" rel-entity-name="Party">
+            <key-map field-name="approverId" rel-field-name="partyId"/>
+    </relation>
+ </entity>
     <entity entity-name="EmplLeaveType"
             package-name="org.ofbiz.humanres.employment"
             title="Employee Leave Type Entity">
@@ -934,4 +939,16 @@
         <field name="trainingRequestId" type="id-ne"></field>
         <prim-key field="trainingRequestId"/>
     </entity>
+    <entity entity-name="EmplLeaveReasonType"
+            package-name="org.ofbiz.humanres.employment"
+            title="Leave Reason Type Entity">
+        <field name="reasonTypeId" type="id-ne"/>
+        <field name="parentTypeId" type="id-ne"/>
+        <field name="hasTable" type="indicator"/>
+        <field name="description" type="description"/>
+        <prim-key field="reasonTypeId"/>
+        <relation type="one" fk-name="EMPL_REASON_TPAR" title="Parent" rel-entity-name="EmplLeaveReasonType">
+            <key-map field-name="parentTypeId" rel-field-name="reasonTypeId"/>
+        </relation>
+     </entity>
 </entitymodel>

Modified: ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml (original)
+++ ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml Sun Oct 18 13:15:59 2009
@@ -648,10 +648,13 @@
         <entity-one entity-name="AgreementEmploymentAppl" value-field="agreementEmploymentAppl"/>
         <remove-value value-field="agreementEmploymentAppl"/>
     </simple-method>
-        <simple-method method-name="createEmplLeave" short-description="Create Employee Leave">
+    
+    <simple-method method-name="createEmplLeave" short-description="Create Employee Leave">
         <make-value entity-name="EmplLeave" value-field="newEntity"/>
         <set-pk-fields value-field="newEntity" map="parameters"/>
         <set-nonpk-fields value-field="newEntity" map="parameters"/>
+        <sequenced-id sequence-name="EmplLeave" field="newEntity.leaveApplicationId"/>
+        <field-to-result field="newEntity.leaveApplicationId" result-name="leaveApplicationId"/>
         <create-value value-field="newEntity"/>
         <check-errors/>
     </simple-method>
@@ -662,6 +665,11 @@
         <store-value value-field="lookedUpValue"/>
     </simple-method>
 
+    <simple-method method-name="deleteEmplLeave" short-description="Delete Employee Leave">
+        <entity-one entity-name="EmplLeave" value-field="emplLeave"/>
+        <remove-value value-field="emplLeave"/>
+    </simple-method>
+    
     <simple-method method-name="createEmplLeaveType" short-description="Create a LeaveType">
         <make-value entity-name="EmplLeaveType" value-field="newEntity"/>
         <set-pk-fields map="parameters" value-field="newEntity"/>
@@ -863,4 +871,32 @@
         <remove-value value-field="lookedUpValue"/>
     </simple-method>
     
+    <simple-method method-name="createEmplLeaveReasonType" short-description="Create a Leave Reason Type">
+        <make-value entity-name="EmplLeaveReasonType" value-field="newEntity"/>
+        <set-pk-fields map="parameters" value-field="newEntity"/>
+        <set-nonpk-fields map="parameters" value-field="newEntity"/>
+        <if-empty field="newEntity.reasonTypeId">
+            <sequenced-id sequence-name="EmplLeaveReasonType" field="newEntity.reasonTypeId"/>
+        </if-empty>
+        <field-to-result field="newEntity.reasonTypeId" result-name="reasonTypeId"/>
+        <create-value value-field="newEntity"/>
+    </simple-method>
+    
+    <simple-method method-name="updateEmplLeaveReasonType" short-description="Update leave Reason Type">
+        <entity-one entity-name="EmplLeaveReasonType" value-field="lookedUpValue"/>
+        <set-nonpk-fields value-field="lookedUpValue" map="parameters"/>
+        <store-value value-field="lookedUpValue"/>
+    </simple-method>
+    
+    <simple-method method-name="deleteEmplLeaveReasonType" short-description="Delete leave Reason Type">
+        <entity-one entity-name="EmplLeaveReasonType" value-field="lookedUpValue"/>
+        <remove-value value-field="lookedUpValue"/>
+    </simple-method>
+    
+    <simple-method method-name="updateLeaveApprovalStatus" short-description="Update Leave Approval Status">
+        <entity-one entity-name="EmplLeave" value-field="lookedUpValue"/>
+        <set-nonpk-fields value-field="lookedUpValue" map="parameters"/>
+        <store-value value-field="lookedUpValue"/>
+    </simple-method>
+    
 </simple-methods>

Modified: ofbiz/trunk/applications/humanres/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/servicedef/services.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/humanres/servicedef/services.xml Sun Oct 18 13:15:59 2009
@@ -664,12 +664,18 @@
         <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
         <auto-attributes mode="IN" include="pk" optional="false"/>
     </service>
+    
     <service name="createEmplLeave" engine="simple" default-entity-name="EmplLeave"
              location="component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" invoke="createEmplLeave" 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="INOUT" include="pk" optional="true"/>
         <auto-attributes mode="IN" include="nonpk" optional="true"/>
+        <override name="approverId" optional="false"/>
+        <override name="partyId" optional="false"/>
+        <override name="leaveTypeId" optional="false"/>
+        <override name="fromDate" optional="false"/>
+        <override name="thruDate" optional="false"/>
     </service>
 
     <service name="updateEmplLeave" engine="simple" default-entity-name="EmplLeave"
@@ -678,8 +684,20 @@
         <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="approverId" optional="false"/>
+        <override name="partyId" optional="false"/>
+        <override name="leaveTypeId" optional="false"/>
+        <override name="fromDate" optional="false"/>
+        <override name="thruDate" optional="false"/>
     </service>
 
+    <service name="deleteEmplLeave" engine="simple" default-entity-name="EmplLeave"
+             location="component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" invoke="deleteEmplLeave" auth="true">
+        <description>Delete AgreementEmploymentAppl</description>
+        <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
+        <auto-attributes mode="IN" include="pk" optional="false"/>
+    </service>
+    
     <service name="createEmplLeaveType" engine="simple" default-entity-name="EmplLeaveType"
              location="component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" invoke="createEmplLeaveType" auth="true">
         <description>Create Valid LeaveType</description>
@@ -892,5 +910,38 @@
         <permission-service service-name="humanResManagerPermission" main-action="DELETE"/>
         <auto-attributes mode="IN" include="pk" optional="false"/>
     </service>
-
+    
+    <service name="createEmplLeaveReasonType" engine="simple" default-entity-name="EmplLeaveReasonType"
+             location="component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" invoke="createEmplLeaveReasonType" 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="simple" default-entity-name="EmplLeaveReasonType"
+             location="component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" invoke="updateEmplLeaveReasonType" 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="simple" default-entity-name="EmplLeaveReasonType"
+        location="component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" invoke="deleteEmplLeaveReasonType" 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="updateLeaveApprovalStatus" engine="simple" default-entity-name="EmplLeave"
+            location="component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" invoke="updateLeaveApprovalStatus" 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>
+    
 </services>

Modified: ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml Sun Oct 18 13:15:59 2009
@@ -396,9 +396,15 @@
         <security https="true" auth="true"/>
         <response name="success" type="view" value="NewEmplLeave"/>
     </request-map>
-    <request-map uri="EditEmplLeaves">
+    <request-map uri="EditEmplLeave">
         <security https="true" auth="true"/>
-        <response name="success" type="view" value="EditEmplLeaves"/>
+        <response name="success" type="view" value="EditEmplLeave"/>
+    </request-map>
+    <request-map uri="deleteEmplLeave">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="deleteEmplLeave"/>
+        <response name="success" type="view" value="FindEmplLeaves"/>
+        <response name="error" type="view" value="FindEmplLeaves"/>
     </request-map>
     <request-map uri="EditEmplLeaveTypes">
         <security https="true" auth="true"/>
@@ -821,14 +827,14 @@
     <request-map uri="createEmplLeaveExt">
         <security https="true" auth="true"/>
         <event type="service" invoke="createEmplLeave"/>
-        <response name="success" type="view" value="EditEmplLeaves"/>
-        <response name="error" type="view" value="EditEmplLeaves"/>
+        <response name="success" type="view" value="EditEmplLeave"/>
+        <response name="error" type="view" value="EditEmplLeave"/>
     </request-map>
     <request-map uri="updateEmplLeaveExt">
         <security https="true" auth="true"/>
-        <event type="service-multi" invoke="updateEmplLeave"/>
-        <response name="success" type="view" value="EditEmplLeaves"/>
-        <response name="error" type="view" value="EditEmplLeaves"/>
+        <event type="service" invoke="updateEmplLeave"/>
+        <response name="success" type="view" value="EditEmplLeave"/>
+        <response name="error" type="view" value="EditEmplLeave"/>
     </request-map>
 
     <!--====================Recruitment Requests===================================-->
@@ -1020,6 +1026,42 @@
         <security auth="true" https="true"/>
         <response name="success" type="view" value="LookupTraining"/>
     </request-map>
+    <request-map uri="EditEmplLeaveReasonTypes">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="EditEmplLeaveReasonTypes"/>
+    </request-map>
+    <request-map uri="createEmplLeaveReasonType">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="createEmplLeaveReasonType"/>
+        <response name="success" type="view" value="EditEmplLeaveReasonTypes"/>
+        <response name="error" type="view" value="EditEmplLeaveReasonTypes"/>
+    </request-map>
+    <request-map uri="updateEmplLeaveReasonType">
+        <security https="true" auth="true"/>
+        <event type="service-multi" invoke="updateEmplLeaveReasonType"/>
+        <response name="success" type="view" value="EditEmplLeaveReasonTypes"/>
+        <response name="error" type="view" value="EditEmplLeaveReasonTypes"/>
+    </request-map>
+    <request-map uri="deleteEmplLeaveReasonType">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="deleteEmplLeaveReasonType"/>
+        <response name="success" type="view" value="EditEmplLeaveReasonTypes"/>
+        <response name="error" type="view" value="EditEmplLeaveReasonTypes"/>
+    </request-map>
+    <request-map uri="FindLeaveApprovals">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="FindLeaveApprovals"/>
+    </request-map>
+    <request-map uri="EditLeaveApprovalStatus">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="EditLeaveApprovalStatus"/>
+    </request-map>
+    <request-map uri="updateLeaveApprovalStatus">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="updateLeaveApprovalStatus"/>
+        <response name="success" type="view" value="EditLeaveApprovalStatus"/>
+        <response name="error" type="view" value="EditLeaveApprovalStatus"/>
+    </request-map>
     <!-- ===================Lookup Request===================== -->
     <request-map uri="LookupPartyName"><security auth="true" https="true"/><response name="success" type="view" value="LookupPartyName"/></request-map>
     <request-map uri="LookupPayment"><security auth="true" https="true"/><response name="success" type="view" value="LookupPayment"/></request-map>
@@ -1037,6 +1079,7 @@
     <request-map uri="LookupEmploymentApp"><security auth="true" https="true"/><response name="success" type="view" value="LookupEmploymentApp"/></request-map>
     <request-map uri="LookupAgreement"><security auth="true" https="true"/><response name="success" type="view" value="LookupAgreement"/></request-map>
     <request-map uri="LookupJobRequisition"><security auth="true" https="true"/><response name="success" type="view" value="LookupJobRequisition"/></request-map>
+    <request-map uri="LookupLeaveApp"><security auth="true" https="true"/><response name="success" type="view" value="LookupLeaveApp"/></request-map>
 
     <view-map name="LookupPartyName" type="screen" page="component://party/widget/partymgr/LookupScreens.xml#LookupPartyName"/>
     <view-map name="LookupPayment"  type="screen" page="component://accounting/widget/LookupScreens.xml#LookupPayment"/>
@@ -1054,6 +1097,7 @@
     <view-map name="LookupEmploymentApp" type="screen" page="component://humanres/widget/LookupScreens.xml#LookupEmploymentApp"/>
     <view-map name="LookupAgreement" type="screen" page="component://accounting/widget/LookupScreens.xml#LookupAgreement"/>
     <view-map name="LookupJobRequisition" type="screen" page="component://humanres/widget/LookupScreens.xml#LookupJobRequisition"/>
+    <view-map name="LookupLeaveApp" type="screen" page="component://humanres/widget/LookupScreens.xml#LookupLeaveApp"/>
 
     <view-map name="main" type="screen" page="component://humanres/widget/CommonScreens.xml#Main"/>
 
@@ -1124,8 +1168,11 @@
 
     <view-map name="FindEmplLeaves" type="screen" page="component://humanres/widget/EmplLeaveScreens.xml#FindEmplLeaves"/>
     <view-map name="NewEmplLeave" type="screen" page="component://humanres/widget/EmplLeaveScreens.xml#NewEmplLeave"/>
-    <view-map name="EditEmplLeaves" type="screen" page="component://humanres/widget/EmplLeaveScreens.xml#EditEmplLeaves"/>
+    <view-map name="EditEmplLeave" type="screen" page="component://humanres/widget/EmplLeaveScreens.xml#EditEmplLeave"/>
     <view-map name="EditEmplLeaveTypes" type="screen" page="component://humanres/widget/EmplLeaveScreens.xml#EditEmplLeaveTypes"/>
+    <view-map name="EditEmplLeaveReasonTypes" type="screen" page="component://humanres/widget/GlobalHRSettingScreens.xml#EditEmplLeaveReasonTypes"/>
+    <view-map name="FindLeaveApprovals" type="screen" page="component://humanres/widget/EmplLeaveScreens.xml#FindLeaveApprovals"/>
+    <view-map name="EditLeaveApprovalStatus" type="screen" page="component://humanres/widget/EmplLeaveScreens.xml#EditLeaveApprovalStatus"/>
     
     <!-- ==================Recruitment View Map===================== -->
     <view-map name="FindJobRequisitions" type="screen" page="component://humanres/widget/RecruitmentScreens.xml#FindJobRequisitions"/>
@@ -1145,4 +1192,4 @@
     <view-map name="FindTrainingApprovals" type="screen" page="component://humanres/widget/PersonTrainingScreens.xml#FindTrainingApprovals"/>
     <view-map name="EditTrainingApprovals" type="screen" page="component://humanres/widget/PersonTrainingScreens.xml#EditTrainingApprovals"/>
     <view-map name="LookupTraining" type="screen" page="component://humanres/widget/LookupScreens.xml#LookupTraining"/>
-</site-conf>
+</site-conf>
\ No newline at end of file

Modified: ofbiz/trunk/applications/humanres/widget/EmplLeaveScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/EmplLeaveScreens.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/EmplLeaveScreens.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/EmplLeaveScreens.xml Sun Oct 18 13:15:59 2009
@@ -29,92 +29,118 @@
                 <set field="leaveTypeId" from-field="parameters.leaveTypeId"/>
                 <set field="fromDate" from-field="parameters.fromDate"/>
                 <set field="emplLeaveCtx" from-field="parameters"/>
+                <service service-name="humanResManagerPermission" result-map="permResult">
+                    <field-map field-name="mainAction" value="ADMIN"/>
+                </service>
+                <set field="hasAdminPermission" from-field="permResult.hasPermission"/>
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
-                        <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
-                            <decorator-section name="menu-bar">
-                                <section>
-                                    <widgets>
-                                        <container style="button-bar">
-                                            <link target="NewEmplLeave" text="${uiLabelMap.HumanResNewLeave}" style="buttontext"/>
-                                        </container>
-                                    </widgets>
-                                </section>
-                            </decorator-section>
-                            <decorator-section name="search-options">
-                                <include-form name="FindEmplLeaves" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
-                            </decorator-section>
-                            <decorator-section name="search-results">
-                                <include-form name="ListEmplLeaves" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
-                            </decorator-section>
-                        </decorator-screen>
+                   <include-menu name="EmplLeaveTabBar" location="component://humanres/widget/Menus.xml"/>
+                   <section>
+                            <condition>
+                                <if-has-permission permission="HUMANRES" action="_VIEW"/>
+                            </condition>
+                            <widgets>
+                        <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
+                            <decorator-section name="menu-bar">
+                                <section>
+                                    <widgets>
+                                        <container style="button-bar">
+                                            <link target="EditEmplLeave" text="${uiLabelMap.HumanResNewLeave}" style="buttontext"/>
+                                        </container>
+                                    </widgets>
+                                </section>
+                            </decorator-section>
+                            <decorator-section name="search-options">
+                                <include-form name="FindEmplLeaves" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
+                            </decorator-section>
+                            <decorator-section name="search-results">
+                                <include-form name="ListEmplLeaves" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
+                            </decorator-section>
+                        </decorator-screen>
+                     </widgets>
+                 </section>
                     </decorator-section>
                 </decorator-screen>
             </widgets>
         </section>
     </screen>
-    <screen name="NewEmplLeave">
+    <screen name="EditEmplLeave">
         <section>
             <actions>
-                <set field="titleProperty" value="HumanResAddEmplLeave"/>
+                <set field="titleProperty" value="HumanResEditEmplLeave"/>
                 <set field="headerItem" value="Leave"/>
-                <set field="emplLeaveCtx" from-field="parameters.PartyId"/>
+                <set field="leaveApplicationId" from-field="parameters.leaveApplicationId"/>
+                <entity-one entity-name="EmplLeave" value-field="leaveApp"/>
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
-                        <screenlet title="${uiLabelMap.HumanResAddEmplLeave}">
-                            <section>
-                                <widgets>
-                                    <include-form name="AddEmplLeave" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
-                                </widgets>
-                            </section>
+                        <include-menu name="EmplLeaveTabBar" location="component://humanres/widget/Menus.xml"/>
+                        <screenlet id="AddEmplLeavePanel" title="${uiLabelMap.HumanResAddEmplLeave}" collapsible="true">
+                            <include-form name="EditEmplLeave" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
                         </screenlet>
                     </decorator-section>
                 </decorator-screen>
             </widgets>
         </section>
     </screen>
-    <screen name="EditEmplLeaves">
+    <screen name="FindLeaveApprovals">
         <section>
             <actions>
-                <set field="titleProperty" value="HumanResEditEmplLeave"/>
-                <set field="headerItem" value="Employee"/>
-                <set field="tabButtonItem" value="EditEmplLeaves"/>
-                <set field="partyId" from-field="parameters.partyId"/>
-                <set field="emplLeaveCtx.partyId" from-field="parameters.partyId"/>
-                <set field="parameters.insideEmployee" value="true"/>
+                <set field="titleProperty" value="PageTitleFindApprovals"/>
+                <set field="tabButtonItem" value="Approval"/>
+                <set field="headerItem" value="Leave"/>
+                <service service-name="humanResManagerPermission" result-map="permResult">
+                    <field-map field-name="mainAction" value="ADMIN"/>
+                </service>
+                <set field="hasAdminPermission" from-field="permResult.hasPermission"/>
+                <set field="approverId" from-field="parameters.userLogin.partyId"/>
             </actions>
             <widgets>
-                <decorator-screen name="CommonPartyDecorator" location="${parameters.mainDecoratorLocation}">
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
-                        <screenlet id="AddEmplLeavePanel" title="${uiLabelMap.HumanResAddEmplLeave}" collapsible="true">
-                            <include-form name="AddEmplLeave" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
-                        </screenlet>
-                        <include-form name="ListEmplLeaves" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
+                        <include-menu name="EmplLeaveTabBar" location="component://humanres/widget/Menus.xml"/>
+                        <section>
+                            <condition>
+                                <if-has-permission permission="HUMANRES" action="_VIEW"/>
+                            </condition>
+                            <widgets>
+                                <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
+                                    <decorator-section name="search-options">
+                                        <include-form name="FindLeaveApprovals" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
+                                    </decorator-section>
+                                    <decorator-section name="search-results">
+                                        <include-form name="ListLeaveApprovals" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
+                                    </decorator-section>
+                                </decorator-screen>
+                            </widgets>
+                            <fail-widgets>
+                                <label style="h3">${uiLabelMap.HumanResViewPermissionError}</label>
+                            </fail-widgets>
+                        </section>
                     </decorator-section>
                 </decorator-screen>
             </widgets>
         </section>
     </screen>
-    <screen name="EditEmplLeaveTypes">
+    <screen name="EditLeaveApprovalStatus">
         <section>
             <actions>
-                <set field="titleProperty" value="HumanResEditEmplLeaveType"/>
-                <set field="headerItem" value="GlobalHRSettings"/>
-                <set field="tabButtonItem" value="EmplLeaveType"/>
-                <set field="leaveTypeId" from-field="parameters.leaveTypeId"/>
-                <entity-one entity-name="EmplLeaveType" value-field="emplLeaveType"/>
+                <set field="titleProperty" value="PageTitleEditApprovalStatus"/>
+                <set field="tabButtonItem" value="Approval"/>                
+                <set field="leaveApplicationId" from-field="parameters.leaveApplicationId"/>
+                <entity-one entity-name="EmplLeave" value-field="leaveApp"/>
             </actions>
             <widgets>
-                <decorator-screen name="GlobalHRSettingsDecorator" location="${parameters.mainDecoratorLocation}">
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
-                        <screenlet id="AddEmplLeaveTypePanel" title="${uiLabelMap.HumanResAddEmplLeaveType}" collapsible="true">
-                            <include-form name="AddEmplLeaveType" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
+                        <include-menu name="EmplLeaveTabBar" location="component://humanres/widget/Menus.xml"/>
+                        <screenlet id="EditLeaveApprovalStatus" title="${uiLabelMap.HumanResEditLeaveApprovalStatus}" collapsible="true">
+                            <include-form name="EditLeaveApprovalStatus" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
                         </screenlet>
-                        <include-form name="ListEmplLeaveTypes" location="component://humanres/widget/forms/EmplLeaveForms.xml"/>
                     </decorator-section>
                 </decorator-screen>
             </widgets>

Modified: ofbiz/trunk/applications/humanres/widget/EmployeeScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/EmployeeScreens.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/EmployeeScreens.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/EmployeeScreens.xml Sun Oct 18 13:15:59 2009
@@ -274,8 +274,8 @@
                 <set field="titleProperty" value="HumanResEditEmplLeave"/>
                 <set field="tabButtonItem" value="EditEmployeeLeaves"/>
                 <set field="partyId" from-field="parameters.partyId"/>
-                <set field="emplLeaveCtx.partyId" from-field="parameters.partyId"/>
-                <set field="parameters.insideEmployee" value="true"/>
+                <set field="leaveApplicationId" from-field="parameters.leaveApplicationId"/>
+                <entity-one entity-name="EmplLeave" value-field="leaveApp"/>
             </actions>
             <widgets>
                 <decorator-screen name="EmployeeDecorator" location="${parameters.mainDecoratorLocation}">

Modified: ofbiz/trunk/applications/humanres/widget/GlobalHRSettingScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/GlobalHRSettingScreens.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/GlobalHRSettingScreens.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/GlobalHRSettingScreens.xml Sun Oct 18 13:15:59 2009
@@ -226,4 +226,48 @@
             </widgets>            
         </section>
     </screen>
+    <screen name="EditEmplLeaveTypes">
+        <section>
+            <actions>
+                <set field="titleProperty" value="HumanResEditEmplLeaveType"/>
+                <set field="headerItem" value="GlobalHRSettings"/>
+                <set field="tabButtonItem" value="EmplLeaveType"/>
+                <set field="leaveTypeId" from-field="parameters.leaveTypeId"/>
+                <entity-one entity-name="EmplLeaveType" value-field="emplLeaveType"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="GlobalHRSettingsDecorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                     <include-menu name="EmplLeaveReasonTypeTabBar" location="component://humanres/widget/Menus.xml"/>
+                        <screenlet id="AddEmplLeaveTypePanel" title="${uiLabelMap.HumanResAddEmplLeaveType}" collapsible="true">
+                            <include-form name="AddEmplLeaveType" location="component://humanres/widget/forms/GlobalHrSettingForms.xml"/>
+                        </screenlet>
+                        <include-form name="ListEmplLeaveTypes" location="component://humanres/widget/forms/GlobalHrSettingForms.xml"/>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+    <screen name="EditEmplLeaveReasonTypes">
+        <section>
+            <actions>
+                <set field="titleProperty" value="HumanResEditEmplReasonype"/>
+                <set field="headerItem" value="GlobalHRSettings"/>
+                <set field="tabButtonItem" value="EmplLeaveReasonType"/>
+                <set field="reasonTypeId" from-field="parameters.reasonTypeId"/>
+                <entity-one entity-name="EmplLeaveReasonType" value-field="emplreasonType"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="GlobalHRSettingsDecorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <include-menu name="EmplLeaveReasonTypeTabBar" location="component://humanres/widget/Menus.xml"/>
+                        <screenlet id="AddEmplReasonTypePanel" title="${uiLabelMap.HumanResAddEmplLeaveReasonType}" collapsible="true">
+                            <include-form name="AddEmplLeaveReasonType" location="component://humanres/widget/forms/GlobalHrSettingForms.xml"/>
+                        </screenlet>
+                        <include-form name="ListEmplLeaveReasonTypes" location="component://humanres/widget/forms/GlobalHrSettingForms.xml"/>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
 </screens>

Modified: ofbiz/trunk/applications/humanres/widget/LookupScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/LookupScreens.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/LookupScreens.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/LookupScreens.xml Sun Oct 18 13:15:59 2009
@@ -308,4 +308,22 @@
             </widgets>
         </section>
     </screen>
+    <screen name="LookupLeaveApp">
+        <section>
+            <actions>
+                <property-map resource="HumanResUiLabels" map-name="uiLabelMap" global="true"/>
+                <set field="title" value="${uiLabelMap.HumanResLookupLeaveApp}"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="LookupDecorator" location="component://common/widget/CommonScreens.xml">
+                    <decorator-section name="search-options">
+                        <include-form name="LookupLeaveApp" location="component://humanres/widget/forms/LookupForms.xml"/>
+                    </decorator-section>
+                    <decorator-section name="search-results">
+                        <include-form name="ListLeaveApps" location="component://humanres/widget/forms/LookupForms.xml"/>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
 </screens>

Modified: ofbiz/trunk/applications/humanres/widget/Menus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/Menus.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/Menus.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/Menus.xml Sun Oct 18 13:15:59 2009
@@ -289,4 +289,26 @@
         </menu-item>
     </menu>
     
+    <menu name="EmplLeaveReasonTypeTabBar" extends="CommonTabBarMenu" extends-resource="component://common/widget/CommonMenus.xml"
+        default-menu-item-name="Employee Leave Reason Type" type="simple" menu-container-style="button-bar tab-bar"
+        default-selected-style="selected" selected-menuitem-context-field-name="tabButtonItem">
+        <menu-item name="EmplLeaveType" title="${uiLabelMap.HumanResEmployeeLeaveType}">
+            <link target="EditEmplLeaveTypes"/>
+        </menu-item>
+        <menu-item name="EmplLeaveReasonType" title="${uiLabelMap.HumanResEmployeeType}">
+            <link target="EditEmplLeaveReasonTypes"/>
+        </menu-item>
+    </menu>
+    
+    <menu name="EmplLeaveTabBar" extends="CommonTabBarMenu" extends-resource="component://common/widget/CommonMenus.xml"
+        default-menu-item-name="Employee Leave" type="simple" menu-container-style="button-bar tab-bar"
+        default-selected-style="selected" selected-menuitem-context-field-name="tabButtonItem">
+        <menu-item name="Employee Leave" title="${uiLabelMap.HumanResEmployeeLeave}">
+            <link target="FindEmplLeaves"/>
+        </menu-item>
+        <menu-item name="Approval" title="${uiLabelMap.HumanResLeaveApproval}">
+            <condition><if-has-permission permission="HUMANRES" action="_APPROVE"/></condition>
+            <link target="FindLeaveApprovals"/>
+        </menu-item>
+    </menu>
 </menus>

Modified: ofbiz/trunk/applications/humanres/widget/forms/EmplLeaveForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/forms/EmplLeaveForms.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/forms/EmplLeaveForms.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/forms/EmplLeaveForms.xml Sun Oct 18 13:15:59 2009
@@ -23,72 +23,161 @@
     <form name="FindEmplLeaves" type="single" target="FindEmplLeaves"
         odd-row-style="header-row" default-table-style="basic-table">
         <auto-fields-entity entity-name="EmplLeave" default-field-type="find"/>
+        <field name="leaveApplicationId"><lookup target-form-name="LookupLeaveApp"/></field>
         <field name="partyId" title="${uiLabelMap.PartyPartyId}"><lookup target-form-name="LookupPartyName"/></field>
         <field name="leaveTypeId">
             <drop-down allow-empty="true">
                 <entity-options description="${description}" key-field-name="leaveTypeId" entity-name="EmplLeaveType"/>
             </drop-down>
         </field>
+        <field name="reasonTypeId">
+            <drop-down allow-empty="true">
+                <entity-options description="${description}" key-field-name="reasonTypeId" entity-name="EmplLeaveReasonType"/>
+            </drop-down>
+        </field>
+        <field name="approvalStatus">
+            <drop-down allow-empty="true">
+                <entity-options description="${description}" key-field-name="statusId" entity-name="StatusItem">
+                    <entity-constraint name="statusTypeId" operator="equals" value="LEAVE_STATUS"/>
+                    <entity-order-by field-name="description"/>
+                </entity-options>
+            </drop-down>
+        </field>
+        <field name="approverId" title="${uiLabelMap.PartyApproverId}"><lookup target-form-name="LookupPartyName"/></field>
+        <field name="description"><hidden/></field>
         <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field>
         <field name="searchButton" widget-style="smallSubmit"><submit button-type="button"/></field>
     </form>
-    <form name="ListEmplLeaves" type="multi" use-row-submit="true" separate-columns="true" target="updateEmplLeaveExt?partyId=${partyId}" list-name="listIt" paginate-target="FindEmplLeaves"
-        odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
+    <form name="ListEmplLeaves" list-name="listIt" type="list" odd-row-style="alternate-row" header-row-style="header-row-2"
+        paginate-target="FindEmplLeaves" default-table-style="basic-table hover-bar">
         <actions>
+            <set field="entityName" value="EmplLeave"/>
             <service service-name="performFind" result-map="result" result-map-list="listIt">
                 <field-map field-name="inputFields" from-field="parameters"/>
-                <field-map field-name="entityName" value="EmplLeave"/>
-                <field-map field-name="orderBy" value="fromDate"/>
+                <field-map field-name="entityName" from-field="entityName"/>
                 <field-map field-name="viewIndex" from-field="viewIndex"/>
                 <field-map field-name="viewSize" from-field="viewSize"/>
             </service>
-            <set field="insideEmployee" from-field="parameters.insideEmployee"/>
         </actions>
-        <alt-target use-when="insideEmployee==null" target="updateEmplLeave"/>
-        <auto-fields-service service-name="updateEmplLeave"/>
-        <field name="partyId"><display/></field>
-        <field name="leaveTypeId"><display/></field>
-        <field name="fromDate"><display/></field>
-        <field name="_rowSubmit" title="${uiLabelMap.CommonSelect}"><hidden value="Y"/></field>
-        <field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit/></field>
-    </form>
-    <form name="AddEmplLeave" type="single" target="createEmplLeave"
+        <auto-fields-entity entity-name="EmplLeave" default-field-type="display"/>
+        <field name="leaveApplicationId" widget-style="buttontext">
+            <hyperlink target="EditEmplLeaves" description="${leaveApplicationId}">
+                <parameter param-name="leaveApplicationId"/>
+            </hyperlink>
+        </field>
+        <field name="partyId" field-name="partyId">
+            <display-entity entity-name="PartyNameView" description="${firstName} ${lastName}">
+                <sub-hyperlink target="/partymgr/control/viewprofile" target-type="inter-app" description="${partyId}" link-style="buttontext">
+                    <parameter param-name="partyId" from-field="partyId"/>
+                </sub-hyperlink>
+            </display-entity>
+        </field>
+        <field name="approverId" field-name="partyId">
+            <display-entity entity-name="PartyNameView" description="${firstName} ${lastName}">
+                <sub-hyperlink target="/partymgr/control/viewprofile" target-type="inter-app" description="${approverId}" link-style="buttontext">
+                    <parameter param-name="approverId" from-field="approverId"/>
+                </sub-hyperlink>
+            </display-entity>
+        </field>
+        <field name="approvalStatus"><display/></field>
+         <field name="deleteLink" title="${uiLabelMap.CommonDelete}" widget-style="buttontext" use-when="hasAdminPermission">
+            <hyperlink also-hidden="false" description="${uiLabelMap.CommonDelete}" target="deleteEmplLeave">
+                <parameter param-name="leaveApplicationId"/>
+            </hyperlink>
+        </field>
+        <field name="description"><hidden/></field>
+      </form>
+    <form name="EditEmplLeave" type="single" target="updateEmplLeaveExt" default-map-name="leaveApp"
         header-row-style="header-row" default-table-style="basic-table">
-        <actions>
-            <set field="insideEmployee" from-field="parameters.insideEmployee"/>
-        </actions>
-        <alt-target use-when="insideEmployee != null" target="createEmplLeaveExt"/>
-        <auto-fields-service service-name="createEmplLeave"/>
-        <field name="partyId" use-when="emplLeaveCtx!=null"><hidden/></field>
-        <field name="partyId" use-when="emplLeaveCtx==null"><lookup target-form-name="LookupPartyName"/></field>
-        <field name="leaveTypeId">
+        <alt-target use-when="leaveApp==null" target="createEmplLeaveExt"/>
+        <auto-fields-service service-name="updateEmplLeave" map-name="leaveApp"/>
+        <field name="leaveApplicationId" use-when="leaveApp!=null"><display/></field>
+        <field name="leaveApplicationId" use-when="leaveApp==null&amp;&amp;leaveApplicationId==null"><ignored/></field>
+        <field name="partyId" tooltip="${uiLabelMap.CommonRequired}"><lookup target-form-name="LookupPartyName"/></field>
+        <field name="approverId" tooltip="${uiLabelMap.CommonRequired}"><lookup target-form-name="LookupPartyName"/></field>
+        <field name="leaveTypeId" tooltip="${uiLabelMap.CommonRequired}">
             <drop-down allow-empty="true">
                 <entity-options description="${description}" key-field-name="leaveTypeId" entity-name="EmplLeaveType"/>
             </drop-down>
         </field>
-        <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="smallSubmit"><submit button-type="button"/></field>
+        <field name="reasonTypeId">
+            <drop-down allow-empty="true">
+                <entity-options description="${description}" key-field-name="reasonTypeId" entity-name="EmplLeaveReasonType"/>
+            </drop-down>
+        </field>
+        <field name="fromDate" tooltip="${uiLabelMap.CommonRequired}"><date-time type="timestamp"></date-time></field>
+        <field name="thruDate" tooltip="${uiLabelMap.CommonRequired}"><date-time type="timestamp"></date-time></field>
+        <field name="approvalStatus"><hidden value="LEAVE_CREATED"/></field>
+        <field name="submitButton" use-when="leaveApp==null" title="${uiLabelMap.CommonCreate}" widget-style="smallSubmit"><submit button-type="button"/></field>
+        <field name="submitButton" use-when="leaveApp!=null" title="Update" widget-style="smallSubmit"><submit button-type="button"/></field>
+    </form>
+    <form name="FindLeaveApprovals" target="FindLeaveApprovals" type="single">
+        <auto-fields-entity entity-name="EmplLeave" default-field-type="find"/>
+        <field name="noConditionFind"><hidden value="Y"/></field>
+        <field name="leaveApplicationId"><lookup target-form-name="LookupLeaveApp"/></field>
+        <field name="approverId" use-when="!hasAdminPermission"><hidden value="${approverId}"/></field>
+        <field name="partyId"><lookup target-form-name="LookupPartyName"/></field>
+        <field name="approvalStatus" title="${uiLabelMap.HumanResLeaveStatus} ${uiLabelMap.CommonStatus}">
+            <drop-down allow-empty="true">
+                <entity-options description="${description}" key-field-name="statusId" entity-name="StatusItem">
+                    <entity-constraint name="statusTypeId" operator="equals" value="LEAVE_STATUS"/>
+                    <entity-order-by field-name="description"/>
+                </entity-options>
+            </drop-down>
+        </field>
+        <field name="description"><hidden/></field>
+        <field name="searchButton" widget-style="smallSubmit"><submit button-type="button"/></field>
     </form>
-    <form name="ListEmplLeaveTypes" type="multi" title="" target="updateEmplLeaveType"
-        odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
+    <form name="ListLeaveApprovals" list-name="listIt" type="list" odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
         <actions>
-            <entity-condition entity-name="EmplLeaveType"><order-by field-name="leaveTypeId"/></entity-condition>
+            <set field="entityName" value="EmplLeave"/>
+            <service service-name="performFind" result-map="result" result-map-list="listIt">
+                <field-map field-name="inputFields" from-field="parameters"/>
+                <field-map field-name="entityName" from-field="entityName"/>
+            </service>
         </actions>
-        <auto-fields-service service-name="updateEmplLeaveType" default-field-type="hidden"/>
-        <field name="leaveTypeId"><display/></field>
-        <field name="description" title="${uiLabelMap.CommonDescription}"><text/></field>
-        <field name="deleteLink" title="${uiLabelMap.CommonDelete}" widget-style="buttontext">
-            <hyperlink target="deleteEmplLeaveType" description="${uiLabelMap.CommonDelete}" also-hidden="false">
-                <parameter param-name="leaveTypeId"/>
+        <auto-fields-entity entity-name="EmplLeave" default-field-type="display"/>
+        <field name="partyId" field-name="partyId">
+            <display-entity entity-name="PartyNameView" description="${firstName} ${lastName}">
+                <sub-hyperlink target="/partymgr/control/viewprofile" target-type="inter-app" description="${partyId}" link-style="buttontext">
+                    <parameter param-name="partyId" from-field="partyId"/>
+                </sub-hyperlink>
+            </display-entity>
+        </field>
+        <field name="approverId" field-name="partyId">
+            <display-entity entity-name="PartyNameView" description="${firstName} ${lastName}">
+                <sub-hyperlink target="/partymgr/control/viewprofile" target-type="inter-app" description="${approverId}" link-style="buttontext">
+                    <parameter param-name="approverId" from-field="approverId"/>
+                </sub-hyperlink>
+            </display-entity>
+        </field>
+        <field name="approvalStatus"><display/></field>
+        <field name="UpdateStatus" title="${uiLabelMap.CommonUpdate}" widget-style="buttontext">
+            <hyperlink target="EditLeaveApprovalStatus" description="${uiLabelMap.CommonUpdate}" >
+                <parameter param-name="leaveApplicationId"/>
             </hyperlink>
         </field>
-        <field name="_rowSubmit" title="${uiLabelMap.CommonSelect}"><hidden value="Y"/></field>
-        <field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit/></field>
     </form>
-    <form name="AddEmplLeaveType" type="single" target="createEmplLeaveType" default-map-name="emplLeaveType"
-        header-row-style="header-row" default-table-style="basic-table">
-        <auto-fields-service service-name="createEmplLeaveType" default-field-type="hidden"/>
-        <field name="leaveTypeId"><text/></field>
-        <field name="description" title="${uiLabelMap.CommonDescription}" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"><text/></field>
-        <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="buttontext"><submit button-type="text-link"/></field>
+    <form name="EditLeaveApprovalStatus" type="single" target="updateLeaveApprovalStatus" default-map-name="leaveApp">
+        <auto-fields-service service-name="updateLeaveApprovalStatus" map-name="leaveApp"/>
+        <field name="leaveApplicationId" tooltip="${uiLabelMap.CommonNotModifRecreat}"><display/></field>
+        <field name="leaveApplicationId"><display/></field>
+        <field name="partyId"><display/></field>
+        <field name="approverId"><display/></field>
+        <field name="leaveTypeId"><display/></field>
+        <field name="reasonTypeId"><display/></field>
+        <field name="fromDate"><display/></field>
+        <field name="thruDate"><display/></field>
+        <field name="description"><display/></field>
+        <field name="approvalStatus" title="${uiLabelMap.HumanResLeaveStatus} ${uiLabelMap.CommonStatus}">
+            <drop-down allow-empty="false">
+                <entity-options description="${description}" key-field-name="statusId" entity-name="StatusItem">
+                    <entity-constraint name="statusTypeId" operator="equals" value="LEAVE_STATUS"/>
+                    <entity-order-by field-name="description"/>
+                </entity-options>
+            </drop-down>
+        </field>
+        <field name="approvalStatus" use-when="leaveApp!=null&amp;&amp;leaveApp.getString(&quot;approvalStatus&quot;).equals(&quot;LEAVE_REJECTED&quot;)"><display></display></field>
+        <field name="submitButton" title="Update" widget-style="smallSubmit"><submit button-type="button"/></field>
     </form>
 </forms>
\ No newline at end of file

Modified: ofbiz/trunk/applications/humanres/widget/forms/EmployeeForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/forms/EmployeeForms.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/forms/EmployeeForms.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/forms/EmployeeForms.xml Sun Oct 18 13:15:59 2009
@@ -185,14 +185,25 @@
         <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="smallSubmit"><submit button-type="button"/></field>
     </form>
     <form name="AddEmplLeave" type="single" target="createEmplLeave">
-        <auto-fields-service service-name="createEmplLeave"/>
+        <auto-fields-service service-name="updateEmplLeave" map-name="leaveApp"/>
         <field name="partyId"><hidden/></field>
-        <field name="leaveTypeId">
+        <field name="leaveApplicationId" use-when="leaveApp!=null"><display/></field>
+        <field name="leaveApplicationId" use-when="leaveApp==null&amp;&amp;leaveApplicationId==null"><ignored/></field>
+        <field name="leaveTypeId" tooltip="${uiLabelMap.CommonRequired}">
             <drop-down allow-empty="true">
                 <entity-options description="${description}" key-field-name="leaveTypeId" entity-name="EmplLeaveType"/>
             </drop-down>
         </field>
-        <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="smallSubmit"><submit button-type="button"/></field>
+        <field name="reasonTypeId">
+            <drop-down allow-empty="true">
+                <entity-options description="${description}" key-field-name="reasonTypeId" entity-name="EmplLeaveReasonType"/>
+            </drop-down>
+        </field>
+        <field name="fromDate" tooltip="${uiLabelMap.CommonRequired}"><date-time type="timestamp"></date-time></field>
+         <field name="thruDate" tooltip="${uiLabelMap.CommonRequired}"><date-time type="timestamp"></date-time></field>
+        <field name="approvalStatus"><hidden value="LEAVE_CREATED"/></field>
+        <field name="approverId" tooltip="${uiLabelMap.CommonRequired}"><lookup target-form-name="LookupPartyName"/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonCreate}">widget-style="smallSubmit"><submit button-type="button"/></field>
     </form>
     <form name="ListEmplLeaves" type="list" list-name="listIt" separate-columns="true" target="updateEmplLeave" paginate-target="FindEmplLeaves"
         odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
@@ -203,10 +214,14 @@
             </entity-condition>
         </actions>
         <auto-fields-service service-name="updateEmplLeave"/>
+        <field name="leaveApplicationId"><display/></field>
         <field name="partyId"><hidden/></field>
+        <field name="approverId"><lookup target-form-name="LookupPartyName"/></field>
+        <field name="approvalStatus"><display/></field>
+        <field name="reasonTypeId"><display/></field>
         <field name="leaveTypeId"><display-entity description="${description}" entity-name="EmplLeaveType"/></field>
-        <field name="fromDate"><display/></field>
-        <field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit/></field>
+        <field name="fromDate"></field>
+        <field name="submitButton" title="${uiLabelMap.CommonUpdate}"><submit button-type="button"/></field>
     </form>
     <form name="CurrentEmploymentData" default-map-name="employmentData" type="single">
         <field name="company" entry-name="employment.partyIdFrom">

Modified: ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml Sun Oct 18 13:15:59 2009
@@ -260,4 +260,50 @@
         <field name="description" title="${uiLabelMap.CommonDescription}" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"><text/></field>
         <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="buttontext"><submit button-type="text-link"/></field>
     </form>
+    <form name="AddEmplLeaveType" type="single" target="createEmplLeaveType" default-map-name="emplLeaveType"
+        header-row-style="header-row" default-table-style="basic-table">
+        <auto-fields-service service-name="createEmplLeaveType" default-field-type="hidden"/>
+        <field name="leaveTypeId"><text/></field>
+        <field name="description" title="${uiLabelMap.CommonDescription}" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"><text/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="buttontext"><submit button-type="text-link"/></field>
+    </form>
+    <form name="ListEmplLeaveTypes" type="multi" title="" target="updateEmplLeaveType"
+        odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
+        <actions>
+            <entity-condition entity-name="EmplLeaveType"><order-by field-name="leaveTypeId"/></entity-condition>
+        </actions>
+        <auto-fields-service service-name="updateEmplLeaveType" default-field-type="hidden"/>
+        <field name="leaveTypeId"><display/></field>
+        <field name="description" title="${uiLabelMap.CommonDescription}"><text/></field>
+        <field name="deleteLink" title="${uiLabelMap.CommonDelete}" widget-style="buttontext">
+            <hyperlink target="deleteEmplLeaveType" description="${uiLabelMap.CommonDelete}" also-hidden="false">
+                <parameter param-name="leaveTypeId"/>
+            </hyperlink>
+        </field>
+        <field name="_rowSubmit" title="${uiLabelMap.CommonSelect}"><hidden value="Y"/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit/></field>
+    </form>
+    <form name="AddEmplLeaveReasonType" type="single" target="createEmplLeaveReasonType" default-map-name="emplLeaveReasonType"
+        header-row-style="header-row" default-table-style="basic-table">
+        <auto-fields-service service-name="createEmplLeaveReasonType" default-field-type="hidden"/>
+        <field name="reasonTypeId"><text/></field>
+        <field name="description" title="${uiLabelMap.CommonDescription}" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"><text/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="buttontext"><submit button-type="text-link"/></field>
+    </form>
+    <form name="ListEmplLeaveReasonTypes" type="multi" title="" target="updateEmplLeaveReasonType"
+        odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
+        <actions>
+            <entity-condition entity-name="EmplLeaveReasonType"><order-by field-name="reasonTypeId"/></entity-condition>
+        </actions>
+        <auto-fields-service service-name="updateEmplLeaveReasonType" default-field-type="hidden"/>
+        <field name="reasonTypeId"><display/></field>
+        <field name="description" title="${uiLabelMap.CommonDescription}"><text/></field>
+        <field name="deleteLink" title="${uiLabelMap.CommonDelete}" widget-style="buttontext">
+            <hyperlink target="deleteEmplLeaveReasonType" description="${uiLabelMap.CommonDelete}" also-hidden="false">
+                <parameter param-name="reasonTypeId"/>
+            </hyperlink>
+        </field>
+        <field name="_rowSubmit" title="${uiLabelMap.CommonSelect}"><hidden value="Y"/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit/></field>
+    </form>
 </forms>

Modified: ofbiz/trunk/applications/humanres/widget/forms/LookupForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/forms/LookupForms.xml?rev=826429&r1=826428&r2=826429&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/widget/forms/LookupForms.xml (original)
+++ ofbiz/trunk/applications/humanres/widget/forms/LookupForms.xml Sun Oct 18 13:15:59 2009
@@ -374,4 +374,24 @@
         <field name="parentTypeId" title="${uiLabelMap.HumanResPreRequisiteSkill}"><display/></field>
         <field name="description" title="${uiLabelMap.CommonDescription}"><display/></field>
     </form>
+    <form name="LookupLeaveApp" type="single" target="LookupLeaveApp"
+        header-row-style="header-row" default-table-style="basic-table">
+        <auto-fields-entity entity-name="EmplLeave" default-field-type="hidden"/>
+        <field name="leaveApplicationId" title="${uiLabelMap.HumanResLookupApplicationId}"><text-find/></field>
+        <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field>
+        <field name="submitButton" title="${uiLabelMap.CommonLookup}" widget-style="smallSubmit"><submit button-type="button"/></field>
+    </form>
+    <form name="ListLeaveApps" type="list" list-name="listIt" paginate-target="LookupLeaveApp"
+        odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
+        <actions>
+            <service service-name="performFind" result-map="result" result-map-list="listIt">
+                <field-map field-name="inputFields" from-field="parameters"/>
+                <field-map field-name="entityName" value="EmplLeave"/>
+            </service>
+        </actions>
+        <field name="leaveApplicationId" widget-style="buttontext">
+            <hyperlink also-hidden="false" target-type="plain" description="${leaveApplicationId}" target="javascript:set_value('${leaveApplicationId}')"/>
+        </field>
+        <field name="description"><display/></field>
+    </form>
 </forms>