<?php
// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
/**
 * Objeto asociado a una tabla de la base de datos.
 * Parcialmente generado por DB_DataObject.
 *
 * 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: Categoria_caso.php,v 1.18 2009/05/03 12:23:21 vtamara Exp $
 * @link      http://sivel.sf.net
 */

/**
 * Definicion para la tabla categoria_caso.
 */
require_once 'DB/DataObject.php';
require_once 'HTML/QuickForm.php';
/**
 * Definicion para la tabla categoria_caso.
 * Ver documentación de DataObjects_Caso.
 *
 * @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      DataObjects_Caso
 */
class DataObjects_Categoria_caso extends DB_DataObject 
{
    // START_AUTOCODE
    /* the code below is auto generated do not remove the above tag */

    var $__table = 'categoria_caso';                  // table name
    var $id_caso;                         // int4(4)  multiple_key
    var $id_tipo_violencia;               // varchar(-1)  multiple_key
    var $id_supracategoria;               // int4(4)  multiple_key
    var $id_categoria;                    // int4(4)  multiple_key

    /**
     * ZE2 compatibility trick
     *
     * @return copia del objeto
     */
    function __clone() 
    {
        return $this;
    }

    /**
     * Static get
     *
     * @param mixed $k Llave
     * @param mixed $v Valor
     *
     * @return Registro cuya llave sea el valor.
     */
    function staticGet($k, $v = null) 
    {
        return DB_DataObject::staticGet('DataObjects_Categoria_caso', $k, $v);
    }

    /* the code above is auto generated do not remove the tag below */
    // END_AUTOCODE

    /**
     * Genera formulario
     *
     * @param handle &$db      Conexión a BD.
     * @param object &$f       Formulario
     * @param bool   $action   Acción 
     * @param string $target   Objetivo
     * @param string $formName Nombre
     * @param string $method   Método de envío
     *
     * @return Formulario generado
     */
    function &getForm2(&$db, &$f, $action = false, $target = '_self',
        $formName = 'CategoriaCaso', $method = 'post') 
    {
        if (!$action) {
            $action = htmlspecialchars($_SERVER['REQUEST_URI']);
        }
        if ($f == null) {
            $f =& new HTML_QuickForm($formName, $method, $action,
            $target, null);
        }

        $sel=&$f->addElement('select', 'clasificacion',
            'Clasificación de Violencia');
        if (isset($GLOBALS['etiqueta']['clasificacion'])) {
            $e->setLabel($GLOBALS['etiqueta']['clasificacion']);
        }
        $tvio = $db->getAssoc("SELECT id, nombre FROM tipo_violencia;"); 
        //Aqui podria ser con WHERE fecha_deshabilitacion<>null para
        //registros nuevos. Pero en registros antiguos no.
        
        foreach ($tvio as $idtvio => $nomtvio) {
            $scat = $db->getAssoc("SELECT id, nombre " .
                "FROM supracategoria WHERE " .
                "id_tipo_violencia='$idtvio';"); 
            foreach ($scat as $idscat => $nomscat) {
                $cat = $db->getAssoc("SELECT id, nombre " .
                "FROM categoria WHERE " .
                "id_tipo_violencia='$idtvio' AND " .
                "id_supracategoria='$idscat';");
                foreach ($cat as $idcat => $nomcat) {
                    $n = $nomtvio . ":" . $nomscat . ":" . $nomcat;
                    $i = $idtvio . ":" . $idscat . ":" . $idcat;
                    $sel->addOption($n, $i);
                }
            }
        }
        $sel->setMultiple(true);

        $f->addRule('clasificacion', 
            'Por favor ingrese una clasificación', 'required'); 
        return $f;
    }
}

?>
