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