<?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: Fuente_directa_caso.php,v 1.26 2009/04/25 15:57:36 vtamara Exp $
 * @link      http://sivel.sf.net
 */

/**
 * Definicion para la tabla fuente_directa_caso.
 */
require_once 'DB/DataObject.php';
require_once 'aut/conf.php';

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

    var $__table = 'fuente_directa_caso';             // table name
    var $id_caso;                         // int4(4)  multiple_key
    var $id_fuente_directa;               // int4(4)  multiple_key
    var $anotacion;                       // varchar(-1)  
    var $fecha;                           // date(4)  multiple_key
    var $ubicacion_fisica;                // varchar(-1)  
    var $tipo_fuente;                     // 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_Fuente_directa_caso', $k, $v);
    }

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

    var $fb_addFormHeader = false;
    //var $fb_selectAddEmpty = array('id_fuente_directa');
    var $fb_preDefOrder = array('anotacion', 'fecha',
        'ubicacion_fisica', 'tipo_fuente');
    var $fb_fieldsToRender = array('anotacion', 'fecha',
        'ubicacion_fisica', 'tipo_fuente');
    var $fb_enumFields = array('tipo_fuente');
    var $fb_enumOptions = array('tipo_fuente' => 
        array('Directa', 'Indirecta')
    );
    var $fb_excludeFromAutoRules = array('fecha');
    var $fb_fieldLabels = array(
        'anotacion' => 'Anotación',
        'fecha' => 'Fecha',
        'ubicacion_fisica' => 'Ubicación Física',
        'tipo_fuente' => 'Tipo de Fuente'
    );

    /**
     * Opciones de fecha para un campo
     *
     * @param string $fieldName campo
     *
     * @return arreglo de opciones
     */
    function dateOptions($fieldName)
    {
        return array('minYear' => $GLOBALS['anio_min']);
    }

    /**
     * Prepara antes de generar formulario.
     *
     * @param object &$formbuild Generador DataObject_FormBuilder
     *
     * @return void
     */
    function preGenerateForm(&$formbuild)
    {
        $this->fb_preDefElements = array('id_caso' =>
            HTML_QuickForm::createElement('hidden', 'id_caso'),
            'id_fuente_directa' =>
            HTML_QuickForm::createElement('hidden', 'id_fuente_directa'),
        );
    }

    /**
     * Ajusta formulario generado.
     *
     * @param object &$form      Formulario HTML_QuickForm
     * @param object &$formbuild Generador DataObject_FormBuilder
     *
     * @return void
     */
    function postGenerateForm(&$form, &$formbuild)
    {
        $e =& $form->getElement('ubicacion_fisica');
        if (isset($e) && !PEAR::isError($e)) {
            $e->setLabel('Ubicación Física');
            $e->setSize(70);
            $e->setMaxlength(100);
            if (isset($GLOBALS['etiqueta']['ubicacion_fisica'])) {
                $e->setLabel($GLOBALS['etiqueta']['ubicacion_fisica']);
            }
        }

        $e =& $form->getElement('tipo_fuente');
        if (isset($e) && !PEAR::isError($e) &&
            isset($GLOBALS['etiqueta']['tipo_fuente'])) {
            $e->setLabel($GLOBALS['etiqueta']['tipo_fuente']);
        }
        
        $e =& $form->getElement('anotacion');
        if (isset($e) && !PEAR::isError($e)) {
            $e->setSize(70);
            $e->setMaxlength(200);
            if (isset($GLOBALS['etiqueta']['anotacion'])) {
                $e->setLabel($GLOBALS['etiqueta']['anotacion']);
            }
        }

    }

    /**
     * Prepara procesamiento de formulario diligenciado
     *
     * @param array  &$valores   Valores llenados por usuario
     * @param object &$formbuild Generador DataObject_FormBuilder
     *
     * @return void
     */
    function preProcessForm(&$valores, &$formbuild) 
    {
        if ($this->id_fuente_directa != null && 
            (!isset($valores['id_fuente_directa']) 
            || $valores['id_fuente_directa'] == '')) {
            $valores['id_fuente_directa'] = $this->id_fuente_directa;
        }
    }

}

?>
