public function preProcess() {
$id = $this->getID();
+ // Check permission for action.
+ if (!CRM_Core_Permission::checkActionPermission('CiviContribute', $this->_action)) {
+ CRM_Core_Error::statusBounce(ts('You do not have permission to access this page.'));
+ }
+ $params = ['id' => $id];
$context = CRM_Utils_Request::retrieve('context', 'Alphanumeric', $this);
$this->assign('context', $context);
$values = (array) $contribution;
$contributionStatus = CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $values['contribution_status_id']);
+ $this->addExpectedSmartyVariables([
+ 'hookDiscount',
+ 'pricesetFieldsCount',
+ 'pcp_id',
+ 'getTaxDetails',
+ // currencySymbol maybe doesn't make sense but is probably old?
+ 'currencySymbol',
+ ]);
+
// @todo - it might have been better to create a new form that extends this
// for template contributions rather than overloading this form.
$force_create_template = CRM_Utils_Request::retrieve('force_create_template', 'Boolean', $this, FALSE, FALSE);
CRM_Contribute_BAO_Contribution::resolveDefaults($values);
+ $values['contribution_page_title'] = '';
if (!empty($values['contribution_page_id'])) {
$contribPages = CRM_Contribute_PseudoConstant::contributionPage(NULL, TRUE);
$values['contribution_page_title'] = CRM_Utils_Array::value(CRM_Utils_Array::value('contribution_page_id', $values), $contribPages);
// get received into i.e to_financial_account_id from last trxn
$financialTrxnId = CRM_Core_BAO_FinancialTrxn::getFinancialTrxnId($this->getID(), 'DESC');
$values['to_financial_account'] = '';
+ $values['payment_processor_name'] = '';
if (!empty($financialTrxnId['financialTrxnId'])) {
$values['to_financial_account_id'] = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialTrxn', $financialTrxnId['financialTrxnId'], 'to_financial_account_id');
if ($values['to_financial_account_id']) {
}
}
- $participantLineItems = \Civi\Api4\LineItem::get()
- ->addSelect('entity_id', 'participant.role_id:label', 'participant.fee_level', 'participant.contact_id', 'contact.display_name')
- ->addJoin('Participant AS participant', 'LEFT', ['participant.id', '=', 'entity_id'])
- ->addJoin('Contact AS contact', 'LEFT', ['contact.id', '=', 'participant.contact_id'])
- ->addWhere('entity_table', '=', 'civicrm_participant')
- ->addWhere('contribution_id', '=', $id)
- ->execute();
+ try {
+ $participantLineItems = \Civi\Api4\LineItem::get()
+ ->addSelect('entity_id', 'participant.role_id:label', 'participant.fee_level', 'participant.contact_id', 'contact.display_name')
+ ->addJoin('Participant AS participant', 'LEFT', ['participant.id', '=', 'entity_id'])
+ ->addJoin('Contact AS contact', 'LEFT', ['contact.id', '=', 'participant.contact_id'])
+ ->addWhere('entity_table', '=', 'civicrm_participant')
+ ->addWhere('contribution_id', '=', $id)
+ ->execute();
+ }
+ catch (API_Exception $e) {
+ // likely don't have permission for events/participants
+ $participantLineItems = [];
+ }
$associatedParticipants = FALSE;
- if ($participantLineItems->count()) {
- foreach ($participantLineItems as $participant) {
- $associatedParticipants[] = [
- 'participantLink' => CRM_Utils_System::url('civicrm/contact/view/participant',
- "action=view&reset=1&id={$participant['entity_id']}&cid={$participant['participant.contact_id']}&context=home"
- ),
- 'participantName' => $participant['contact.display_name'],
- 'fee' => implode(', ', $participant['participant.fee_level']),
- 'role' => implode(', ', $participant['participant.role_id:label']),
- ];
- }
+ foreach ($participantLineItems as $participant) {
+ $associatedParticipants[] = [
+ 'participantLink' => CRM_Utils_System::url('civicrm/contact/view/participant',
+ "action=view&reset=1&id={$participant['entity_id']}&cid={$participant['participant.contact_id']}&context=home"
+ ),
+ 'participantName' => $participant['contact.display_name'],
+ 'fee' => implode(', ', $participant['participant.fee_level']),
+ 'role' => implode(', ', $participant['participant.role_id:label']),
+ ];
}
$this->assign('associatedParticipants', $associatedParticipants);
$productID = $dao->product_id;
}
+ $this->assign('premium', '');
if ($premiumId) {
$productDAO = new CRM_Contribute_DAO_Product();
$productDAO->id = $productID;
$values['note'] = array_values($noteValue);
// show billing address location details, if exists
+ $values['billing_address'] = '';
if (!empty($values['address_id'])) {
$addressParams = ['id' => $values['address_id']];
$addressDetails = CRM_Core_BAO_Address::getValues($addressParams, FALSE, 'id');
//assign soft credit record if exists.
$SCRecords = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($this->getID(), TRUE);
- if (!empty($SCRecords['soft_credit'])) {
- $this->assign('softContributions', $SCRecords['soft_credit']);
- unset($SCRecords['soft_credit']);
- }
-
- //assign pcp record if exists
+ $this->assign('softContributions', empty($SCRecords['soft_credit']) ? NULL : $SCRecords['soft_credit']);
+ // unset doesn't complain if array member missing
+ unset($SCRecords['soft_credit']);
foreach ($SCRecords as $name => $value) {
$this->assign($name, $value);
}
$this->assign('displayLineItemFinancialType', TRUE);
//do check for campaigns
+ $values['campaign'] = '';
if ($campaignId = CRM_Utils_Array::value('campaign_id', $values)) {
$campaigns = CRM_Campaign_BAO_Campaign::getCampaigns($campaignId);
$values['campaign'] = $campaigns[$campaignId];