if ($mode == 'updatecertif') { // recuperer l'id du certificat après l'avoir genere automatiquement et mettre en place les competences if ($certificat_id) { // id certificat if (!($record = $DB->get_record("referentiel_certificat", array("id" => "{$certificat_id}")))) { print_error('Certificat ID is incorrect'); } } else { print_error('Certificat ID is incorrect'); } $modform = "certificat_edit.html"; } else { if ($mode == 'addcertif') { // recuperer l'id du certificat après l'avoir genere automatiquement et mettre en place les competences if (!$certificat_id) { $certificat_id = referentiel_genere_certificat($USER->id, $referentiel_referentiel->id); } if ($certificat_id) { // id certificat if (!($record = $DB->get_record("referentiel_certificat", array("id" => "{$certificat_id}")))) { print_error('Certificat ID is incorrect'); } } else { print_error('Certificat ID is incorrect'); } $modform = "certificat_add.html"; } } } if (file_exists($modform)) { $defaultformat = FORMAT_PLAIN;
function referentiel_print_jauge_activite($userid, $referentiel_referentiel_id) { // MODIF JF 2009/11/28 // affiche la liste des competences declarees dans les activites par userid pour le referentiel $referentiel_referentiel_id $s = ""; if ($userid && $referentiel_referentiel_id) { if (!referentiel_certificat_user_exists($userid, $referentiel_referentiel_id)) { // CREER ce certificat referentiel_genere_certificat($userid, $referentiel_referentiel_id); } $record_certificat = referentiel_get_certificat_user($userid, $referentiel_referentiel_id); if ($record_certificat) { // empreintes $liste_empreintes = referentiel_purge_dernier_separateur(referentiel_get_liste_empreintes_competence($referentiel_referentiel_id), '/'); $s .= referentiel_affiche_competences_declarees('/', ':', $record_certificat->competences_certificat, $record_certificat->competences_activite, $liste_empreintes); // MODIF JF 2012/10/10 if ($record_certificat->verrou && $record_certificat->valide) { $s .= '<span class="rouge">' . get_string('dossier_verrouille_ferme', 'referentiel') . '</span>' . "\n"; } elseif ($record_certificat->verrou) { $s .= '<span class="rouge">' . get_string('dossier_verrouille', 'referentiel') . '</span>' . "\n"; } elseif ($record_certificat->valide) { $s .= '<span class="rouge">' . get_string('dossier_non_verrouille_ferme', 'referentiel') . '</span>' . "\n"; } } } return $s; }
/** * This function set all certificates * * @param $referentiel_instance reference an instance of referentiel !) * @return bolean * @todo Finish documenting this function **/ function referentiel_regenere_certificat_user($userid, $ref_referentiel) { if ($ref_referentiel && $userid) { if (!referentiel_certificat_user_exists($userid, $ref_referentiel)) { // CREER ce certificat referentiel_genere_certificat($userid, $ref_referentiel); } // Modif JF 2012/10/07 /* if (!referentiel_certificat_user_valide($userid, $ref_referentiel)){ // drapeau positionne par l'ancienne version <= 3 quand une activite est validee ou devalidee // n'est plus utilise car desormais on modifie directement la jauge du certificat dans la partie activite // METTRE A JOUR ce certificat referentiel_genere_certificat($userid, $ref_referentiel); } */ } }
protected function after_execute() { global $DB; $userinfo = $this->get_setting_value('userinfo'); // imposer les references vers la bonne version de l'occurrence // MODIF JF if ($userinfo) { // recuperer la bonne valeur pour la reference de l'occurrence $rec_ref = $DB->get_record('referentiel', array("id" => $this->get_new_parentid('referentiel'))); if ($rec_ref) { $ref_instance = $rec_ref->id; $ref_referentiel = $rec_ref->ref_referentiel; if ($ref_instance && $ref_referentiel) { // activite $recs_act = $DB->get_records('referentiel_activite', array("ref_instance" => $ref_instance)); if ($recs_act) { foreach ($recs_act as $rec_act) { $ok = $DB->set_field('referentiel_activite', 'ref_referentiel', $ref_referentiel, array("id" => $rec_act->id)); } } // taches $recs_task = $DB->get_records('referentiel_task', array("ref_instance" => $ref_instance)); if ($recs_task) { foreach ($recs_task as $rec_task) { $ok = $DB->set_field('referentiel_task', 'ref_referentiel', $ref_referentiel, array("id" => $rec_task->id)); } } // certificats $recs_certif = $DB->get_records('referentiel_certificat', array("ref_referentiel" => REF_REF_TEMPID)); if ($recs_certif) { foreach ($recs_certif as $rec_certif) { // Verifier si le certificat existe pour cet utilisateur dans la base de donnees $params = array("refrefid" => $ref_referentiel, "userid" => $rec_certif->userid); $sql = "SELECT * FROM {referentiel_certificat} WHERE ref_referentiel=:refrefid AND userid=:userid"; $certificat_exists = $DB->get_record_sql($sql, $params); if (!$certificat_exists) { //The structure is equal to the db, so insert $rec_certif->ref_referentiel = $ref_referentiel; $new_certificat_id = $DB->insert_record("referentiel_certificat", $rec_certif); } else { // Doit on ecraser le certificat existant ? // Verifier les champs sensibles if (!empty($certificat_exists->commentaire_certificat)) { $commentaire = $certificat_exists->commentaire_certificat; } else { $commentaire = $rec_certif->commentaire_certificat; } if (!empty($certificat_exists->synthese_certificat)) { $synthese = $certificat_exists->synthese_certificat; } else { $synthese = $rec_certif->synthese_certificat; } if (!empty($certificat_exists->decision_jury)) { $decision_jury = $certificat_exists->decision_jury; } else { $decision_jury = $rec_certif->decision_jury; } if (!empty($certificat_exists->date_decision)) { $date_decision = $certificat_exists->date_decision; } else { $date_decision = $rec_certif->date_decision; } // modifier le certificat à enregistrer $rec_certif->id = $certificat_exists->id; $rec_certif->ref_referentiel = $certificat_exists->ref_referentiel; $rec_certif->commentaire_certificat = $commentaire; $rec_certif->decision_jury = $decision_jury; $rec_certif->date_decision = $date_decision; $rec_certif->synthese_certificat = $synthese; // tester le verrou if ($certificat_exists->verrou) { // verrou : on conserve la liste de compétences du serveur $rec_certif->competences_certificat = $certificat_exists->competences_certificat; $rec_certif->competences_activite = $certificat_exists->competences_activite; $rec_certif->evaluation = $certificat_exists->evaluation; } $rec_certif->verrou = $certificat_exists->verrou; // privilegier le serveur et pas la sauvegarde // mise à jour if ($DB->update_record("referentiel_certificat", $rec_certif)) { // recalculer les listes (cela tient compte du verrou) referentiel_genere_certificat($rec_certif->userid, $rec_certif->ref_referentiel); } } } } // supprimer le certificats temporaires $DB->delete_records('referentiel_certificat', array("ref_referentiel" => REF_REF_TEMPID)); } } } // Add refrentiel related files, no need to match by itemname (just internally handled context) $this->add_related_files('mod_referentiel', 'document', null); $this->add_related_files('mod_referentiel', 'consigne', null); }
/** * This function returns records of certificat from table referentiel_certificat * * @param id reference referentiel (no instance) * @param list_userids : a list of ids * @return array of objects * @todo Finish documenting this function **/ function referentiel_force_certificats_from_userslist($list_userids, $refrefid) { global $debug_special; $tuserids = array(); $nb = 0; $nbforce = 0; if (!empty($refrefid) && !empty($list_userids)) { $tuserids = explode(',', $list_userids); if (isset($debug_special) && $debug_special) { echo "<br />DEBUG :: lib_certificat.php :: referentiel_force_certificats_from_userslist()<br />Nombre d'utilisateurs traités :\n"; $nu = count($tuserids) - 1; echo $nu . "\n"; // exit; } foreach ($tuserids as $userid) { // forcer la generation if ($userid) { if (!referentiel_user_certificat_exists($userid, $refrefid)) { referentiel_genere_certificat($userid, $refrefid); $nbforce++; } $nb++; } } // DEBUG if (isset($debug_special) && $debug_special) { echo "<br />Nombre de certificats traités : {$nb}<br />Nombre de certificats créés : {$nbforce}\n"; } } }