]> git.mjollnir.org Git - moodle.git/commitdiff
Now, teachers can manage the payments in their courses if admin set up this.
authorethem <ethem>
Mon, 13 Mar 2006 16:47:44 +0000 (16:47 +0000)
committerethem <ethem>
Mon, 13 Mar 2006 16:47:44 +0000 (16:47 +0000)
enrol/authorize/config.html
enrol/authorize/enrol.php
enrol/authorize/index.php

index c643a32e12c85787e02daf0297c50be91b65abc0..55e190f0892b47733878be21ad34ed41d4c49b1e 100755 (executable)
@@ -15,6 +15,7 @@ if (!isset($frm->an_test)) $frm->an_test = '';
 if (!isset($frm->an_review)) $frm->an_review = '';
 if (!isset($frm->an_capture_day)) $frm->an_capture_day = '5';
 if (!isset($frm->an_emailexpired)) $frm->an_emailexpired = '2';
+if (!isset($frm->an_teachermanagepay)) $frm->an_teachermanagepay = '';
 
 if (isset($CFG->an_cutoff)) {
     $frm->an_cutoff_hour = intval($CFG->an_cutoff) / 60;
@@ -102,6 +103,12 @@ if (!isset($frm->an_cutoff_min)) $frm->an_cutoff_min = '5';
     <td><?php print_string("cutofftime", "enrol_authorize") ?></td>
 </tr>
 
+<tr valign="top">
+    <td align="right">an_teachermanagepay:</td>
+    <td><input type="checkbox" value="1" name="an_teachermanagepay" <?php if (!empty($frm->an_teachermanagepay)) echo "checked=\"true\"" ?> /></td>
+    <td><?php print_string("adminteachermanagepay", "enrol_authorize") ?></td>
+</tr>
+
 <tr valign="top">
     <td align="right">an_review:</td>
     <td><input type="checkbox" value="1" name="an_review" <?php if (!empty($frm->an_review)) echo "checked=\"true\"" ?> />
index 5c4cbe01990aee70e65944a2b2465001f81e3a81..83de1334476d201217324ecce568153e1f78020e 100755 (executable)
@@ -7,7 +7,7 @@ require_once $CFG->dirroot.'/enrol/authorize/const.php';
  * enrolment_plugin_authorize
  *
  */
-class enrolment_plugin_authorize 
+class enrolment_plugin_authorize
 {
     /**
      * Credit card error messages.
@@ -467,6 +467,7 @@ class enrolment_plugin_authorize
         // optional authorize.net settings
         set_config('an_avs', optional_param('an_avs', ''));
         set_config('an_test', optional_param('an_test', ''));
+        set_config('an_teachermanagepay', optional_param('an_teachermanagepay', ''));
         set_config('an_referer', optional_param('an_referer', 'http://', PARAM_URL));
 
         $cutoff_hour = optional_param('an_cutoff_hour', 0, PARAM_INT);
index 394248bdbc0f9c1db4330108b8b37c5a54910024..c483defea808483f733cc5f8257615b600534135 100644 (file)
@@ -43,20 +43,17 @@ print_footer();
 
 function authorize_orders()
 {
-    global $CFG;
+    global $CFG, $USER;
     global $strs, $authstrs;
     require_once $CFG->libdir.'/tablelib.php';
 
     $perpage = 10;
     $userid = optional_param('user', 0, PARAM_INT);
-    $courseid = optional_param('course', 0, PARAM_INT);
+    $courseid = optional_param('course', SITEID, PARAM_INT);
     $status = optional_param('status', AN_STATUS_NONE, PARAM_INT);
-    if ($courseid == SITEID) {
-       $courseid = 0; // no filter
-    }
 
-    if (!isstudent($courseid, $userid) && !isteacher($courseid, $userid)) {
-         error("You must be a teacher/student to use this page.");
+    if (!isteacher($courseid)) {
+        $userid = $USER->id;
     }
 
     $baseurl = $CFG->wwwroot."/enrol/authorize/index.php?user=$userid";
@@ -122,7 +119,7 @@ function authorize_orders()
     if ($userid > 0) {
         $where .= "AND (userid = '" . $userid . "') ";
     }
-    if ($courseid > 0) {
+    if ($courseid != SITEID) {
         $where .= "AND (courseid = '" . $courseid . "') ";
     }
 
@@ -198,9 +195,9 @@ function authorize_order_details($orderno) {
         return;
     }
 
-    if ($USER->id != $order->userid) {
-        if (! (isadmin() || isteacher($order->courseid, $order->userid))) {
-            error("Students can view their order.");
+    if ($USER->id != $order->userid) { // Current user viewing someone else's order
+        if (!isteacher($order->courseid)) {
+           error("Students can view their order.");
         }
     }
 
@@ -489,12 +486,12 @@ function authorize_order_details($orderno) {
 
 function get_order_status_desc($order)
 {
-    global $CFG;
+    global $CFG, $USER;
 
     $ret = new stdClass();
 
     if (intval($order->transid) == 0) { // test transaction
-        if (isadmin()) {
+        if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
                $ret->actions = array(ORDER_DELETE);
         }
         $ret->status = 'tested';
@@ -507,13 +504,13 @@ function get_order_status_desc($order)
         if (getsettletime($order->timecreated) < $timediff30) {
             $order->status = AN_STATUS_EXPIRE;
             update_record("enrol_authorize", $order);
-            if (isadmin()) {
+            if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
                $ret->actions = array(ORDER_DELETE);
             }
             $ret->status = 'expired';
         }
         else {
-            if (isadmin()) {
+            if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
                $ret->actions = array(ORDER_CAPTURE, ORDER_VOID);
             }
             $ret->status = 'authorizedpendingcapture';
@@ -522,13 +519,13 @@ function get_order_status_desc($order)
 
     case AN_STATUS_AUTHCAPTURE:
         if (settled($order)) {
-            if (isadmin()) {
+            if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
                $ret->actions = array(ORDER_REFUND);
             }
             $ret->status = 'capturedsettled';
         }
         else {
-            if (isadmin()) {
+            if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
                $ret->actions = array(ORDER_VOID);
             }
             $ret->status = 'capturedpendingsettle';
@@ -541,7 +538,7 @@ function get_order_status_desc($order)
             $ret->status = 'settled';
         }
         else {
-            if (isadmin()) {
+            if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
                $ret->actions = array(ORDER_VOID);
             }
             $ret->status = 'refunded';
@@ -554,8 +551,7 @@ function get_order_status_desc($order)
         return $ret;
 
     case AN_STATUS_EXPIRE:
-
-        if (isadmin()) {
+        if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
                $ret->actions = array(ORDER_DELETE);
         }
         $ret->status = 'expired';