Exemplo n.º 1
0
/**
 * Given a form,
 * this function will permanently delete the activite instance
 * and any document that depends on it.
 *
 * @param object $form
 * @return boolean Success/Failure
 **/
function referentiel_delete_activity($form)
{
    // suppression activite + document
    $ok_activite_detruite = false;
    $ok_document = false;
    // DEBUG
    // echo "<br />";
    // print_object($form);
    // echo "<br />";
    if (isset($form->action) && $form->action == "modifier_activite") {
        // suppression d'une activite et des documents associes
        if (isset($form->activite_id) && $form->activite_id > 0) {
            $activite = referentiel_get_activite($form->activite_id);
            $ok_activite_detruite = referentiel_delete_activity_record($form->activite_id);
            if ($ok_activite_detruite && $activite->userid > 0 && $activite->competences_activite != '') {
                // mise a jour du certificat
                referentiel_mise_a_jour_competences_certificat_user($activite->competences_activite, '', $activite->userid, $activite->ref_referentiel, $activite->approved, true, true);
            }
        }
    } else {
        if (isset($form->action) && $form->action == "modifier_document") {
            // suppression d'un document
            if (isset($form->document_id) && $form->document_id > 0) {
                $ok_document = referentiel_delete_document_record($form->document_id);
            }
        }
    }
    return $ok_activite_detruite or $ok_document;
}
Exemplo n.º 2
0
/**
 * Given an activity id,
 * this function will permanently delete the activite instance
 * and any document that depends on it.
 *
 * @param object $id
 * @return boolean Success/Failure
 **/
function referentiel_delete_activity_record($id)
{
    // suppression activite + documents associes
    global $DB;
    $ok_activite = false;
    if (isset($id) && $id > 0) {
        if ($activite = $DB->get_record("referentiel_activite", array("id" => "{$id}"))) {
            // Delete any dependent records here
            // Si c'est une activite - tache il faut aussi supprimer les liens vers cette tache
            if (isset($activite->ref_task) && $activite->ref_task > 0 && isset($activite->userid) && $activite->userid > 0) {
                $params = array("taskid" => "{$activite->ref_task}", "userid" => "{$activite->userid}");
                $sql = "SELECT * FROM {referentiel_a_user_task} WHERE ref_task=:taskid AND ref_user=:userid";
                $a_t_records = $DB->get_records_sql($sql, $params);
                if ($a_t_records) {
                    foreach ($a_t_records as $a_t_record) {
                        // suppression
                        referentiel_delete_a_user_task_record($a_t_record->id);
                    }
                }
            }
            // Si c'est une activite de type devoir il faut aussi supprimer les liens vers cette activite
            if (!empty($activite->id)) {
                $params = array("activiteid" => $activite->id);
                $sql = "SELECT * FROM {referentiel_activite_modules} WHERE activiteid=:activiteid";
                $a_m_records = $DB->get_records_sql($sql, $params);
                if ($a_m_records) {
                    foreach ($a_m_records as $a_m_record) {
                        // suppression
                        $DB->delete_records("referentiel_activite_modules", array("id" => $a_m_record->id));
                    }
                }
            }
            // Si il ya un bareme il faut aussi supprimer les liens vers bareme
            if (!empty($activite->id)) {
                $params = array("activiteid" => $activite->id);
                $sql = "SELECT * FROM {referentiel_activite_scale} WHERE activiteid=:activiteid";
                $a_b_records = $DB->get_records_sql($sql, $params);
                if ($a_b_records) {
                    foreach ($a_b_records as $a_b_record) {
                        // suppression
                        $DB->delete_records("referentiel_activite_scale", array("id" => $a_b_record->id));
                    }
                }
            }
            $ok_document = true;
            if ($documents = $DB->get_records("referentiel_document", array("ref_activite" => "{$id}"))) {
                // DEBUG
                // print_object($documents);
                // echo "<br />";
                // suppression des documents associes dans la table referentiel_document
                foreach ($documents as $document) {
                    // suppression
                    $ok_document = $ok_document && referentiel_delete_document_record($document->id);
                }
            }
            // suppression activite
            if ($ok_document) {
                $ok_activite = $DB->delete_records("referentiel_activite", array("id" => "{$id}"));
                if ($ok_activite && isset($activite->userid) && $activite->userid > 0 && isset($activite->competences_activite) && $activite->competences_activite != '') {
                    // mise a jour du certificat
                    referentiel_mise_a_jour_competences_certificat_user($activite->competences_activite, '', $activite->userid, $activite->ref_referentiel, $activite->approved, true, true);
                }
            }
        }
    }
    return $ok_activite;
}