Page MenuHomePhabricator

Recurring Gift Coding
Closed, ResolvedPublic

Description

I've just noticed for the first time that recurring gifts do not carry over Restriction, Gift Source, or Direct Mail Appeal.

Can we make this happen?

Event Timeline

AKanji-WMF subscribed.

@NNichols will look at this in our sprint starting this week.

Change 959075 had a related patch set uploaded (by Eileen; author: Eileen):

[wikimedia/fundraising/crm@master] Update Smashpig processor to set Gift Data fields on repeat contribution

https://gerrit.wikimedia.org/r/959075

Change 959075 abandoned by Eileen:

[wikimedia/fundraising/crm@master] Update Smashpig processor to set Gift Data fields on repeat contribution

Reason:

https://gerrit.wikimedia.org/r/959075

Change 959381 had a related patch set uploaded (by Eileen; author: Eileen):

[wikimedia/fundraising/crm@master] Update Smashpig processor to set Gift Data fields on repeat contribution

https://gerrit.wikimedia.org/r/959381

Change 959381 merged by jenkins-bot:

[wikimedia/fundraising/crm@master] Update Smashpig processor to set Gift Data fields on repeat contribution

https://gerrit.wikimedia.org/r/959381

I ran some queries & I think we are good - both of these came back empty - which I think indicates that the custom data is being carried forward

SELECT DISTINCT Gift_Data.campaign, Gift_Data.appeal, Gift_Data.donor_specified_340, COUNT(*)
FROM civicrm_contribution a
     LEFT JOIN civicrm_contribution c2
               ON c2.contribution_recur_id = a.contribution_recur_id 
                    AND c2.receive_date < a.receive_date
     LEFT JOIN `civicrm_value_1_gift_data_7` Gift_Data ON a.id = Gift_Data.entity_id
     LEFT JOIN `civicrm_value_1_gift_data_7` g2 ON c2.id = Gift_Data.entity_id
WHERE `a`.`receive_date` > "20230701000000"
  AND `a`.`contribution_recur_id` > 0
  AND `a`.`is_test` = 0
  AND c2.id IS NOT NULL
  AND 
      (
        (g2.campaign IS NOT NULL AND g2.campaign <> Gift_Data.campaign)
     OR (g2.appeal IS NOT NULL AND g2.appeal <> Gift_Data.appeal)
          OR (g2.donor_specified_340 IS NOT NULL AND g2.donor_specified_340 <> Gift_Data.donor_specified_340)   
      ) 
        
GROUP BY Gift_Data.campaign, Gift_Data.appeal, Gift_Data.donor_specified_340;


SELECT DISTINCT Gift_Data.campaign, Gift_Data.appeal, Gift_Data.donor_specified_340, COUNT(*)
FROM civicrm_contribution a
     LEFT JOIN civicrm_contribution c2
               ON c2.contribution_recur_id = a.contribution_recur_id
                    AND c2.receive_date < a.receive_date
     LEFT JOIN `civicrm_value_1_gift_data_7` Gift_Data ON a.id = Gift_Data.entity_id
     LEFT JOIN `civicrm_value_1_gift_data_7` g2 ON c2.id = Gift_Data.entity_id
WHERE `a`.`receive_date` > "20230701000000"
  AND `a`.`contribution_recur_id` > 0
  AND `a`.`is_test` = 0
  AND c2.id IS NOT NULL
  AND
      (
     (g2.campaign IS NOT NULL AND Gift_Data.campaign IS NULL)
     OR (g2.appeal IS NOT NULL AND g2.appeal AND Gift_Data.appeal IS NULL)
     OR (g2.donor_specified_340 IS NOT NULL AND Gift_Data.donor_specified_340 IS NULL)
      )

GROUP BY Gift_Data.campaign, Gift_Data.appeal, Gift_Data.donor_specified_340;