Error on membership fee token when using Print/Merge Document
Overview
The issue has been reported on https://civicrm.stackexchange.com/questions/42438/error-on-membership-fee-token-when-using-print-merge-document/42443#42443
Reproduction steps
I did a short test on the demo sandbox.
Selected "Find Membership" and selected one record. I then choose Print/Merge Document and added 2 tokens, {membership.id} and {membership.fee} Then clicked "Preview" to see the pdf outcome.
If I use only the token {membership.id} I do not get any error message and the preview is created.
Adding {membership.fee} I get the following error message below.
Current behaviour
The website encountered an unexpected error. Please try again later. TypeError: Return value of
CRM_Utils_Money::formatUSLocaleNumericRounded() must be of the type string, null returned in
CRM_Utils_Money::formatUSLocaleNumericRounded() (line 207 of /srv/buildkit/build/d9-master/vendor/civicrm/civicrm-
core/CRM/Utils/Money.php).
CRM_Utils_Money::formatUSLocaleNumericRounded() (Line: 249) CRM_Utils_Money::formatLocaleNumericRoundedByPrecision() (Line: 234)
CRM_Utils_Money::formatLocaleNumericRoundedByCurrency() (Line: 281)
CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency() (Line: 65) CRM_Member_Tokens->evaluateToken() (Line: 146)
Civi\Token\AbstractTokenSubscriber->evaluateTokens() (Line: 264) Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()
(Line: 239) Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 73)
Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 209) Civi\Core\CiviEventDispatcher->dispatch() (Line: 354)
Civi\Token\TokenProcessor->evaluate() (Line: 64) CRM_Core_TokenSmarty::render() (Line: 349)
CRM_Core_BAO_MessageTemplate::renderTemplateRaw() (Line: 271) CRM_Core_BAO_MessageTemplate::renderTemplate() (Line: 131)
CRM_Member_Form_Task_PDFLetter->generateHTML() (Line: 98) CRM_Member_Form_Task_PDFLetter->postProcessMembers() (Line: 75)
CRM_Member_Form_Task_PDFLetter->postProcess() (Line: 573) CRM_Core_Form->mainProcess() (Line: 56)
CRM_Core_QuickForm_Action_Submit->perform() (Line: 203) HTML_QuickForm_Controller->handle() (Line: 103) HTML_QuickForm_Page-
>handle() (Line: 355) CRM_Core_Controller->run() (Line: 319) CRM_Core_Invoke::runItem() (Line: 69) CRM_Core_Invoke::_invoke()
(Line: 36) CRM_Core_Invoke::invoke() (Line: 88) Drupal\civicrm\Civicrm->invoke() (Line: 80)
Drupal\civicrm\Controller\CivicrmController->main() call_user_func_array() (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() (Line: 564)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() (Line: 158)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 80) Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 58)
Drupal\Core\StackMiddleware\Session->handle() (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Line: 85) Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware-
>handle() (Line: 23) Stack\StackedHttpKernel->handle() (Line: 709) Drupal\Core\DrupalKernel->handle() (Line: 19)
Expected behaviour
No error message should appear and a PDF (and/or emailing) should be possible
Environment information
Demo Sandbox on CiviCRM Website