<?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.php,v 1.32 2009/05/03 12:23:21 vtamara Exp $
 * @link      http://sivel.sf.net
 */

/**
 * Definicion para la tabla categoria.
 */
require_once 'DB/DataObject.php';

/**
 * Definicion para la tabla categoria.
 * 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 extends DB_DataObject 
{
    // START_AUTOCODE
    /* the code below is auto generated do not remove the above tag */

    var $__table = 'categoria';                       // table name
    var $id;                              // int4(4)  not_null primary_key
    var $nombre;                          // varchar(-1)  not_null
    var $fecha_creacion;                  // date(4)  not_null
    var $fecha_deshabilitacion;           // date(4)  
    var $id_supracategoria;               // int4(4)  
    var $id_tipo_violencia;               // varchar(-1)  
    var $col_rep_consolidado;              // int4(4)  
    var $contada_en;                      // int4(4)

    /**
     * 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', $k, $v);
    }

    /* the code above is auto generated do not remove the tag below */
    // END_AUTOCODE
    var $fb_linkDisplayFields = array('nombre',
        'id_tipo_violencia', 
        'id_supracategoria');
    var $fb_preDefOrder = array('id', 'nombre', 'fecha_creacion', 
        'fecha_deshabilitacion', 'id_supracategoria', 'col_rep_consolidado',
        'contada_en');
    var $fb_fieldsToRender = array('id', 'nombre', 'fecha_creacion', 
        'fecha_deshabilitacion', 'id_supracategoria', 'col_rep_consolidado',
        'contada_en');
    var $fb_fieldLabels = array('id' => 'Código de Categoría',
                'id_supracategoria' => 'Supracategoria',
                'id_tipo_violencia' => 'Tipo de Violencia',
                'nombre' => 'Nombre',
                'fecha_creacion' => 'Fecha de Creación',
                'fecha_deshabilitacion' => 'Fecha de Deshabilitación',
                'col_rep_consolidado' => 'Columna en Rep. Consolidado',
                'contada_en' => 'Contada también como Categoria');
    var $fb_selectAddEmpty = array('fecha_deshabilitacion'); 
    var $nom_tabla = 'Categoria';

    /**
     * Pone un valor en la base diferente al recibido del formulario.
     *
     * @param string $valor Valor en formulario
     *
     * @return Valor para BD
     */
    function setfecha_deshabilitacion($valor)
    {
        $this->fecha_deshabilitacion = ($valor == '0000-00-00') ? 'null' : $valor;
    }

    /**
     * Pone un valor en la base diferente al recibido del formulario.
     *
     * @param string $valor Valor en formulario
     *
     * @return Valor para BD
     */
    function setcontada_en($valor)
    {
        $this->contada_en= ($valor == '') ? 'null' : $valor;
    }

    /**
     * Pone un valor en la base diferente al recibido del formulario.
     *
     * @param string $valor Valor en formulario
     *
     * @return Valor para BD
     */
    function setid_supracategoria($valor)
    {
        $a = explode(':', $valor);
        $this->id_tipo_violencia = $a[0];
        $this->id_supracategoria = $a[1];
    }

    /**
     * Opciones de fecha para un campo
     *
     * @param string &$field campo
     *
     * @return arreglo de opciones
     */
    function dateOptions(&$field)
    {
        return array('language' => 'es',
        'format' => 'dMY',
        'minYear' => $GLOBALS['anio_min'],
        'maxYear' => 2025);
    }

    /**
     * Ajusta formulario generado.
     *
     * @param object &$form        Formulario HTML_QuickForm
     * @param object &$formbuilder Generador DataObject_FormBuilder
     *
     * @return void
     */
    function postGenerateForm(&$form, &$formbuilder)
    {
        $h =& $form->getElement('__header__');
        if (PEAR::isError($h)) {
            $h =& $form->getElement(null);
        }
        $s =& $form->getElement('id_supracategoria');
        $db = $formbuilder->_do->getDatabaseConnection();
        $s->_options = array();
        $q = 'SELECT supracategoria.nombre || \' (\' || ' .
            'tipo_violencia.nombre || \')\', tipo_violencia.id || ' .
            '\':\' || supracategoria.id FROM supracategoria, tipo_violencia ' .
            'WHERE tipo_violencia.id=supracategoria.id_tipo_violencia';
        $r = $s->loadQuery($db, $q);
        if (PEAR::isError($r)) {
            die("Error: " . $r->getMessage());
        } 
        $s->setValue($this->id_tipo_violencia.':' .
                $this->id_supracategoria);
        $f =& $form->getElement('fecha_deshabilitacion');
        if (!isset($this->fecha_deshabilitacion) ||
        $this->fecha_deshabilitacion == '') {
            $f->_elements[0]->setValue('');
            $f->_elements[1]->setValue('');
            $f->_elements[2]->setValue('');
        }
    }

    /** 
     * Para evitar que intente numeración automática cuando se
     * agregan categorias 
     *
     * @return array Indica no numerar automáticamente
     */
    function sequenceKey() 
    {
        return array(false, false, false);
    }


}

?>
