jenkins-bot has submitted this change and it was merged.
Change subject: Filter refunds out of donation history
..
Filter refunds out of donation history
Apply the same filters as for the latest_donation logic.
Bug: T148062
Change-Id: If78471c395110016c0d95a2094cbb7b32d6c032f
---
M silverpop_export/tests/test_update.py
M silverpop_export/update_table.sql
2 files changed, 30 insertions(+), 1 deletion(-)
Approvals:
XenoRyet: Looks good to me, approved
jenkins-bot: Verified
diff --git a/silverpop_export/tests/test_update.py
b/silverpop_export/tests/test_update.py
index 4c71249..122cf0e 100644
--- a/silverpop_export/tests/test_update.py
+++ b/silverpop_export/tests/test_update.py
@@ -1,3 +1,5 @@
+import datetime
+from decimal import Decimal
import mock
import MySQLdb
import os
@@ -61,6 +63,31 @@
cursor.execute("select count(*) from silverpop_export")
assert cursor.fetchone() == (1,)
+def test_refund_history():
+'''
+Test that we don't include refunded donations in a donor's history
+'''
+
+run_update_with_fixtures(fixture_queries=["""
+insert into civicrm_email (contact_id, email, is_primary, on_hold) values
+(1, 'person1@localhost', 1, 0);
+""", """
+insert into civicrm_contact (id) values
+(1);
+""", """
+insert into civicrm_contribution (id, contact_id, receive_date,
total_amount, trxn_id, contribution_status_id) values
+(1, 1, '2015-01-03', 15.25, 'xyz123', 1),
+(2, 1, '2016-05-05', 25.25, 'abc456', 9);
+""", """
+insert into wmf_contribution_extra (entity_id, original_amount,
original_currency) values
+(1, 20.15, 'CAD'),
+(2, 35.15, 'CAD');
+"""])
+
+cursor = conn.db_conn.cursor()
+cursor.execute("select highest_usd_amount, lifetime_usd_total,
donation_count, latest_currency, latest_native_amount, latest_usd_amount,
latest_donation from silverpop_export")
+expected = (Decimal('15.25'), Decimal('15.25'), 1, 'CAD',
Decimal('20.15'), Decimal('15.25'), datetime.datetime(2015, 1, 3))
+assert cursor.fetchone() == expected
def run_update_with_fixtures(fixture_path=None, fixture_queries=None):
with mock.patch("database.db.Connection") as MockConnection:
diff --git a/silverpop_export/update_table.sql
b/silverpop_export/update_table.sql
index eed1b26..a306bdc 100755
--- a/silverpop_export/update_table.sql
+++ b/silverpop_export/update_table.sql
@@ -189,7 +189,9 @@
FROM civicrm.civicrm_email e FORCE INDEX(UI_email)
JOIN silverpop_export_staging ex ON e.email=ex.email
JOIN civicrm.civicrm_contribution ct ON e.contact_id=ct.contact_id
- WHERE ct.total_amount IS NOT NULL
+ WHERE ct.receive_date IS NOT NULL AND
+ct.total_amount > 0 AND -- Refunds don't count
+ct.contribution_status_id = 1 -- Only completed status
GROUP BY e.email;
-- (10 minutes)
--
To view, visit https://gerrit.wikimedia.org/r/316716
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If78471c395110016c0d95a2094cbb7b32d6c032f
Gerrit-PatchSet: 2
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Ejegg
Gerrit-Reviewer: Awight
Gerrit-Reviewer: XenoRyet
Gerrit-Reviewer: jenkins-bot <>
___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits