Inserir data de início de inscrição dos alunos matriculados pelo grupo cohort via comando SQL

Inserir data de início de inscrição dos alunos matriculados pelo grupo cohort via comando SQL

por Lino Vaz Moniz -
Número de respostas: 0

Quando a inscrição no curso ocorre via grupo cohort, a data de início de inscrição fica vazia. Isso dificulta o processe de relatórios, ainda mais quando se usa Badiu MReport para monitorar Moodle. 

Uma alternativa para corrigir isso,  é adicionar a data que o usuário foi cadastrado no grupo cohort como data de início de inscrição. Para isso, execute os seguinte comandos SQL:

Mapear lista de inscrição feito pelo grupo cohort sem data de início de inscrição

SELECT  ue.id,ue.userid,c.id,ue.enrolid,c.startdate AS coursetimestart,c.fullname AS coursename,e.enrol,e.customint1 AS cohortid FROM mdl_enrol e INNER JOIN mdl_course c ON c.id= e.courseid INNER JOIN mdl_user_enrolments ue ON e.id=ue.enrolid WHERE e.enrol='cohort' AND  (ue.timestart =0 OR ue.timestart IS NULL )

O resultado gerado nesta lista, indica a quantidade de inscrição sem data de inicio da matrícula. Para corrigir,  execute o comando seguinte. 

Alterar data de início de inscrição com data de cadastro no grupo cohort

UPDATE mdl_user_enrolments ue INNER JOIN mdl_enrol e  ON e.id=ue.enrolid INNER JOIN mdl_cohort_members chm  ON (e.customint1=chm.cohortid AND chm.userid=ue.userid) SET ue.timestart=chm.timeadded WHERE e.enrol='cohort'  AND  (ue.timestart =0 OR ue.timestart IS NULL ) 

Ao executar esse comando, deve atualizar a mesma quantidade de linha gerado na consulta com o comando anterior

Os comandos acima foram testados na base mysql. Para outras bases, o segundo comando pode não funcionar.