From b0f44d8dbe4d6ae3b7813a89c62518d3e8753eb4 Mon Sep 17 00:00:00 2001
From: skodak <skodak>
Date: Sat, 8 Mar 2008 15:29:42 +0000
Subject: [PATCH] MDL-13849 add API method to use outcome in course into
 grade_outcome class; merged from MOODLE_19_STABLE

---
 lib/grade/grade_outcome.php | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/lib/grade/grade_outcome.php b/lib/grade/grade_outcome.php
index ac87126f4a..d08d3c7005 100644
--- a/lib/grade/grade_outcome.php
+++ b/lib/grade/grade_outcome.php
@@ -129,17 +129,31 @@ class grade_outcome extends grade_object {
 
         if ($result = parent::update($source)) {
             if (!empty($this->courseid)) {
-                if (!get_records('grade_outcomes_courses', 'courseid', $this->courseid, 'outcomeid', $this->id)) {
-                    $goc = new object();
-                    $goc->courseid = $this->courseid;
-                    $goc->outcomeid = $this->id;
-                    insert_record('grade_outcomes_courses', $goc);
-                }
+                $this->use_in($this->courseid);
             }
         }
         return $result;
     }
 
+    /**
+     * Mark outcome as used in course
+     * @param int $courseid
+     * @return succes - false if incorrect courseid requested
+     */
+    function use_in($courseid) {
+        if (!empty($this->courseid) and $courseid != $this->courseid) {
+            return false;
+        }
+
+        if (!record_exists('grade_outcomes_courses', 'courseid', $courseid, 'outcomeid', $this->id)) {
+            $goc = new object();
+            $goc->courseid  = $courseid;
+            $goc->outcomeid = $this->id;
+            return (bool)insert_record('grade_outcomes_courses', $goc);
+        }
+        return true;
+    }
+
     /**
      * Finds and returns a grade_outcome instance based on params.
      * @static
-- 
2.39.5