<?php
/*
 *   This file is part of NOALYSS.
 *
 *   NOALYSS is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   NOALYSS is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with NOALYSS; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

// Copyright Author Dany De Bontridder danydb@aevalys.eu

/*!\file
 *  \brief this class is the mother class for the CA printing
 */

/*! \brief this class is the mother class for the CA printing
 *
 *
 */
require_once NOALYSS_INCLUDE.'/lib/idate.class.php';
require_once NOALYSS_INCLUDE.'/lib/itext.class.php';
require_once NOALYSS_INCLUDE.'/lib/ihidden.class.php';
require_once NOALYSS_INCLUDE.'/lib/iselect.class.php';
require_once NOALYSS_INCLUDE.'/lib/ibutton.class.php';
require_once NOALYSS_INCLUDE.'/lib/database.class.php';
require_once NOALYSS_INCLUDE.'/constant.php';
require_once NOALYSS_INCLUDE.'/class/dossier.class.php';
require_once  NOALYSS_INCLUDE.'/class/anc_plan.class.php';
require_once NOALYSS_INCLUDE.'/lib/ianccard.class.php';
class Anc_Print
{
    var $db;						/*!< $db database connection */
    var $to;						/*!< $to start date */
    var $from; 					/*!< $from end date */
    var $from_poste;				/*!< $from_poste from poste  */
    var $to_poste;				/*!< $to_poste to the poste */

    function __construct($p_cn)
    {
        global $g_user;
        list($from,$to)=$g_user->get_limit_current_exercice();
        $this->db=$p_cn;
        $this->from=$from;
        $this->to=$to;
        $this->from_poste="";
        $this->to_poste="";
        $this->has_data=0;

    }
    /*!
     * \brief complete the object with the data in $_REQUEST
     */
    function get_request()
    {
        if ( isset($_REQUEST['from']))
            $this->from=$_REQUEST['from'];

        if ( isset($_REQUEST['to']))
            $this->to=$_REQUEST['to'];

        if ( isset($_REQUEST['from_poste']))
            $this->from_poste=$_REQUEST['from_poste'];

        if ( isset($_REQUEST['to_poste']))
            $this->to_poste=$_REQUEST['to_poste'];
        if ( isset($_REQUEST['pa_id']))
            $this->pa_id=$_REQUEST['pa_id'];
        else
            $this->pa_id="";

    }
    /*!
     * \brief Compute  the form to display
     * \param $p_hidden hidden tag to be included (gDossier,...)
     *
     *
     * \return string containing the data
     */
    function display_form($p_hidden="")
    {
        /* if there is no analytic plan return */
        $pa=new Anc_Plan($this->db);
        if ( $pa->count() == 0 )
        {
            echo '<div class="content">';
            echo '<h2 class="error">'._('Aucun plan défini').'</h2>';
            echo '</div>';
            return;
        }

        $from=new IDate('from','from');
        $from->size=10;
        $from->value=$this->from;

        $to=new IDate('to','to');
        $to->value=$this->to;
        $to->size=10;

        $from_poste=new IAncCard('from_poste','from_poste');
        $from_poste->size=10;
        $from_poste->plan_ctl='pa_id';
        $from_poste->value=$this->from_poste;

        $to_poste=new IAncCard('to_poste','to_poste');
        $to_poste->value=$this->to_poste;
        $to_poste->size=10;

        $hidden=new IHidden();
        $r=dossier::hidden();
        $r.=$hidden->input("result","1");
        
        $r.=HtmlInput::request_to_hidden(array('ac'));
        $r.=$p_hidden;
        $plan=new Anc_Plan($this->db);
        $plan_id=new ISelect("pa_id");
        $plan_id->value=$this->db->make_array("select pa_id, pa_name from plan_analytique order by pa_name");
        $plan_id->selected=$this->pa_id;

        $javascript="search_ca(".dossier::id().",'from_poste','pa_id')";
        $choose_from=HtmlInput::button_image($javascript, uniqid(), 'alt="'._('Recherche').'" title="'._('Recherche').'" class="image_search"',"image/magnifier13.png");
        
        $javascript="search_ca(".dossier::id().",'to_poste','pa_id')";
        $choose_to=HtmlInput::button_image($javascript, uniqid(), 'alt="'._('Recherche').'" title="'._('Recherche').'" class="image_search"',"image/magnifier13.png");

        $r.=HtmlInput::request_to_hidden(array('ac'));
        ob_start();
        ?>
<table>
    <tr>
        <td>
            <?php 
                echo _('Depuis') ;
                echo HtmlInput::infobulle(37);
            ?>
        </td>
        <td>
            <?php 
                echo $from->input(); 
            ?>
        </td>
    </tr>
    <tr>
        <td>
            <?php 
                echo _('Jusque') ;
                echo HtmlInput::infobulle(37);
            ?>
        </td>
        <td>
            <?php 
                echo $to->input(); 
            ?>
        </td>
    </tr>
    
</table>
<span style="padding:5px;margin:5px;display:block;">
    <?php echo _( "Plan Analytique :").$plan_id->input(); 
        echo HtmlInput::infobulle(42);
    ?>
</span>

<?php
        $r.=ob_get_clean();
        $r.=_("Entre l'activité ").$from_poste->input();
        $r.=$choose_from;
        $r.=_(" et l'activité ").$to_poste->input();
        $r.=$choose_to;

        $r.='</span>';
        return $r;
    }
    /*!
     * \brief Set the filter (account_date)
     *
     * \return return the string to add to load
     */

    function set_sql_filter()
    {
        $sql="";
        $and=" and ";
        if ( $this->from != "" )
        {
            $sql.="$and a.oa_date >= to_date('".$this->from."','DD.MM.YYYY')";
        }
        if ( $this->to != "" )
        {
            $sql.=" $and a.oa_date <= to_date('".$this->to."','DD.MM.YYYY')";
        }

        return $sql;

    }
  function check()
  {

    /*
     * check date
     */
    if (($this->from != '' && isDate ($this->from) == 0)
	||
	($this->to != '' && isDate ($this->to) == 0))
      return -1;

    return 0;
  }


}
