<?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>Project Manager Introduction</title>
        <para>
            The project manager allows you to manage a project which in its simplest form consists out of phases and tasks.
        </para>
        <para>
            A project consists out of one or more phases of which each phase can have one or more tasks.
            A task always has a single parentPhase.
            Time registration is only done on a task level.
        </para>
        <para>
            Estimated and actual dates are only maintained at the task level. For reporting they are calculated to the higher levels. Project views are created to support this.
        </para>
        <section>
          <title>Status management</title>
            <para>Status is managed at task level, Project and Phase statuses shown on screen are tasks status compilation. Task statuses are :
              <itemizedlist>
                <listitem ><para>PTS_CREATED, ...Created : after task creation</para></listitem>
                <listitem ><para>PTS_CREATED_UA, Unassigned : currently not used by an automatic process</para></listitem>
                <listitem ><para>PTS_CREATED_AS, Assigned : after a resource is assigned</para></listitem>
                <listitem ><para>PTS_CREATED_IP, In Progress : after a time entry is created on the task</para></listitem>
                <listitem ><para>PTS_COMPLETED, .Completed : Manually changed by button</para></listitem>
                <listitem ><para>PTS_ON_HOLD, ...On Hold : </para></listitem>
                <listitem ><para>PTS_CANCELLED, .Cancelled : </para></listitem>
              </itemizedlist>
            </para>
            <para>Project or Phase is completed if all included tasks are completed (or cancelled)</para>
        </section>

        <section>
          <title>Resources</title>
            <para>You can describe a customer (company and contact) and who provides the task (named provider) in the resource portlet. To be able to associate someone to a project he should have, 
                  two (or more) project roleType, first PROJECT_TEAM to appear in Party drop-down, and at least one of the PROJECT_TEAM sub-roles for the second drop-down. 
                  Look at parameters section to have the complete project roletypes list.<br />
                  Go to the party profile to associate a role type to a party.
            </para>
        </section>

        <section>
          <title>Parameters :</title> 
          <para>
            <itemizedlist>
              <listitem >
                <para>RoleType with PROJECT_TEAM as parentTypeId, used in a lot of screens; default proposed roleTypes are : 
                  <itemizedlist>
                      <listitem ><para>CLIENT% : used to select parties which appears in Projects Parties info, client side</para></listitem>
                      <listitem ><para>CLIENT_MANAGER : user login associated to a project with this roleType view it in ListCustomerProjects</para></listitem>
                      <listitem ><para>CLIENT_ANALYST : same as CLIENT_MANAGER for ListCustomerProjects</para></listitem>
                      <listitem ><para>CLIENT_BILLING : partyId which will be invoiced; same as CLIENT_MANAGER for ListCustomerProjects; appears in Company part of Project Parties info, other CLIENT% role appears in contact part</para></listitem>
                      <listitem ><para>PROVIDER% : all parties which provide the project. In Projects Parties info, provider part, all roleType not equals to CLIENT% will appear</para></listitem>
                      <listitem ><para>PROVIDER_MANAGER : currently no process or specific selection</para></listitem>
                      <listitem ><para>PROVIDER_ACCOUNTING : currently no process or specific selection</para></listitem>
                      <listitem ><para>PROVIDER_ANALYST : currently no process or specific selection</para></listitem>
                      <listitem ><para>PROVIDER_FUNCTIONAL : currently no process or specific selection</para></listitem>
                      <listitem >
                        <para>PROVIDER_VALIDATOR or PROVIDER_TESTER: used to define at project level who will validate a task, 
                              used when assigning a party to a task with status not equals to "PAS_COMPLETED", if the party has not this role,
                              all parties with this role at the project level will be added to this task 
                              (this action is done by ECA, commented in default configuration, if you want it un-comment it)</para></listitem>
                  </itemizedlist>
                </para></listitem>
            </itemizedlist>
          </para>
        </section>
</section>

