<?php
/* Autor...: Grupo Deltron S.A. */
/* Esquema.: modelo_llamadas_nhc_5.xml */
/* Generado: 2014-11-22 16:58:21 */

/* Busqueda de registros de la tabla cr_llamada_resultado. */
abstract class BaseCr_llamada_resultadoFN extends Cr_llamada_resultadoBN
{
    /* Declaracion de constantes */
    const IdResultado = "IDRESULTADO";
    const Descripcion = "DESCRIPCION";
    const FlagFecha = "FLAGFECHA";
    const FlagHora = "FLAGHORA";
    const FlagTipoPago = "FLAGTIPOPAGO";
    const Estado = "ESTADO";
    const Orden = "ORDEN";

    public $a_Condition = array();
    public $a_OrderBy = array();

    /* Obtiene una conexion a la base de datos */
    public function getConnect()
    {
        $o_DBConnect = Conexion::getConexion();
        //$o_Resource = $o_DBConnect->getResource();
        $o_Resource = $o_DBConnect;
        return $o_Resource;
    }

    /* Obtiene la cadena de columas */
    public function getSelectColumns()
    {
        $s_SQLQuery = "IdResultado AS IdResultado, ";
        $s_SQLQuery .= "Descripcion AS Descripcion, ";
        $s_SQLQuery .= "FlagFecha AS FlagFecha, ";
        $s_SQLQuery .= "FlagHora AS FlagHora, ";
        $s_SQLQuery .= "FlagTipoPago AS FlagTipoPago, ";
        $s_SQLQuery .= "Estado AS Estado, ";
        $s_SQLQuery .= "Orden AS Orden ";
        return $s_SQLQuery;
    }

    /* Establece el condicion de filtro de la lista resultante */
    public function addCondition( $s_Const, $s_Operator, $u_Value )
    {
        $this->a_Condition[] = array( "COLUMN" => $s_Const, "OPERATOR" => $s_Operator, "VALUE" => $u_Value );
    }

    /* Establece el orden de la lista resultante */
    public function addOrderBy( $s_Const, $b_OrderAsc = true )
    {
        $this->a_OrderBy[] = array( "COLUMN" => $s_Const, "ASC" => $b_OrderAsc );
    }

    /* Establece los valores desde un objeto Cr_llamada_resultadoBN */
    public function setByBN( Cr_llamada_resultadoBN $o_Cr_llamada_resultadoBN )
    {
        if ( !is_null( $o_Cr_llamada_resultadoBN->getIdResultado() ) )
        {
            $this->setIdResultado( $o_Cr_llamada_resultadoBN->getIdResultado() );
        }
        if ( !is_null( $o_Cr_llamada_resultadoBN->getDescripcion() ) )
        {
            $this->setDescripcion( $o_Cr_llamada_resultadoBN->getDescripcion() );
        }
        if ( !is_null( $o_Cr_llamada_resultadoBN->getFlagFecha() ) )
        {
            $this->setFlagFecha( $o_Cr_llamada_resultadoBN->getFlagFecha() );
        }
        if ( !is_null( $o_Cr_llamada_resultadoBN->getFlagHora() ) )
        {
            $this->setFlagHora( $o_Cr_llamada_resultadoBN->getFlagHora() );
        }
        if ( !is_null( $o_Cr_llamada_resultadoBN->getFlagTipoPago() ) )
        {
            $this->setFlagTipoPago( $o_Cr_llamada_resultadoBN->getFlagTipoPago() );
        }
        if ( !is_null( $o_Cr_llamada_resultadoBN->getEstado() ) )
        {
            $this->setEstado( $o_Cr_llamada_resultadoBN->getEstado() );
        }
        if ( !is_null( $o_Cr_llamada_resultadoBN->getOrden() ) )
        {
            $this->setOrden( $o_Cr_llamada_resultadoBN->getOrden() );
        }
    }

    /* Busca un registro por su llave primaria */
    public function selectByPK( $i_IdResultado )
    {
        if( is_null( $i_IdResultado ) ){ $i_IdResultado = -1; } 
 
        $s_SQLQuery = "SELECT ";
        $s_SQLQuery .= $this->getSelectColumns();
        $s_SQLQuery .= "FROM cr_llamada_resultado ";
        $s_SQLQuery .= "WHERE IdResultado = ".$i_IdResultado." ";
        $s_SQLQuery .= "LIMIT 1;";

        $o_Cr_llamada_resultadoBN = null;
        $o_Resource = $this->getConnect();
        $o_SQLResult = mysql_query( $s_SQLQuery, $o_Resource );
        if ( $o_SQLResult === false )
        {
            throw new Exception( mysql_error() );
        }
        if ( $a_SQLRow = mysql_fetch_object( $o_SQLResult ) )
        {
            $o_Cr_llamada_resultadoBN = $this->insertObjectBN( $a_SQLRow );
        }
        return $o_Cr_llamada_resultadoBN;
    }

    public function buildConsult()
    {
        $s_SQLQuery = "";
        if ( !is_null( $this->getIdResultado() ) ) $s_SQLQuery .= "IdResultado = ".$this->getIdResultado()." AND ";
        if ( !is_null( $this->getDescripcion() ) ) $s_SQLQuery .= "Descripcion = '".$this->getDescripcion()."' AND ";
        if ( !is_null( $this->getFlagFecha() ) ) $s_SQLQuery .= "FlagFecha = ".$this->getFlagFecha()." AND ";
        if ( !is_null( $this->getFlagHora() ) ) $s_SQLQuery .= "FlagHora = ".$this->getFlagHora()." AND ";
        if ( !is_null( $this->getFlagTipoPago() ) ) $s_SQLQuery .= "FlagTipoPago = ".$this->getFlagTipoPago()." AND ";
        if ( !is_null( $this->getEstado() ) ) $s_SQLQuery .= "Estado = '".$this->getEstado()."' AND ";
        if ( !is_null( $this->getOrden() ) ) $s_SQLQuery .= "Orden = ".$this->getOrden()." AND ";
        if ( count( $this->a_Condition ) > 0 )
        {
            foreach ( $this->a_Condition as $a_Condition )
            {
                $s_SQLQuery .= $a_Condition[ "COLUMN" ]." ".$a_Condition[ "OPERATOR" ]." '".$a_Condition[ "VALUE" ]."' AND ";
            }
        }
        $s_SQLQuery .= "1 = 1 ";
        return $s_SQLQuery;
    }

    public function selectNumRows()
    {
        $s_SQLQuery = "SELECT ";
        $s_SQLQuery .= "COUNT(*) AS cnt ";
        $s_SQLQuery .= "FROM cr_llamada_resultado WHERE ";
        $s_SQLQuery .= $this->buildConsult();
        
        $o_Resource = $this->getConnect();
        $o_SQLResult = mysql_query( $s_SQLQuery, $o_Resource );
        if ( $o_SQLResult === false )
        {
            throw new Exception( mysql_error() );
        }
        
        $num_rows = 0;
        if ( $a_SQLRow = mysql_fetch_object( $o_SQLResult ) )
        {
            $num_rows = $a_SQLRow->cnt;
        }
        return $num_rows;
    }

    /* Busca varios registros por los campos establecidos */
    public function select( $i_Position = null, $i_Rows = null )
    {
        $s_SQLQuery = "SELECT ";
        $s_SQLQuery .= $this->getSelectColumns();
        $s_SQLQuery .= "FROM cr_llamada_resultado WHERE ";
        $s_SQLQuery .= $this->buildConsult();
        if ( count( $this->a_OrderBy ) > 0 )
        {
            $s_SQLQuery = $s_SQLQuery."ORDER BY ";
            $s_Separator = "";
            foreach ( $this->a_OrderBy as $a_OrderBy )
            {
                $s_SQLQuery .= $s_Separator.$a_OrderBy[ "COLUMN" ]." ";
                if ( $a_OrderBy[ "ASC" ] === false ) $s_SQLQuery .= "DESC ";
                $s_Separator = ", ";
            }
        }
        if( !is_null( $i_Position ) && is_null( $i_Rows ) ) $s_SQLQuery .= "LIMIT ".$i_Position;
        if( !is_null( $i_Position ) && !is_null( $i_Rows ) ) $s_SQLQuery .= "LIMIT ".$i_Position.", ".$i_Rows;
        $s_SQLQuery .= ";";

        $a_Cr_llamada_resultadoBN = null;
        $o_Resource = $this->getConnect();
        $o_SQLResult = mysql_query( $s_SQLQuery, $o_Resource );
        if ( $o_SQLResult === false )
        {
            throw new Exception( mysql_error() );
        }
        while ( $a_SQLRow = mysql_fetch_object( $o_SQLResult ) )
        {
            $o_Cr_llamada_resultadoBN = $this->insertObjectBN( $a_SQLRow );
            $a_Cr_llamada_resultadoBN[] = $o_Cr_llamada_resultadoBN;
        }
        return $a_Cr_llamada_resultadoBN;
    }

    /* Devuelve un objeto Cr_llamada_resultadoBN desde un objeto propel */
    public function insertObjectBN( $o_Cr_llamada_resultado )
    {
        $o_Cr_llamada_resultadoBN = new Cr_llamada_resultadoBN();
        if ( !is_null( $o_Cr_llamada_resultado->IdResultado ) ) $o_Cr_llamada_resultadoBN->setIdResultado( ( integer ) $o_Cr_llamada_resultado->IdResultado );
        if ( !is_null( $o_Cr_llamada_resultado->Descripcion ) ) $o_Cr_llamada_resultadoBN->setDescripcion( $o_Cr_llamada_resultado->Descripcion );
        if ( !is_null( $o_Cr_llamada_resultado->FlagFecha ) ) $o_Cr_llamada_resultadoBN->setFlagFecha( ( integer ) $o_Cr_llamada_resultado->FlagFecha );
        if ( !is_null( $o_Cr_llamada_resultado->FlagHora ) ) $o_Cr_llamada_resultadoBN->setFlagHora( ( integer ) $o_Cr_llamada_resultado->FlagHora );
        if ( !is_null( $o_Cr_llamada_resultado->FlagTipoPago ) ) $o_Cr_llamada_resultadoBN->setFlagTipoPago( ( integer ) $o_Cr_llamada_resultado->FlagTipoPago );
        if ( !is_null( $o_Cr_llamada_resultado->Estado ) ) $o_Cr_llamada_resultadoBN->setEstado( $o_Cr_llamada_resultado->Estado );
        if ( !is_null( $o_Cr_llamada_resultado->Orden ) ) $o_Cr_llamada_resultadoBN->setOrden( ( integer ) $o_Cr_llamada_resultado->Orden );
        return $o_Cr_llamada_resultadoBN;
    }
}
?>