<?php
/**
 * phpaga
 *
 * Print projects
 *
 * Print projects matching query options to pdf file
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @version $Id: projects_pdf.php 493 2005-04-17 21:29:56Z worf $
 *
 * 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");
include_once(PHPAGA_LIBPATH."pdf.php");

$list_projects = "";

/* define which fields to print in the listing and which not if a parameter
 * is set it will not be printed in the listing (as the parameters would
 * always be the same in every row) */

$show = array("date" => _("Date"));

$image_args = "";           # arguments to prjcat stats image

$search_params_pdf = array();

/* first collect all query parameters */

/* company id */
if (isset ($_REQUEST["cpn_id"]) && is_numeric ($_REQUEST["cpn_id"]))
{
    $prjInfo["cpn_id"] = $_REQUEST["cpn_id"];
    $image_args .= "&cpn_id=".$_REQUEST["cpn_id"];

    $result = phpaga_companies_getInfo ($_REQUEST["cpn_id"], $cpnInfo);
    if ($result == PHPAGA_ERR_NONE)
        $search_params_pdf[] = array("param" => _("Company"),
                                     "value" => $cpnInfo["cpn_name"]);
}
else
{
    $prjInfo["cpn_id"] = "";
}

/* id of the company issuing the bills */
if (isset($_REQUEST["cpn_id_issuebill"]) && is_numeric($_REQUEST["cpn_id_issuebill"]))
{
    $prjInfo["cpn_id_issuebill"] = $_REQUEST["cpn_id_issuebill"];

    $result = phpaga_companies_getInfo ($_REQUEST["cpn_id_issuebill"], $cpnInfo);
    if ($result == PHPAGA_ERR_NONE)
        $search_params_pdf[] = array("param" => _("Company issuing the bill"),
                                     "value" => $cpnInfo["cpn_name"]);
}
else
{
    $prjInfo["cpn_id_issuebill"] = "";
}

/* project id */
if (isset ($_REQUEST["prj_id"]) && is_numeric ($_REQUEST["prj_id"]))
{
    $prjInfo["prj_id"] = $_REQUEST["prj_id"];
    $image_args .= "&prj_id=".$_REQUEST["prj_id"];

    $result = phpaga_projects_getInfo ($_REQUEST["prj_id"], $prjInfo);
    if ($result == PHPAGA_ERR_NONE)
        $search_params_pdf[] = array("param" => _("Project"),
                                     "value" => $prjInfo["prj_title"]);
}
else
{
    $prjInfo["prj_id"] = "";
}

/* person id */
if (isset ($_REQUEST["pe_id"]) && is_numeric ($_REQUEST["pe_id"]))
{
    $prjInfo["pe_id"] = $_REQUEST["pe_id"];
    $image_args .= "&pe_id=".$_REQUEST["pe_id"];

    $result = phpaga_persons_getInfo ($_REQUEST["pe_id"], $peInfo);
    if ($result == PHPAGA_ERR_NONE)
        $search_params_pdf[] = array("param" => _("Person"),
                                     "value" => $peInfo["pe_person"]);
}
else
{
    $prjInfo["pe_id"] = "";
}

/* project status */
if (isset($_REQUEST["prj_status"]) && is_numeric($_REQUEST["prj_status"]))
{
    $prjInfo["prj_status"] = $_REQUEST["prj_status"];

    $result = phpaga_projects_getStatusList($prjstatList);
    if (($result == PHPAGA_ERR_NONE) && isset($prjstatList[$_REQUEST["prj_status"]]))
        $search_params_pdf[] = array("param" => _("Project status"),
                                     "value" => $prjstatList[$_REQUEST["prj_status"]]);
}
else
{
    $prjInfo["prj_status"] = "";
}

/* project category id */
if (isset ($_REQUEST["prjcat_id"]) && is_numeric ($_REQUEST["prjcat_id"]))
{
    $prjInfo["prjcat_id"] = $_REQUEST["prjcat_id"];
    $image_args .= "&prjcat_id=".$_REQUEST["prjcat_id"];

    $result = phpaga_projects_getCategoryList($prjcatList);
    if (($result == PHPAGA_ERR_NONE) && isset($prjcatList[$_REQUEST["prjcat_id"]]))
        $search_params_pdf[] = array("param" => _("Project category"),
                                     "value" => $prjcatList[$_REQUEST["prjcat_id"]]);
}
else
{
    $prjInfo["prjcat_id"] = "";
}

/* project description */
if (isset ($_REQUEST["prj_desc"]) && strlen($_REQUEST["prj_desc"]))
{
    $prjInfo["prj_desc"] = $_REQUEST["prj_desc"];
    $image_args .= "&prj_desc=".$_REQUEST["prj_desc"];
    $search_params_pdf[] = array("param" => _("Task description"),
                                 "value" => $_REQUEST["prj_desc"]);
}
else
{
    $prjInfo["prj_desc"] = "";
}

/* start date */
if (isset ($_REQUEST["prj_startdatefrom"])
    && ($_REQUEST["prj_startdatefrom"] != ""))
{
    $prjInfo["prj_startdatefrom"] = $_REQUEST["prj_startdatefrom"];
    $image_args .= "&prj_startdatefrom=".$_REQUEST["prj_startdatefrom"];
    $search_params_pdf[] = array("param" => _("Date from"),
                                 "value" => $_REQUEST["prj_startdatefrom"]);
}
else
{
    $prjInfo["prj_startdatefrom"] = "";
}

/* end date */
if (isset ($_REQUEST["prj_startdateto"])
    && ($_REQUEST["prj_startdateto"] != ""))
{
    $prjInfo["prj_startdateto"] = $_REQUEST["prj_startdateto"];
    $image_args .= "&prj_startdateto=".$_REQUEST["prj_startdateto"];
    $search_params_pdf[] = array("param" => _("Date to"),
                                 "value" => $_REQUEST["prj_startdateto"]);
}
else
{
    $prjInfo["prj_startdateto"] = "";
}

/* Always show the project title & description */
$show["title"] = _("Project");
$show["desc"] = _("Description");

$search_result = phpaga_projects_search($rows, $count, $duration,
                                          $prjIds, $prjInfo);

if ($search_result != PHPAGA_ERR_NONE)
{
    $status = phpaga_returnerror($phpaga_error[$search_result]);
}
else
{
    $status = phpaga_returnmessage(_("Information"),
                                   sprintf(_("%s projects matching your query were found totalling %s hours."),
                                           $count,
                                           $duration));

    /* show results if any matching records were found */
    /* NB not passing $show parameter, get all columns displayed */

    if ($count > 0)
    {
        $pdf = new phpaga_pdf_document("projects.pdf");
        $pdf->add_prjlist($rows, $search_params_pdf);
        $pdf->spitout();
    }
}

?>
