<?php 

class Componentes {

    public static function todos(){
        $sqlQuery = ComponentesSQL::DATOS_COMPLETOS
            . " GROUP BY ControlComponentes.componenteID  "
            . "ORDER BY ControlComponentes.componenteORDEN  ";
        return SicamDB::selectVariasFilas($sqlQuery, array());
    }
    
    public static function datos($componenteID){
        $sqlQuery = ComponentesSQL::DATOS_COMPLETOS
            . "WHERE ControlComponentes.componenteID = ? "
            . "GROUP BY ControlComponentes.componenteID  "
            . "ORDER BY ControlComponentes.componenteORDEN  ";
        return SicamDB::selectUnaFila($sqlQuery, array($componenteID));
    }
    
    public static function todosCompleto(){
        $componentes = Componentes::todos();
        foreach ($componentes as $componente):
            $componente->controladores = ControladoresBD::delComponente($componente->componenteID);
            foreach ($componente->controladores as $controlador):
                $controlador->operaciones = Operaciones::delMenuControlador($controlador->controladorID);
            endforeach;
        endforeach;
        return $menuComponente;
    }
    
    public static function todosdelMenu(){
        $sqlQuery = ComponentesSQL::DATOS
        .'WHERE ControlComponentes.componenteMENU = "SI" '
        . "GROUP BY ControlComponentes.componenteID  "
        . "ORDER BY ControlComponentes.componenteORDEN  ";
        return SicamDB::selectVariasFilas($sqlQuery, array());
    }
    
    public static function porUsuario($idUsuario){
        $sqlQuery = ControlAccesoSQL::OPERACIONES_POR_USUARIO_Y_COMPONENTES 
            . ' WHERE Usuarios.usuarioID = ? OR UsuariosRol.usuarioID = ?';
        return SicamDB::selectVariasFilas($sqlQuery, array($idUsuario, $idUsuario));
    }
    
    public static function delMenuPorUsuario($idUsuario){
        $sqlQuery = ControlAccesoSQL::OPERACIONES_POR_USUARIO_Y_COMPONENTES 
        . ' WHERE (Usuarios.usuarioID = ? OR UsuariosRol.usuarioID = ? ) '
        . ' AND ControlComponentes.componenteMENU = "SI" '
        . ' GROUP BY ControlComponentes.componenteID ' 
        . "ORDER BY ControlComponentes.componenteORDEN  ";
        return SicamDB::selectVariasFilas($sqlQuery, array($idUsuario, $idUsuario));
    }
    
} 
