<?php
/* Autor...:  */
/* Esquema.: SR_Movimiento.xml */
/* Generado: 2021-08-25 23:09:49 */

/* Metodos de acceso a los campos de la tabla SR_Movimiento */
abstract class BaseSR_MovimientoBN
{
    /* Campos de la tabla */
    private $i_MovimientoId;    // MovimientoId: ( no definido )
    private $i_IdCompania;    // IdCompania: ( no definido )
    private $i_IdSucursal;    // IdSucursal: ( no definido )
    private $d_Fecha;    // Fecha: ( no definido )
    private $s_TipoMovimiento;    // TipoMovimiento: ( 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 $i_ReferenciaSecuencia;    // ReferenciaSecuencia: ( no definido )
    private $s_ReferenciaId;    // ReferenciaId: ( no definido )
    private $d_ReferenciaFecha;    // ReferenciaFecha: ( no definido )
    private $d_InicioEscaneo;    // InicioEscaneo: ( no definido )
    private $d_FinEscaneo;    // FinEscaneo: ( no definido )
    private $u_Comentario;    // Comentario: ( no definido )
    private $s_UsuarioAprob;    // UsuarioAprob: ( no definido )
    private $d_FechaAprob;    // FechaAprob: ( no definido )
    private $s_EstadoAprob;    // EstadoAprob: ( no definido )
    private $s_ComentarioAprob;    // ComentarioAprob: ( no definido )
    private $s_Estado;    // Estado: ( no definido )
    private $s_ImpresionEstado;    // ImpresionEstado: ( no definido )
    private $s_ControlEstadoSerie;    // ControlEstadoSerie: ( no definido )
    private $s_UsuarioRegistro;    // UsuarioRegistro: ( no definido )
    private $d_FechaRegistro;    // FechaRegistro: ( no definido )
    private $s_UsuarioModificacion;    // UsuarioModificacion: ( no definido )
    private $d_FechaModificacion;    // FechaModificacion: ( no definido )

    /* 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 IdCompania */
    public function setIdCompania( $i_IdCompania )
    {
        $this->i_IdCompania = $i_IdCompania;
    }

    /* Obtiene el valor del campo IdCompania */
    public function getIdCompania()
    {
        return $this->i_IdCompania;
    }

    /* Establece el valor del campo IdSucursal */
    public function setIdSucursal( $i_IdSucursal )
    {
        $this->i_IdSucursal = $i_IdSucursal;
    }

    /* Obtiene el valor del campo IdSucursal */
    public function getIdSucursal()
    {
        return $this->i_IdSucursal;
    }

    /* Establece el valor del campo Fecha */
    public function setFecha( $d_Fecha )
    {
        $this->d_Fecha = $d_Fecha;
    }

    /* Obtiene el valor del campo Fecha */
    public function getFecha()
    {
        return $this->d_Fecha;
    }

    /* Establece el valor del campo TipoMovimiento */
    public function setTipoMovimiento( $s_TipoMovimiento )
    {
        $this->s_TipoMovimiento = $s_TipoMovimiento;
    }

    /* Obtiene el valor del campo TipoMovimiento */
    public function getTipoMovimiento()
    {
        return $this->s_TipoMovimiento;
    }

    /* 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 ReferenciaSecuencia */
    public function setReferenciaSecuencia( $i_ReferenciaSecuencia )
    {
        $this->i_ReferenciaSecuencia = $i_ReferenciaSecuencia;
    }

    /* Obtiene el valor del campo ReferenciaSecuencia */
    public function getReferenciaSecuencia()
    {
        return $this->i_ReferenciaSecuencia;
    }

    /* Establece el valor del campo ReferenciaId */
    public function setReferenciaId( $s_ReferenciaId )
    {
        $this->s_ReferenciaId = $s_ReferenciaId;
    }

    /* Obtiene el valor del campo ReferenciaId */
    public function getReferenciaId()
    {
        return $this->s_ReferenciaId;
    }

    /* Establece el valor del campo ReferenciaFecha */
    public function setReferenciaFecha( $d_ReferenciaFecha )
    {
        $this->d_ReferenciaFecha = $d_ReferenciaFecha;
    }

    /* Obtiene el valor del campo ReferenciaFecha */
    public function getReferenciaFecha()
    {
        return $this->d_ReferenciaFecha;
    }

    /* Establece el valor del campo InicioEscaneo */
    public function setInicioEscaneo( $d_InicioEscaneo )
    {
        $this->d_InicioEscaneo = $d_InicioEscaneo;
    }

    /* Obtiene el valor del campo InicioEscaneo */
    public function getInicioEscaneo()
    {
        return $this->d_InicioEscaneo;
    }

    /* Establece el valor del campo FinEscaneo */
    public function setFinEscaneo( $d_FinEscaneo )
    {
        $this->d_FinEscaneo = $d_FinEscaneo;
    }

    /* Obtiene el valor del campo FinEscaneo */
    public function getFinEscaneo()
    {
        return $this->d_FinEscaneo;
    }

    /* 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 UsuarioAprob */
    public function setUsuarioAprob( $s_UsuarioAprob )
    {
        $this->s_UsuarioAprob = $s_UsuarioAprob;
    }

    /* Obtiene el valor del campo UsuarioAprob */
    public function getUsuarioAprob()
    {
        return $this->s_UsuarioAprob;
    }

    /* Establece el valor del campo FechaAprob */
    public function setFechaAprob( $d_FechaAprob )
    {
        $this->d_FechaAprob = $d_FechaAprob;
    }

    /* Obtiene el valor del campo FechaAprob */
    public function getFechaAprob()
    {
        return $this->d_FechaAprob;
    }

    /* Establece el valor del campo EstadoAprob */
    public function setEstadoAprob( $s_EstadoAprob )
    {
        $this->s_EstadoAprob = $s_EstadoAprob;
    }

    /* Obtiene el valor del campo EstadoAprob */
    public function getEstadoAprob()
    {
        return $this->s_EstadoAprob;
    }

    /* Establece el valor del campo ComentarioAprob */
    public function setComentarioAprob( $s_ComentarioAprob )
    {
        $this->s_ComentarioAprob = $s_ComentarioAprob;
    }

    /* Obtiene el valor del campo ComentarioAprob */
    public function getComentarioAprob()
    {
        return $this->s_ComentarioAprob;
    }

    /* Establece el valor del campo Estado */
    public function setEstado( $s_Estado )
    {
        $this->s_Estado = $s_Estado;
    }

    /* Obtiene el valor del campo Estado */
    public function getEstado()
    {
        return $this->s_Estado;
    }

    /* Establece el valor del campo ImpresionEstado */
    public function setImpresionEstado( $s_ImpresionEstado )
    {
        $this->s_ImpresionEstado = $s_ImpresionEstado;
    }

    /* Obtiene el valor del campo ImpresionEstado */
    public function getImpresionEstado()
    {
        return $this->s_ImpresionEstado;
    }

    /* Establece el valor del campo ControlEstadoSerie */
    public function setControlEstadoSerie( $s_ControlEstadoSerie )
    {
        $this->s_ControlEstadoSerie = $s_ControlEstadoSerie;
    }

    /* Obtiene el valor del campo ControlEstadoSerie */
    public function getControlEstadoSerie()
    {
        return $this->s_ControlEstadoSerie;
    }

    /* 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;
    }

    /* Establece el valor del campo UsuarioModificacion */
    public function setUsuarioModificacion( $s_UsuarioModificacion )
    {
        $this->s_UsuarioModificacion = $s_UsuarioModificacion;
    }

    /* Obtiene el valor del campo UsuarioModificacion */
    public function getUsuarioModificacion()
    {
        return $this->s_UsuarioModificacion;
    }

    /* Establece el valor del campo FechaModificacion */
    public function setFechaModificacion( $d_FechaModificacion )
    {
        $this->d_FechaModificacion = $d_FechaModificacion;
    }

    /* Obtiene el valor del campo FechaModificacion */
    public function getFechaModificacion()
    {
        return $this->d_FechaModificacion;
    }

    public function getJsonSerialize()
    {
        return 
        [
            'MovimientoId' => $this->getMovimientoId(),
            'IdCompania' => $this->getIdCompania(),
            'IdSucursal' => $this->getIdSucursal(),
            'Fecha' => $this->getFecha(),
            'TipoMovimiento' => $this->getTipoMovimiento(),
            'Operacion' => $this->getOperacion(),
            'Almacen' => $this->getAlmacen(),
            'ReferenciaTipo' => $this->getReferenciaTipo(),
            'ReferenciaNumero' => $this->getReferenciaNumero(),
            'ReferenciaSecuencia' => $this->getReferenciaSecuencia(),
            'ReferenciaId' => $this->getReferenciaId(),
            'ReferenciaFecha' => $this->getReferenciaFecha(),
            'InicioEscaneo' => $this->getInicioEscaneo(),
            'FinEscaneo' => $this->getFinEscaneo(),
            'Comentario' => $this->getComentario(),
            'UsuarioAprob' => $this->getUsuarioAprob(),
            'FechaAprob' => $this->getFechaAprob(),
            'EstadoAprob' => $this->getEstadoAprob(),
            'ComentarioAprob' => $this->getComentarioAprob(),
            'Estado' => $this->getEstado(),
            'ImpresionEstado' => $this->getImpresionEstado(),
            'ControlEstadoSerie' => $this->getControlEstadoSerie(),
            'UsuarioRegistro' => $this->getUsuarioRegistro(),
            'FechaRegistro' => $this->getFechaRegistro(),
            'UsuarioModificacion' => $this->getUsuarioModificacion(),
            'FechaModificacion' => $this->getFechaModificacion(),
        ];
    }

    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_MovimientoBN desde un RecordSet */
    public static function retrieveByRs( $o_SR_MovimientoRs )
    {
        $o_SR_MovimientoBN = new SR_MovimientoBN();
        $o_SR_MovimientoBN->setMovimientoId( ( integer ) $o_SR_MovimientoRs[ "MovimientoId" ] );
        $o_SR_MovimientoBN->setIdCompania( ( integer ) $o_SR_MovimientoRs[ "IdCompania" ] );
        $o_SR_MovimientoBN->setIdSucursal( ( integer ) $o_SR_MovimientoRs[ "IdSucursal" ] );
        $o_SR_MovimientoBN->setFecha( utilTimestamp::getTimestamp( $o_SR_MovimientoRs[ "Fecha" ], "Y-m-d H:i:s" ) );
        $o_SR_MovimientoBN->setTipoMovimiento( $o_SR_MovimientoRs[ "TipoMovimiento" ] );
        $o_SR_MovimientoBN->setOperacion( $o_SR_MovimientoRs[ "Operacion" ] );
        $o_SR_MovimientoBN->setAlmacen( $o_SR_MovimientoRs[ "Almacen" ] );
        $o_SR_MovimientoBN->setReferenciaTipo( $o_SR_MovimientoRs[ "ReferenciaTipo" ] );
        $o_SR_MovimientoBN->setReferenciaNumero( $o_SR_MovimientoRs[ "ReferenciaNumero" ] );
        $o_SR_MovimientoBN->setReferenciaSecuencia( ( integer ) $o_SR_MovimientoRs[ "ReferenciaSecuencia" ] );
        $o_SR_MovimientoBN->setReferenciaId( $o_SR_MovimientoRs[ "ReferenciaId" ] );
        $o_SR_MovimientoBN->setReferenciaFecha( utilTimestamp::getTimestamp( $o_SR_MovimientoRs[ "ReferenciaFecha" ], "Y-m-d H:i:s" ) );
        $o_SR_MovimientoBN->setInicioEscaneo( utilTimestamp::getTimestamp( $o_SR_MovimientoRs[ "InicioEscaneo" ], "Y-m-d H:i:s" ) );
        $o_SR_MovimientoBN->setFinEscaneo( utilTimestamp::getTimestamp( $o_SR_MovimientoRs[ "FinEscaneo" ], "Y-m-d H:i:s" ) );
        $o_SR_MovimientoBN->setComentario( $o_SR_MovimientoRs[ "Comentario" ] );
        $o_SR_MovimientoBN->setUsuarioAprob( $o_SR_MovimientoRs[ "UsuarioAprob" ] );
        $o_SR_MovimientoBN->setFechaAprob( utilTimestamp::getTimestamp( $o_SR_MovimientoRs[ "FechaAprob" ], "Y-m-d H:i:s" ) );
        $o_SR_MovimientoBN->setEstadoAprob( $o_SR_MovimientoRs[ "EstadoAprob" ] );
        $o_SR_MovimientoBN->setComentarioAprob( $o_SR_MovimientoRs[ "ComentarioAprob" ] );
        $o_SR_MovimientoBN->setEstado( $o_SR_MovimientoRs[ "Estado" ] );
        $o_SR_MovimientoBN->setImpresionEstado( $o_SR_MovimientoRs[ "ImpresionEstado" ] );
        $o_SR_MovimientoBN->setControlEstadoSerie( $o_SR_MovimientoRs[ "ControlEstadoSerie" ] );
        $o_SR_MovimientoBN->setUsuarioRegistro( $o_SR_MovimientoRs[ "UsuarioRegistro" ] );
        $o_SR_MovimientoBN->setFechaRegistro( utilTimestamp::getTimestamp( $o_SR_MovimientoRs[ "FechaRegistro" ], "Y-m-d H:i:s" ) );
        $o_SR_MovimientoBN->setUsuarioModificacion( $o_SR_MovimientoRs[ "UsuarioModificacion" ] );
        $o_SR_MovimientoBN->setFechaModificacion( utilTimestamp::getTimestamp( $o_SR_MovimientoRs[ "FechaModificacion" ], "Y-m-d H:i:s" ) );
        return $o_SR_MovimientoBN;
    }
}
?>