<?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.
-->
<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5.0"
  xmlns:xl="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"
  xsi:schemaLocation="http://docbook.org/ns/docbook ../../../content/dtd/docbook.xsd"
  xmlns="http://docbook.org/ns/docbook">
  <title>The Human Resources Main screen.</title>
  <para> This screen will show the the organization of your company, the top level company is defined in a system setup file: general.properties.
        The system will list devisions and departments in the role &quot;Internal organization&quot; as defined in the party relationships 
        as a &quot;Group member&quot; under it in as many levels as required.
  </para>
  <para>
        related to an &quot;Internal Organization&quot; is an employee position which can be full filled by an employee in an employment. 
  </para>
</section>
