예제 #1
0
function referentiel_delete_all_associations_tasks_to_one_user($ref_user)
{
    // supprime toutes les associations pour un user donne
    /*
    			DROP TABLE IF EXISTS `mdl_referentiel_a_user_task`;
    CREATE TABLE IF NOT EXISTS `mdl_referentiel_a_user_task` (
      `id` bigint(10) unsigned NOT NULL AUTO_INCREMENT,
      `ref_user` bigint(10) unsigned NOT NULL,
      `ref_task` bigint(10) unsigned NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='user_select_task' AUTO_INCREMENT=1 ;
    */
    global $DB;
    $ok_association = true;
    if (!empty($ref_user)) {
        $a_records = $DB->get_records("referentiel_a_user_task", "ref_user", $ref_user);
        if ($a_records) {
            foreach ($a_records as $a_record) {
                // suppression
                $ok_association = $ok_association && referentiel_delete_a_user_task_record($a_record->id);
            }
            $a_records->close();
        }
    }
    return $ok_association;
}
예제 #2
0
function referentiel_delete_task_record($id)
{
    // suppression task + consignes associes
    global $DB;
    $ok_task = false;
    if (isset($id) && $id > 0) {
        if ($task = $DB->get_record("referentiel_task", array("id" => "{$id}"))) {
            // Delete any dependent records here
            $ok_association = true;
            if ($r_a_users_tasks = $DB->get_records("referentiel_a_user_task", array("ref_task" => $id))) {
                // DEBUG
                // print_object($r_a_users_tasks);
                // echo "<br />";
                // suppression des associations
                foreach ($r_a_users_tasks as $r_a_user_task) {
                    // suppression
                    $ok_association = $ok_association && referentiel_delete_a_user_task_record($r_a_user_task->id);
                }
            }
            $ok_consigne = true;
            if ($consignes = $DB->get_records("referentiel_consigne", array("ref_task" => "{$id}"))) {
                // DEBUG
                // print_object($consignes);
                // echo "<br />";
                // suppression des consignes associes dans la table referentiel_consigne
                foreach ($consignes as $consigne) {
                    // suppression
                    $ok_consigne = $ok_consigne && referentiel_delete_consigne_record($consigne->id);
                }
            }
            // suppression task
            if ($ok_consigne && $ok_association) {
                $ok_task = $DB->delete_records("referentiel_task", array("id" => "{$id}"));
            }
        }
    }
    return $ok_task;
}