<?php
/**
 * Clase FN para CrCreditoPagoFN
 *
 * @package    
 * @subpackage CrCreditoPagoFN
 * @author     Willy
 * @version    SVN:: CrCreditoPagoFN.class.php,v 1.1 2013-01-04 11:11:58 william.taype Exp $
 */
class CrCreditoPagoFN extends BaseCrCreditoPagoFN
{
	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 cr_credito_pago.*,cr_credito_crono.idcliente,cr_credito_cuota.fechacuota,cr_credito_crono.moneda,cr_cliente.nombrecompleto,cr_credito_crono.montototal as montototalcredito,cr_credito_crono.saldocredito as saldocredito, cr_credito_crono.flagjuicio
      			FROM cr_credito_pago 
      			LEFT JOIN cr_credito_cuota on cr_credito_cuota.idcuota = cr_credito_pago.idcuota
      			LEFT JOIN cr_credito_crono on cr_credito_crono.idcreditocrono = cr_credito_pago.idcreditocrono
      			LEFT JOIN cr_cliente on cr_cliente.idcliente = cr_credito_crono.idcliente
      			LEFT JOIN cr_mercado on cr_cliente.idmercado = cr_mercado.idmercado
      			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 cr_credito_pago.idpago
      			FROM cr_credito_pago 
      			LEFT JOIN cr_credito_cuota on cr_credito_cuota.idcuota = cr_credito_pago.idcuota
      			LEFT JOIN cr_credito_crono on cr_credito_crono.idcreditocrono = cr_credito_pago.idcreditocrono
      			
      			LEFT JOIN cr_cliente on cr_cliente.idcliente = cr_credito_crono.idcliente
      			LEFT JOIN cr_mercado on cr_cliente.idmercado = cr_mercado.idmercado
      			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 selectTotalPagos()
  {
    try
    {
      $where = $this->buildConsult();

      $con = Conexion::getConexion();
      $sql = "	SELECT sum(montopago) as Montototal 
      			FROM cr_credito_pago 
      			LEFT JOIN cr_credito_cuota on cr_credito_cuota.idcuota = cr_credito_pago.idcuota
      			LEFT JOIN cr_credito_crono on cr_credito_crono.idcreditocrono = cr_credito_pago.idcreditocrono
      			
      			LEFT JOIN cr_cliente on cr_cliente.idcliente = cr_credito_crono.idcliente
      			LEFT JOIN cr_mercado on cr_cliente.idmercado = cr_mercado.idmercado
      			WHERE 1 ".$where;
      //echo $sql;
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      $num_rows = mysql_num_rows($result);
       if($num_rows>0){
        while ($o_valor = mysql_fetch_object($result)) {
        	return $o_valor->Montototal;
        }
       }
      
      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->getIdpago()){ $where .= " AND idpago = '".$this->getIdpago()."'"; }
      if($this->getTipopago()){ $where .= " AND tipopago = '".$this->getTipopago()."'"; }
      if($this->getIdMercado()){ $where .= " AND cr_mercado.idmercado = '".$this->getIdMercado()."'"; }
      if($this->getFechatrx()){ $where .= " AND cr_credito_pago.fechatrx = '".$this->getFechatrx()."'"; }
      if($this->getFechatrxInicio()){ $where .= " AND cr_credito_pago.fechatrx >= '".$this->getFechatrxInicio()."'"; }
      if($this->getFechatrxFinal()){ $where .= " AND cr_credito_pago.fechatrx <= '".$this->getFechatrxFinal()."'"; }
      if($this->getFechaInicio()){ $where .= " AND cr_credito_pago.fechatrx >= '".$this->getFechaInicio()."'"; }
      if($this->getFechaFinal()){ $where .= " AND cr_credito_pago.fechatrx <= '".$this->getFechaFinal()."'"; }
      if($this->getMontopago()){ $where .= " AND montopago = '".$this->getMontopago()."'"; }
      if($this->getFechacreacion()){ $where .= " AND fechacreacion = '".$this->getFechacreacion()."'"; }
      if($this->getUsauriocreacion()){ $where .= " AND usuariocreacion = '".$this->getUsauriocreacion()."'"; }
      if($this->getEliminado()){ $where .= " AND cr_credito_pago.eliminado = '".$this->getEliminado()."'"; }
      if($this->getFechaeliminado()){ $where .= " AND cr_credito_pago.fechaeliminado = '".$this->getFechaeliminado()."'"; }
      if($this->getUsuarioeliminado()){ $where .= " AND usuarioeliminado = '".$this->getUsuarioeliminado()."'"; }
      if($this->getNumerorecibo()){ $where .= " AND numerorecibo = '".$this->getNumerorecibo()."'"; }
      if($this->getBanco()){ $where .= " AND banco = '".$this->getBanco()."'"; }
      if($this->getNumerooperacion()){ $where .= " AND numerooperacion = '".$this->getNumerooperacion()."'"; }
      if($this->getFechaoperacion()){ $where .= " AND fechaoperacion = '".$this->getFechaoperacion()."'"; }
      if($this->getObservacion()){ $where .= " AND observacion = '".$this->getObservacion()."'"; }
      if($this->getIdcuota()){ $where .= " AND cr_credito_pago.idcuota = '".$this->getIdcuota()."'"; }
      if($this->getFechacuota()){ $where .= " AND fechacuota = '".$this->getFechacuota()."'"; }
      if($this->getMontoTotal()){ $where .= " AND montototal = '".$this->getMontoTotal()."'"; }
      
      if($this->getIdscuotas()){
       $where .= " AND idcuota in ('".implode("','",$this->getIdscuotas())."')";
    }
    
      if($this->getMoneda()){ $where .= " AND cr_credito_crono.moneda = '".$this->getMoneda()."'"; }
      if($this->getIdcreditocrono()){ $where .= " AND cr_credito_pago.idcreditocrono = '".$this->getIdcreditocrono()."'"; }
      if($this->getIdCliente()){ $where .= " AND cr_cliente.idcliente = '".$this->getIdCliente()."'"; }
      if($this->getIdcolaborador()){ $where .= " AND cr_credito_pago.idcolaborador = '".$this->getIdcolaborador()."'"; }
	if(is_array($this->getIdcolaboradores())){
      	 $where .= " AND cr_credito_pago.idcolaborador in ('".implode("','",$this->getIdcolaboradores())."')";
	}
      if($this->getFlagJuicio()){ $where .= " AND flagjuicio = '".$this->getFlagJuicio()."'"; }
      return $where;
    }catch ( Exception $o_Error ){
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
    
  }
  public function insertObjectBN($o_propel){
    $o_BaseCrCreditoPagoFN = new BaseCrCreditoPagoFN();
    $o_BaseCrCreditoPagoFN->setIdpago($o_propel->idpago);
    $o_BaseCrCreditoPagoFN->setTipopago($o_propel->tipopago);
    $o_BaseCrCreditoPagoFN->setFechatrx($o_propel->fechatrx);
    $o_BaseCrCreditoPagoFN->setMontopago($o_propel->montopago);
    $o_BaseCrCreditoPagoFN->setFechacreacion($o_propel->fechacreacion);
    $o_BaseCrCreditoPagoFN->setUsauriocreacion($o_propel->usuariocreacion);
    $o_BaseCrCreditoPagoFN->setEliminado($o_propel->eliminado);
    $o_BaseCrCreditoPagoFN->setFechaeliminado($o_propel->fechaeliminado);
    $o_BaseCrCreditoPagoFN->setUsuarioeliminado($o_propel->usuarioeliminado);
    $o_BaseCrCreditoPagoFN->setNumerorecibo($o_propel->numerorecibo);
    $o_BaseCrCreditoPagoFN->setBanco($o_propel->banco);
    $o_BaseCrCreditoPagoFN->setNumerooperacion($o_propel->numerooperacion);
    $o_BaseCrCreditoPagoFN->setFechaoperacion($o_propel->fechaoperacion);
    $o_BaseCrCreditoPagoFN->setObservacion($o_propel->observacion);
    $o_BaseCrCreditoPagoFN->setIdcuota($o_propel->idcuota);
    $o_BaseCrCreditoPagoFN->setFechacuota($o_propel->fechacuota);
    $o_BaseCrCreditoPagoFN->setMontoTotal($o_propel->montototal);
    $o_BaseCrCreditoPagoFN->setSaldototal($o_propel->saldototal);
    
    $o_BaseCrCreditoPagoFN->setIdcreditocrono($o_propel->idcreditocrono);
    $o_BaseCrCreditoPagoFN->setIdcolaborador($o_propel->idcolaborador);
    $o_BaseCrCreditoPagoFN->setIdCliente($o_propel->idcliente);
    $o_BaseCrCreditoPagoFN->setMoneda($o_propel->moneda);
    $o_BaseCrCreditoPagoFN->setNombreCompleto($o_propel->nombrecompleto);
    $o_BaseCrCreditoPagoFN->setMontotalCredito($o_propel->montototalcredito);
    $o_BaseCrCreditoPagoFN->setSaldoCredito($o_propel->saldocredito);
    $o_BaseCrCreditoPagoFN->setFlagJuicio($o_propel->flagjuicio);
    return $o_BaseCrCreditoPagoFN;
  }
}