return $this->_id ?: NULL;
}
+ /**
+ * Get the contribution ID associated with the participant record.
+ *
+ *
+ * @api This function will not change in a minor release and is supported for
+ * use outside of core. This annotation / external support for properties
+ * is only given where there is specific test cover.
+ *
+ * @return int|null
+ * @throws \CRM_Core_Exception
+ */
+ public function getContributionID(): ?int {
+ if (!isset($this->contributionID)) {
+ $this->contributionID = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
+ $this->getParticipantID(), 'contribution_id', 'participant_id'
+ );
+ }
+ return $this->contributionID;
+ }
+
/**
* Get the value for the revenue recognition date field.
*
'modelProps' => [
'participantID' => $this->_id,
'eventID' => $params['event_id'],
+ 'contributionId' => $this->getContributionID(),
],
];
//send email with pdf invoice
$template = CRM_Core_Smarty::singleton();
$taxAmt = $template->get_template_vars('dataArray');
- $contributionId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
- $this->_id, 'contribution_id', 'participant_id'
- );
if (Civi::settings()->get('invoice_is_email_pdf')) {
$sendTemplateParams['isEmailPdf'] = TRUE;
- $sendTemplateParams['contributionId'] = $contributionId;
+ $sendTemplateParams['contributionId'] = $this->getContributionID();
}
[$mailSent, $subject, $message, $html] = CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams);
if ($mailSent) {
private function addExampleData(GenericWorkflowMessage $messageTemplate, $example): void {
$messageTemplate->setContact(\Civi\Test::example('entity/Contact/Barb'));
$messageTemplate->setEventID($example['event_id']);
+ $messageTemplate->setContribution(['total_amount' => 50, 'balance_amount' => 20, 'currency' => 'USD']);
}
/**
*/
class CRM_Event_WorkflowMessage_EventOfflineReceipt extends GenericWorkflowMessage {
use CRM_Event_WorkflowMessage_ParticipantTrait;
+ use CRM_Contribute_WorkflowMessage_ContributionTrait;
+
public const WORKFLOW = 'event_offline_receipt';
}
'event.loc_block_id.phone_id.phone_type_id:label:::Mobile',
'event.loc_block_id.phone_id.phone_ext:::456',
'event.confirm_email_text::Just do it',
+ 'contribution.total_amount:::' . Civi::format()->money(1550.55),
+ 'contribution.total_amount|raw:::1550.55',
+ 'contribution.paid_amount:::' . Civi::format()->money(1550.55),
+ 'contribution.paid_amount|raw:::1550.55',
+ 'contribution.balance_amount:::' . Civi::format()->money(0),
+ 'contribution.balance_amount|raw is zero:::Yes',
+ 'contribution.balance_amount|raw string is zero:::Yes',
+ 'contribution.balance_amount|boolean:::No',
+ 'contribution.paid_amount|boolean:::Yes',
]);
$this->callAPISuccess('Email', 'delete', ['id' => $email['id']]);
'check_number' => 879,
'payment_instrument_id' => $paymentInstrumentID,
]);
- $this->assertPartialPaymentResult($isQuickConfig, $mailUtil);
+ $this->assertPartialPaymentResult($isQuickConfig, $mailUtil, FALSE);
}
/**
* @throws \CRM_Core_Exception
*/
public function testSubmitPendingAddPayment(bool $isQuickConfig): void {
- $mut = new CiviMailUtils($this, TRUE);
+ $mailUtil = new CiviMailUtils($this, TRUE);
$form = $this->getForm(['is_monetary' => 1]);
$this->callAPISuccess('PriceSet', 'create', ['is_quick_config' => $isQuickConfig, 'id' => $this->getPriceSetID('event')]);
$paymentInstrumentID = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', 'Check');
'check_number' => 879,
'payment_instrument_id' => $paymentInstrumentID,
]);
- $this->assertPartialPaymentResult($isQuickConfig, $mut, FALSE);
+ $this->assertPartialPaymentResult($isQuickConfig, $mailUtil, FALSE);
}
/**
'Annual CiviCRM meet',
'Registered Email',
$isQuickConfig ? $this->formatMoneyInput(1550.55) . ' big - 1' : 'Price Field - big',
- $isAmountPaidOnForm ? 'Total Paid: $20.00' : ' ',
- 'Balance: $1,530.55',
+ $isAmountPaidOnForm ? 'Total Paid: $20.00' : 'Total Paid: ',
+ $isAmountPaidOnForm ? 'Balance: $1,530.55' : 'Balance: $1,550.55',
'Financial Type: Event Fee',
'Paid By: Check',
'Check Number: 879',
participant.status_id:name:::{participant.status_id:name}
email:::{$email}
event.pay_later_receipt:::{event.pay_later_receipt}
+contribution.total_amount:::{contribution.total_amount|crmMoney}
+contribution.total_amount|raw:::{contribution.total_amount|raw}
+contribution.balance_amount:::{contribution.balance_amount}
+contribution.balance_amount|raw:::{contribution.balance_amount|raw}
+contribution.paid_amount:::{contribution.paid_amount}
+contribution.paid_amount|raw:::{contribution.paid_amount|raw}
+contribution.balance_amount|raw is zero:::{if {contribution.balance_amount|raw} === 0.00}Yes{/if}
+contribution.balance_amount|raw string is zero:::{if '{contribution.balance_amount|raw}' === '0.00'}Yes{/if}
+contribution.balance_amount|boolean:::{if {contribution.balance_amount|boolean}}Yes{else}No{/if}
+contribution.paid_amount|boolean:::{if {contribution.paid_amount|boolean}}Yes{/if}
</tr>
{/if}
{if !empty($isPrimary)}
- <tr>
- <td {$labelStyle}>
- {if isset($balanceAmount)}
- {ts}Total Paid{/ts}
+ {if {contribution.balance_amount|boolean}}
+ <tr>
+ <td {$labelStyle}>{ts}Total Paid{/ts}</td>
+ <td {$valueStyle}>
+ {if {contribution.paid_amount|boolean}}{contribution.paid_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}
+ </td>
+ </tr>
+ <tr>
+ <td {$labelStyle}>{ts}Balance{/ts}</td>
+ <td {$valueStyle}>{contribution.balance_amount}</td>
+ </tr>
{else}
- {ts}Total Amount{/ts}
- {/if}
- </td>
- <td {$valueStyle}>
- {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}
- </td>
- </tr>
- {if isset($balanceAmount)}
- <tr>
- <td {$labelStyle}>
- {ts}Balance{/ts}
- </td>
- <td {$valueStyle}>
- {$balanceAmount|crmMoney}
- </td>
- </tr>
- {/if}
+ <tr>
+ <td {$labelStyle}>{ts}Total Amount{/ts}</td>
+ <td {$valueStyle}>
+ {if {contribution.total_amount|boolean}}{contribution.total_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}
+ </td>
+ </tr>
+ {/if}
{if !empty($pricesetFieldsCount) }
<tr>
<td {$labelStyle}>
{/if}
{if !empty($isPrimary)}
-{if !empty($balanceAmount)}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}
-
-{if !empty($balanceAmount)}
-{ts}Balance{/ts}: {$balanceAmount|crmMoney}
+{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {if {contribution.paid_amount|boolean}}{contribution.paid_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}
+{ts}Balance{/ts}: {contribution.balance_amount}
+{else}{ts}Total Amount{/ts}: {if {contribution.total_amount|boolean}}{contribution.total_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}
{/if}
{if !empty($pricesetFieldsCount) }