<?php
/**
 * phpaga
 *
 * person
 *
 * View person information
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @version $Id: person.php 866 2007-09-28 22:19:38Z florian $
 *
 * Copyright (c) 2002, Florian Lanthaler <florian@phpaga.net>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in
 *      the documentation and/or other materials provided with the
 *      distribution.
 *
 *    * Neither the name of Florian Lanthaler nor the names of his
 *      contributors may be used to endorse or promote products derived
 *      from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

include_once("./config.php");

$status = "";
$error = array();
$sum_duration = 0;
$opcat_byproject = 0;
$action = ACTION_NONE;
$mhr_year = date("Y");
$isowner = false;

if (isset($_REQUEST["action"]) && is_numeric($_REQUEST["action"]))
    $action = $_REQUEST["action"];

if (isset($_REQUEST["detail"]) && ($_REQUEST["detail"]) == PHPAGA_OPCGRP_PROJECT)
    $opcat_byproject = PHPAGA_OPCGRP_PROJECT;

if (isset($_REQUEST["mhr_year"]) && is_numeric($_REQUEST["mhr_year"]))
     $mhr_year = $_REQUEST["mhr_year"];

if (isset($_REQUEST["id"]) && is_numeric($_REQUEST["id"]))
    $pe_id = $_REQUEST["id"];
else
{

    /* get current user's person id from session variables */
    if (isset($_SESSION["auth_user"]["pe_id"])
        && is_numeric($_SESSION["auth_user"]["pe_id"]))

        $pe_id = $_SESSION["auth_user"]["pe_id"];
    else
        $pe_id = "";
}

$isowner = phpaga_persons_isowner($pe_id, $_SESSION["auth_user"]["pe_id"]);

switch($action)
{
    case ACTION_PE_REMOVE:

        if (!$isowner && !phpaga_user_hasperm(PHPAGA_PERM_MANAGE_OTHERPERSONS))
        {
            phpaga_header(array("menuitem" => "core"));
            phpaga_message(_("No access"), _("You are not allowed to delete this record."));
            phpaga_footer();
            exit;
        }

        $result = phpaga_persons_delete($pe_id);
        if (!PhPagaError::isError($result)) {
            header("Location: persons.php");
            exit;
        } else
            $error[] = $result->getMessage();;
        break;

    default:
        break;
}

phpaga_header(array("menuitem" => "core"));

$peInfo = phpaga_persons_getInfo($pe_id);

if (PhPagaError::isError($peInfo))
    $peInfo->printMessage();
else
{

    if (count($error) > 0)
        phpaga_error($error);

    $tpl = new psmarty;
    $tpl->assign("person", $peInfo);

    $tpl->assign("MANHOURS_HEADER",
                        sprintf(_("Manhours"), $mhr_year));

    $peopcatStats = phpaga_operations_getOpcatStats(array("pe_id" => $pe_id), $sum_duration, $opcat_byproject);

    if (PhPagaError::isError($peopcatStats))
        $tpl->assign("opcats", array());
    else {
        $tpl->assign("opcats", $peopcatStats);
        $tpl->assign("TOTAL_DURATION", $sum_duration);

        if ($opcat_byproject == PHPAGA_OPCGRP_PROJECT)
            $tpl->assign("opcatcols", count($peopcatStats["projects"]));

    }

    $tpl->assign("curryear", date("Y"));
    $tpl->assign("mhr_year", $mhr_year);
    $tpl->assign("opcat_byproject", $opcat_byproject);
    $tpl->assign("STATUSMSG", $status);
    $tpl->assign("perm_persons", phpaga_user_hasperm(PHPAGA_PERM_MANAGE_OTHERPERSONS));
    $tpl->assign("perm_rate", ($isowner
                               || phpaga_user_hasperm(PHPAGA_PERM_MANAGE_OTHERPERSONS)
                               || phpaga_user_hasperm(PHPAGA_PERM_VIEW_FINANCE)));

    $tpl->assign("file_rel_type", PHPAGA_RELTYPE_PERSON);
    $tpl->assign("file_rel_id", $pe_id);
    $tpl->assign("returl", basename($_SERVER["PHP_SELF"])."?id=".$pe_id);

    $tpl->display("person.tpl.html");
}

phpaga_footer();

?>