<?php
/**
 * Clase Base FN para BaseCrCreditoCronoFN
 *
 * @package    
 * @subpackage BaseCrCreditoCronoFN
 * @author     Willy
 * @version    SVN:: BaseCrCreditoCronoFN.class.php,v 1.1 2013-01-04 11:11:51 william.taype Exp $
 */
class BaseCrCreditoCronoFN extends CrCreditoCronoBN
{
  private static $fieldNames = array (
    'Idcreditocrono'=>'idcreditocrono', 'Fechainicio'=>'fechainicio', 'Fechavencimiento'=>'fechavencimiento', 'Montocapital'=>'montocapital', 'Montointeres'=>'montointeres', 'Porcinteresmensual'=>'porcinteresmensual', 'Porcinteresdiariomora'=>'porcinteresdiariomora', 'Fechacancelacion'=>'fechacancelacion', 'Usuariocancelacion'=>'usuariocancelacion', 'Numeromeses'=>'numeromeses', 'Observacion'=>'observacion', 'Tipocredito'=>'tipocredito', 'Estado'=>'estado', 'Origen'=>'origen', 'Saldocredito'=>'saldocredito', 'Morareal'=>'morareal', 'Moraamortizada'=>'moraamortizada', 'Montototal'=>'montototal', 'Creditoreferencia'=>'creditoreferencia', 'Montoextra'=>'montoextra', 'Eliminado'=>'eliminado', 'Fechaeliminado'=>'fechaeliminado', 'Usuarioeliminado'=>'usuarioeliminado', 'Fechacreacion'=>'fechacreacion', 'Usuariocreacion'=>'usuariocreacion', 'Idcliente'=>'idcliente', 'Juicioreferencia'=>'juicioreferencia', 'Flagjuicio'=>'flagjuicio', 'Fechajuicio'=>'fechajuicio', 'Usuariojuicio'=>'usuariojuicio', 'Idcolaborador'=>'idcolaborador', 'Periodopago'=>'periodopago', 'Fechatrx'=>'fechatrx', 'Moneda'=>'moneda', 'Flagpagoanticipado'=>'flagpagoanticipado', 'Fechapagoanticipado'=>'fechapagoanticipado', 'Usuariopagoanticipado'=>'usuariopagoanticipado'  
  );

  public function select()
  {
    try
    {
      $tamPag = !property_exists($this, 'tamPag')?9999:$this->tamPag;
      $pagina = !property_exists($this, 'page')||$this->page==""?1:$this->page;
      $numeroRegistros = $this->selectNumRows();
      $limitInf = ($pagina-1)*$tamPag;

      $where = $this->buildConsult();
      $orden = $this->buildOrderByField();

      $con = Conexion::getConexion();
      $sql = "SELECT * FROM cr_credito_crono H INNER JOIN cr_cliente AS C ON C.IdCliente = H.idcliente WHERE 1 ".$where." ".$orden."  LIMIT ".$limitInf.",".$tamPag;
      //echo $sql;
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      $num_rows = mysql_num_rows($result);
      $a_tmp = array();
      if($num_rows>0){
        while ($o_valor = mysql_fetch_object($result)) {
          $a_tmp[] = $this->insertObjectBN($o_valor);
        }
      }
      
      return count($a_tmp)>0?$a_tmp:null;
    }catch ( Exception $o_Error ){
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
  }

  public function selectNumRows()
  {
    try
    {
      $where = $this->buildConsult();

      $con = Conexion::getConexion();
      $sql = "SELECT H.* FROM cr_credito_crono H INNER JOIN cr_cliente AS C ON C.IdCliente = H.idcliente WHERE 1 ".$where;
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      $num_rows = mysql_num_rows($result);
      
      return $num_rows;
    }catch ( Exception $o_Error ){
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
  }

  public function buildConsult()
  {
    try
    {
      $where = "";

      if($this->getIdcreditocrono()){ $where .= " AND idcreditocrono = '".$this->getIdcreditocrono()."'"; }
      if($this->getFechainicio()){ $where .= " AND fechainicio = '".$this->getFechainicio()."'"; }
      if($this->getFechavencimiento()){ $where .= " AND fechavencimiento = '".$this->getFechavencimiento()."'"; }
      if($this->getMontocapital()){ $where .= " AND montocapital = '".$this->getMontocapital()."'"; }
      if($this->getGastoAdministrativo()){ $where .= " AND gastoadministrativo = '".$this->getGastoAdministrativo()."'"; }
      if($this->getMontointeres()){ $where .= " AND montointeres = '".$this->getMontointeres()."'"; }
      if($this->getPorcinteresmensual()){ $where .= " AND porcinteresmensual = '".$this->getPorcinteresmensual()."'"; }
      if($this->getPorcinteresdiariomora()){ $where .= " AND porcinteresdiariomora = '".$this->getPorcinteresdiariomora()."'"; }
      if($this->getFechacancelacion()){ $where .= " AND fechacancelacion = '".$this->getFechacancelacion()."'"; }
      if($this->getUsuariocancelacion()){ $where .= " AND usuariocancelacion = '".$this->getUsuariocancelacion()."'"; }
      if($this->getNumeromeses()){ $where .= " AND numeromeses = '".$this->getNumeromeses()."'"; }
      if($this->getObservacion()){ $where .= " AND observacion = '".$this->getObservacion()."'"; }
      if($this->getTipocredito()){ $where .= " AND tipocredito = '".$this->getTipocredito()."'"; }
      if($this->getEstado()){ $where .= " AND estado = '".$this->getEstado()."'"; }
      if($this->getOrigen()){ $where .= " AND origen = '".$this->getOrigen()."'"; }
      if($this->getSaldocredito()){ $where .= " AND saldocredito = '".$this->getSaldocredito()."'"; }
      if($this->getMorareal()){ $where .= " AND morareal = '".$this->getMorareal()."'"; }
      if($this->getMoraamortizada()){ $where .= " AND moraamortizada = '".$this->getMoraamortizada()."'"; }
      if($this->getMontototal()){ $where .= " AND montototal = '".$this->getMontototal()."'"; }
      if($this->getCreditoreferencia()){ $where .= " AND creditoreferencia = '".$this->getCreditoreferencia()."'"; }
      if($this->getMontoextra()){ $where .= " AND montoextra = '".$this->getMontoextra()."'"; }
      if($this->getEliminado()){ $where .= " AND H.eliminado = '".$this->getEliminado()."'"; }
      if($this->getFechaeliminado()){ $where .= " AND H.fechaeliminado = '".$this->getFechaeliminado()."'"; }
      if($this->getUsuarioeliminado()){ $where .= " AND H.usuarioeliminado = '".$this->getUsuarioeliminado()."'"; }
      if($this->getFechacreacion()){ $where .= " AND fechacreacion = '".$this->getFechacreacion()."'"; }
      if($this->getUsuariocreacion()){ $where .= " AND usuariocreacion = '".$this->getUsuariocreacion()."'"; }
      if($this->getIdcliente()){ $where .= " AND idcliente = '".$this->getIdcliente()."'"; }
      if($this->getJuicioreferencia()){ $where .= " AND juicioreferencia = '".$this->getJuicioreferencia()."'"; }
      if($this->getFlagjuicio()){ $where .= " AND flagjuicio = '".$this->getFlagjuicio()."'"; }
      if($this->getFechajuicio()){ $where .= " AND fechajuicio = '".$this->getFechajuicio()."'"; }
      if($this->getUsuariojuicio()){ $where .= " AND usuariojuicio = '".$this->getUsuariojuicio()."'"; }
      if($this->getIdcolaborador()){ $where .= " AND idcolaborador = '".$this->getIdcolaborador()."'"; }
      if($this->getPeriodopago()){ $where .= " AND periodopago = '".$this->getPeriodopago()."'"; }
      if($this->getFechatrx()){ $where .= " AND fechatrx = '".$this->getFechatrx()."'"; }
      if($this->getMoneda()){ $where .= " AND moneda = '".$this->getMoneda()."'"; }
      if($this->getFlagpagoanticipado()){ $where .= " AND flagpagoanticipado = '".$this->getFlagpagoanticipado()."'"; }
      if($this->getFechapagoanticipado()){ $where .= " AND fechapagoanticipado = '".$this->getFechapagoanticipado()."'"; }
      if($this->getUsuariopagoanticipado()){ $where .= " AND usuariopagoanticipado = '".$this->getUsuariopagoanticipado()."'"; }
      return $where;
    }catch ( Exception $o_Error ){
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
  }

  public function buildOrderByField()
  {
    try
    {
      $order_by = "";

      if(property_exists($this,'sortCampos')){
      if($this->sortCampos != ""){
        $a_valCampos = explode(";", $this->sortCampos);
        $a_valtype   = explode(";", $this->sortType);
        $order_by = " ORDER BY ";
        $a_order = array();
        foreach ($a_valCampos as $key => $val){
          $sTmpOrder = "";
          if(array_key_exists($val, self::$fieldNames)){
            $sTmpOrder .= self::$fieldNames[$val];
            switch ($a_valtype[$key]){
              case 1: $sTmpOrder .= " ASC"; break;
              case 2: $sTmpOrder .= " DESC"; break;
            }
            $a_order[] = $sTmpOrder;
          }
        }
        $order_by .= implode(", ", $a_order);
      }
      }
      return $order_by;
    }catch ( Exception $o_Error ){
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
  }

  /* B�squeda del registro por la llave primaria */
  public function selectByPK()
  {
    try
    {
      $con = Conexion::getConexion();
      $sql = "SELECT idcreditocrono, fechainicio, fechavencimiento, montocapital, gastoadministrativo, montointeres, porcinteresmensual, porcinteresdiariomora, fechacancelacion, usuariocancelacion, numeromeses, duracion, observacion, tipocredito, estado, origen, saldocredito, morareal, moraamortizada, montototal, creditoreferencia, montoextra, eliminado, fechaeliminado, usuarioeliminado, fechacreacion, usuariocreacion, idcliente, garante,direcciongarante,telefonogarante,juicioreferencia, flagjuicio, fechajuicio, usuariojuicio, idcolaborador, periodopago, fechatrx, moneda, flagpagoanticipado, fechapagoanticipado, usuariopagoanticipado,descuento FROM cr_credito_crono WHERE 1 AND idcreditocrono='".$this->getIdcreditocrono()."'; ";
      //echo $sql;
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      $o_Propel = $result ? mysql_fetch_object($result) : null;
      

      return $o_Propel?$this->insertObjectBN($o_Propel):null;

    }catch ( Exception $o_Error ){
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
  }

  /* Devuelve un objeto con m�todos de acceso */
  public function insertObjectBN($o_propel){
    $o_BaseCrCreditoCronoFN = new BaseCrCreditoCronoFN();
    $o_BaseCrCreditoCronoFN->setIdcreditocrono($o_propel->idcreditocrono);
    $o_BaseCrCreditoCronoFN->setFechainicio($o_propel->fechainicio);
   
    
    $o_BaseCrCreditoCronoFN->setFechavencimiento($o_propel->fechavencimiento);
    $o_BaseCrCreditoCronoFN->setMontocapital($o_propel->montocapital);
    $o_BaseCrCreditoCronoFN->setGastoAdministrativo($o_propel->gastoadministrativo);
    $o_BaseCrCreditoCronoFN->setMontointeres($o_propel->montointeres);
    $o_BaseCrCreditoCronoFN->setPorcinteresmensual($o_propel->porcinteresmensual);
    $o_BaseCrCreditoCronoFN->setPorcinteresdiariomora($o_propel->porcinteresdiariomora);
    $o_BaseCrCreditoCronoFN->setFechacancelacion($o_propel->fechacancelacion);
    $o_BaseCrCreditoCronoFN->setUsuariocancelacion($o_propel->usuariocancelacion);
    $o_BaseCrCreditoCronoFN->setNumeromeses($o_propel->numeromeses);
    $o_BaseCrCreditoCronoFN->setDuracion($o_propel->duracion);
    $o_BaseCrCreditoCronoFN->setObservacion($o_propel->observacion);
    $o_BaseCrCreditoCronoFN->setTipocredito($o_propel->tipocredito);
    $o_BaseCrCreditoCronoFN->setEstado($o_propel->estado);
    $o_BaseCrCreditoCronoFN->setOrigen($o_propel->origen);
    $o_BaseCrCreditoCronoFN->setSaldocredito($o_propel->saldocredito);
    $o_BaseCrCreditoCronoFN->setMorareal($o_propel->morareal);
    $o_BaseCrCreditoCronoFN->setMoraamortizada($o_propel->moraamortizada);
    $o_BaseCrCreditoCronoFN->setMontototal($o_propel->montototal);
    $o_BaseCrCreditoCronoFN->setCreditoreferencia($o_propel->creditoreferencia);
    $o_BaseCrCreditoCronoFN->setMontoextra($o_propel->montoextra);
    $o_BaseCrCreditoCronoFN->setEliminado($o_propel->eliminado);
    $o_BaseCrCreditoCronoFN->setFechaeliminado($o_propel->fechaeliminado);
    $o_BaseCrCreditoCronoFN->setUsuarioeliminado($o_propel->usuarioeliminado);
    $o_BaseCrCreditoCronoFN->setFechacreacion($o_propel->fechacreacion);
    $o_BaseCrCreditoCronoFN->setUsuariocreacion($o_propel->usuariocreacion);
    $o_BaseCrCreditoCronoFN->setIdcliente($o_propel->idcliente);
    $o_BaseCrCreditoCronoFN->setGarante($o_propel->garante);
    $o_BaseCrCreditoCronoFN->setDireccionGarante($o_propel->direcciongarante);
    $o_BaseCrCreditoCronoFN->setTelefonoGarante($o_propel->telefonogarante);
    $o_BaseCrCreditoCronoFN->setJuicioreferencia($o_propel->juicioreferencia);
    $o_BaseCrCreditoCronoFN->setFlagjuicio($o_propel->flagjuicio);
    $o_BaseCrCreditoCronoFN->setFechajuicio($o_propel->fechajuicio);
    $o_BaseCrCreditoCronoFN->setUsuariojuicio($o_propel->usuariojuicio);
    $o_BaseCrCreditoCronoFN->setIdcolaborador($o_propel->idcolaborador);
    $o_BaseCrCreditoCronoFN->setPeriodopago($o_propel->periodopago);
    $o_BaseCrCreditoCronoFN->setFechatrx($o_propel->fechatrx);
    $o_BaseCrCreditoCronoFN->setMoneda($o_propel->moneda);
    $o_BaseCrCreditoCronoFN->setFlagpagoanticipado($o_propel->flagpagoanticipado);
    $o_BaseCrCreditoCronoFN->setFechapagoanticipado($o_propel->fechapagoanticipado);
    $o_BaseCrCreditoCronoFN->setUsuariopagoanticipado($o_propel->usuariopagoanticipado);
    return $o_BaseCrCreditoCronoFN;
  }
}