<?php
/**
 * Clase Base DP para BaseCrPedidocabeceraDP
 *
 * @package    
 * @subpackage BaseCrPedidocabeceraDP
 * @author     Willy
 * @version    SVN:: BaseCrPedidocabeceraDP.class.php,v 1.1 2012-07-28 12:36:40 william.taype Exp $
 */
abstract class BaseCrPedidocabeceraDP extends CrPedidocabeceraBN
{
  /* N�mero de registros afectados */
  private $nRowsAffected;

  public function __construct($bSetDefault = true)
  {
    if( $bSetDefault instanceof CrPedidocabeceraBN )
    {
      $o_CrPedidocabeceraBN = $bSetDefault;
      if(!is_null($o_CrPedidocabeceraBN->getIdpedidocabecera())) : $this->setIdpedidocabecera($o_CrPedidocabeceraBN->getIdpedidocabecera()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getFechaoperacion())) : $this->setFechaoperacion($o_CrPedidocabeceraBN->getFechaoperacion()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getMontototal())) : $this->setMontototal($o_CrPedidocabeceraBN->getMontototal()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getMontoaprobado())) : $this->setMontoaprobado($o_CrPedidocabeceraBN->getMontoaprobado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getMontorechazado())) : $this->setMontorechazado($o_CrPedidocabeceraBN->getMontorechazado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getMontoentregado())) : $this->setMontoentregado($o_CrPedidocabeceraBN->getMontoentregado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getMontonoentregado())) : $this->setMontonoentregado($o_CrPedidocabeceraBN->getMontonoentregado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getEstado())) : $this->setEstado($o_CrPedidocabeceraBN->getEstado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getUsuariocreacion())) : $this->setUsuariocreacion($o_CrPedidocabeceraBN->getUsuariocreacion()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getFechacreacion())) : $this->setFechacreacion($o_CrPedidocabeceraBN->getFechacreacion()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getUsuariomodificacion())) : $this->setUsuariomodificacion($o_CrPedidocabeceraBN->getUsuariomodificacion()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getFechamodificacion())) : $this->setFechamodificacion($o_CrPedidocabeceraBN->getFechamodificacion()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getComentario())) : $this->setComentario($o_CrPedidocabeceraBN->getComentario()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getUsuarioeliminado())) : $this->setUsuarioeliminado($o_CrPedidocabeceraBN->getUsuarioeliminado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getFechaeliminado())) : $this->setFechaeliminado($o_CrPedidocabeceraBN->getFechaeliminado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getEliminado())) : $this->setEliminado($o_CrPedidocabeceraBN->getEliminado()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getIdcolaboradordestino())) : $this->setIdcolaboradordestino($o_CrPedidocabeceraBN->getIdcolaboradordestino()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getIdcolaboradorrepresentante())) : $this->setIdcolaboradorrepresentante($o_CrPedidocabeceraBN->getIdcolaboradorrepresentante()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getComentariosupervisor())) : $this->setComentariosupervisor($o_CrPedidocabeceraBN->getComentariosupervisor()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getNumeropedidos())) : $this->setNumeropedidos($o_CrPedidocabeceraBN->getNumeropedidos()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getNumeropedidosaprobados())) : $this->setNumeropedidosaprobados($o_CrPedidocabeceraBN->getNumeropedidosaprobados()); endif;
      if(!is_null($o_CrPedidocabeceraBN->getNumeropedidosdesaprobados())) : $this->setNumeropedidosdesaprobados($o_CrPedidocabeceraBN->getNumeropedidosdesaprobados()); endif;
    }
  }

  /* Obtiene el n�mero de registros afectados */
  public function getRowsAffected()
  {
    return $this->nRowsAffected;
  }

  public function save()
  {
    try
    {
      $con = Conexion::getConexion();
      $sql = "SELECT IF(MAX(idpedidocabecera),(MAX(idpedidocabecera)+1), 1) AS Maximo FROM cr_pedidocabecera;";
     
      $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
    
      
      $result = mysql_db_query(Conexion::getNameDb(),$sql,$oLink);
      $row = mysql_fetch_array($result);
     
      $this->setIdpedidocabecera($row[0]);

      if($this->getIdpedidocabecera()){
        $a_Fields = array();

        if(!is_null($this->getIdpedidocabecera())) : $a_Fields['idpedidocabecera'] = ($this->getIdpedidocabecera()); endif;
        if(!is_null($this->getIdSucursal())) : $a_Fields['idsucursal'] = ($this->getIdSucursal()); endif;
        if(!is_null($this->getFechaoperacion())) : $a_Fields['fechaoperacion'] = ($this->getFechaoperacion()); endif;
        if(!is_null($this->getMontototal())) : $a_Fields['montototal'] = ($this->getMontototal()); endif;
        if(!is_null($this->getMontoaprobado())) : $a_Fields['montoaprobado'] = ($this->getMontoaprobado()); endif;
        if(!is_null($this->getMontorechazado())) : $a_Fields['montorechazado'] = ($this->getMontorechazado()); endif;
        if(!is_null($this->getMontoentregado())) : $a_Fields['montoentregado'] = ($this->getMontoentregado()); endif;
        if(!is_null($this->getMontonoentregado())) : $a_Fields['montonoentregado'] = ($this->getMontonoentregado()); endif;
        if(!is_null($this->getEstado())) : $a_Fields['estado'] = ($this->getEstado()); endif;
        if(!is_null($this->getUsuariocreacion())) : $a_Fields['usuariocreacion'] = ($this->getUsuariocreacion()); endif;
        if(!is_null($this->getFechacreacion())) : $a_Fields['fechacreacion'] = ($this->getFechacreacion()); endif;
        if(!is_null($this->getUsuariomodificacion())) : $a_Fields['usuariomodificacion'] = ($this->getUsuariomodificacion()); endif;
        if(!is_null($this->getFechamodificacion())) : $a_Fields['fechamodificacion'] = ($this->getFechamodificacion()); endif;
        if(!is_null($this->getComentario())) : $a_Fields['comentariorepresentante'] = ($this->getComentario()); endif;
        if(!is_null($this->getUsuarioeliminado())) : $a_Fields['usuarioeliminado'] = ($this->getUsuarioeliminado()); endif;
        if(!is_null($this->getFechaeliminado())) : $a_Fields['fechaeliminado'] = ($this->getFechaeliminado()); endif;
        if(!is_null($this->getEliminado())) : $a_Fields['eliminado'] = ($this->getEliminado()); endif;
        if(!is_null($this->getIdcolaboradordestino())) : $a_Fields['idcolaboradorsupervisor'] = ($this->getIdcolaboradordestino()); endif;
        if(!is_null($this->getIdcolaboradorrepresentante())) : $a_Fields['idcolaboradorrepresentante'] = ($this->getIdcolaboradorrepresentante()); endif;
        if(!is_null($this->getComentariosupervisor())) : $a_Fields['comentariosupervisor'] = ($this->getComentariosupervisor()); endif;
        if(!is_null($this->getNumeropedidos())) : $a_Fields['numeropedidos'] = ($this->getNumeropedidos()); endif;
        if(!is_null($this->getNumeropedidosaprobados())) : $a_Fields['numeropedidosaprobados'] = ($this->getNumeropedidosaprobados()); endif;
        if(!is_null($this->getNumeropedidosdesaprobados())) : $a_Fields['numeropedidosdesaprobados'] = ($this->getNumeropedidosdesaprobados()); endif;

        $sStringField = arrayClass::implode_keys(',', $a_Fields);
        $sStringValue = "'".implode("','", $a_Fields)."'";

        $sql = "INSERT INTO cr_pedidocabecera (".$sStringField.") VALUES (".$sStringValue.");";
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(),$sql, $oLink);
        if($result)
        {
          $this->nRowsAffected = (int) mysql_affected_rows($oLink);
        }
        else
        {
          throw new Exception( mysql_error($oLink) );
        }
      }
      else
      {
        throw new Exception( 'El id no esta registrado.');
      }
    }
    catch ( Exception $o_Error )
    {
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
    return true;
  }

  public function update()
  {
    try
    {
      if($this->getIdpedidocabecera())
      {
        $a_Fields = array();

        if(!is_null($this->getIdpedidocabecera())) : $a_Fields['idpedidocabecera'] = ($this->getIdpedidocabecera()); endif;
         if(!is_null($this->getIdSucursal())) : $a_Fields['idsucursal'] = ($this->getIdSucursal()); endif;
        if(!is_null($this->getFechaoperacion())) : $a_Fields['fechaoperacion'] = ($this->getFechaoperacion()); endif;
        if(!is_null($this->getMontototal())) : $a_Fields['montototal'] = ($this->getMontototal()); endif;
        if(!is_null($this->getMontoaprobado())) : $a_Fields['montoaprobado'] = ($this->getMontoaprobado()); endif;
        if(!is_null($this->getMontorechazado())) : $a_Fields['montorechazado'] = ($this->getMontorechazado()); endif;
        if(!is_null($this->getMontoentregado())) : $a_Fields['montoentregado'] = ($this->getMontoentregado()); endif;
        if(!is_null($this->getMontonoentregado())) : $a_Fields['montonoentregado'] = ($this->getMontonoentregado()); endif;
        if(!is_null($this->getEstado())) : $a_Fields['estado'] = ($this->getEstado()); endif;
        if(!is_null($this->getUsuariocreacion())) : $a_Fields['usuariocreacion'] = ($this->getUsuariocreacion()); endif;
        if(!is_null($this->getFechacreacion())) : $a_Fields['fechacreacion'] = ($this->getFechacreacion()); endif;
        if(!is_null($this->getUsuariomodificacion())) : $a_Fields['usuariomodificacion'] = ($this->getUsuariomodificacion()); endif;
        if(!is_null($this->getFechamodificacion())) : $a_Fields['fechamodificacion'] = ($this->getFechamodificacion()); endif;
        if(!is_null($this->getComentario())) : $a_Fields['comentariorepresentante'] = ($this->getComentario()); endif;
        if(!is_null($this->getUsuarioeliminado())) : $a_Fields['usuarioeliminado'] = ($this->getUsuarioeliminado()); endif;
        if(!is_null($this->getFechaeliminado())) : $a_Fields['fechaeliminado'] = ($this->getFechaeliminado()); endif;
        if(!is_null($this->getEliminado())) : $a_Fields['eliminado'] = ($this->getEliminado()); endif;
        if(!is_null($this->getIdcolaboradordestino())) : $a_Fields['idcolaboradorsupervisor'] = ($this->getIdcolaboradordestino()); endif;
        if(!is_null($this->getIdcolaboradorrepresentante())) : $a_Fields['idcolaboradorrepresentante'] = ($this->getIdcolaboradorrepresentante()); endif;
        if(!is_null($this->getComentariosupervisor())) : $a_Fields['comentariosupervisor'] = ($this->getComentariosupervisor()); endif;
        if(!is_null($this->getNumeropedidos())) : $a_Fields['numeropedidos'] = ($this->getNumeropedidos()); endif;
        if(!is_null($this->getNumeropedidosaprobados())) : $a_Fields['numeropedidosaprobados'] = ($this->getNumeropedidosaprobados()); endif;
        if(!is_null($this->getNumeropedidosdesaprobados())) : $a_Fields['numeropedidosdesaprobados'] = ($this->getNumeropedidosdesaprobados()); endif;

        $sStringField = arrayClass::implode_key_value(',', $a_Fields);

        $con = Conexion::getConexion();
        $sql = "UPDATE cr_pedidocabecera SET ".$sStringField." WHERE 1 AND idpedidocabecera='".$this->getIdpedidocabecera()."';";
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(),$sql, $oLink);
        if($result)
        {
          $this->nRowsAffected = (int) mysql_affected_rows($oLink);
        }
        else
        {
          throw new Exception( mysql_error($oLink) );
        }
      }
      else
      {
        throw new Exception( 'El id no esta registrado.');
      }
    }
    catch ( Exception $o_Error )
    {
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
    return true;
  }

  public function delete()
  {
    try
    {
      if($this->getIdpedidocabecera())
      {
        $a_Fields = array();

        $con = Conexion::getConexion();
        $sql = "DELETE FROM cr_pedidocabecera WHERE 1 AND idpedidocabecera='".$this->getIdpedidocabecera()."';"; 
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(),$sql, $oLink);
        if($result)
        {
          $this->nRowsAffected = (int) mysql_affected_rows($oLink);
        }
        else
        {
          throw new Exception( mysql_error($oLink) );
        }
      }
      else
      {
        throw new Exception( 'El id no esta registrado.');
      }
    }
    catch ( Exception $o_Error )
    {
      throw new Exception($o_Error->getMessage().' en '.$o_Error->getFile().' linea '.$o_Error->getLine());
    }
    return true;
  }

  /* B�squeda del registro por la llave primaria */
  public static function selectByPK($vIdpedidocabecera)
  {
    try
    {
      $con = Conexion::getConexion();
      $sql = "SELECT idpedidocabecera, 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 AND idpedidocabecera='".$vIdpedidocabecera."'; ";
        $oLink = method_exists($con, 'getResource')?$con->getResource():$con;
        $result = mysql_db_query(Conexion::getNameDb(),$sql, $oLink);
      $o_Propel = $result ? mysql_fetch_object($result) : null;
      
      return $o_Propel?self::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 */
  private function insertObjectBN($o_propel){
    $o_CrPedidocabeceraDP = new CrPedidocabeceraDP();
    $o_CrPedidocabeceraDP->setIdpedidocabecera($o_propel->idpedidocabecera);
    $o_CrPedidocabeceraDP->setFechaoperacion($o_propel->fechaoperacion);
    $o_CrPedidocabeceraDP->setMontototal($o_propel->montototal);
    $o_CrPedidocabeceraDP->setMontoaprobado($o_propel->montoaprobado);
    $o_CrPedidocabeceraDP->setMontorechazado($o_propel->montorechazado);
    $o_CrPedidocabeceraDP->setMontoentregado($o_propel->montoentregado);
    $o_CrPedidocabeceraDP->setMontonoentregado($o_propel->montonoentregado);
    $o_CrPedidocabeceraDP->setEstado($o_propel->estado);
    $o_CrPedidocabeceraDP->setUsuariocreacion($o_propel->usuariocreacion);
    $o_CrPedidocabeceraDP->setFechacreacion($o_propel->fechacreacion);
    $o_CrPedidocabeceraDP->setUsuariomodificacion($o_propel->usuariomodificacion);
    $o_CrPedidocabeceraDP->setFechamodificacion($o_propel->fechamodificacion);
    $o_CrPedidocabeceraDP->setComentario($o_propel->comentariorepresentante);
    $o_CrPedidocabeceraDP->setUsuarioeliminado($o_propel->usuarioeliminado);
    $o_CrPedidocabeceraDP->setFechaeliminado($o_propel->fechaeliminado);
    $o_CrPedidocabeceraDP->setEliminado($o_propel->eliminado);
    $o_CrPedidocabeceraDP->setIdcolaboradordestino($o_propel->idcolaboradorsupervisor);
    $o_CrPedidocabeceraDP->setIdcolaboradorrepresentante($o_propel->idcolaboradorrepresentante);
    $o_CrPedidocabeceraDP->setComentariosupervisor($o_propel->comentariosupervisor);
    $o_CrPedidocabeceraDP->setNumeropedidos($o_propel->numeropedidos);
    $o_CrPedidocabeceraDP->setNumeropedidosaprobados($o_propel->numeropedidosaprobados);
    $o_CrPedidocabeceraDP->setNumeropedidosdesaprobados($o_propel->numeropedidosdesaprobados);
    return $o_CrPedidocabeceraDP;
  }
}