<?php
/* Autor...: William L. Taype Perez */
/* Esquema.: exp_producto.xml */
/* Generado: 2020-08-18 04:21:32 */

/* Mantenimiento de los registros de la tabla exp_producto */
abstract class BaseExp_productoDP extends Exp_productoBV
{
    /* Constructor ( Establece los valores desde un objeto Exp_productoBN ) */
    public function __construct( Exp_productoBN $o_Exp_productoBN = null )
    {
        parent::__construct();
        if ( !is_null( $o_Exp_productoBN ) )
        {
            $this->setByBN( $o_Exp_productoBN );
        }
    }

    public $b_Debug = false;

    public function getDebug()
    {
        if( SF_DEBUG )
        {
            $this->b_Debug = true;
        }
        return $this->b_Debug;
    }

    public function setDebug( $v )
    {
        $this->b_Debug = $v;
    }

    /* Establece los valores desde un objeto Exp_productoBN */
    public function setByBN( Exp_productoBN $o_Exp_productoBN )
    {
        if ( !is_null( $o_Exp_productoBN->getCodigo() ) )
        {
            $this->setCodigo( $o_Exp_productoBN->getCodigo() );
        }
        if ( !is_null( $o_Exp_productoBN->getId_product() ) )
        {
            $this->setId_product( $o_Exp_productoBN->getId_product() );
        }
        if ( !is_null( $o_Exp_productoBN->getEstado() ) )
        {
            $this->setEstado( $o_Exp_productoBN->getEstado() );
        }
        if ( !is_null( $o_Exp_productoBN->getNombre() ) )
        {
            $this->setNombre( $o_Exp_productoBN->getNombre() );
        }
        if ( !is_null( $o_Exp_productoBN->getMinicodigo() ) )
        {
            $this->setMinicodigo( $o_Exp_productoBN->getMinicodigo() );
        }
        if ( !is_null( $o_Exp_productoBN->getDescripcion_largo() ) )
        {
            $this->setDescripcion_largo( $o_Exp_productoBN->getDescripcion_largo() );
        }
        if ( !is_null( $o_Exp_productoBN->getDescripcion_corto() ) )
        {
            $this->setDescripcion_corto( $o_Exp_productoBN->getDescripcion_corto() );
        }
        if ( !is_null( $o_Exp_productoBN->getItem_tipo_id() ) )
        {
            $this->setItem_tipo_id( $o_Exp_productoBN->getItem_tipo_id() );
        }
        if ( !is_null( $o_Exp_productoBN->getItem_tipo_desc() ) )
        {
            $this->setItem_tipo_desc( $o_Exp_productoBN->getItem_tipo_desc() );
        }
        if ( !is_null( $o_Exp_productoBN->getLinea_prod_id() ) )
        {
            $this->setLinea_prod_id( $o_Exp_productoBN->getLinea_prod_id() );
        }
        if ( !is_null( $o_Exp_productoBN->getLinea_prod_desc() ) )
        {
            $this->setLinea_prod_desc( $o_Exp_productoBN->getLinea_prod_desc() );
        }
        if ( !is_null( $o_Exp_productoBN->getMarca_id() ) )
        {
            $this->setMarca_id( $o_Exp_productoBN->getMarca_id() );
        }
        if ( !is_null( $o_Exp_productoBN->getMarca_desc() ) )
        {
            $this->setMarca_desc( $o_Exp_productoBN->getMarca_desc() );
        }
        if ( !is_null( $o_Exp_productoBN->getNumero_parte() ) )
        {
            $this->setNumero_parte( $o_Exp_productoBN->getNumero_parte() );
        }
        if ( !is_null( $o_Exp_productoBN->getTipo_uso_desc() ) )
        {
            $this->setTipo_uso_desc( $o_Exp_productoBN->getTipo_uso_desc() );
        }
        if ( !is_null( $o_Exp_productoBN->getGarantia_desc() ) )
        {
            $this->setGarantia_desc( $o_Exp_productoBN->getGarantia_desc() );
        }
        if ( !is_null( $o_Exp_productoBN->getDim_longitud() ) )
        {
            $this->setDim_longitud( $o_Exp_productoBN->getDim_longitud() );
        }
        if ( !is_null( $o_Exp_productoBN->getDim_alto() ) )
        {
            $this->setDim_alto( $o_Exp_productoBN->getDim_alto() );
        }
        if ( !is_null( $o_Exp_productoBN->getDim_ancho() ) )
        {
            $this->setDim_ancho( $o_Exp_productoBN->getDim_ancho() );
        }
        if ( !is_null( $o_Exp_productoBN->getDim_peso() ) )
        {
            $this->setDim_peso( $o_Exp_productoBN->getDim_peso() );
        }
        if ( !is_null( $o_Exp_productoBN->getDir_imagen_medio() ) )
        {
            $this->setDir_imagen_medio( $o_Exp_productoBN->getDir_imagen_medio() );
        }
        if ( !is_null( $o_Exp_productoBN->getDir_imagen_accesorio() ) )
        {
            $this->setDir_imagen_accesorio( $o_Exp_productoBN->getDir_imagen_accesorio() );
        }
        if ( !is_null( $o_Exp_productoBN->getDir_imagen_largo() ) )
        {
            $this->setDir_imagen_largo( $o_Exp_productoBN->getDir_imagen_largo() );
        }
        if ( !is_null( $o_Exp_productoBN->getPrecio_dol() ) )
        {
            $this->setPrecio_dol( $o_Exp_productoBN->getPrecio_dol() );
        }
        if ( !is_null( $o_Exp_productoBN->getPrecio_sol() ) )
        {
            $this->setPrecio_sol( $o_Exp_productoBN->getPrecio_sol() );
        }
        if ( !is_null( $o_Exp_productoBN->getStock() ) )
        {
            $this->setStock( $o_Exp_productoBN->getStock() );
        }
        if ( !is_null( $o_Exp_productoBN->getCaracteristicas() ) )
        {
            $this->setCaracteristicas( $o_Exp_productoBN->getCaracteristicas() );
        }
        if ( !is_null( $o_Exp_productoBN->getFecha_reg() ) )
        {
            $this->setFecha_reg( $o_Exp_productoBN->getFecha_reg() );
        }
        if ( !is_null( $o_Exp_productoBN->getFecha_upd() ) )
        {
            $this->setFecha_upd( $o_Exp_productoBN->getFecha_upd() );
        }
        if ( !is_null( $o_Exp_productoBN->getFecha_precio_act() ) )
        {
            $this->setFecha_precio_act( $o_Exp_productoBN->getFecha_precio_act() );
        }
        if ( !is_null( $o_Exp_productoBN->getFecha_caracteristica() ) )
        {
            $this->setFecha_caracteristica( $o_Exp_productoBN->getFecha_caracteristica() );
        }
        if ( !is_null( $o_Exp_productoBN->getFecha_imagen_act() ) )
        {
            $this->setFecha_imagen_act( $o_Exp_productoBN->getFecha_imagen_act() );
        }
    }

    /* Graba un nuevo registro */
    public function save()
    {
        $this->validateRecord();
        $o_exp_productoFN = new Exp_productoFN();
        $o_exp_productoBN = $o_exp_productoFN->selectByPk( $this->getCodigo() );
        if ( is_null( $o_exp_productoBN ) )
        {
            $s_SQLQuery1 = "INSERT INTO exp_producto ( ";
            $s_SQLQuery2 = "VALUES ( ";
            $s_Separator = "";
            if ( !is_null( $this->getCodigo() ) )
            {
                $s_SQLQuery1 .= $s_Separator."codigo";
                $s_SQLQuery2 .= $s_Separator."'".$this->getCodigo()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getId_product() ) )
            {
                $s_SQLQuery1 .= $s_Separator."id_product";
                $s_SQLQuery2 .= $s_Separator."'".$this->getId_product()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getEstado() ) )
            {
                $s_SQLQuery1 .= $s_Separator."estado";
                $s_SQLQuery2 .= $s_Separator."'".$this->getEstado()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getNombre() ) )
            {
                $s_SQLQuery1 .= $s_Separator."nombre";
                $s_SQLQuery2 .= $s_Separator."'".$this->getNombre()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getMinicodigo() ) )
            {
                $s_SQLQuery1 .= $s_Separator."minicodigo";
                $s_SQLQuery2 .= $s_Separator."'".$this->getMinicodigo()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDescripcion_largo() ) )
            {
                $s_SQLQuery1 .= $s_Separator."descripcion_largo";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDescripcion_largo()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDescripcion_corto() ) )
            {
                $s_SQLQuery1 .= $s_Separator."descripcion_corto";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDescripcion_corto()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getItem_tipo_id() ) )
            {
                $s_SQLQuery1 .= $s_Separator."item_tipo_id";
                $s_SQLQuery2 .= $s_Separator."'".$this->getItem_tipo_id()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getItem_tipo_desc() ) )
            {
                $s_SQLQuery1 .= $s_Separator."item_tipo_desc";
                $s_SQLQuery2 .= $s_Separator."'".$this->getItem_tipo_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getLinea_prod_id() ) )
            {
                $s_SQLQuery1 .= $s_Separator."linea_prod_id";
                $s_SQLQuery2 .= $s_Separator."'".$this->getLinea_prod_id()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getLinea_prod_desc() ) )
            {
                $s_SQLQuery1 .= $s_Separator."linea_prod_desc";
                $s_SQLQuery2 .= $s_Separator."'".$this->getLinea_prod_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getMarca_id() ) )
            {
                $s_SQLQuery1 .= $s_Separator."marca_id";
                $s_SQLQuery2 .= $s_Separator."'".$this->getMarca_id()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getMarca_desc() ) )
            {
                $s_SQLQuery1 .= $s_Separator."marca_desc";
                $s_SQLQuery2 .= $s_Separator."'".$this->getMarca_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getNumero_parte() ) )
            {
                $s_SQLQuery1 .= $s_Separator."numero_parte";
                $s_SQLQuery2 .= $s_Separator."'".$this->getNumero_parte()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getTipo_uso_desc() ) )
            {
                $s_SQLQuery1 .= $s_Separator."tipo_uso_desc";
                $s_SQLQuery2 .= $s_Separator."'".$this->getTipo_uso_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getGarantia_desc() ) )
            {
                $s_SQLQuery1 .= $s_Separator."garantia_desc";
                $s_SQLQuery2 .= $s_Separator."'".$this->getGarantia_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_longitud() ) )
            {
                $s_SQLQuery1 .= $s_Separator."dim_longitud";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDim_longitud()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_alto() ) )
            {
                $s_SQLQuery1 .= $s_Separator."dim_alto";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDim_alto()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_ancho() ) )
            {
                $s_SQLQuery1 .= $s_Separator."dim_ancho";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDim_ancho()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_peso() ) )
            {
                $s_SQLQuery1 .= $s_Separator."dim_peso";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDim_peso()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDir_imagen_medio() ) )
            {
                $s_SQLQuery1 .= $s_Separator."dir_imagen_medio";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDir_imagen_medio()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDir_imagen_accesorio() ) )
            {
                $s_SQLQuery1 .= $s_Separator."dir_imagen_accesorio";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDir_imagen_accesorio()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDir_imagen_largo() ) )
            {
                $s_SQLQuery1 .= $s_Separator."dir_imagen_largo";
                $s_SQLQuery2 .= $s_Separator."'".$this->getDir_imagen_largo()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getPrecio_dol() ) )
            {
                $s_SQLQuery1 .= $s_Separator."precio_dol";
                $s_SQLQuery2 .= $s_Separator."".$this->getPrecio_dol()."";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getPrecio_sol() ) )
            {
                $s_SQLQuery1 .= $s_Separator."precio_sol";
                $s_SQLQuery2 .= $s_Separator."".$this->getPrecio_sol()."";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getStock() ) )
            {
                $s_SQLQuery1 .= $s_Separator."stock";
                $s_SQLQuery2 .= $s_Separator."".$this->getStock()."";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getCaracteristicas() ) )
            {
                $s_SQLQuery1 .= $s_Separator."caracteristicas";
                $s_SQLQuery2 .= $s_Separator."'".$this->getCaracteristicas()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_reg() ) )
            {
                $s_SQLQuery1 .= $s_Separator."fecha_reg";
                $s_SQLQuery2 .= $s_Separator."'".$this->getFecha_reg()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_upd() ) )
            {
                $s_SQLQuery1 .= $s_Separator."fecha_upd";
                $s_SQLQuery2 .= $s_Separator."'".$this->getFecha_upd()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_precio_act() ) )
            {
                $s_SQLQuery1 .= $s_Separator."fecha_precio_act";
                $s_SQLQuery2 .= $s_Separator."'".$this->getFecha_precio_act()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_caracteristica() ) )
            {
                $s_SQLQuery1 .= $s_Separator."fecha_caracteristica";
                $s_SQLQuery2 .= $s_Separator."'".$this->getFecha_caracteristica()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_imagen_act() ) )
            {
                $s_SQLQuery1 .= $s_Separator."fecha_imagen_act";
                $s_SQLQuery2 .= $s_Separator."'".$this->getFecha_imagen_act()."'";
                $s_Separator = ", ";
            }
            $s_SQLQuery = $s_SQLQuery1." ) ".$s_SQLQuery2." );";
            $o_Resource = Conexion::getConexion();
            $o_Statement = $o_Resource->createStatement();
            $o_Statement->executeQuery( $s_SQLQuery );
            if( $this->getDebug() ){ pr( $s_SQLQuery ); }
        }
        else
        {
            throw new Exception( "El id ya esta registrado." );
        }
        return true;
    }

    /* Actualiza los datos del registro */
    public function update()
    {
        $this->validateRecord();
        if ( true )
        {
            $s_SQLQuery = "UPDATE exp_producto SET ";
            $s_Separator = "";
            if ( !is_null( $this->getId_product() ) )
            {
                $s_SQLQuery .= $s_Separator."id_product = '".$this->getId_product()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getEstado() ) )
            {
                $s_SQLQuery .= $s_Separator."estado = '".$this->getEstado()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getNombre() ) )
            {
                $s_SQLQuery .= $s_Separator."nombre = '".$this->getNombre()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getMinicodigo() ) )
            {
                $s_SQLQuery .= $s_Separator."minicodigo = '".$this->getMinicodigo()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDescripcion_largo() ) )
            {
                $s_SQLQuery .= $s_Separator."descripcion_largo = '".$this->getDescripcion_largo()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDescripcion_corto() ) )
            {
                $s_SQLQuery .= $s_Separator."descripcion_corto = '".$this->getDescripcion_corto()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getItem_tipo_id() ) )
            {
                $s_SQLQuery .= $s_Separator."item_tipo_id = '".$this->getItem_tipo_id()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getItem_tipo_desc() ) )
            {
                $s_SQLQuery .= $s_Separator."item_tipo_desc = '".$this->getItem_tipo_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getLinea_prod_id() ) )
            {
                $s_SQLQuery .= $s_Separator."linea_prod_id = '".$this->getLinea_prod_id()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getLinea_prod_desc() ) )
            {
                $s_SQLQuery .= $s_Separator."linea_prod_desc = '".$this->getLinea_prod_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getMarca_id() ) )
            {
                $s_SQLQuery .= $s_Separator."marca_id = '".$this->getMarca_id()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getMarca_desc() ) )
            {
                $s_SQLQuery .= $s_Separator."marca_desc = '".$this->getMarca_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getNumero_parte() ) )
            {
                $s_SQLQuery .= $s_Separator."numero_parte = '".$this->getNumero_parte()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getTipo_uso_desc() ) )
            {
                $s_SQLQuery .= $s_Separator."tipo_uso_desc = '".$this->getTipo_uso_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getGarantia_desc() ) )
            {
                $s_SQLQuery .= $s_Separator."garantia_desc = '".$this->getGarantia_desc()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_longitud() ) )
            {
                $s_SQLQuery .= $s_Separator."dim_longitud = '".$this->getDim_longitud()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_alto() ) )
            {
                $s_SQLQuery .= $s_Separator."dim_alto = '".$this->getDim_alto()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_ancho() ) )
            {
                $s_SQLQuery .= $s_Separator."dim_ancho = '".$this->getDim_ancho()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDim_peso() ) )
            {
                $s_SQLQuery .= $s_Separator."dim_peso = '".$this->getDim_peso()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDir_imagen_medio() ) )
            {
                $s_SQLQuery .= $s_Separator."dir_imagen_medio = '".$this->getDir_imagen_medio()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDir_imagen_accesorio() ) )
            {
                $s_SQLQuery .= $s_Separator."dir_imagen_accesorio = '".$this->getDir_imagen_accesorio()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getDir_imagen_largo() ) )
            {
                $s_SQLQuery .= $s_Separator."dir_imagen_largo = '".$this->getDir_imagen_largo()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getPrecio_dol() ) )
            {
                $s_SQLQuery .= $s_Separator."precio_dol = ".$this->getPrecio_dol()."";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getPrecio_sol() ) )
            {
                $s_SQLQuery .= $s_Separator."precio_sol = ".$this->getPrecio_sol()."";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getStock() ) )
            {
                $s_SQLQuery .= $s_Separator."stock = ".$this->getStock()."";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getCaracteristicas() ) )
            {
                $s_SQLQuery .= $s_Separator."caracteristicas = '".$this->getCaracteristicas()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_reg() ) )
            {
                $s_SQLQuery .= $s_Separator."fecha_reg = '".$this->getFecha_reg()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_upd() ) )
            {
                $s_SQLQuery .= $s_Separator."fecha_upd = '".$this->getFecha_upd()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_precio_act() ) )
            {
                $s_SQLQuery .= $s_Separator."fecha_precio_act = '".$this->getFecha_precio_act()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_caracteristica() ) )
            {
                $s_SQLQuery .= $s_Separator."fecha_caracteristica = '".$this->getFecha_caracteristica()."'";
                $s_Separator = ", ";
            }
            if ( !is_null( $this->getFecha_imagen_act() ) )
            {
                $s_SQLQuery .= $s_Separator."fecha_imagen_act = '".$this->getFecha_imagen_act()."'";
                $s_Separator = ", ";
            }
            $s_SQLQuery .= " WHERE  codigo = '".$this->getCodigo()."';";
            $o_Resource = Conexion::getConexion();
            $o_Statement = $o_Resource->createStatement();
            $o_Statement->executeQuery( $s_SQLQuery );
            if( $this->getDebug() ){ pr( $s_SQLQuery ); }

        }
        else
        {
            throw new Exception( "El id no esta registrado." );
        }
        return true;
    }

    /* Elimina el registro */
    public function delete()
    {
        $s_SQLQuery = "DELETE FROM exp_producto WHERE  codigo = '".$this->getCodigo()."';";
        $o_Resource = Conexion::getConexion();
        $o_Statement = $o_Resource->createStatement();
        $o_Statement->executeQuery( $s_SQLQuery );
        if( $this->getDebug() ){ pr( $s_SQLQuery ); }
        return true;
    }

}
?>