<?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: Victima.php,v 1.32 2009/04/29 03:55:18 vtamara Exp $
 * @link      http://sivel.sf.net
 */

/**
 * Definicion para la tabla victima.
 */
require_once 'DB/DataObject.php';
require_once "Profesion.php";
require_once "Rango_edad.php";
require_once "Filiacion.php";
require_once "Sector_social.php";
require_once "Organizacion.php";
require_once "Vinculo_estado.php";
require_once "Presuntos_responsables.php";

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

    var $__table = 'victima';                         // table name
    var $id;                              // int4(4)  not_null primary_key
    var $nombre;                          // varchar(-1)  not_null
    var $edad;                            // int4(4)  
    var $hijos;                           // int4(4)  
    var $sexo;                            // varchar(-1)  
    var $id_profesion;                    // int4(4)  
    var $id_rango_edad;                   // int4(4)  
    var $id_filiacion;                    // int4(4)  
    var $id_sector_social;                // int4(4)  
    var $id_organizacion;                 // int4(4)  
    var $id_vinculo_estado;               // int4(4)  
    var $id_caso;                         // int4(4)  
    var $id_organizacion_armada;          // int4(4)  
    var $anotaciones    ;                 // varchar(-1)

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

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

    var $fb_preDefOrder = array('nombre', 'edad', 'hijos', 'sexo',
        'id_profesion', 'id_rango_edad', 'id_filiacion',
        'id_sector_social', 'id_organizacion', 'id_vinculo_estado',
        'id_organizacion_armada', 'anotaciones' );
    var $fb_fieldsToRender = array('nombre', 'edad', 'hijos', 'sexo',
        'id_profesion', 'id_rango_edad', 'id_filiacion',
        'id_sector_social', 'id_organizacion', 'id_vinculo_estado',
        'id_organizacion_armada', 'anotaciones' );
    var $fb_enumFields = array('sexo');
    var $es_enumOptions = array('sexo' => array('F' => 'Femenino',
        'M' => 'Masculino', 'S'=> 'SIN INFORMACIÓN'));
    var $fb_addFormHeader = false;
    var $fb_selectAddEmpty = array();
    var $fb_fieldsRequired = array('id_profesion', 'id_rango_edad', 
        'id_filiacion', 'id_sector_social', 'id_organizacion', 
        'id_vinculo_estado', 'id_organizacion_armada' );
    var $fb_excludeFromAutoRules = array('nombre', 'sexo', 'id_profesion',
        'id_rango_edad', 'id_filiacion', 'id_sector_social',
        'id_organizacion', 'id_vinculo_estado', 'id_organizacion_armada');
    var $fb_fieldLabels = array(
        'nombre'=> 'Nombre',
        'edad'=> 'Edad',
        'hijos'=> 'Hijos',
        'sexo'=> 'Sexo',
        'id_profesion'=> 'Profesión',
        'id_rango_edad'=> 'Rango de Edad',
        'id_filiacion'=> 'Filiación política',
        'id_sector_social'=> 'Sector Social',
        'id_organizacion'=> 'Organización',
        'id_vinculo_estado'=> 'Vínculo con el Estado',
        'id_organizacion_armada'=> 'Organización Armada Víctima',
        'anotaciones'=> 'Anotaciones',
    );

    /**
     * Funciona legada 
     * Como ocurria en FormBuilder 0.10, hasta versión 1.121 en el 
     * CVS de FormBuilder.php. Cambio sucitado por bug #3469
     *
     * @param string $table Tabla
     * @param string $key   Llave
     *
     * @return opción enumeada asociada a la llave.
     */
    function enumCallback($table, $key) 
    {  
        return $this->es_enumOptions[$key];
    }

    /**
    * Modifica el valor de la edad antes de incluirlo en base de datos.
    * Para funcionar con versiones nuevas de DB_DataObject requiere
    * <b>useMutator</b> en <b>true</b>
    *
    * @param string $value Valor recibido de formulario
    *
    * @return Valor para base de datos
    */
    function setedad($value) 
    {
        $this->edad= ($value == '') ? 'null' : $value;
    }
    
    /**
    * Modifica cantidad de hijos antes de incluirlo en base de datos.
    *
    * @param string $value Valor recibido de formulario
    *
    * @return Valor para base de datos
    */
    function sethijos($value) 
    {
        $this->hijos= ($value == '') ? 'null' : $value;
    }

    /** 
     * Campos que pueden ser SIN INFORMACION y el código correspondiente 
     *
     * @return array Arreglo de campos que pueden ser sin información
     */
    function camposSinInfo() 
    {
        return array(
            'sexo'=>'S',
            'id_rango_edad'=> DataObjects_Rango_edad::id_sininfo(),
            'id_profesion'=> DataObjects_Profesion::id_sininfo(),
            'id_filiacion' => DataObjects_Filiacion::id_sininfo(),
            'id_sector_social' => DataObjects_Sector_social::id_sininfo(),
            'id_organizacion' => DataObjects_Organizacion::id_sininfo(),
            'id_vinculo_estado' => DataObjects_Vinculo_estado::id_sininfo(),
            'id_organizacion_armada' => 
                DataObjects_Presuntos_responsables::id_sininfo(),
        );
    }

    /**
     * Prepara antes de generar formulario.
     *
     * @param object &$formbuild Generador DataObject_FormBuilder
     *
     * @return void
     */
    function preGenerateForm(&$formbuild)
    {
        $formbuild->enumOptionsCallback = array($this,
            "enumCallback");
        $csin = $this->camposSinInfo();
        foreach ($csin as $c => $v) {
            if (!isset($this->$c)) {
                $this->$c = $csin[$c];
            }
        }
    }

    /**
     * Ajusta formulario generado.
     *
     * @param object &$form      Formulario HTML_QuickForm
     * @param object &$formbuild Generador DataObject_FormBuilder
     *
     * @return void
     */
    function postGenerateForm(&$form, &$formbuild)
    {

        $sel =& $form->getElement('nombre');
        if (isset($sel) && !PEAR::isError($sel)) {
            $sel->setSize(70);
            $sel->setMaxlength(100);
            if (isset($GLOBALS['etiqueta']['nombre'])) {
                $sel->setLabel($GLOBALS['etiqueta']['nombre']);
            }
        }

        $sel =& $form->getElement('edad');
        if (isset($sel) && !PEAR::isError($sel)) {
            $sel->setSize(5);
            if (isset($GLOBALS['etiqueta']['edad'])) {
                $sel->setLabel($GLOBALS['etiqueta']['edad']);
            }
        }
        $sel =& $form->getElement('hijos');
        if (isset($sel) && !PEAR::isError($sel)) {
            $sel->setSize(5);
            if (isset($GLOBALS['etiqueta']['hijos'])) {
                $sel->setLabel($GLOBALS['etiqueta']['hijos']);
            }
        }
        $sel =& $form->getElement('id_profesion');
        if (isset($sel) && !PEAR::isError($sel)) {
            if (isset($GLOBALS['etiqueta']['profesion'])) {
                $sel->setLabel($GLOBALS['etiqueta']['profesion']);
            }
        }

        $sel =& $form->getElement('id_rango_edad');
        if (isset($sel) && !PEAR::isError($sel) &&
            isset($GLOBALS['etiqueta']['rango_edad'])) {
            $sel->setLabel($GLOBALS['etiqueta']['rango_edad']);
        }

        $sel =& $form->getElement('id_filiacion');
        if (isset($sel) && !PEAR::isError($sel) &&
            isset($GLOBALS['etiqueta']['filiacion'])) {
            $sel->setLabel($GLOBALS['etiqueta']['filiacion']);
        }

        $sel =& $form->getElement('id_sector_social');
        if (isset($sel) && !PEAR::isError($sel) &&
            isset($GLOBALS['etiqueta']['sector_social'])) {
            $sel->setLabel($GLOBALS['etiqueta']['sector_social']);
        }

        $sel =& $form->getElement('id_organizacion');
        if (isset($sel) && !PEAR::isError($sel) &&
            isset($GLOBALS['etiqueta']['organizacion'])) {
            $sel->setLabel($GLOBALS['etiqueta']['organizacion']);
        }

        $sel =& $form->getElement('id_vinculo_estado');
        if (isset($sel) && !PEAR::isError($sel) &&
            isset($GLOBALS['etiqueta']['vinculo_estado'])) {
            $sel->setLabel($GLOBALS['etiqueta']['vinculo_estado']);
        }

        $sel =& $form->getElement('id_organizacion_armada');
        if (isset($sel) && !PEAR::isError($sel) &&
            isset($GLOBALS['etiqueta']['organizacion_armada'])) {
            $sel->setLabel($GLOBALS['etiqueta']['organizacion_armada']);
        }

        $sel =& $form->getElement('anotaciones');
        if (isset($sel) && !PEAR::isError($sel)) {
            $sel->setSize(70);
            $sel->setMaxlength(1000);
            if (isset($GLOBALS['etiqueta']['anotaciones_victima'])) {
                $sel->setLabel($GLOBALS['etiqueta']['anotaciones_victima']);
            }
        }

    }
}

?>
