Skip to content

Commit

Permalink
Update thank-you letter code path
Browse files Browse the repository at this point in the history
  • Loading branch information
MegaphoneJon committed Jun 27, 2019
1 parent 875e076 commit b8a50c9
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 16 deletions.
30 changes: 24 additions & 6 deletions CRM/Contribute/BAO/Contribution.php
Original file line number Diff line number Diff line change
Expand Up @@ -5905,18 +5905,36 @@ public static function replaceContributionTokens(
}
$contributionDetails = [];
foreach ($contributionIds as $id) {
$result = civicrm_api3('Contribution', 'get', ['id' => $id]);
// lab.c.o mail#46 - show labels, not values, for custom fields with option values.
$result = self::getContributionTokenValues($id, $messageToken);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['subject'] = CRM_Utils_Token::replaceContributionTokens($subject, $result, FALSE, $subjectToken, FALSE, $escapeSmarty);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['text'] = CRM_Utils_Token::replaceContributionTokens($text, $result, FALSE, $messageToken, FALSE, $escapeSmarty);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['html'] = CRM_Utils_Token::replaceContributionTokens($html, $result, FALSE, $messageToken, FALSE, $escapeSmarty);
}
return $contributionDetails;
}

/**
* Get the contribution fields for $id and display labels where
* appropriate (if the token is present).
*
* @param int $id
* @param type $tokenArray array
* @return array
*/
public static function getContributionTokenValues($id, $messageToken) {
if (empty($id)) {
return [];
}
$result = civicrm_api3('Contribution', 'get', ['id' => $id]);
// lab.c.o mail#46 - show labels, not values, for custom fields with option values.
if (!empty($messageToken)) {
foreach ($result['values'][$id] as $fieldName => $fieldValue) {
if (strpos($fieldName, 'custom_') === 0 && array_search($fieldName, $messageToken['contribution']) !== FALSE) {
$result['values'][$id][$fieldName] = CRM_Core_BAO_CustomField::displayValue($result['values'][$id][$fieldName], $fieldName);
}
}
$contributionDetails[$result['values'][$result['id']]['contact_id']]['subject'] = CRM_Utils_Token::replaceContributionTokens($subject, $result, FALSE, $subjectToken, FALSE, $escapeSmarty);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['text'] = CRM_Utils_Token::replaceContributionTokens($text, $result, FALSE, $messageToken, FALSE, $escapeSmarty);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['html'] = CRM_Utils_Token::replaceContributionTokens($html, $result, FALSE, $messageToken, FALSE, $escapeSmarty);
}
return $contributionDetails;
return $result;
}

/**
Expand Down
11 changes: 1 addition & 10 deletions CRM/Contribute/Form/Task/PDFLetterCommon.php
Original file line number Diff line number Diff line change
Expand Up @@ -257,16 +257,7 @@ private static function resolveTokens($html_message, $contact, $contribution, $m
public static function buildContributionArray($groupBy, $contributionIDs, $returnProperties, $skipOnHold, $skipDeceased, $messageToken, $task, $separator, $isIncludeSoftCredits) {
$contributions = $contacts = [];
foreach ($contributionIDs as $item => $contributionId) {
// Basic return attributes available to the template.
$returnValues = ['contact_id', 'total_amount', 'financial_type', 'receive_date', 'contribution_campaign_title'];
if (!empty($messageToken['contribution'])) {
$returnValues = array_merge($messageToken['contribution'], $returnValues);
}
// retrieve contribution tokens listed in $returnProperties using Contribution.Get API
$contribution = civicrm_api3('Contribution', 'getsingle', [
'id' => $contributionId,
'return' => $returnValues,
]);
$contribution = CRM_Contribute_BAO_Contribution::getContributionTokenValues($contributionId, $messageToken)['values'][$contributionId];
$contribution['campaign'] = CRM_Utils_Array::value('contribution_campaign_title', $contribution);
$contributions[$contributionId] = $contribution;

Expand Down

0 comments on commit b8a50c9

Please sign in to comment.