Para consultar na base de dados do Moodle, se um determino usuário está inscrito e coma matrícula ativa, execute o seguinte comando SQL:
SELECT COUNT(DISTINCT ue.id) AS countrecord FROM mdl_role_assignments rs INNER JOIN mdl_context e ON rs.contextid=e.id INNER JOIN mdl_enrol en ON e.instanceid=en.courseid INNER JOIN mdl_user_enrolments ue ON en.id=ue.enrolid WHERE e.contextlevel=50 AND rs.userid=ue.userid AND rs.userid=? AND en.courseid =? AND ue.status = 0 AND en.status = 0 AND (ue.timestart IS NULL OR ue.timestart = 0 OR ue.timestart <= ? ) AND (ue.timeend IS NULL OR ue.timeend = 0 OR ue.timeend >= ? )
Passe o parâmetro id do usuário em rs.userid=?
Passe o parâmetro id do curso em em en.courseid =?
Passe o parâmetro data atual em formato timestamp em ue.timestart <= ? e ue.timeend >= ?
Esse comando é recomendado usar para checar se o usuário está inscrito na versão 2.x ou superior do Moodle para efeito de cadastro de matrícula. Esse comando foi testado no Moodle 3.5. É compatível com a versão 2.x e 3.x.
O comando verifica se a inscrição existe e está ativa, com base no seguintes critérios:
a) Usuário está inscrito na tabela de controle de perfil na tabela mdl_role_assignments
b) Usuário está inscrito em um método de inscrição na tabela mdl_user_enrolments
c) Método de inscrição do usuário está ativa. Isso é feito pelo filtro en.status = 0
d) Inscrição do usuário não está suspenso. Isso é feito pelo filtro ue.status = 0
e) Período de inscrição é uma data vigente, ou seja, a data de início não é uma data futura e a data de expiração não é uma data passada.