<?php
/* Busqueda de registros de la tabla SEG_Usuario redefinidos por el usuario. */
class SEG_UsuarioFN extends BaseSEG_UsuarioFN
{
    public static function StaticSelectByPK( $IdUsuario )
    {
        $o_SEG_UsuarioFN = new SEG_UsuarioFN();
        $o_SEG_UsuarioBN = $o_SEG_UsuarioFN->selectByPK( $IdUsuario );
        return $o_SEG_UsuarioBN;
    }

    public static function buscarEmpresaporUsuarioId( $IdUsuario )
    {
        $s_Sql = "SELECT IdCompania, IdUsuario FROM SEG_UsuarioCompania WHERE IdUsuario = '$IdUsuario';";
        $o_DBConnect = Conexion::getConexion();
        $statement = $o_DBConnect->prepareStatement( $s_Sql );
        $resultset = $statement->executeQuery();
        $i_NumRows = $resultset->getRecordCount();
        $a_ListEmpresa = array();
        if( $i_NumRows > 0 )
        {
            while( $resultset->next() ) 
            {
                $a_Row = $resultset->getRow();
                $i_IdCompania = $a_Row['IdCompania'];
                $o_GSS_CompaniaFN = new GSS_CompaniaFN();
                $o_GSS_CompaniaBN = $o_GSS_CompaniaFN->selectByPK( $i_IdCompania );
                if( $o_GSS_CompaniaBN )
                {
                    $a_ListEmpresa[] = $o_GSS_CompaniaBN;
                }
            }
        }
        return $a_ListEmpresa;
    }
    
    public static function existeUsuarioCompania( $IdCompania, $IdUsuario )
    {
        $s_Sql = "SELECT IdCompania, IdUsuario FROM SEG_UsuarioCompania WHERE IdUsuario='$IdUsuario' AND IdCompania='$IdCompania';";
        $o_ResultSet = Conexion::getConexion()->prepareStatement( $s_Sql )->executeQuery();
        if( $o_ResultSet->getRecordCount() > 0 )
        {
            return true;
        }
        return false;
    }
    
    public static function listadoUsuarioCompania()
    {
        $s_Sql = "SELECT U.IdUsuario, U.IdRol, I.IdCompania, U.UsuarioNombre, R.RolDescripcion RolNombre, C.DescripcionCorta CompaniaNombre, UsuarioPassword, U.InicioFecha FechaIngreso, U.FechaCreacion
                    FROM SEG_Usuario U
                      INNER JOIN SEG_Rol R ON U.IdRol=R.IdRol
                        INNER JOIN SEG_UsuarioCompania  I ON I.IdUsuario=U.IdUsuario
                          INNER JOIN GSS_Compania C ON I.IdCompania=C.IdCompania
                    ORDER BY U.IdUsuario, I.IdCompania;";
        $o_ResultSet = Conexion::getConexion()->prepareStatement( $s_Sql )->executeQuery();
        $a_rs = array();
        while( $o_ResultSet->next() ) 
        {
            $a_Row = $o_ResultSet->getRow();
            $a_rs[] = $a_Row;
        }
        return $a_rs;
    }
}
?>