From 7cdb890a2262762ffdb09860fb9875cdb54495db Mon Sep 17 00:00:00 2001 From: Pratik Joshi Date: Mon, 27 Jan 2014 13:59:58 +0530 Subject: [PATCH] CRM-13965 : email template handling for refund payment and partial payment --- CRM/Contribute/Form/AdditionalPayment.php | 106 +++++++- .../civicrm_msg_template.tpl | 42 +++ .../payment_or_refund_notification_html.tpl | 250 ++++++++++++++++++ ...payment_or_refund_notification_subject.tpl | 1 + .../payment_or_refund_notification_text.tpl | 119 +++++++++ .../Incremental/sql/4.5.alpha1.mysql.tpl | 1 + .../CRM/Contribute/Form/AdditionalPayment.tpl | 26 +- xml/templates/civicrm_msg_template.tpl | 3 +- .../payment_or_refund_notification_html.tpl | 250 ++++++++++++++++++ ...payment_or_refund_notification_subject.tpl | 1 + .../payment_or_refund_notification_text.tpl | 119 +++++++++ 11 files changed, 894 insertions(+), 24 deletions(-) create mode 100644 CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl create mode 100644 CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl create mode 100644 CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl create mode 100644 CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl create mode 100644 xml/templates/message_templates/payment_or_refund_notification_html.tpl create mode 100644 xml/templates/message_templates/payment_or_refund_notification_subject.tpl create mode 100644 xml/templates/message_templates/payment_or_refund_notification_text.tpl diff --git a/CRM/Contribute/Form/AdditionalPayment.php b/CRM/Contribute/Form/AdditionalPayment.php index 27666925f1..f9112f2956 100644 --- a/CRM/Contribute/Form/AdditionalPayment.php +++ b/CRM/Contribute/Form/AdditionalPayment.php @@ -72,6 +72,8 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract protected $fromEmailId = NULL; + protected $_fromEmails = NULL; + public function preProcess() { $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, TRUE); $this->_contactId = CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE); @@ -86,6 +88,10 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract } $paymentInfo = CRM_Core_BAO_FinancialTrxn::getPartialPaymentWithType($this->_id, $enitityType); + $paymentDetails = CRM_Contribute_BAO_Contribution::getPaymentInfo($this->_id, $this->_component); + + $this->_amtPaid = $paymentDetails['paid']; + $this->_amtTotal = $paymentDetails['total']; if (!empty($paymentInfo['refund_due'])) { $paymentAmt = $this->_refund = $paymentInfo['refund_due']; @@ -108,11 +114,12 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract list($this->_contributorDisplayName, $this->_contributorEmail) = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactId); - $this->assignProcessors(); - - // also check for billing information - // get the billing location type - $this->assignBillingType(); + if (!$this->_refund) { + $this->assignProcessors(); + // also check for billing information + // get the billing location type + $this->assignBillingType(); + } $this->assign('contributionMode', $this->_mode); $this->assign('contactId', $this->_contactId); @@ -243,6 +250,8 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract $this->add('select', 'from_email_address', ts('Receipt From'), $this->_fromEmails); + $this->add('textarea', 'receipt_text', ts('Confirmation Message')); + // add various dates $this->addDateTime('trxn_date', ts('Received'), FALSE, array('formatType' => 'activityDateTime')); @@ -318,8 +327,9 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract $participantId = $this->_id; } $submittedValues = $this->controller->exportValues($this->_name); - $submittedValues['trxn_date'] = CRM_Utils_Date::processDate($submittedValues['trxn_date'], $submittedValues['trxn_date_time']); + $submittedValues['confirm_email_text'] = CRM_Utils_Array::value('receipt_text', $submittedValues); + $submittedValues['trxn_date'] = CRM_Utils_Date::processDate($submittedValues['trxn_date'], $submittedValues['trxn_date_time']); if ($this->_mode) { // process credit card $this->processCreditCard($submittedValues); @@ -334,7 +344,7 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract // to get 'from email id' for send receipt $this->fromEmailId = $submittedValues['from_email_address']; - $sendReceipt = self::emailReceipt($this, $submittedValues); + $sendReceipt = $this->emailReceipt($submittedValues); } $statusMsg = ts('The payment record has been processed.'); @@ -510,8 +520,6 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract $this->_params['receive_date'] = $now; $this->set('params', $this->_params); - $this->assign('trxn_id', $result['trxn_id']); - $this->assign('receive_date', $this->_params['receive_date']); // set source if not set if (empty($this->_params['source'])) { @@ -526,7 +534,7 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract $trxnRecord = CRM_Contribute_BAO_Contribution::recordAdditionPayment($this->_contributionId, $submittedValues, $this->_paymentType, $participantId); if ($trxnRecord->id && !empty($this->_params['is_email_receipt'])) { - $sendReceipt = self::emailReceipt($this, $this->_params); + $sendReceipt = $this->emailReceipt($this->_params); } if ($trxnRecord->id) { @@ -541,7 +549,81 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract } } - static function emailReceipt(&$form, &$params) { + function emailReceipt(&$params) { // email receipt sending + // send message template + if ($this->_component == 'event') { + $eventId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $this->_id, 'event_id', 'id'); + + $returnProperties = array('fee_label', 'start_date', 'end_date', 'is_show_location', 'title'); + CRM_Core_DAO::commonRetrieveAll('CRM_Event_DAO_Event', 'id', $eventId, $events, $returnProperties); + $event = $events[$eventId]; + unset($event['start_date']); + unset($event['end_date']); + + //$this-assign('component', $this->_component); + $this->assign('isShowLocation', $event['is_show_location']); + if (CRM_Utils_Array::value('is_show_location', $event) == 1) { + $locationParams = array( + 'entity_id' => $eventId, + 'entity_table' => 'civicrm_event', + ); + $location = CRM_Core_BAO_Location::getValues($locationParams, TRUE); + $this->assign('location', $location); + } + } + + // assign payment info here + $paymentConfig['confirm_email_text'] = CRM_Utils_Array::value('confirm_email_text', $params); + $this->assign('paymentConfig', $paymentConfig); + $isRefund = ($this->_paymentType == 'refund') ? TRUE : FALSE; + $this->assign('isRefund', $isRefund); + if ($isRefund) { + $this->assign('totalPaid', $this->_amtPaid); + $this->assign('totalAmount', $this->_amtTotal); + $this->assign('refundAmount', $params['total_amount']); + } + else { + $balance = $this->_amtTotal - ($this->_amtPaid + $params['total_amount']); + $this->assign('amountOwed', $balance); + $this->assign('totalAmount', $this->_amtTotal); + $this->assign('paymentAmount', $params['total_amount']); + } + $this->assign('contactDisplayName', $this->_contributorDisplayName); + + // assign trxn details + $this->assign('trxn_id', CRM_Utils_Array::value('trxn_id', $params)); + $this->assign('receive_date', CRM_Utils_Array::value('receive_date', $params)); + $paymentInstrument = CRM_Contribute_PseudoConstant::paymentInstrument(); + if (array_key_exists('payment_instrument_id', $params)) { + $this->assign('paidBy', + CRM_Utils_Array::value($params['payment_instrument_id'], + $paymentInstrument + ) + ); + } + $this->assign('checkNumber', CRM_Utils_Array::value('check_number', $params)); + + $sendTemplateParams = array( + 'groupName' => 'msg_tpl_workflow_contribution', + 'valueName' => 'payment_or_refund_notification', + 'contactId' => $this->_contactId, + 'PDFFilename' => ts('notification').'.pdf', + ); + + // try to send emails only if email id is present + // and the do-not-email option is not checked for that contact + if ($this->_contributorEmail && !$this->_toDoNotEmail) { + if (array_key_exists($params['from_email_address'], $this->_fromEmails['from_email_id'])) { + $receiptFrom = $params['from_email_address']; + } + + $sendTemplateParams['from'] = $receiptFrom; + $sendTemplateParams['toName'] = $this->_contributorDisplayName; + $sendTemplateParams['toEmail'] = $this->_contributorEmail; + $sendTemplateParams['cc'] = CRM_Utils_Array::value('cc', $this->_fromEmails); + $sendTemplateParams['bcc'] = CRM_Utils_Array::value('bcc', $this->_fromEmails); + } + list($mailSent, $subject, $message, $html) = CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams); } -} +} \ No newline at end of file diff --git a/CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl b/CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl new file mode 100644 index 0000000000..6003bf8290 --- /dev/null +++ b/CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl @@ -0,0 +1,42 @@ +{php} + $dir = SMARTY_DIR . '/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates'; + + $ovNames = array( + 'contribution' => array( + 'payment_or_refund_notification' => ts('Additional Payment Receipt or Refund Notification', array('escape' => 'sql')), + ), + ); + + $this->assign('ovNames', $ovNames); + $this->assign('dir', $dir); +{/php} + +{foreach from=$ovNames key=name item=ignore} + SELECT @tpl_ogid_{$name} := MAX(id) FROM civicrm_option_group WHERE name = 'msg_tpl_workflow_{$name}'; +{/foreach} + +INSERT INTO civicrm_option_value + (option_group_id, name, {localize field='label'}label{/localize}, value, weight) VALUES +{foreach from=$ovNames key=gName item=ovs name=for_groups} +{foreach from=$ovs key=vName item=label name=for_values} + (@tpl_ogid_{$gName}, '{$vName}', {localize}'{$label}'{/localize}, {$smarty.foreach.for_values.iteration}, {$smarty.foreach.for_values.iteration}) {if $smarty.foreach.for_groups.last and $smarty.foreach.for_values.last};{else},{/if} +{/foreach} +{/foreach} + +{foreach from=$ovNames key=gName item=ovs} +{foreach from=$ovs key=vName item=label} + SELECT @tpl_ovid_{$vName} := MAX(id) FROM civicrm_option_value WHERE option_group_id = @tpl_ogid_{$gName} AND name = '{$vName}'; +{/foreach} +{/foreach} + +INSERT INTO civicrm_msg_template + (msg_title, msg_subject, msg_text, msg_html, workflow_id, is_default, is_reserved) VALUES +{foreach from=$ovNames key=gName item=ovs name=for_groups} +{foreach from=$ovs key=vName item=title name=for_values} + {fetch assign=subject file="`$smarty.const.SMARTY_DIR`/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates/`$vName`_subject.tpl"} + {fetch assign=text file="`$smarty.const.SMARTY_DIR`/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates/`$vName`_text.tpl"} + {fetch assign=html file="`$smarty.const.SMARTY_DIR`/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates/`$vName`_html.tpl"} + ('{$title}', '{$subject|escape:"quotes"}', '{$text|escape:"quotes"}', '{$html|escape:"quotes"}', @tpl_ovid_{$vName}, 1, 0), + ('{$title}', '{$subject|escape:"quotes"}', '{$text|escape:"quotes"}', '{$html|escape:"quotes"}', @tpl_ovid_{$vName}, 0, 1) {if $smarty.foreach.for_groups.last and $smarty.foreach.for_values.last};{else},{/if} +{/foreach} +{/foreach} diff --git a/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl b/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl new file mode 100644 index 0000000000..a1def6b86b --- /dev/null +++ b/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl @@ -0,0 +1,250 @@ + + + + + + + + +{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture} +{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture} +{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture} + +

Dear {$contactDisplayName}

+
+ + + + + + + + + + + + + {if $isRefund} + + + + + + + + + + + {else} + + + + + + + + + + {* This will be zero after final payment. *} + {if $paymentsComplete} + + {/if} + + {/if} + {if $receive_date} + + + + + {/if} + {if $trxn_id} + + + + + {/if} + {if $paidBy} + + + + + {/if} + {if $checkNumber} + + + + + {/if} + + + + +
+ {if $paymentConfig.confirm_email_text} +

{$paymentConfig.confirm_email_text|htmlize}

+ {elseif $isRefund} +

{ts}A refund has been issued based on changes in your registration selections.{/ts}

+ {else} +

{ts}A payment has been received.{/ts}

+ {/if} +

{ts}Please print this confirmation for your records.{/ts}

+
{ts}Refund Details{/ts}
+ {ts}Total Fees{/ts} + + {$totalAmount|crmMoney} + + {ts}You Paid{/ts} + + {$totalPaid|crmMoney} + + {ts}Refund Amount{/ts} + + {$refundAmount|crmMoney} + +
{ts}Payment Details{/ts}
+ {ts}{if $component eq 'event'}Total Fees{/if}{/ts} + + {$totalAmount|crmMoney} + + {ts}This Payment Amount{/ts} + + {$paymentAmount|crmMoney} + + {ts}Balance Owed{/ts} + + {$amountOwed|crmMoney} + + {ts}Thank-you. This completes your payment for {if $component eq 'event'}{$event.event_title}{/if}.{/ts} +
+ {ts}Transaction Date{/ts} + + {$receive_date|crmDate} +
+ {ts}Transaction #{/ts} + + {$trxn_id} +
+ {ts}Paid By{/ts} + + {$paidBy} +
+ {ts}Check Number{/ts} + + {$checkNumber} +
+ + {if $contributeMode ne 'notify' and !$isAmountzero} + + + + + + + {/if} + {if $contributeMode eq'direct' and !$isAmountzero} + + + + + + + {/if} + {if $component eq 'event'} + + + + + + + + {if $event.participant_role neq 'Attendee' and $defaultRole} + + + + + {/if} + + {if $isShowLocation} + + + + {/if} + + {if $location.phone.1.phone || $location.email.1.email} + + + + {foreach from=$location.phone item=phone} + {if $phone.phone} + + + + + {/if} + {/foreach} + {foreach from=$location.email item=eventEmail} + {if $eventEmail.email} + + + + + {/if} + {/foreach} + {/if} {*phone block close*} + {/if} +
+ {ts}Billing Name and Address{/ts} +
+ {$billingName}
+ {$address|nl2br} +
+ {ts}Credit Card Information{/ts} +
+ {$credit_card_type}
+ {$credit_card_number}
+ {ts 1=$credit_card_exp_date|truncate:7:''|crmDate}Expires: %1{/ts} +
+ {ts}Event Information and Location{/ts} +
+ {$event.event_title}
+ {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} +
+ {ts}Participant Role{/ts} + + {$event.participant_role} +
+ {if $location.address.1.name} + {$location.address.1.name}
+ {/if} + {if $location.address.1.street_address} + {$location.address.1.street_address}
+ {/if} + {if $location.address.1.supplemental_address_1} + {$location.address.1.supplemental_address_1}
+ {/if} + {if $location.address.1.supplemental_address_2} + {$location.address.1.supplemental_address_2}
+ {/if} + {if $location.address.1.city} + {$location.address.1.city} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if}
+ {/if} +
+ {ts}Event Contacts:{/ts} +
+ {if $phone.phone_type} + {$phone.phone_type_display} + {else} + {ts}Phone{/ts} + {/if} + + {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if} +
+ {ts}Email{/ts} + + {$eventEmail.email} +
+
+
+ + + diff --git a/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl b/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl new file mode 100644 index 0000000000..ef17a4ce55 --- /dev/null +++ b/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl @@ -0,0 +1 @@ +{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if} - {if $component eq 'event'}{$event.title}{/if} \ No newline at end of file diff --git a/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl b/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl new file mode 100644 index 0000000000..5b9a7b1704 --- /dev/null +++ b/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl @@ -0,0 +1,119 @@ +Dear {$contactDisplayName} +{if $paymentConfig.confirm_email_text} +{$paymentConfig.confirm_email_text} +{else} +{if $isRefund} +{ts}A refund has been issued based on changes in your registration selections.{/ts} +{else} +{ts}A payment has been received.{/ts} +{/if} +{/if} + +{ts}Please print this confirmation for your records.{/ts} + +{if $isRefund} +=============================================================================== + +{ts}Refund Details{/ts} + +=============================================================================== +{ts}Total Fees{/ts}: {$totalAmount|crmMoney} +{ts}You Paid{/ts}: {$totalPaid|crmMoney} +------------------------------------------------------------------------------------ +{ts}Refund Amount{/ts}: {$refundAmount|crmMoney} + +{else} +=============================================================================== + +{ts}Payment Details{/ts} + +=============================================================================== +{ts}Total Fees{/ts}: {$totalAmount|crmMoney} +{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney} +------------------------------------------------------------------------------------ +{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *} +{if $paymentsComplete} + +{ts}Thank-you. This completes your payment for {/ts}{if $component eq 'event'}{$event.event_title}{/if}. +{/if} + +{if $receive_date} +{ts}Transaction Date{/ts}: {$receive_date|crmDate} +{/if} +{if $trxn_id} +{ts}Transaction #{/ts}: {$trxn_id} +{/if} +{if $paidBy} +{ts}Paid By{/ts}: {$paidBy} +{/if} +{if $checkNumber} +{ts}Check Number{/ts}: {$checkNumber} +{/if} +{if $contributeMode ne 'notify' and !$isAmountzero} + +=============================================================================== + +{ts}Billing Name and Address{/ts} + +=============================================================================== + +{$billingName} +{$address} +{/if} + +{if $contributeMode eq 'direct' and !$isAmountzero} +=========================================================== +{ts}Credit Card Information{/ts} + +=============================================================================== + +{$credit_card_type} +{$credit_card_number} +{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate} +{/if} +{/if} +{/if} +{if $component eq 'event'} +=============================================================================== + +{ts}Event Information and Location{/ts} + +=============================================================================== + +{$event.event_title} +{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} + +{if $event.participant_role neq 'Attendee' and $defaultRole} +{ts}Participant Role{/ts}: {$event.participant_role} +{/if} + +{if $isShowLocation} +{if $location.address.1.name} + +{$location.address.1.name} +{/if} +{if $location.address.1.street_address}{$location.address.1.street_address} +{/if} +{if $location.address.1.supplemental_address_1}{$location.address.1.supplemental_address_1} +{/if} +{if $location.address.1.supplemental_address_2}{$location.address.1.supplemental_address_2} +{/if} +{if $location.address.1.city}{$location.address.1.city} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if} +{/if} + +{/if}{*End of isShowLocation condition*} + +{if $location.phone.1.phone || $location.email.1.email} + +{ts}Event Contacts:{/ts} +{foreach from=$location.phone item=phone} +{if $phone.phone} + +{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if} +{/foreach} +{foreach from=$location.email item=eventEmail} +{if $eventEmail.email} + +{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach} +{/if} +{/if} \ No newline at end of file diff --git a/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl b/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl index ab49122df8..324852a647 100644 --- a/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl +++ b/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl @@ -1,4 +1,5 @@ {* file to handle db changes in 4.5.alpha1 during upgrade *} +{include file='../CRM/Upgrade/4.4.alpha1.msg_template/civicrm_msg_template.tpl'} ALTER TABLE `civicrm_contact` ADD COLUMN `formal_title` varchar(64) COMMENT 'Formal (academic or similar) title in front of name. (Prof., Dr. etc.)' AFTER `suffix_id`; diff --git a/templates/CRM/Contribute/Form/AdditionalPayment.tpl b/templates/CRM/Contribute/Form/AdditionalPayment.tpl index 83d4922f3d..39944841a2 100644 --- a/templates/CRM/Contribute/Form/AdditionalPayment.tpl +++ b/templates/CRM/Contribute/Form/AdditionalPayment.tpl @@ -111,20 +111,22 @@ {ts 1=$email}Automatically email a receipt for this payment to %1?{/ts} - {elseif $context eq 'standalone' and $outBound_option != 2 } - - {$form.is_email_receipt.label} - {$form.is_email_receipt.html} {ts}Automatically email a receipt for this payment to {/ts}? - - {/if} {$form.from_email_address.label} {$form.from_email_address.html} - {$form.fee_amount.label}{$form.fee_amount.html|crmMoney:$currency:'XXX':'YYY'}
+ + {$form.receipt_text.label} + + {ts}Enter a message you want included at the beginning of the confirmation email. EXAMPLE: 'Thanks for registering for this event.'{/ts} +
+ {$form.receipt_text.html|crmAddClass:huge} + + + {$form.fee_amount.label}{$form.fee_amount.html|crmMoney:$currency:'XXX':'YYY'}
{ts}Processing fee for this transaction (if applicable).{/ts} - {$form.net_amount.label}{$form.net_amount.html|crmMoney:$currency:'':1}
+ {$form.net_amount.label}{$form.net_amount.html|crmMoney:$currency:'':1}
{ts}Net value of the payment (Total Amount minus Fee).{/ts} @@ -153,9 +155,10 @@ {literal}