First authorize restore library for version 1.7

This commit is contained in:
ethem
2006-05-04 07:58:20 +00:00
parent f009d079ec
commit 669c58e1a5
+75 -4
View 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);
}
}
}
}
?>