<?php
/**
 * phpaga
 *
 * Print projects
 *
 * Print projects matching query options to pdf file
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @version $Id: projects_pdf.php 978 2010-03-21 20:39:05Z 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");
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_DATA["cpn_id"]) && is_numeric ($REQUEST_DATA["cpn_id"]))
{
    $prjInfo["cpn_id"] = $REQUEST_DATA["cpn_id"];
    $image_args .= "&cpn_id=".$REQUEST_DATA["cpn_id"];

    $cpnInfo = phpaga_companies_getInfo($REQUEST_DATA["cpn_id"]);
    if (!PhPagaError::isError($$cpnInfo))
        $search_params_pdf[] = array("param" => _("Company"),
                                     "value" => $cpnInfo["cpn_name"]);
}
else
{
    $prjInfo["cpn_id"] = "";
}

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

    $cpnInfo = phpaga_companies_getInfo($REQUEST_DATA["cpn_id_issuebill"]);
    if (!PhPagaError::isError($$cpnInfo))
        $search_params_pdf[] = array("param" => _("Company issuing the bill"),
                                     "value" => $cpnInfo["cpn_name"]);
}
else
{
    $prjInfo["cpn_id_issuebill"] = "";
}

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

    $prjInfo = phpaga_projects_getInfo($REQUEST_DATA["prj_id"]);
    if (!PhPagaError::isError($prjInfo))
        $search_params_pdf[] = array("param" => _("Project"),
                                     "value" => $prjInfo["prj_title"]);
}
else
{
    $prjInfo["prj_id"] = "";
}

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

    $peInfo = phpaga_persons_getInfo ($REQUEST_DATA["pe_id"]);

    if (!PhPagaError::isError($peInfo))
        $search_params_pdf[] = array("param" => _("Person"),
                                     "value" => $peInfo["pe_person"]);
}
else
{
    $prjInfo["pe_id"] = "";
}

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

    $prjstatList = phpaga_projects_getStatusList();
    if ((!PhPagaError::isError($prjstatList)) && isset($prjstatList[$REQUEST_DATA["prj_status"]]))
        $search_params_pdf[] = array("param" => _("Project status"),
                                     "value" => $prjstatList[$REQUEST_DATA["prj_status"]]);
}
else
{
    $prjInfo["prj_status"] = "";
}

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

    $prjcatList = phpaga_projects_getCategoryList();
    if ((!PhPagaError::isError($prjcatList)) && isset($prjcatList[$REQUEST_DATA["prjcat_id"]]))
        $search_params_pdf[] = array("param" => _("Project category"),
                                     "value" => $prjcatList[$REQUEST_DATA["prjcat_id"]]);
}
else
{
    $prjInfo["prjcat_id"] = "";
}

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

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

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

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

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

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

    $rows = phpaga_utf8decodeArray($rows);

    /* 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();
    }
}

?>