<?php
/* Autor...:  */
/* Esquema.: SR_PreSerie.xml */
/* Generado: 2020-08-18 04:21:31 */

/* Metodos de acceso a los campos de la tabla SR_PreSerie */
abstract class BaseSR_PreSerieBN
{
    /* Campos de la tabla */
    private $i_SerieId;    // SerieId: ( no definido )
    private $i_MovimientoId;    // MovimientoId: ( no definido )
    private $s_ProductoId;    // ProductoId: ( no definido )
    private $s_SerieNumero;    // SerieNumero: ( no definido )
    private $s_Operacion;    // Operacion: ( no definido )
    private $s_Almacen;    // Almacen: ( no definido )
    private $s_ReferenciaTipo;    // ReferenciaTipo: ( no definido )
    private $s_ReferenciaNumero;    // ReferenciaNumero: ( no definido )
    private $u_Comentario;    // Comentario: ( no definido )
    private $s_UsuarioRegistro;    // UsuarioRegistro: ( no definido )
    private $d_FechaRegistro;    // FechaRegistro: ( no definido )

    /* Establece el valor del campo SerieId */
    public function setSerieId( $i_SerieId )
    {
        $this->i_SerieId = $i_SerieId;
    }

    /* Obtiene el valor del campo SerieId */
    public function getSerieId()
    {
        return $this->i_SerieId;
    }

    /* Establece el valor del campo MovimientoId */
    public function setMovimientoId( $i_MovimientoId )
    {
        $this->i_MovimientoId = $i_MovimientoId;
    }

    /* Obtiene el valor del campo MovimientoId */
    public function getMovimientoId()
    {
        return $this->i_MovimientoId;
    }

    /* Establece el valor del campo ProductoId */
    public function setProductoId( $s_ProductoId )
    {
        $this->s_ProductoId = $s_ProductoId;
    }

    /* Obtiene el valor del campo ProductoId */
    public function getProductoId()
    {
        return $this->s_ProductoId;
    }

    /* Establece el valor del campo SerieNumero */
    public function setSerieNumero( $s_SerieNumero )
    {
        $this->s_SerieNumero = $s_SerieNumero;
    }

    /* Obtiene el valor del campo SerieNumero */
    public function getSerieNumero()
    {
        return $this->s_SerieNumero;
    }

    /* Establece el valor del campo Operacion */
    public function setOperacion( $s_Operacion )
    {
        $this->s_Operacion = $s_Operacion;
    }

    /* Obtiene el valor del campo Operacion */
    public function getOperacion()
    {
        return $this->s_Operacion;
    }

    /* Establece el valor del campo Almacen */
    public function setAlmacen( $s_Almacen )
    {
        $this->s_Almacen = $s_Almacen;
    }

    /* Obtiene el valor del campo Almacen */
    public function getAlmacen()
    {
        return $this->s_Almacen;
    }

    /* Establece el valor del campo ReferenciaTipo */
    public function setReferenciaTipo( $s_ReferenciaTipo )
    {
        $this->s_ReferenciaTipo = $s_ReferenciaTipo;
    }

    /* Obtiene el valor del campo ReferenciaTipo */
    public function getReferenciaTipo()
    {
        return $this->s_ReferenciaTipo;
    }

    /* Establece el valor del campo ReferenciaNumero */
    public function setReferenciaNumero( $s_ReferenciaNumero )
    {
        $this->s_ReferenciaNumero = $s_ReferenciaNumero;
    }

    /* Obtiene el valor del campo ReferenciaNumero */
    public function getReferenciaNumero()
    {
        return $this->s_ReferenciaNumero;
    }

    /* Establece el valor del campo Comentario */
    public function setComentario( $u_Comentario )
    {
        $this->u_Comentario = $u_Comentario;
    }

    /* Obtiene el valor del campo Comentario */
    public function getComentario()
    {
        return $this->u_Comentario;
    }

    /* Establece el valor del campo UsuarioRegistro */
    public function setUsuarioRegistro( $s_UsuarioRegistro )
    {
        $this->s_UsuarioRegistro = $s_UsuarioRegistro;
    }

    /* Obtiene el valor del campo UsuarioRegistro */
    public function getUsuarioRegistro()
    {
        return $this->s_UsuarioRegistro;
    }

    /* Establece el valor del campo FechaRegistro */
    public function setFechaRegistro( $d_FechaRegistro )
    {
        $this->d_FechaRegistro = $d_FechaRegistro;
    }

    /* Obtiene el valor del campo FechaRegistro */
    public function getFechaRegistro()
    {
        return $this->d_FechaRegistro;
    }

    public function getJsonSerialize()
    {
        return 
        [
            'SerieId' => $this->getSerieId(),
            'MovimientoId' => $this->getMovimientoId(),
            'ProductoId' => $this->getProductoId(),
            'SerieNumero' => $this->getSerieNumero(),
            'Operacion' => $this->getOperacion(),
            'Almacen' => $this->getAlmacen(),
            'ReferenciaTipo' => $this->getReferenciaTipo(),
            'ReferenciaNumero' => $this->getReferenciaNumero(),
            'Comentario' => $this->getComentario(),
            'UsuarioRegistro' => $this->getUsuarioRegistro(),
            'FechaRegistro' => $this->getFechaRegistro(),
        ];
    }

    public function toArray()
    {
        return $this->processArray( get_object_vars( $this ) ); 
    }

    private function processArray( $array )
    {
        foreach( $array as $key => $value ) 
        {
            if ( is_object( $value ) )
            {
                $array[$key] = $value->toArray();
            }
            if ( is_array( $value ) ) 
            {
                $array[$key] = $this->processArray( $value );
            }
        }
        return $array;
    }

    public function __toString()
    {
        return json_encode( $this->toArray() ); 
    }

    /* Recupera un objeto SR_PreSerieBN desde un RecordSet */
    public static function retrieveByRs( $o_SR_PreSerieRs )
    {
        $o_SR_PreSerieBN = new SR_PreSerieBN();
        $o_SR_PreSerieBN->setSerieId( ( integer ) $o_SR_PreSerieRs[ "SerieId" ] );
        $o_SR_PreSerieBN->setMovimientoId( ( integer ) $o_SR_PreSerieRs[ "MovimientoId" ] );
        $o_SR_PreSerieBN->setProductoId( $o_SR_PreSerieRs[ "ProductoId" ] );
        $o_SR_PreSerieBN->setSerieNumero( $o_SR_PreSerieRs[ "SerieNumero" ] );
        $o_SR_PreSerieBN->setOperacion( $o_SR_PreSerieRs[ "Operacion" ] );
        $o_SR_PreSerieBN->setAlmacen( $o_SR_PreSerieRs[ "Almacen" ] );
        $o_SR_PreSerieBN->setReferenciaTipo( $o_SR_PreSerieRs[ "ReferenciaTipo" ] );
        $o_SR_PreSerieBN->setReferenciaNumero( $o_SR_PreSerieRs[ "ReferenciaNumero" ] );
        $o_SR_PreSerieBN->setComentario( $o_SR_PreSerieRs[ "Comentario" ] );
        $o_SR_PreSerieBN->setUsuarioRegistro( $o_SR_PreSerieRs[ "UsuarioRegistro" ] );
        $o_SR_PreSerieBN->setFechaRegistro( utilTimestamp::getTimestamp( $o_SR_PreSerieRs[ "FechaRegistro" ], "Y-m-d H:i:s" ) );
        return $o_SR_PreSerieBN;
    }
}
?>