]> git.mjollnir.org Git - moodle.git/commitdiff
It is time to refund for echeck (business checking).
authorethem <ethem>
Mon, 20 Nov 2006 09:49:26 +0000 (09:49 +0000)
committerethem <ethem>
Mon, 20 Nov 2006 09:49:26 +0000 (09:49 +0000)
enrol/authorize/locallib.php
enrol/authorize/uploadcsv.php

index 7aca820bb8e49f1d82720ee57c60df4a20587d52..90c294070be731c0888ae1f16e1302e255a57f0d 100644 (file)
@@ -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("<b><font color=red>$strs->error:</font></b>", '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';
         }
index 76b1bf00eef45e4a9a8c81d631629520d7a1e473..b2e2c18ad7de94c5c9a8bd1699f0c85db4d5f481 100644 (file)
@@ -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";