Ejemplo n.º 1
0
     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;
}
Ejemplo n.º 3
0
/**
 * 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);
 }
Ejemplo n.º 5
0
/**
 * 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";
        }
    }
}