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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits