<?php

/**
* Clase Dispacher para Colaborador
*
* @package IM
* @subpackage ColaboradorDP
* @author Willy
* @version SVN: : ColaboradorDP.class.php,v 1.1 2009/05/18 21:33:02 Exp $
*/
class ColaboradorDP implements interfaceDP {
	private static $fieldNames = array (
    'Colaborador' => 'IdColaborador', 'Nombre' => 'Nombres', 'Apellido' => 'ApellidoPaterno','ApellidoM' => 'ApellidoMaterno', 'IdRol' => 'IdRol'
	);

			
  protected $o_Bean;

  /**
  * Constructor donde asigna a un atributo el objeto ColaboradorBean
  *
  * @param ColaboradorBean $o_ColaboradorBean
  */
  public function __construct(ColaboradorBean $o_ColaboradorBean){
  
    $this->o_Bean = $o_ColaboradorBean;
    
  }
  
  /**
  * Retorna el objeto ColaboradorBean
  *
  * @return Object
  */
  protected function getObjetoBean(){
  
    if(!$this->o_Bean){
        $this->o_Bean = new ColaboradorBean();
    }        
    return $this->o_Bean;
    
  }
  
  /**
  * Ingresa un nuevo registro
  *
  * @return IdGenerado
  */
  public function save(){
    $con = Conexion::getConexion();
      $a_Fields = array();
      //if($this->getObjetoBean()->getIdColaborador()) : $a_Fields['IdColaborador'] = ($this->getObjetoBean()->getIdColaborador()); endif;
      if($this->getObjetoBean()->getIdTipoColaborador()) : $a_Fields['IdTipoColaborador'] = ($this->getObjetoBean()->getIdTipoColaborador()); endif;
      if($this->getObjetoBean()->getTipoDocumento()) : $a_Fields['TipoDocumento'] = ($this->getObjetoBean()->getTipoDocumento()); endif;
      if($this->getObjetoBean()->getIdPadre()) : $a_Fields['IdPadre'] = ($this->getObjetoBean()->getIdPadre()); endif;
      //if($this->getObjetoBean()->getIdGradoInstruccion()) : $a_Fields['IdGradoInstruccion'] = ($this->getObjetoBean()->getIdGradoInstruccion()); endif;
      if($this->getObjetoBean()->getGradoInstruccion()) : $a_Fields['GradoInstruccion'] = ($this->getObjetoBean()->getGradoInstruccion()); endif;
      if($this->getObjetoBean()->getDni()) : $a_Fields['dni'] = ($this->getObjetoBean()->getDni()); endif;
      if($this->getObjetoBean()->getNombres()) : $a_Fields['Nombres'] = ($this->getObjetoBean()->getNombres()); endif;
      if($this->getObjetoBean()->getApellidoPaterno()) : $a_Fields['ApellidoPaterno'] = ($this->getObjetoBean()->getApellidoPaterno()); endif;
      if($this->getObjetoBean()->getApellidoMaterno()) : $a_Fields['ApellidoMaterno'] = ($this->getObjetoBean()->getApellidoMaterno()); endif;
      if($this->getObjetoBean()->getDireccion()) : $a_Fields['Direccion'] = ($this->getObjetoBean()->getDireccion()); endif;
      if($this->getObjetoBean()->getEmail()) : $a_Fields['Email'] = ($this->getObjetoBean()->getEmail()); endif;
      if($this->getObjetoBean()->getTelefono()) : $a_Fields['Telefono'] = ($this->getObjetoBean()->getTelefono()); endif;
      if($this->getObjetoBean()->getCelular()) : $a_Fields['Celular'] = ($this->getObjetoBean()->getCelular()); endif;
      if($this->getObjetoBean()->getEstado()) : $a_Fields['Estado'] = ($this->getObjetoBean()->getEstado()); endif;
      if($this->getObjetoBean()->getIdRol()) : $a_Fields['IdRol'] = ($this->getObjetoBean()->getIdRol()); endif;
      if($this->getObjetoBean()->getUsuario()) : $a_Fields['Usuario'] = ($this->getObjetoBean()->getUsuario()); endif;
      if($this->getObjetoBean()->getUsuarioCreacion()) : $a_Fields['UsuarioCreacion'] = ($this->getObjetoBean()->getUsuarioCreacion()); endif;
      if($this->getObjetoBean()->getFechaCreacion()) : $a_Fields['FechaCreacion'] = ($this->getObjetoBean()->getFechaCreacion()); endif;
      if($this->getObjetoBean()->getFechaNacimiento()) : $a_Fields['FechaNacimiento'] = ($this->getObjetoBean()->getFechaNacimiento()); endif;
      if($this->getObjetoBean()->getSueldo()) : $a_Fields['Sueldo'] = ($this->getObjetoBean()->getSueldo()); endif;
      if($this->getObjetoBean()->getSexo()) : $a_Fields['Sexo'] = ($this->getObjetoBean()->getSexo()); endif;
      if($this->getObjetoBean()->getEstadoCivil()) : $a_Fields['EstadoCivil'] = ($this->getObjetoBean()->getEstadoCivil()); endif;
      if($this->getObjetoBean()->getGradoInstruccion()) : $a_Fields['GradoInstruccion'] = ($this->getObjetoBean()->getGradoInstruccion()); endif;
      if($this->getObjetoBean()->getNumeroHijos()) : $a_Fields['NumeroHijos'] = ($this->getObjetoBean()->getNumeroHijos()); endif;
      if($this->getObjetoBean()->getFechaIngreso()) : $a_Fields['FechaIngreso'] = ($this->getObjetoBean()->getFechaIngreso()); endif;
      
      if($this->getObjetoBean()->getTipoSeguro()) : $a_Fields['TipoSeguro'] = ($this->getObjetoBean()->getTipoSeguro()); endif;
      if($this->getObjetoBean()->getNumeroSeguro()) : $a_Fields['NumeroSeguro'] = ($this->getObjetoBean()->getNumeroSeguro()); endif;
      if($this->getObjetoBean()->getPension()) : $a_Fields['Pension'] = ($this->getObjetoBean()->getPension()); endif;
      if($this->getObjetoBean()->getNumeroPension()) : $a_Fields['NumeroPension'] = ($this->getObjetoBean()->getNumeroPension()); endif;
      if($this->getObjetoBean()->getNombrePension()) : $a_Fields['NombrePension'] = ($this->getObjetoBean()->getNombrePension()); endif;
      if($this->getObjetoBean()->getTipoPension()) : $a_Fields['TipoPension'] = ($this->getObjetoBean()->getTipoPension()); endif;
      if($this->getObjetoBean()->getBono()) : $a_Fields['Bono'] = ($this->getObjetoBean()->getBono()); endif;
      if($this->getObjetoBean()->getAsignacionFamiliar()) : $a_Fields['AsignacionFamiliar'] = ($this->getObjetoBean()->getAsignacionFamiliar()); endif;
      if($this->getObjetoBean()->getPagoRpm()) : $a_Fields['PagoRpm'] = ($this->getObjetoBean()->getPagoRpm()); endif;
      if($this->getObjetoBean()->getTipoPlanilla()) : $a_Fields['TipoPlanilla'] = ($this->getObjetoBean()->getTipoPlanilla()); endif;
      
      $sStringField = arrayClass::implode_keys(',', $a_Fields);
      $sStringValue = "'".implode("','", $a_Fields)."'";

      $sql = "INSERT INTO cr_colaborador (".$sStringField.")
                      VALUES (".$sStringValue.");";
      
      $iResultSave = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      //
       $iResul = mysql_insert_id($con);
      //
      if($iResultSave > 0){
        return $iResul;
      }else{
        return false;
      }
  
  }
  
  /**
  * Modifica un nuevo registro
  *
  * @return IdGenerado
  */
  
   public function update() {

    if($this->getObjetoBean()->getIdColaborador()){
      $con = Conexion::getConexion();
      $a_Fields = array();
      if($this->getObjetoBean()->getIdColaborador()) : $a_Fields['IdColaborador'] = ($this->getObjetoBean()->getIdColaborador()); endif;
      if($this->getObjetoBean()->getTipoDocumento()) : $a_Fields['TipoDocumento'] = ($this->getObjetoBean()->getTipoDocumento()); endif;
     
      if($this->getObjetoBean()->getIdPadre()) : $a_Fields['IdPadre'] = ($this->getObjetoBean()->getIdPadre()); endif;
      if($this->getObjetoBean()->getGradoInstruccion()) : $a_Fields['GradoInstruccion'] = ($this->getObjetoBean()->getGradoInstruccion()); endif;
      if($this->getObjetoBean()->getDni()) : $a_Fields['dni'] = ($this->getObjetoBean()->getDni()); endif;
      if($this->getObjetoBean()->getNombres()) : $a_Fields['Nombres'] = ($this->getObjetoBean()->getNombres()); endif;
      if($this->getObjetoBean()->getApellidoPaterno()) : $a_Fields['ApellidoPaterno'] = ($this->getObjetoBean()->getApellidoPaterno()); endif;
      if($this->getObjetoBean()->getApellidoMaterno()) : $a_Fields['ApellidoMaterno'] = ($this->getObjetoBean()->getApellidoMaterno()); endif;
      if($this->getObjetoBean()->getDireccion()) : $a_Fields['Direccion'] = ($this->getObjetoBean()->getDireccion()); endif;
      if($this->getObjetoBean()->getEmail()) : $a_Fields['Email'] = ($this->getObjetoBean()->getEmail()); endif;
      if($this->getObjetoBean()->getTelefono()) : $a_Fields['Telefono'] = ($this->getObjetoBean()->getTelefono()); endif;
      if($this->getObjetoBean()->getCelular()) : $a_Fields['Celular'] = ($this->getObjetoBean()->getCelular()); endif;
      if($this->getObjetoBean()->getEstado()) : $a_Fields['Estado'] = ($this->getObjetoBean()->getEstado()); endif;
      if($this->getObjetoBean()->getIdRol()) : $a_Fields['IdRol'] = ($this->getObjetoBean()->getIdRol()); endif;
	  if($this->getObjetoBean()->getEstado() == "I") $a_Fields['FlagEstadoAsistencia'] = "S";
	  if($this->getObjetoBean()->getEstado() == "A") $a_Fields['FlagEstadoAsistencia'] = "A";
      if($this->getObjetoBean()->getUsuario()) : $a_Fields['Usuario'] = ($this->getObjetoBean()->getUsuario()); endif;
      if($this->getObjetoBean()->getUsuarioCreacion()) : $a_Fields['UsuarioCreacion'] = ($this->getObjetoBean()->getUsuarioCreacion()); endif;
      if($this->getObjetoBean()->getFechaCreacion()) : $a_Fields['FechaCreacion'] = ($this->getObjetoBean()->getFechaCreacion()); endif;
      if($this->getObjetoBean()->getFechaNacimiento()) : $a_Fields['FechaNacimiento'] = ($this->getObjetoBean()->getFechaNacimiento()); endif;
      if($this->getObjetoBean()->getSueldo()) : $a_Fields['Sueldo'] = ($this->getObjetoBean()->getSueldo()); endif;
      if($this->getObjetoBean()->getSexo()) : $a_Fields['Sexo'] = ($this->getObjetoBean()->getSexo()); endif;
      if($this->getObjetoBean()->getUsuarioModificacion()) : $a_Fields['UsuarioModificacion'] = ($this->getObjetoBean()->getUsuarioModificacion()); endif;
      if($this->getObjetoBean()->getFechaModificacion()) : $a_Fields['FechaModificacion'] = ($this->getObjetoBean()->getFechaModificacion()); endif;      
      if($this->getObjetoBean()->getEstadoCivil()) : $a_Fields['EstadoCivil'] = ($this->getObjetoBean()->getEstadoCivil()); endif;
      if($this->getObjetoBean()->getGradoInstruccion()) : $a_Fields['GradoInstruccion'] = ($this->getObjetoBean()->getGradoInstruccion()); endif;
      if($this->getObjetoBean()->getNumeroHijos()) : $a_Fields['NumeroHijos'] = ($this->getObjetoBean()->getNumeroHijos()); endif;
      if($this->getObjetoBean()->getFechaIngreso()) : $a_Fields['FechaIngreso'] = ($this->getObjetoBean()->getFechaIngreso()); endif;
      if($this->getObjetoBean()->getNumeroSeguro()) : $a_Fields['NumeroSeguro'] = ($this->getObjetoBean()->getNumeroSeguro()); endif;
      if($this->getObjetoBean()->getTipoSeguro()) : $a_Fields['TipoSeguro'] = ($this->getObjetoBean()->getTipoSeguro()); endif;
      if($this->getObjetoBean()->getPension()) : $a_Fields['Pension'] = ($this->getObjetoBean()->getPension()); endif;
      if($this->getObjetoBean()->getNombrePension()) : $a_Fields['NombrePension'] = ($this->getObjetoBean()->getNombrePension()); endif;
      if($this->getObjetoBean()->getNumeroPension()) : $a_Fields['NumeroPension'] = ($this->getObjetoBean()->getNumeroPension()); endif;
      if($this->getObjetoBean()->getTipoPension()) : $a_Fields['TipoPension'] = ($this->getObjetoBean()->getTipoPension()); endif;
      
      if($this->getObjetoBean()->getBono()) : $a_Fields['Bono'] = ($this->getObjetoBean()->getBono()); endif;
      if($this->getObjetoBean()->getAsignacionFamiliar()) : $a_Fields['AsignacionFamiliar'] = ($this->getObjetoBean()->getAsignacionFamiliar()); endif;
      if($this->getObjetoBean()->getPagoRpm()) : $a_Fields['PagoRpm'] = ($this->getObjetoBean()->getPagoRpm()); endif;
      if($this->getObjetoBean()->getTipoPlanilla()) : $a_Fields['TipoPlanilla'] = ($this->getObjetoBean()->getTipoPlanilla()); endif;
      
      $sString = arrayClass::implode_key_value(",", $a_Fields);

      $sql = "UPDATE cr_colaborador SET
                  ".$sString."
            WHERE 1 AND IdColaborador= '".$this->getObjetoBean()->getIdColaborador()."' ";
      
      $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      //
      //echo $sql;            
      $iResul = mysql_insert_id($con);
      //
      if($iResultSave > 0){
        return $iResul;
      }else{
        return false;
      }

    }else{
      return false;
    }

  }
  
  /**
  * Modifica un nuevo registro
  *
  * @return IdGenerado
  */
  
   public function updateCS($IdSucursalFinal) {

    if($this->getObjetoBean()->getIdColaborador()){
      $con = Conexion::getConexion();
      
      $sql = "	
            UPDATE `cr_colaborador`
			SET 	IdPadre ='".$this->getObjetoBean()->getIdPadre()."'
			WHERE `IdColaborador` = '".$this->getObjetoBean()->getIdColaborador()."';
            
			UPDATE `cr_asistencia`
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `IdColaborador` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			UPDATE `cr_utilidad` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `IdRepresentante` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			UPDATE `cr_resumen_diario` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `IdColaborador` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			UPDATE `cr_resumen_semanal` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `IdRepresentante` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			
			UPDATE `ar_arqueo_cabecera` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `idcolaborador` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			UPDATE `ar_arqueo_detalle_valor` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `idcolaborador` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			UPDATE `ar_arqueo_detalle_producto` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `idcolaborador` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			UPDATE `ar_arqueo_detalle_deposito` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `idcolaborador` = '".$this->getObjetoBean()->getIdColaborador()."';
			
			UPDATE `ar_arqueo_detalle_producto` 
			SET 	Idsucursal='".$IdSucursalFinal."'
			WHERE `idcolaborador` = '".$this->getObjetoBean()->getIdColaborador()."';";
      
      $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      
      
     
      //
      if(1){
      	
      	$sqllog = "insert into cr_log_cambios (idlogc,sqllog,fecha) values (null, '".addslashes($sql)."', '".date("Y-m-d H:i:s")."')";
      	
      	 $result = mysql_db_query(Conexion::getNameDb(), $sqllog, $con);
        return $iResul;
      }else{
        return false;
      }

    }else{
      return false;
    }

  }
  
  
  /**
  * Elimina registro
  *
  * @return Boolean
  */
  
 
  public function delete(){
    
      $o_Colaborador = new ColaboradorBean();
      
      $con = Conexion::getConexion();
      
      if($this->getObjetoBean()->getIdColaborador()){
          $o_Colaborador->setIdColaborador($this->getObjetoBean()->getIdColaborador());
      }
            
      $sql = "UPDATE cr_colaborador 
              SET
                Eliminado = '1',
                Estado ='I',
				FlagEstadoAsistencia ='S',
                FechaEliminado = '".date('Y-m-d H:i:s')."',
                UsuarioEliminado = '".$this->getObjetoBean()->getUsuarioEliminado()."'
            WHERE IdColaborador = '".$this->getObjetoBean()->getIdColaborador()."' ";
      
      $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      
      $num_rows = mysql_affected_rows($con);
      //
                  
      $iResultDelete = $num_rows;
      if($iResultDelete){
          return 1;
      }else{
          return false;
      }    
    
  }
  
  
  
 
public function select(){
      
    $where = "";
        
    $tamPag           = is_null($this->getObjetoBean()->tamPag)?999999:$this->getObjetoBean()->tamPag;
    $pagina           = is_null($this->getObjetoBean()->page)?1:$this->getObjetoBean()->page;
    $numeroRegistros  = $this->selectNumRows();
    $limitInf         = ($pagina-1)*$tamPag;
    
    $where = $this->buildConsult();
    $orden = $this->buildOrderByField();
    if(trim($orden) =='') $orden = "ORDER BY IdColaborador DESC";
    $con = Conexion::getConexion();
    $sql = "SELECT * 
            FROM cr_colaborador 
            WHERE   Eliminado <> '1' ".
    		$where." ".$orden." LIMIT ".$limitInf.",".$tamPag;
  	//echo $sql;
    $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->insertarObjetoBean($o_valor);
      }
    }

    //
   
    return count($a_tmp)>0?$a_tmp:null;
      
  } 
  
  
  
  /**
  * Selecciona un nuevo registro
  *
  * @return IdGenerado
  */

  
  /**
  * Retorna un objeto ColaboradorBean
  *
  * @return Object
  */
  
   
  
 public function selectByPk(){
  
    $con = Conexion::getConexion();
    $sql = "SELECT * 
            FROM cr_colaborador 
            WHERE  IdColaborador = '".$this->getObjetoBean()->getIdColaborador()."' ";
    
    $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)) {
      $a_tmp[] = $this->insertarObjetoBean($o_valor);
      }
    }
       
    return count($a_tmp)>0?$a_tmp:null;
      
  }
  
  /**
  * Reasigna valores retornados del propel a un objeto ColaboradorBean
  *
  * @param Object $o_Propel
  * @return ColaboradorBean
  */
  private function insertarObjetoBean($o_Propel){

    $o_ColaboradorBean = new ColaboradorBean();
    
    $o_ColaboradorBean->setIdColaborador($o_Propel->IdColaborador);
    $o_ColaboradorBean->setTipoDocumento($o_Propel->TipoDocumento);
    $o_ColaboradorBean->setIdPadre($o_Propel->IdPadre);
    $o_ColaboradorBean->setIdTipoColaborador($o_Propel->IdTipoColaborador);
    $o_ColaboradorBean->setGradoInstruccion($o_Propel->GradoInstruccion);
    $o_ColaboradorBean->setDni($o_Propel->dni);
    $o_ColaboradorBean->setPension($o_Propel->Pension);
    $o_ColaboradorBean->setNumeroPension($o_Propel->NumeroPension);
    $o_ColaboradorBean->setTipoPension($o_Propel->TipoPension);
    $o_ColaboradorBean->setNombrePension($o_Propel->NombrePension);
    $o_ColaboradorBean->setNombres($o_Propel->Nombres);
    $o_ColaboradorBean->setApellidoPaterno($o_Propel->ApellidoPaterno);
    $o_ColaboradorBean->setApellidoMaterno($o_Propel->ApellidoMaterno);
    $o_ColaboradorBean->setDireccion($o_Propel->Direccion);
    $o_ColaboradorBean->setEmail($o_Propel->Email);
    $o_ColaboradorBean->setTelefono($o_Propel->Telefono);
    $o_ColaboradorBean->setCelular($o_Propel->Celular);
    $o_ColaboradorBean->setEstado($o_Propel->Estado);
    $o_ColaboradorBean->setUsuarioCreacion($o_Propel->UsuarioCreacion);
    $o_ColaboradorBean->setFechaCreacion($o_Propel->FechaCreacion);
    $o_ColaboradorBean->setUsuarioModificacion($o_Propel->UsuarioModificacion);
    $o_ColaboradorBean->setFechaModificacion($o_Propel->FechaModificacion);
    $o_ColaboradorBean->setFechaNacimiento($o_Propel->FechaNacimiento);
    $o_ColaboradorBean->setGradoInstruccion($o_Propel->GradoInstruccion);
    $o_ColaboradorBean->setNumeroHijos($o_Propel->NumeroHijos);
    $o_ColaboradorBean->setSueldo($o_Propel->Sueldo);
    $o_ColaboradorBean->setSexo($o_Propel->Sexo);
    $o_ColaboradorBean->setEstadoCivil($o_Propel->EstadoCivil);
    $o_ColaboradorBean->setIdRol($o_Propel->IdRol);
    $o_ColaboradorBean->setUsuario($o_Propel->Usuario);
    $o_ColaboradorBean->setFechaIngreso($o_Propel->FechaIngreso);
    
    $o_ColaboradorBean->setPagoRpm($o_Propel->PagoRpm);
	$o_ColaboradorBean->setTipoSeguro($o_Propel->TipoSeguro); 
	$o_ColaboradorBean->setNumeroSeguro($o_Propel->NumeroSeguro); 
	$o_ColaboradorBean->setBono($o_Propel->Bono); 
	$o_ColaboradorBean->setAsignacionFamiliar($o_Propel->AsignacionFamiliar); 
	$o_ColaboradorBean->setTipoPlanilla($o_Propel->TipoPlanilla); 
    
               
    return $o_ColaboradorBean;    
    
  }

  public function CambioAdministrador(){
  	//Cuando hay cambio de administrador 
  	//Todos los hijos del Administrador Anterior pasan 
  	//a ser hijos del nuevo Administrador
  	 
    $con = Conexion::getConexion();
    
    $sql = "UPDATE 
			cr_colaborador
			SET IdPadre = '".$this->getObjetoBean()->getIdPadre()."'
            WHERE  IdPadre = '".$this->getObjetoBean()->getIdPadreAnterior()."'";
   
    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
    $num_rows = mysql_affected_rows($con);
  
    //
   
    return $num_rows;
  	
  }
  
  public function selectNumRows(){
    
   $where = $this->buildConsult();
    
    $con = Conexion::getConexion();
    
    $sql = "SELECT * 
            FROM cr_colaborador
            WHERE  Eliminado <> '1'".$where;
   
    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
    $num_rows = mysql_num_rows($result);
    //echo $sql;
    //
   
    return $num_rows;
    
  }
    

  private function buildConsult(){
    
    $where = "";
    
  	if(is_array($this->getObjetoBean()->getIdColaboradores())){
      	 $where .= " AND IdColaborador in ('".implode("','",$this->getObjetoBean()->getIdColaboradores())."')";
    }
    if($this->getObjetoBean()->getIdColaborador()){
       $where .= " AND IdColaborador = '".$this->getObjetoBean()->getIdColaborador()."'";
    }
	
	if($this->getObjetoBean()->getTipoDocumento()){
       $where .= " AND TipoDocumento = '".$this->getObjetoBean()->getTipoDocumento()."'";
    }
       
    if($this->getObjetoBean()->getIdRol()){
       $where .= " AND IdRol = '".$this->getObjetoBean()->getIdRol()."'";
    }
    if($this->getObjetoBean()->getEstado()){
       $where .= " AND Estado = '".$this->getObjetoBean()->getEstado()."'";
    }
     if($this->getObjetoBean()->getEliminado()){
       $where .= " AND eliminado = '".(int)$this->getObjetoBean()->getEliminado()."'";
    }
    
    if($this->getObjetoBean()->getApellidoPaterno()){
       $where .= " AND ApellidoPaterno like '".$this->getObjetoBean()->getApellidoPaterno()."%'";
    }
    
    if($this->getObjetoBean()->getApellidoMaterno()){
       $where .= " AND ApellidoMaterno like '".$this->getObjetoBean()->getApellidoMaterno()."%'";
    }
    
    if($this->getObjetoBean()->getNombres()){
       $where .= " AND Nombres like '%".$this->getObjetoBean()->getNombres()."%'";
    }
	
	if($this->getObjetoBean()->getCelular()){
       $where .= " AND Celular like '%".$this->getObjetoBean()->getCelular()."%'";
    }
   
	if($this->getObjetoBean()->getDni()){
       $where .= " AND dni like '".$this->getObjetoBean()->getDni()."%'";
    }
    
    if($this->getObjetoBean()->getIdPadre()){
       $where .= " AND IdPadre = '".$this->getObjetoBean()->getIdPadre()."'";
    }
    
    if($this->getObjetoBean()->getUsuario()){
       $where .= " AND Usuario = '".$this->getObjetoBean()->getUsuario()."'";
    }
    
    if(is_array($this->getObjetoBean()->getFiltroColaborador())){
      	 $where .= " AND IdRol in ('".implode("','",$this->getObjetoBean()->getFiltroColaborador())."')";
    }
      
    return $where;
    
  }

  public function buildOrderByField(){
    $order_by = "";
    if($this->getObjetoBean()->sortCampos || $this->getObjetoBean()->sortCampos != ""){
      $a_valCampos = explode(";", $this->getObjetoBean()->sortCampos);
      $a_valtype   = explode(";", $this->getObjetoBean()->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;
  }
  
  public function selectLibres(){
      
    $where = "";
        
    $tamPag           = is_null($this->getObjetoBean()->tamPag)?999999:$this->getObjetoBean()->tamPag;
    $pagina           = is_null($this->getObjetoBean()->page)?1:$this->getObjetoBean()->page;
    $numeroRegistros  = $this->selectNumRows();
    $limitInf         = ($pagina-1)*$tamPag;
    
    $where = $this->buildConsult();
    $orden = $this->buildOrderByField();
    if(trim($orden) =='') $orden = "ORDER BY IdColaborador DESC";
    $con = Conexion::getConexion();
    $sql = "SELECT * FROM cr_colaborador WHERE  Eliminado <> '1' and idcolaborador not in (SELECT IdColaborador FROM pla_empresa_colaborador WHERE 1 ) ".$orden;
  	//echo $sql;
    $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->insertarObjetoBean($o_valor);
      }
    }

    //
   
    return count($a_tmp)>0?$a_tmp:null;
      
  }
  //Para WS-------------------------------------------------------------------
  public function getFechaTransaccion($idColaborador){
  	
  		$o_crColaboradorBean 	= new ColaboradorBean();
		$o_crColaboradorBean->setIdColaborador($idColaborador);
		
		$o_crColaboradorDP 		= new ColaboradorDP($o_crColaboradorBean);
		$a_o_crColaboradorDP 	= $o_crColaboradorDP->select();
				
		if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
  			$o_BalanceDia 		= new BalanceDiaBean();
			$o_crColaboradorDP 	= $a_o_crColaboradorDP[0];
			
			if($o_crColaboradorDP->getUsuario() == "sys.res") $IdAdministrador 	= $idColaborador;
			else $IdAdministrador 	= $o_crColaboradorDP->getIdPadre();
	  		$o_SucursalBean 	= new SucursalBean();
			$o_SucursalBean->setIdAdministrador($IdAdministrador);
			$o_SucursalBL 		= new SucursalBL();
			$a_o_sucursal 		= $o_SucursalBL->busquedaSucursal($o_SucursalBean);
			
			if(is_array($a_o_sucursal)){
				$IdSucursal = $a_o_sucursal[0]->getIdSucursal();
				$o_BalanceDia->setIdSucursal($IdSucursal);
				$o_BalanceDiaDP = new BalanceDiaDP($o_BalanceDia);
				$fecha 			= $o_BalanceDiaDP->ObtenerDiaAbierto();
				return  $fecha;
			}else{
				return false;
			}	
		}else{
			return false;
		}
  }
}?>