Ejegg has submitted this change and it was merged.

Change subject: foreign check import
......................................................................


foreign check import

Reuses most of the AZ Lockbox checks template, but we make better use of
default values and handle foreign currencies.

Change-Id: Ibe27aadc001f2fff34c5e7cae9f20db9d4766a7c
---
A sites/all/modules/offline2civicrm/ForeignChecksFile.php
M sites/all/modules/offline2civicrm/offline2civicrm.info
M sites/all/modules/offline2civicrm/offline2civicrm.module
A sites/all/modules/offline2civicrm/tests/ForeignChecksFileTest.php
A sites/all/modules/offline2civicrm/tests/includes/ForeignChecksFileProbe.php
M sites/all/modules/offline2civicrm/upload_form.js
6 files changed, 108 insertions(+), 0 deletions(-)

Approvals:
  Ejegg: Looks good to me, approved



diff --git a/sites/all/modules/offline2civicrm/ForeignChecksFile.php 
b/sites/all/modules/offline2civicrm/ForeignChecksFile.php
new file mode 100644
index 0000000..87a0548
--- /dev/null
+++ b/sites/all/modules/offline2civicrm/ForeignChecksFile.php
@@ -0,0 +1,33 @@
+<?php
+
+class ForeignChecksFile extends ChecksFile {
+    function getRequiredColumns() {
+        return array(
+            'Check Number',
+            'City',
+            'Country',
+            'Direct Mail Appeal',
+            'Email',
+            'First Name',
+            'Gift Source',
+            'Last Name',
+            'No Thank You',
+            'Original Amount',
+            'Original Currency',
+            'Postal Code',
+            'Received Date',
+            'State',
+            'Street Address',
+            'Thank You Letter Date',
+        );
+    }
+
+    function getRequiredFields() {
+        return array(
+            'check_number',
+            'date',
+            'currency',
+            'gross',
+        );
+    }
+}
diff --git a/sites/all/modules/offline2civicrm/offline2civicrm.info 
b/sites/all/modules/offline2civicrm/offline2civicrm.info
index 39fbef8..ced6e74 100644
--- a/sites/all/modules/offline2civicrm/offline2civicrm.info
+++ b/sites/all/modules/offline2civicrm/offline2civicrm.info
@@ -15,6 +15,7 @@
 files[] = CoinbaseFile.php
 files[] = ContributionConversion.php
 files[] = EmptyRowException.php
+files[] = ForeignChecksFile.php
 files[] = JpMorganFile.php
 files[] = PayPalChecksFile.php
 files[] = tests/includes/BaseChecksFileTest.php
diff --git a/sites/all/modules/offline2civicrm/offline2civicrm.module 
b/sites/all/modules/offline2civicrm/offline2civicrm.module
index 99a6043..b29cb10 100644
--- a/sites/all/modules/offline2civicrm/offline2civicrm.module
+++ b/sites/all/modules/offline2civicrm/offline2civicrm.module
@@ -101,6 +101,7 @@
     '#options' => array(
         'azl' => t( 'AZ Lockbox' ),
         'coinbase' => t( 'Coinbase Merchant Orders' ),
+        'foreign_checks' => t( 'Foreign Checks' ),
         'jpmorgan' => t( 'JP Morgan' ),
         'paypal' => t( 'PayPal EFT' ),
     ),
@@ -142,6 +143,9 @@
       case 'jpmorgan':
         $importer = new JpMorganFile( $file->uri );
         break;
+      case 'foreign_checks':
+        $importer = new ForeignChecksFile( $file->uri );
+        break;
       default:
         throw new Exception( 'Bad file format selection' );
       }
diff --git a/sites/all/modules/offline2civicrm/tests/ForeignChecksFileTest.php 
b/sites/all/modules/offline2civicrm/tests/ForeignChecksFileTest.php
new file mode 100644
index 0000000..c9de307
--- /dev/null
+++ b/sites/all/modules/offline2civicrm/tests/ForeignChecksFileTest.php
@@ -0,0 +1,61 @@
+<?php
+
+require_once __DIR__ . "/includes/BaseChecksFileTest.php";
+class ForeignChecksFileTest extends BaseChecksFileTest {
+    function setUp() {
+        parent::setUp();
+
+        require_once __DIR__ . "/includes/ForeignChecksFileProbe.php";
+    }
+
+    function testParseRow() {
+        $data = array(
+            'Batch Number' => '1234',
+            'Original Amount' => '50.00',
+            'Original Currency' => 'GBP',
+            'Received Date' => '4/1/14',
+            'Payment Instrument' => 'Check',
+            'Check Number' => '2020',
+            'First Name' => 'Gen',
+            'Last Name' => 'Russ',
+            'Street Address' => '1000 Markdown Markov',
+            'Additional Address' => '',
+            'City' => 'Chocolate City',
+            'State' => 'ND',
+            'Postal Code' => '13131',
+            'Country' => 'Nonexistent Rock Candy Country',
+            'Email' => '',
+            'Phone' => '',
+            'Thank You Letter Date' => '',
+            'No Thank You' => '',
+            'Direct Mail Appeal' => '',
+            'AC Flag' => '',
+            'Restrictions' => '',
+            'Gift Source' => '',
+            'Notes' => '',
+        );
+        $expected_normal = array(
+            'check_number' => '2020',
+            'city' => 'Chocolate City',
+            'country' => 'Nonexistent Rock Candy Country',
+            'first_name' => 'Gen',
+            'last_name' => 'Russ',
+            'gross' => '50.00',
+            'currency' => 'GBP',
+            'payment_method' => 'Check',
+            'postal_code' => '13131',
+            'date' => 1396335600,
+            'state_province' => 'ND',
+            'street_address' => '1000 Markdown Markov',
+            'contact_source' => 'check',
+            'contact_type' => 'Individual',
+            'gateway_txn_id' => '3333f8fd5703c6a319c4a9d2b5a2d8c6',
+        );
+
+        $importer = new ForeignChecksFileProbe( "null URI" );
+        $output = $importer->_parseRow( $data );
+
+        $this->stripSourceData( $output );
+        $this->assertEquals( $expected_normal, $output );
+    }
+}
diff --git 
a/sites/all/modules/offline2civicrm/tests/includes/ForeignChecksFileProbe.php 
b/sites/all/modules/offline2civicrm/tests/includes/ForeignChecksFileProbe.php
new file mode 100644
index 0000000..153e96a
--- /dev/null
+++ 
b/sites/all/modules/offline2civicrm/tests/includes/ForeignChecksFileProbe.php
@@ -0,0 +1,7 @@
+<?php
+
+class ForeignChecksFileProbe extends ForeignChecksFile {
+    function _parseRow( $data ) {
+        return $this->parseRow( $data );
+    }
+}
diff --git a/sites/all/modules/offline2civicrm/upload_form.js 
b/sites/all/modules/offline2civicrm/upload_form.js
index 54a2e10..ead0b43 100644
--- a/sites/all/modules/offline2civicrm/upload_form.js
+++ b/sites/all/modules/offline2civicrm/upload_form.js
@@ -19,6 +19,8 @@
                     fileType = "paypal";
                 } else if ( /Organization|Individual/.test( uploadFile ) ) {
                     fileType = "azl";
+                } else if ( /Foreign/.test( uploadFile ) ) {
+                    fileType = "foreign_checks";
                 }
 
                 if ( fileType ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/160244
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ibe27aadc001f2fff34c5e7cae9f20db9d4766a7c
Gerrit-PatchSet: 2
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Awight <awi...@wikimedia.org>
Gerrit-Reviewer: Awight <awi...@wikimedia.org>
Gerrit-Reviewer: Ejegg <eeggles...@wikimedia.org>
Gerrit-Reviewer: Katie Horn <kh...@wikimedia.org>
Gerrit-Reviewer: Ssmith <ssm...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to