<?php
// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
/** 
 * Página del multi-formulario para capturar caso (captura_caso.php). 
 *
 * PHP version 5
 *
 * @category  SIVeL
 * @package   SIVeL
 * @author    Vladimir Támara <vtamara@pasosdeJesus.org>
 * @copyright 2004 Dominio público. Sin garantías.
 * @license   http://creativecommons.org/licenses/publicdomain/ Dominio Público. Sin garantías.
 * @version   $Id: PagEvaluacion.php,v 1.37 2009/04/25 15:57:36 vtamara Exp $
 * @link      http://sivel.sf.net
 */

/**
 * Pestaña Evaluación del multi-formulario capturar caso 
 */
require_once 'PagBaseSimple.php';

/**
 * Evaluación de la información.
 * Ver documentación de funciones en clase base.
 *
 * @category SIVeL
 * @package  SIVeL
 * @author   Vladimir Támara <vtamara@pasosdeJesus.org>
 * @license  http://creativecommons.org/licenses/publicdomain/ Dominio Público.
 * @link     http://sivel.sf.net/tec
 * @see PagBaseSimple
 */
class PagEvaluacion extends PagBaseSimple
{

    var $titulo = 'Evaluación';

    var $clase_modelo = 'caso';

    /**
     * Constructora.
     * Ver documentación completa en clase base.
     *
     * @param string $nomForma Nombre 
     * @param string $mreq     Mensaje de dato requerido
     *
     * @return void
     */
    function PagEvaluacion($nomForma, $mreq)
    {
        parent::PagBaseSimple($nomForma, $mreq, 'Evaluación');

        $this->addAction('process', new Terminar());
        if (isset($_SESSION['forma_modo']) && 
            $_SESSION['forma_modo'] == 'busqueda') {
            $this->addAction('siguiente', new Siguiente());
        }
        $this->addAction('anterior', new Anterior());
    }


    /**
     * Agrega elementos al formulario.
     * Ver documentación completa en clase base.
     *
     * @param handle &$db    Conexión a base de datos
     * @param string $idcaso Id del caso
     *
     * @return void
     *
     * @see PagBaseSimple
     */
    function formularioAgrega(&$db, $idcaso)
    {
        $this->bcaso->_do->fb_fieldsToRender = $this->bcaso->_do->fb_preDefOrder=
            array('gr_confiabilidad',
            'gr_esclarecimiento', 'gr_impunidad', 'gr_informacion');
        $this->bcaso->createSubmit = 0;
        $this->bcaso->useForm($this);
        $this->bcaso->getForm();

        $_SESSION['sin_csrf'] = mt_rand(0, 1000);
        $this->addElement('hidden', 'evita_csrf', $_SESSION['sin_csrf']);

    }

    /**
     * Llena valores del formulario.  
     * Ver documentación completa en clase base.
     *
     * @param handle  &$db    Conexión a base de datos
     * @param integer $idcaso Id del caso
     *
     * @return void
     * @see PagBaseSimple
     */
     function formularioValores(&$db, $idcaso)
     {
        if (!isset($_SESSION['forma_modo']) ||
        $_SESSION['forma_modo'] != 'busqueda') {
            $this->controller->deshabilitaBotones($this, array('siguiente'));
        }
     }

    /**
     * Elimina registros de tablas relacionadas con caso de este formulario.
     * Ver documentación completa en clase base.
     *
     * @param handle  &$db    Conexión a base de datos
     * @param integer $idcaso Id del caso
     *
     * @return void
     * @see PagBaseSimple
     */
    static function eliminaDep(&$db, $idcaso)
     {
     }

    /**
     * Prepara consulta SQL para buscar datos de este formulario.
     * Ver documentación completa en clase base.
     *
     * @param string &$w       Consulta que se construye
     * @param string &$t       Tablas
     * @param object &$dCaso   Objeto con caso
     * @param string &$subcons Subconsulta
     *
     * @return void
     * @see PagBaseSimple
     */
    function datosBusqueda(&$w, &$t, &$dCaso, &$subcons) 
    {
        $db = $dCaso->getDatabaseConnection();
        busand($db, $w, "caso.gr_confiabilidad", 
            $dCaso->gr_confiabilidad);
        busand($db, $w, "caso.gr_esclarecimiento", 
            $dCaso->gr_esclarecimiento);
        busand($db, $w, "caso.gr_impunidad", 
            $dCaso->gr_impunidad);
        busand($db, $w, "caso.gr_informacion", 
            $dCaso->gr_informacion);
    }

}
?>
