]> git.mjollnir.org Git - moodle.git/commitdiff
First authorize restore library for version 1.7
authorethem <ethem>
Thu, 4 May 2006 07:58:20 +0000 (07:58 +0000)
committerethem <ethem>
Thu, 4 May 2006 07:58:20 +0000 (07:58 +0000)
enrol/authorize/lib.php

index 8c699ed4a42716c45cf92f5f21dabc030a875df8..cfcc29b162c958c2971fba429638617638afefc6 100644 (file)
@@ -1,19 +1,19 @@
 <?PHP // $Id$
 
 /**
- * backup_authorize_info
+ * backup_enrol_info
  *
  * @param resource $bf
  * @param object $prefs
  * @return bool
  */
-function backup_authorize_info($bf, $prefs)
+function backup_enrol_info($bf, $prefs)
 {
     global $CFG;
 
     $status = true;
 
-    if ($orders = get_records("enrol_authorize", "courseid", $prefs->backup_course))
+    if ($orders = get_records_select('enrol_authorize', "courseid=$prefs->backup_course AND status!=0 AND transid!=0"))
     {
         fwrite($bf, start_tag("AUTHORIZEORDERS", 2 ,true));
         foreach ($orders as $order) {
@@ -29,7 +29,7 @@ function backup_authorize_info($bf, $prefs)
             fwrite($bf, full_tag("SETTLETIME", 4, false, $order->settletime));
             fwrite($bf, full_tag("AMOUNT", 4, false, $order->amount));
             fwrite($bf, full_tag("CURRENCY", 4, false, $order->currency));
-            if ($refunds = get_records("enrol_authorize_refunds", "orderid", $order->id)) {
+            if ($refunds = get_records_select("enrol_authorize_refunds", "orderid=$order->id AND status!=0 AND transid!=0")) {
                 fwrite($bf, start_tag("REFUNDS",4, true));
                 foreach ($refunds as $refund) {
                     fwrite($bf, start_tag("REFUND", 5, true));
@@ -51,4 +51,75 @@ function backup_authorize_info($bf, $prefs)
 }
 
 
+function restore_enrol_info($restore, $xml)
+{
+    global $CFG;
+
+    $orders = restore_read_xml($xml, "AUTHORIZEORDERS", $restore);
+
+    //print "******************";
+    //var_dump($xml);
+    //var_dump($orders);
+    //print "******************";
+
+    if ($orders && $orders !== true) {
+        foreach ($orders as $order) {
+
+
+            //print_r($order);
+
+            //We'll need this later!!
+            $olduserid = backup_todb($order['ORDER']['#']['USERID']['0']['#']); //To recode userid
+            $oldordid = backup_todb($order['ORDER']['#']['ID']['0']['#']); //To store order pairs to backup_ids
+
+            $ord = new stdClass();
+            $ord->courseid = $restore->course_id;  //We get new course id from $restore
+
+            $ord->cclastfour = backup_todb($order['ORDER']['#']['CCLASTFOUR']['0']['#']);
+            $ord->ccname = backup_todb($order['ORDER']['#']['CCNAME']['0']['#']);
+            $ord->transid = backup_todb($order['ORDER']['#']['TRANSID']['0']['#']);
+            $ord->status = backup_todb($order['ORDER']['#']['STATUS']['0']['#']);
+            $ord->timecreated = backup_todb($order['ORDER']['#']['TIMECREATED']['0']['#']);
+            $ord->settletime = backup_todb($order['ORDER']['#']['SETTLETIME']['0']['#']);
+            $ord->amount = backup_todb($order['ORDER']['#']['AMOUNT']['0']['#']);
+            $ord->currency = backup_todb($order['ORDER']['#']['CURRENCY']['0']['#']);
+
+            //Now we recode userid looking in the backup_ids table
+            $user = backup_getid($restore->backup_unique_code, "user", $olduserid);
+            if ($user) {
+                $ord->userid = $user->new_id;
+            }
+
+            $newordid = insert_record("enrol_authorize", $ord);
+
+            //We put ordid pair (oldordid, newordid) to backup_ids. Refunds restore will need them.
+            if ($newordid) {
+                backup_putid($restore->backup_unique_code, "enrol_authorize", $oldordid, $newordid);
+            }
+
+            $refunds = $order['ORDER']['#']['REFUNDS']['0']['#']['REFUND'];
+
+            for($i = 0; $i < sizeof($refunds); $i++) {
+                $refund_info = $refunds[$i];
+
+                //We'll need this later
+                $oldordidid = backup_todb($refund_info['#']['ID']['0']['#']);  //To recode orderid
+
+                $refund->status = backup_todb($refund_info['#']['STATUS']['0']['#']);
+                $refund->amount = backup_todb($refund_info['#']['AMOUNT']['0']['#']);
+                $refund->transid = backup_todb($refund_info['#']['TRANSID']['0']['#']);
+                $refund->settletime = backup_todb($refund_info['#']['SETTLETIME']['0']['#']);
+
+                //Now we recode userid looking in the backup_ids table
+                $order = backup_getid($restore->backup_unique_code,"enrol_authorize",$oldordidid);
+                if ($order) {
+                    $refund->orderid = $order->new_id;
+                }
+
+                $newid = insert_record("enrol_authorize_refunds", $refund);
+
+            }
+        }
+    }
+}
 ?>