Ejegg has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/367806 )

Change subject: Add country to c_t rows created during imports
......................................................................

Add country to c_t rows created during imports

And clean up a bit of ugly code.

Bug: T171658
Change-Id: If685b1e82a5f5a3f01367e908bb2834a73f27133
---
M sites/all/modules/queue2civicrm/recurring/recurring.module
M sites/all/modules/wmf_civicrm/tracking.inc
M sites/all/modules/wmf_civicrm/wmf_civicrm.module
3 files changed, 29 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/06/367806/1

diff --git a/sites/all/modules/queue2civicrm/recurring/recurring.module 
b/sites/all/modules/queue2civicrm/recurring/recurring.module
index 19f062c..47e597d 100644
--- a/sites/all/modules/queue2civicrm/recurring/recurring.module
+++ b/sites/all/modules/queue2civicrm/recurring/recurring.module
@@ -172,12 +172,18 @@
       sort( $contrib_ids, SORT_NUMERIC );
       $contrib_id = array_shift( $contrib_ids ); // this should return null if 
$contrib_ids is empty
       $date = wmf_common_date_unix_to_sql( strtotime( $msg[ 'payment_date' ] 
));
-      $contribution_tracking_id = wmf_civicrm_insert_contribution_tracking( 
'..rpp', 'civicrm', null, $date, $contrib_id );
+      $tracking = array(
+        'utm_source' => '..rpp',
+        'utm_medium' => 'civicrm',
+        'ts' => $date,
+        'contribution_id' => $contrib_id
+      );
+      $contribution_tracking_id = wmf_civicrm_insert_contribution_tracking( 
$tracking );
       watchdog( 'recurring', 'recurring_get_contribution_tracking_id: Inserted 
contrib tracking id, %cti', array( '%cti' => $contribution_tracking_id ), 
WATCHDOG_DEBUG );
       return $contribution_tracking_id;
     }
   } else {
-       watchdog( 'recurring', 'recurring_get_contribution_tracking_id: No 
contribution_tracking_id returned.', array(), WATCHDOG_DEBUG );
+    watchdog( 'recurring', 'recurring_get_contribution_tracking_id: No 
contribution_tracking_id returned.', array(), WATCHDOG_DEBUG );
     return null;
   }
 }
diff --git a/sites/all/modules/wmf_civicrm/tracking.inc 
b/sites/all/modules/wmf_civicrm/tracking.inc
index 6d7739c..216b6c8 100644
--- a/sites/all/modules/wmf_civicrm/tracking.inc
+++ b/sites/all/modules/wmf_civicrm/tracking.inc
@@ -2,29 +2,19 @@
 
 /**
  * Insert a record into contribution_tracking table
- * 
+ *
  * Primarily used when a record does not already exist in the table for a
  * particular transaction.  Rare, but inserting some data for a trxn when
  * absent helps facilitate better analytics.
- * 
+ *
+ * @param array $values associative array of columns => values to insert
+ *  into the contribution tracking table
  * @return int the contribution_tracking id
  */
-function wmf_civicrm_insert_contribution_tracking( $utm_source, $utm_medium, 
$utm_campaign, $ts, $contrib_id=null, $optout=null, $anonymous=null ) {
+function wmf_civicrm_insert_contribution_tracking( $values ) {
     // make sure we're using the default (drupal) db
     $dbs = wmf_civicrm_get_dbs();
     $dbs->push( 'donations' );
-
-    $values = array(
-        'utm_source' => $utm_source,
-        'utm_medium' => $utm_medium,
-        'utm_campaign' => $utm_campaign,
-        'optout' => $optout,
-        'anonymous' => $anonymous,
-        'ts' => $ts,
-    );
-    if ($contrib_id !== null){
-        $values['contribution_id'] = $contrib_id;
-    }
 
     $contribution_tracking_id = db_insert( 'contribution_tracking' )->fields( 
$values )->execute();
     watchdog( 'wmf_civicrm', "Created new contribution_tracking entry %id", 
array( '%id' => $contribution_tracking_id ), WATCHDOG_INFO );
diff --git a/sites/all/modules/wmf_civicrm/wmf_civicrm.module 
b/sites/all/modules/wmf_civicrm/wmf_civicrm.module
index a692882..6861169 100644
--- a/sites/all/modules/wmf_civicrm/wmf_civicrm.module
+++ b/sites/all/modules/wmf_civicrm/wmf_civicrm.module
@@ -1788,11 +1788,11 @@
     // code change respects previous recognition of 'payment_method' as being 
a little bit magic,
     // but also assumes that if you are setting utm_medium or utm_source in 
your import you intend them to be recorded.
     if ( !isset( $msg[ 'contribution_tracking_id' ] ) ) {
-        if (
-          (!empty($msg['utm_medium']) || !empty($msg['utm_source']))
-          || (array_key_exists('payment_method', $msg) && 
strtoupper($msg['payment_method']) != "CHECK")
-        ) {
+        $hasUtmData = !empty( $msg['utm_medium'] ) || !empty( 
$msg['utm_source'] );
+        $isCheck = array_key_exists( 'payment_method', $msg )
+                       && strtoupper( $msg['payment_method'] ) == "CHECK";
 
+        if ( $hasUtmData || !$isCheck ) {
             watchdog( 'wmf_civicrm', 'Contribution missing 
contribution_tracking_id', array(), WATCHDOG_DEBUG );
             //@fixme: For the regular transactions, this has been moved to the 
staging function. This needs to happen in recurring also, and then it can be 
removed here.
             $anonymous = ( array_key_exists( 'anonymous', $msg) && 
$msg['anonymous'] == true && strtoupper( $msg['anonymous'] ) != "FALSE" ) ? 1 : 
0;
@@ -1802,7 +1802,18 @@
             $medium = isset($msg['utm_medium']) ? $msg['utm_medium'] : 
'civicrm';
             $campaign = isset($msg['utm_campaign']) ? $msg['utm_campaign'] : 
null;
             // FIXME: make the next line readable, safe, sane, useful.  See 
"ACK!"
-            $contribution_tracking_id = 
wmf_civicrm_insert_contribution_tracking( $source, $medium, $campaign, 
wmf_common_date_unix_to_sql( $msg['date'] ), null, $optout, $anonymous ); 
//ACK! this should not be handled this way! should be dynamic!
+            $tracking = array(
+                'utm_source' => $source,
+                'utm_medium' => $medium,
+                'utm_campaign' => $campaign,
+                'optout' => $optout,
+                'anonymous' => $anonymous,
+                'ts' => wmf_common_date_unix_to_sql( $msg['date'] )
+            );
+            if ( !empty( $msg['country'] ) ) {
+                $tracking['country'] = $msg['country'];
+            }
+            $contribution_tracking_id = 
wmf_civicrm_insert_contribution_tracking( $tracking );
             watchdog( 'wmf_civicrm', 'Newly inserted contribution tracking id: 
@id', array( '@id' => $contribution_tracking_id ), WATCHDOG_DEBUG );
             $msg['contribution_tracking_id'] = $contribution_tracking_id;
         }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If685b1e82a5f5a3f01367e908bb2834a73f27133
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Ejegg <ej...@ejegg.com>

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

Reply via email to