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?
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?
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
Change 959075 abandoned by Eileen:
[wikimedia/fundraising/crm@master] Update Smashpig processor to set Gift Data fields on repeat contribution
Reason:
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
Change 959381 merged by jenkins-bot:
[wikimedia/fundraising/crm@master] Update Smashpig processor to set Gift Data fields on repeat contribution
Deployed!
I ran one regular recurring:
https://civicrm.wikimedia.org/civicrm/contact/view/contribution?reset=1&id=94323074&cid=23320682&action=view&context=contribution&selectedChild=contribute
And one first donation in a series for Monthly Convert donors:
https://civicrm.wikimedia.org/civicrm/contact/view/contribution?reset=1&id=94322744&cid=60206848&action=view&context=contribution&selectedChild=contribute
Does that look right? I guess the data is just going to be as good as the previous donation in the series.
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;