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