Skip to content

Commit

Permalink
Allow teachers to cancel refunded transactions if admin set up $CFG->…
Browse files Browse the repository at this point in the history
…an_teachermanagepay.

enrol_authorize.courseid must be passed to authorize_get_status_action function; Joined 2 tables to get courseid field.
  • Loading branch information
ethem committed Aug 17, 2006
1 parent 06bbfff commit b88378a
Showing 1 changed file with 23 additions and 11 deletions.
34 changes: 23 additions & 11 deletions enrol/authorize/locallib.php
Expand Up @@ -323,14 +323,13 @@ function authorize_print_order_details($orderno)
print_table($table);
}
elseif (!empty($cmdvoid) and confirm_sesskey()) { // VOID
if (!in_array(ORDER_VOID, $status->actions)) {
$a = new stdClass;
$a->action = $authstrs->void;
error(get_string('youcantdo', 'enrol_authorize', $a));
}

$suborderno = optional_param('suborder', 0, PARAM_INT);
if (empty($suborderno)) { // cancel original transaction.
if (!in_array(ORDER_VOID, $status->actions)) {
$a = new stdClass;
$a->action = $authstrs->void;
error(get_string('youcantdo', 'enrol_authorize', $a));
}
if (empty($confirm)) {
$strvoidyes = get_string('voidyes', 'enrol_authorize');
$table->data[] = array("<b>$strs->confirm:</b>",
Expand Down Expand Up @@ -358,14 +357,22 @@ function authorize_print_order_details($orderno)
}
}
else { // cancel refunded transaction
$suborder = get_record('enrol_authorize_refunds',
'id', $suborderno,
'orderid', $orderno,
'status', AN_STATUS_CREDIT);
$sql = "SELECT R.*, E.courseid FROM {$CFG->prefix}enrol_authorize_refunds R " .
"INNER JOIN {$CFG->prefix}enrol_authorize E ON R.orderid = E.id " .
"WHERE R.id = '$suborderno' AND R.orderid = '$orderno' AND R.status = '" .AN_STATUS_CREDIT. "'";

$suborder = get_record_sql($sql);
if (!$suborder) { // not found
error("Transaction can not be voided because of already been voided.");
}
else {
$refundedstatus = authorize_get_status_action($suborder);
if (!in_array(ORDER_VOID, $refundedstatus->actions)) {
$a = new stdClass;
$a->action = $authstrs->void;
error(get_string('youcantdo', 'enrol_authorize', $a));
}
unset($suborder->courseid);
if (empty($confirm)) {
$a = new stdClass;
$a->transid = $suborder->transid;
Expand Down Expand Up @@ -449,7 +456,12 @@ function authorize_print_order_details($orderno)
$strs->status,
$authstrs->settlementdate,
$strs->action);
$refunds = get_records('enrol_authorize_refunds', 'orderid', $orderno);

$sql = "SELECT R.*, E.courseid FROM {$CFG->prefix}enrol_authorize_refunds R " .
"INNER JOIN {$CFG->prefix}enrol_authorize E ON R.orderid = E.id " .
"WHERE R.orderid = '$orderno'";

$refunds = get_records_sql($sql);
if ($refunds) {
foreach ($refunds as $rf) {
$substatus = authorize_get_status_action($rf);
Expand Down

0 comments on commit b88378a

Please sign in to comment.