|
@ -198,58 +198,96 @@ function atualizaCategoriaEVL($categoria) { |
|
|
// Matrículas |
|
|
// Matrículas |
|
|
// |
|
|
// |
|
|
|
|
|
|
|
|
// Retirado pois supõe-se que matrículas serão feitas apenas na EVL |
|
|
function atualizaMatriculas($syncStartTime, $courseId = 0) { |
|
|
// function atualizaMatriculaEVL($matricula) { |
|
|
global $DB; |
|
|
// global $DB; |
|
|
|
|
|
|
|
|
|
|
|
// // Detecta status, caso ele não tenha sido especificado |
|
|
// FIXME comentado para não atrapalhar apresentação para diretor amanhã |
|
|
// $visivel = true; //$visivel ?? cursoPublico($curso); |
|
|
// (ainda em desenvolvimento) |
|
|
|
|
|
/* |
|
|
|
|
|
// Obtem todas as matrículas pendentes de sincronização |
|
|
|
|
|
$sqlEnrolments = ' |
|
|
|
|
|
SELECT e.courseid, json_agg( u.username )::varchar as userlist, |
|
|
|
|
|
(coalesce(publicevl.intvalue,0) <> 0) as publicevl |
|
|
|
|
|
FROM mdl_user_enrolments ue |
|
|
|
|
|
JOIN mdl_enrol e |
|
|
|
|
|
ON e.id = ue.enrolid |
|
|
|
|
|
JOIN mdl_user u |
|
|
|
|
|
ON u.id = ue.userid |
|
|
|
|
|
JOIN mdl_context ctx |
|
|
|
|
|
ON ctx.contextlevel = 50 |
|
|
|
|
|
AND ctx.instanceid = e.courseid |
|
|
|
|
|
JOIN mdl_customfield_data publicevl |
|
|
|
|
|
ON publicevl.contextid = ctx.id |
|
|
|
|
|
AND publicevl.fieldid = 1 |
|
|
|
|
|
LEFT JOIN mdl_ilb_sync_user_enrolments sue |
|
|
|
|
|
ON ue.id = sue.user_enrolment_id |
|
|
|
|
|
WHERE (sue.user_enrolment_id is null |
|
|
|
|
|
OR ue.timemodified > sue.time_sync) |
|
|
|
|
|
AND (? = 0 OR ue.courseid = ?) |
|
|
|
|
|
GROUP BY e.courseid, (coalesce(publicevl.intvalue,0) <> 0) |
|
|
|
|
|
'; |
|
|
|
|
|
|
|
|
|
|
|
$listaMatriculasCurso = $DB->get_records_sql($sqlEnrolments, |
|
|
|
|
|
array($courseId, $courseId)); |
|
|
|
|
|
|
|
|
|
|
|
// Atualiza cada um dos cursos pendentes |
|
|
|
|
|
foreach($listaMatriculasCurso as $matricula) { |
|
|
|
|
|
atualizaMatriculaEVL($matricula->courseid, $matricula->userlist, $matricula->publicevl); |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// // Hack: enquanto não há campos personalizados no curso, a carga horária |
|
|
function atualizaMatriculaEVL($courseid, $userlist, $publicEVL) { |
|
|
// // precisa ser obtida a partir do idnumber |
|
|
global $DB; |
|
|
// $idnumber = $curso->idnumber; |
|
|
|
|
|
// $ch = 0; |
|
|
|
|
|
// if(preg_match("/\_CH([0-9]+)/", $idnumber, $x)) { |
|
|
|
|
|
// $ch = $x[1]; |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// $school = $DB->get_record('course',array('id'=>'1')); |
|
|
// Detecta status, caso ele não tenha sido especificado |
|
|
|
|
|
$visivel = true; //$visivel ?? cursoPublico($curso); |
|
|
// $uri = $CFG->emURLWS . '/api/v1/cursos/registrar/'; |
|
|
|
|
|
|
|
|
// Hack: enquanto não há campos personalizados no curso, a carga horária |
|
|
// $obj = new StdClass(); |
|
|
// precisa ser obtida a partir do idnumber |
|
|
|
|
|
$idnumber = $curso->idnumber; |
|
|
// $camposCurso = array( |
|
|
$ch = 0; |
|
|
// "name" => $curso->fullname, |
|
|
if(preg_match("/\_CH([0-9]+)/", $idnumber, $x)) { |
|
|
// "url" => "", |
|
|
$ch = $x[1]; |
|
|
// "description" => $curso->summary, |
|
|
} |
|
|
// "logo" => "", |
|
|
|
|
|
// "ead_id" => $curso->id, |
|
|
$school = $DB->get_record('course',array('id'=>'1')); |
|
|
// "visible" => $visivel, |
|
|
|
|
|
// "conteudista" => "", //$school->shortname, |
|
|
$uri = $CFG->emURLWS . '/api/v1/cursos/registrar/'; |
|
|
// "certificador" => $school->shortname, |
|
|
|
|
|
// "carga_horaria" => $ch |
|
|
$obj = new StdClass(); |
|
|
// ); |
|
|
|
|
|
|
|
|
$camposCurso = array( |
|
|
// // Monta o JSON que será enviado ao Web Service |
|
|
"name" => $curso->fullname, |
|
|
// $obj->school = $school->shortname; // sigla da escola |
|
|
"url" => "", |
|
|
// $obj->course = $camposCurso; |
|
|
"description" => $curso->summary, |
|
|
// $obj->key = "k4B5YcbKa619ohu3wxk2xXbmtoxFuQqrwcKEOTAnZi7iy4tl9z"; |
|
|
"logo" => "", |
|
|
|
|
|
"ead_id" => $curso->id, |
|
|
// $json = json_encode($obj); |
|
|
"visible" => $visivel, |
|
|
|
|
|
"conteudista" => "", //$school->shortname, |
|
|
// $response = \Httpful\Request::post($uri) |
|
|
"certificador" => $school->shortname, |
|
|
// ->sendsJson() |
|
|
"carga_horaria" => $ch |
|
|
// ->body($json) |
|
|
); |
|
|
// ->send(); |
|
|
|
|
|
|
|
|
// Monta o JSON que será enviado ao Web Service |
|
|
// // Se o registro foi criado no servidor, registra em tabela de controle |
|
|
$obj->school = $school->shortname; // sigla da escola |
|
|
// if(!$response->hasErrors()) { |
|
|
$obj->course = $camposCurso; |
|
|
// registraSincronizacaoMatriculaUsuario($matricula); |
|
|
$obj->key = "k4B5YcbKa619ohu3wxk2xXbmtoxFuQqrwcKEOTAnZi7iy4tl9z"; |
|
|
// } else { |
|
|
|
|
|
// mtrace("Erro sincronizando ". $matricula->fullname . ": " . $response->code . " " ); |
|
|
$json = json_encode($obj); |
|
|
// } |
|
|
|
|
|
// } |
|
|
$response = \Httpful\Request::post($uri) |
|
|
|
|
|
->sendsJson() |
|
|
|
|
|
->body($json) |
|
|
|
|
|
->send(); |
|
|
|
|
|
|
|
|
|
|
|
// Se o registro foi criado no servidor, registra em tabela de controle |
|
|
|
|
|
if(!$response->hasErrors()) { |
|
|
|
|
|
registraSincronizacaoMatriculaUsuario($matricula); |
|
|
|
|
|
} else { |
|
|
|
|
|
mtrace("Erro sincronizando ". $matricula->fullname . ": " . $response->code . " " ); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// /** |
|
|
// /** |
|
|
// * Insere ou atualiza registro da última sincronização de determinada matricula |
|
|
// * Insere ou atualiza registro da última sincronização de determinada matricula |
|
|