diff --git a/enrol/authorize/authorizenetlib.php b/enrol/authorize/authorizenetlib.php index f1a2c7ea9da..5c7be9cc778 100644 --- a/enrol/authorize/authorizenetlib.php +++ b/enrol/authorize/authorizenetlib.php @@ -295,7 +295,7 @@ function authorize_action(&$order, &$message, &$extra, $action=AN_ACTION_NONE, $ $responsecode = intval($response[0]); if ($responsecode == AN_APPROVED || $responsecode == AN_REVIEW) { - $transid = intval($response[6]); + $transid = floatval($response[6]); if ($test || $transid == 0) { return $responsecode; // don't update original transaction in test mode. } diff --git a/enrol/authorize/db/install.xml b/enrol/authorize/db/install.xml index 646e6479cd7..9b6ee31354c 100644 --- a/enrol/authorize/db/install.xml +++ b/enrol/authorize/db/install.xml @@ -12,7 +12,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -47,4 +47,4 @@ - \ No newline at end of file + diff --git a/enrol/authorize/db/upgrade.php b/enrol/authorize/db/upgrade.php index 5a4ec888312..7a39905827f 100644 --- a/enrol/authorize/db/upgrade.php +++ b/enrol/authorize/db/upgrade.php @@ -59,6 +59,46 @@ function xmldb_enrol_authorize_upgrade($oldversion=0) { } } + if ($result && $oldversion < 2006112902) { + /// enrol_authorize.transid + /// Define index transid (not unique) to be dropped form enrol_authorize + $table = new XMLDBTable('enrol_authorize'); + $index = new XMLDBIndex('transid'); + $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('transid')); + drop_index($table, $index); + + /// Changing precision of field transid on table enrol_authorize to (20) + $table = new XMLDBTable('enrol_authorize'); + $field = new XMLDBField('transid'); + $field->setAttributes(XMLDB_TYPE_INTEGER, '20', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'userid'); + change_field_precision($table, $field); + + /// Launch add index transid again + $table = new XMLDBTable('enrol_authorize'); + $index = new XMLDBIndex('transid'); + $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('transid')); + add_index($table, $index); + + /// enrol_authorize_refunds.transid + /// Define index transid (not unique) to be dropped form enrol_authorize_refunds + $table = new XMLDBTable('enrol_authorize_refunds'); + $index = new XMLDBIndex('transid'); + $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('transid')); + drop_index($table, $index); + + /// Changing precision of field transid on table enrol_authorize_refunds to (20) + $table = new XMLDBTable('enrol_authorize_refunds'); + $field = new XMLDBField('transid'); + $field->setAttributes(XMLDB_TYPE_INTEGER, '20', XMLDB_UNSIGNED, null, null, null, null, '0', 'amount'); + change_field_precision($table, $field); + + /// Launch add index transid again + $table = new XMLDBTable('enrol_authorize_refunds'); + $index = new XMLDBIndex('transid'); + $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('transid')); + add_index($table, $index); + } + return $result; } diff --git a/enrol/authorize/locallib.php b/enrol/authorize/locallib.php index 45c80d141e5..f3b229cf860 100644 --- a/enrol/authorize/locallib.php +++ b/enrol/authorize/locallib.php @@ -561,7 +561,7 @@ function authorize_get_status_action($order) $canmanage = has_capability('enrol/authorize:managepayments', get_context_instance(CONTEXT_COURSE, $order->courseid)); - if (intval($order->transid) == 0) { // test transaction or new order + if (floatval($order->transid) == 0) { // test transaction or new order if ($order->timecreated < $newordertime) { if ($canmanage) { $ret->actions = array(ORDER_DELETE); diff --git a/enrol/authorize/version.php b/enrol/authorize/version.php index 297dbbbdbf5..ce8b723cb63 100755 --- a/enrol/authorize/version.php +++ b/enrol/authorize/version.php @@ -1,6 +1,6 @@ version = 2006112901; +$plugin->version = 2006112902; $plugin->requires = 2006100401; ?>