<?php
/**
 * Clase FN para CrPedidocabeceraFN
 *
 * @package    
 * @subpackage CrPedidocabeceraFN
 * @author     Willy
 * @version    SVN:: CrPedidocabeceraFN.class.php,v 1.1 2012-07-22 23:33:24 william.taype Exp $
 */
class CrPedidocabeceraFN extends BaseCrPedidocabeceraFN
{
    
    public function buildConsult()
    {
        try
        {
            $where = "";
        	if(!is_null($this->getIdSucursal())){ $where .= " AND idsucursal = '".$this->getIdSucursal()."'"; }
            if(!is_null($this->getIdpedidocabecera())){ $where .= " AND idpedidocabecera = '".$this->getIdpedidocabecera()."'"; }
            if(!is_null($this->getFechaoperacion())){ $where .= " AND fechaoperacion = '".$this->getFechaoperacion()."'"; }
            if(!is_null($this->getMontototal())){ $where .= " AND montototal = '".$this->getMontototal()."'"; }
            if(!is_null($this->getMontoaprobado())){ $where .= " AND montoaprobado = '".$this->getMontoaprobado()."'"; }
            if(!is_null($this->getMontorechazado())){ $where .= " AND montorechazado = '".$this->getMontorechazado()."'"; }
            if(!is_null($this->getMontoentregado())){ $where .= " AND montoentregado = '".$this->getMontoentregado()."'"; }
            if(!is_null($this->getMontonoentregado())){ $where .= " AND montonoentregado = '".$this->getMontonoentregado()."'"; }
            if(!is_null($this->getEstado())){ $where .= " AND estado = '".$this->getEstado()."'"; }
            if(!is_null($this->getUsuariocreacion())){ $where .= " AND usuariocreacion = '".$this->getUsuariocreacion()."'"; }
            if(!is_null($this->getFechacreacion())){ $where .= " AND fechacreacion = '".$this->getFechacreacion()."'"; }
            if(!is_null($this->getUsuariomodificacion())){ $where .= " AND usuariomodificacion = '".$this->getUsuariomodificacion()."'"; }
            if(!is_null($this->getFechamodificacion())){ $where .= " AND fechamodificacion = '".$this->getFechamodificacion()."'"; }
            if(!is_null($this->getComentario())){ $where .= " AND comentariorepresentante = '".$this->getComentario()."'"; }
            if(!is_null($this->getUsuarioeliminado())){ $where .= " AND usuarioeliminado = '".$this->getUsuarioeliminado()."'"; }
            if(!is_null($this->getFechaeliminado())){ $where .= " AND fechaeliminado = '".$this->getFechaeliminado()."'"; }
            if(!is_null($this->getEliminado())){ $where .= " AND eliminado = '".$this->getEliminado()."'"; }
            if(!is_null($this->getIdcolaboradordestino())){ $where .= " AND idcolaboradorsupervisor = '".$this->getIdcolaboradordestino()."'"; }
            if(!is_null($this->getIdcolaboradorrepresentante())){ $where .= " AND idcolaboradorrepresentante = '".$this->getIdcolaboradorrepresentante()."'"; }
            if(!is_null($this->getComentariosupervisor())){ $where .= " AND comentariosupervisor = '".$this->getComentariosupervisor()."'"; }
            if(!is_null($this->getNumeropedidos())){ $where .= " AND numeropedidos = '".$this->getNumeropedidos()."'"; }
            if(!is_null($this->getNumeropedidosaprobados())){ $where .= " AND numeropedidosaprobados = '".$this->getNumeropedidosaprobados()."'"; }
            if(!is_null($this->getNumeropedidosdesaprobados())){ $where .= " AND numeropedidosdesaprobados = '".$this->getNumeropedidosdesaprobados()."'"; }
            
            if( $this->getFechaInicio() )
            {
                $where .= " AND C.fechaoperacion >= '".$this->getFechaInicio()."'";
            }
            if( $this->getFechaFin() )
            {
                $where .= " AND C.fechaoperacion <= '".$this->getFechaFin()."'";
            }
            if( $this->getIdCliente() )
            {
                $where .= " AND D.idcliente = '".$this->getIdCliente()."'";
            }
            if( $this->getNombreCompleto() )
            {
                $where .= " AND D.nombrecompleto LIKE '%".$this->getNombreCompleto()."%'";
            }
            
            return $where;
        }
        catch ( Exception $o_Error )
        {
            throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
        }
    }
    
    public function selectNumRowsAll()
    {
        try
        {
            $where = $this->buildConsult();
            
            $con = Conexion::getConexion();
            $sql = "SELECT idpedidocabecera, idsucursal,fechaoperacion, montototal, montoaprobado, montorechazado, montoentregado, montonoentregado, estado, usuariocreacion, fechacreacion, usuariomodificacion, fechamodificacion, comentariorepresentante, usuarioeliminado, fechaeliminado, eliminado, idcolaboradorsupervisor, idcolaboradorrepresentante, comentariosupervisor, numeropedidos, numeropedidosaprobados, numeropedidosdesaprobados FROM cr_pedidocabecera WHERE 1 ".$where;
            $sql = "SELECT C.*
                    FROM cr_pedidocabecera C
                      LEFT JOIN cr_pedidodetalle D ON C.idpedidocabecera=D.idpedidocabecera
                    WHERE 1=1 ".$where." GROUP BY C.idpedidocabecera";
            
            $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
            $result = mysql_db_query(Conexion::getNameDb(), $sql, $oLink);
            $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 selectALl()
    {
        try
        {
            $tamPag = !property_exists($this, 'tamPag')?9999:$this->tamPag;
            $pagina = !property_exists($this, 'page')||$this->page==""?1:$this->page;
            $numeroRegistros = $this->selectNumRowsAll();
            $limitInf = ($pagina-1)*$tamPag;
            
            $where = $this->buildConsult();
            $orden = $this->buildOrderByField();
            
            $con = Conexion::getConexion();
            $sql = "SELECT C.*
                    FROM cr_pedidocabecera C
                      LEFT JOIN cr_pedidodetalle D ON C.idpedidocabecera=D.idpedidocabecera
                    WHERE 1=1 ".$where." GROUP BY C.idpedidocabecera ".$orden." LIMIT ".$limitInf.",".$tamPag;
            //echo $sql;
            $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
            $result = mysql_db_query(Conexion::getNameDb(), $sql, $oLink);
            $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());
        }
    }
}