From: ethem Date: Mon, 20 Nov 2006 09:49:26 +0000 (+0000) Subject: It is time to refund for echeck (business checking). X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=be09f12192d69cbdf73927208da2c2db16287f21;p=moodle.git It is time to refund for echeck (business checking). --- diff --git a/enrol/authorize/locallib.php b/enrol/authorize/locallib.php index 7aca820bb8..90c294070b 100644 --- a/enrol/authorize/locallib.php +++ b/enrol/authorize/locallib.php @@ -335,7 +335,8 @@ function authorize_print_order_details($orderno) else { $extra->amount = $amount; $message = ''; - if (AN_APPROVED == authorize_action($order, $message, $extra, AN_ACTION_CREDIT)) { + $success = authorize_action($order, $message, $extra, AN_ACTION_CREDIT); + if (AN_APPROVED == $success || AN_REVIEW == $success) { if (empty($CFG->an_test)) { if (empty($extra->id)) { $table->data[] = array("$strs->error:", 'insert record error'); @@ -593,8 +594,10 @@ function authorize_get_status_action($order) case AN_STATUS_AUTHCAPTURE: if (authorize_settled($order)) { - if ($order->paymentmethod == AN_METHOD_CC && $canmanage) { - $ret->actions = array(ORDER_REFUND); + if ($canmanage) { + if (($order->paymentmethod == AN_METHOD_CC) || ($order->paymentmethod == AN_METHOD_ECHECK && !empty($order->refundinfo))) { + $ret->actions = array(ORDER_REFUND); + } } $ret->status = 'settled'; } diff --git a/enrol/authorize/uploadcsv.php b/enrol/authorize/uploadcsv.php index 76b1bf00ee..b2e2c18ad7 100644 --- a/enrol/authorize/uploadcsv.php +++ b/enrol/authorize/uploadcsv.php @@ -111,6 +111,7 @@ function authorize_process_csv($filename) $transid = $data[$csvfields['Transaction ID']]; $transtype = $data[$csvfields['Transaction Type']]; $transstatus = $data[$csvfields['Transaction Status']]; + $reftransid = $data[$csvfields['Reference Transaction ID']]; $settlementdate = strtotime($data[$csvfields['Settlement Date/Time']]); if ($transstatus == 'Approved Review' || $transstatus == 'Review Failed') { @@ -122,6 +123,23 @@ function authorize_process_csv($filename) continue; } + if (!empty($reftransid) && $transstatus == 'Settled Successfully' && $transtype == 'Credit') { + if ($refund = get_record('enrol_authorize_refunds', 'transid', $reftransid)) { + $order = get_record('enrol_authorize', 'id', $refund->orderid); + if (AN_METHOD_ECHECK == $order->paymentmethod) { + $refund->status = AN_STATUS_CREDIT; + $refund->settletime = $settlementdate; + update_record('enrol_authorize_refunds', $refund); + $updated++; + } + } + else { + $ignored++; + $ignoredlines .= $reftransid . ": Not our business, in refunds\n"; + continue; + } + } + if (! ($transstatus == 'Settled Successfully' && $transtype == 'Authorization w/ Auto Capture')) { $ignored++; $ignoredlines .= $transid . ": Not settled\n";