<?php

/**
* Clase Dispacher para MercadoRepresentante
*
* @package IM
* @subpackage MercadoRepresentanteDP
* @author Willy
* @version SVN: : MercadoRepresentanteDP.class.php,v 1.1 2009/06/04 18:53:12 Exp $
*/
class MercadoRepresentanteDP implements interfaceDP {

  protected $o_Bean;

  /**
  * Constructor donde asigna a un atributo el objeto MercadoRepresentanteBean
  *
  * @param MercadoRepresentanteBean $o_MercadoRepresentanteBean
  */
  public function __construct(MercadoRepresentanteBean $o_MercadoRepresentanteBean){
  
    $this->o_Bean = $o_MercadoRepresentanteBean;
    
  }
  
  /**
  * Retorna el objeto MercadoRepresentanteBean
  *
  * @return Object
  */
  protected function getObjetoBean(){
  
    if(!$this->o_Bean){
        $this->o_Bean = new MercadoRepresentanteBean();
    }        
    return $this->o_Bean;
    
  }
  
  /**
  * Ingresa un nuevo registro
  *
  * @return IdGenerado
  */
  public function save(){

    
   if($this->getObjetoBean()->getIdMercado()){

      $a_Fields = array();

      if($this->getObjetoBean()->getIdMercado()) : $a_Fields['IdMercado'] = ($this->getObjetoBean()->getIdMercado()); endif;
      if($this->getObjetoBean()->getIdColaborador()) : $a_Fields['IdColaborador'] = ($this->getObjetoBean()->getIdColaborador()); endif;
      if($this->getObjetoBean()->getFechaAsignacion()) : $a_Fields['FechaAsignacion'] = ($this->getObjetoBean()->getFechaAsignacion()); endif;
      if($this->getObjetoBean()->getUsuarioAsignacion()) : $a_Fields['UsuarioAsignacion'] = ($this->getObjetoBean()->getUsuarioAsignacion()); endif;
      
      
      $sStringField = arrayClass::implode_keys(',', $a_Fields);
      $sStringValue = "'".implode("','", $a_Fields)."'";
        
      $con = Conexion::getConexion();
      $sql = "INSERT INTO cr_mercado_representante  (".$sStringField.")
                      VALUES (".$sStringValue.");";
      //echo $sql;
      $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      mysql_close($con);

      $iResultSave = $result;
      if($iResultSave > 0){
        return $iResultSave;
      }else{
        return false;
      }

    }else{
      return false;
    }
  }
  
  /**
  * Modifica un nuevo registro
  *
  * @return IdGenerado
  */
  
  public function update() {

     if($this->getObjetoBean()->getIdMercado()){
      
      if($this->getObjetoBean()->getIdMercado()) : $a_Fields['IdMercado'] = ($this->getObjetoBean()->getIdMercado()); endif;
      if($this->getObjetoBean()->getIdColaborador()) : $a_Fields['IdColaborador'] = ($this->getObjetoBean()->getIdColaborador()); endif;
      if($this->getObjetoBean()->getFechaAsignacion()) : $a_Fields['FechaAsignacion'] = ($this->getObjetoBean()->getFechaAsignacion()); endif;
      if($this->getObjetoBean()->getUsuarioAsignacion()) : $a_Fields['UsuarioAsignacion'] = ($this->getObjetoBean()->getUsuarioAsignacion()); endif;
      
      $sString = arrayClass::implode_key_value(",", $a_Fields);
      $con = Conexion::getConexion();
       
      $sql = "UPDATE  cr_mercado_representante SET
                  ".$sString."
            WHERE 1 AND IdMercado = '".$this->getObjetoBean()->getIdMercado()."' AND IdColaborador = '".$this->getObjetoBean()->getIdColaborador()."' ";
      $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
      mysql_close($con);

      $iResultSave = $result;
      if($iResultSave > 0){
        return $iResultSave;
      }else{
        return false;
      }

    }else{
      return false;
    }

  }
  
  
  /**
  * Elimina registro
  *
  * @return Boolean
  */
  
  public function delete(){
     $where = "";
    
    if($this->getObjetoBean()->getIdMercado()){
       $where .= " AND IdMercado = '".$this->getObjetoBean()->getIdMercado()."'";
    }
    
    if($this->getObjetoBean()->getIdColaborador()){
       $where .= " AND IdColaborador = '".$this->getObjetoBean()->getIdColaborador()."'";
    }
       
    
    $con = Conexion::getConexion();
    $sql = "DELETE FROM  cr_mercado_representante WHERE 1 ".$where;
    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
    mysql_close($con);

    $iResultSave = $result;
    if($iResultSave > 0){
      return $iResultSave;
    }else{
      return false;
    }
  }
  
  /**
  * Selecciona un nuevo registro
  *
  * @return IdGenerado
  */
  public function select(){
      
    $where = "";
    
    if($this->getObjetoBean()->getIdMercado()){
       $where .= " AND IdMercado = '".$this->getObjetoBean()->getIdMercado()."'";
    } 
    if($this->getObjetoBean()->getIdColaborador()){
       $where .= " AND IdColaborador = '".$this->getObjetoBean()->getIdColaborador()."'";
    }
   
    $con = Conexion::getConexion();
    $sql = "SELECT * 
    		FROM cr_mercado_representante 
    		WHERE 1 ".$where;
    $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);
      }
    }

    mysql_close($con);
   
    return count($a_tmp)>0?$a_tmp:null;
      
  }
  
  
  
  /**
  * Retorna un objeto MercadoRepresentanteBean
  *
  * @return Object
  */
  public function selectByPk(){
  
    $con = Conexion::getConexion();
    $sql = "SELECT * FROM cr_mercado_representante WHERE 1 AND IdMercado = '".$this->getObjetoBean()->getIdMercado()."'";
    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
    $num_rows = mysql_num_rows($result);
    mysql_close($con);
 
    $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;
  
  }
  
 
  /**
  * Reasigna valores retornados del propel a un objeto MercadoRepresentanteBean
  *
  * @param Object $o_Propel
  * @return MercadoRepresentanteBean
  */
  private function insertarObjetoBean($o_Propel){

    $o_MercadoRepresentanteBean = new MercadoRepresentanteBean();
    
    $o_MercadoRepresentanteBean->setIdMercado($o_Propel->IdMercado);
    $o_MercadoRepresentanteBean->setIdColaborador($o_Propel->IdColaborador);
    $o_MercadoRepresentanteBean->setFechaAsignacion($o_Propel->FechaAsignacion);
    $o_MercadoRepresentanteBean->setUsuarioAsignacion($o_Propel->UsuarioAsignacion);
         
    return $o_MercadoRepresentanteBean;    
    
  }
    
}

