Skip to content

Commit

Permalink
[REF] Move CRM_Event_Form_EventFees::buildQuickForm to Participant_Fo…
Browse files Browse the repository at this point in the history
…rm class

It turns out this function is only ever used from the ParticipantForm class so moving it back there simplifies
that for people looking at the code
  • Loading branch information
eileenmcnaughton committed Nov 17, 2019
1 parent 5ec753e commit b0d8e90
Show file tree
Hide file tree
Showing 2 changed files with 170 additions and 165 deletions.
163 changes: 0 additions & 163 deletions CRM/Event/Form/EventFees.php
Original file line number Diff line number Diff line change
Expand Up @@ -307,169 +307,6 @@ public static function setDefaultPriceSet($participantID, $eventID = NULL, $incl
return $defaults;
}

/**
* Build the form object.
*
* @param CRM_Core_Form $form
*/
public static function buildQuickForm(&$form) {
if ($form->_eventId) {
$form->_isPaidEvent = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $form->_eventId, 'is_monetary');
if ($form->_isPaidEvent) {
$form->addElement('hidden', 'hidden_feeblock', 1);
}

// make sure this is for backoffice registration.
if ($form->getName() == 'Participant') {
$eventfullMsg = CRM_Event_BAO_Participant::eventFullMessage($form->_eventId, $form->_pId);
$form->addElement('hidden', 'hidden_eventFullMsg', $eventfullMsg, ['id' => 'hidden_eventFullMsg']);
}
}

if ($form->_pId) {
if (CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
$form->_pId, 'contribution_id', 'participant_id'
)
) {
$form->_online = !$form->isBackOffice;
}
}

if ($form->_isPaidEvent) {
$params = ['id' => $form->_eventId];
CRM_Event_BAO_Event::retrieve($params, $event);

//retrieve custom information
$form->_values = [];
CRM_Event_Form_Registration::initEventFee($form, $event['id']);
CRM_Event_Form_Registration_Register::buildAmount($form, TRUE, $form->_discountId);
$lineItem = [];
$invoiceSettings = Civi::settings()->get('contribution_invoice_settings');
$invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
$totalTaxAmount = 0;
if (!CRM_Utils_System::isNull(CRM_Utils_Array::value('line_items', $form->_values))) {
$lineItem[] = $form->_values['line_items'];
foreach ($form->_values['line_items'] as $key => $value) {
$totalTaxAmount = $value['tax_amount'] + $totalTaxAmount;
}
}
if ($invoicing) {
$form->assign('totalTaxAmount', $totalTaxAmount);
}
$form->assign('lineItem', empty($lineItem) ? FALSE : $lineItem);
$discounts = [];
if (!empty($form->_values['discount'])) {
foreach ($form->_values['discount'] as $key => $value) {
$value = current($value);
$discounts[$key] = $value['name'];
}

$element = $form->add('select', 'discount_id',
ts('Discount Set'),
[
0 => ts('- select -'),
] + $discounts,
FALSE,
['class' => "crm-select2"]
);

if ($form->_online) {
$element->freeze();
}
}
if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus()
&& !CRM_Utils_Array::value('fee', $form->_values)
&& CRM_Utils_Array::value('snippet', $_REQUEST) == CRM_Core_Smarty::PRINT_NOFORM
) {
CRM_Core_Session::setStatus(ts('You do not have all the permissions needed for this page.'), 'Permission Denied', 'error');
return FALSE;
}

CRM_Core_Payment_Form::buildPaymentForm($form, $form->_paymentProcessor, FALSE, TRUE, self::getDefaultPaymentInstrumentId());
if (!$form->_mode) {
$form->addElement('checkbox', 'record_contribution', ts('Record Payment?'), NULL,
['onclick' => "return showHideByValue('record_contribution','','payment_information','table-row','radio',false);"]
);
// Check permissions for financial type first
if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus()) {
CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes, $form->_action);
}
else {
$financialTypes = CRM_Contribute_PseudoConstant::financialType();
}

$form->add('select', 'financial_type_id',
ts('Financial Type'),
['' => ts('- select -')] + $financialTypes
);

$form->add('datepicker', 'receive_date', ts('Received'), [], FALSE, ['time' => TRUE]);

$form->add('select', 'payment_instrument_id',
ts('Payment Method'),
['' => ts('- select -')] + CRM_Contribute_PseudoConstant::paymentInstrument(),
FALSE, ['onChange' => "return showHideByValue('payment_instrument_id','4','checkNumber','table-row','select',false);"]
);
// don't show transaction id in batch update mode
$path = CRM_Utils_System::currentPath();
$form->assign('showTransactionId', FALSE);
if ($path != 'civicrm/contact/search/basic') {
$form->add('text', 'trxn_id', ts('Transaction ID'));
$form->addRule('trxn_id', ts('Transaction ID already exists in Database.'),
'objectExists', ['CRM_Contribute_DAO_Contribution', $form->_eventId, 'trxn_id']
);
$form->assign('showTransactionId', TRUE);
}

$form->add('select', 'contribution_status_id',
ts('Payment Status'), CRM_Contribute_BAO_Contribution_Utils::getContributionStatuses('participant')
);

$form->add('text', 'check_number', ts('Check Number'),
CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_Contribution', 'check_number')
);

$form->add('text', 'total_amount', ts('Amount'),
CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_Contribution', 'total_amount')
);
}
}
else {
$form->add('text', 'amount', ts('Event Fee(s)'));
}
$form->assign('onlinePendingContributionId', $form->get('onlinePendingContributionId'));

$form->assign('paid', $form->_isPaidEvent);

$form->addElement('checkbox',
'send_receipt',
ts('Send Confirmation?'), NULL,
['onclick' => "showHideByValue('send_receipt','','notice','table-row','radio',false); showHideByValue('send_receipt','','from-email','table-row','radio',false);"]
);

$form->add('select', 'from_email_address', ts('Receipt From'), $form->_fromEmails['from_email_id']);

$form->add('textarea', 'receipt_text', ts('Confirmation Message'));

// Retrieve the name and email of the contact - form will be the TO for receipt email ( only if context is not standalone)
if ($form->_context != 'standalone') {
if ($form->_contactId) {
list($form->_contributorDisplayName,
$form->_contributorEmail
) = CRM_Contact_BAO_Contact_Location::getEmailDetails($form->_contactId);
$form->assign('email', $form->_contributorEmail);
}
else {
//show email block for batch update for event
$form->assign('batchEmail', TRUE);
}
}

$mailingInfo = Civi::settings()->get('mailing_backend');
$form->assign('outBound_option', $mailingInfo['outBound_option']);
$form->assign('hasPayment', $form->_paymentId);
}

/**
* Get the default payment instrument id.
*
Expand Down
172 changes: 170 additions & 2 deletions CRM/Event/Form/Participant.php
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ public function preProcess() {
// when fee amount is included in form
if (!empty($_POST['hidden_feeblock']) || !empty($_POST['send_receipt'])) {
CRM_Event_Form_EventFees::preProcess($this);
CRM_Event_Form_EventFees::buildQuickForm($this);
self::buildEventFeeForm($this);
CRM_Event_Form_EventFees::setDefaultValues($this);
}

Expand Down Expand Up @@ -587,7 +587,7 @@ public function buildQuickForm() {
$this->assign('partiallyPaidStatusId', $partiallyPaidStatusId);

if ($this->_showFeeBlock) {
return CRM_Event_Form_EventFees::buildQuickForm($this);
return self::buildEventFeeForm($this);
}

//need to assign custom data type to the template
Expand Down Expand Up @@ -1810,4 +1810,172 @@ protected function getStatusMsg($params, $sent, $updateStatusMsg, $notSent) {
return $statusMsg;
}


/**
* Build the form object.
*
* @param CRM_Core_Form $form
*
* @return bool
* @throws \CRM_Core_Exception
* @throws \Exception
*/
public static function buildEventFeeForm(&$form) {
if ($form->_eventId) {
$form->_isPaidEvent = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $form->_eventId, 'is_monetary');
if ($form->_isPaidEvent) {
$form->addElement('hidden', 'hidden_feeblock', 1);
}

// make sure this is for backoffice registration.
if ($form->getName() == 'Participant') {
$eventfullMsg = CRM_Event_BAO_Participant::eventFullMessage($form->_eventId, $form->_pId);
$form->addElement('hidden', 'hidden_eventFullMsg', $eventfullMsg, ['id' => 'hidden_eventFullMsg']);
}
}

if ($form->_pId) {
if (CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
$form->_pId, 'contribution_id', 'participant_id'
)
) {
$form->_online = !$form->isBackOffice;
}
}

if ($form->_isPaidEvent) {
$params = ['id' => $form->_eventId];
CRM_Event_BAO_Event::retrieve($params, $event);

//retrieve custom information
$form->_values = [];
CRM_Event_Form_Registration::initEventFee($form, $event['id']);
CRM_Event_Form_Registration_Register::buildAmount($form, TRUE, $form->_discountId);
$lineItem = [];
$invoiceSettings = Civi::settings()->get('contribution_invoice_settings');
$invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
$totalTaxAmount = 0;
if (!CRM_Utils_System::isNull(CRM_Utils_Array::value('line_items', $form->_values))) {
$lineItem[] = $form->_values['line_items'];
foreach ($form->_values['line_items'] as $key => $value) {
$totalTaxAmount = $value['tax_amount'] + $totalTaxAmount;
}
}
if ($invoicing) {
$form->assign('totalTaxAmount', $totalTaxAmount);
}
$form->assign('lineItem', empty($lineItem) ? FALSE : $lineItem);
$discounts = [];
if (!empty($form->_values['discount'])) {
foreach ($form->_values['discount'] as $key => $value) {
$value = current($value);
$discounts[$key] = $value['name'];
}

$element = $form->add('select', 'discount_id',
ts('Discount Set'),
[
0 => ts('- select -'),
] + $discounts,
FALSE,
['class' => "crm-select2"]
);

if ($form->_online) {
$element->freeze();
}
}
if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus()
&& !CRM_Utils_Array::value('fee', $form->_values)
&& CRM_Utils_Array::value('snippet', $_REQUEST) == CRM_Core_Smarty::PRINT_NOFORM
) {
CRM_Core_Session::setStatus(ts('You do not have all the permissions needed for this page.'), 'Permission Denied', 'error');
return FALSE;
}

CRM_Core_Payment_Form::buildPaymentForm($form, $form->_paymentProcessor, FALSE, TRUE, self::getDefaultPaymentInstrumentId());
if (!$form->_mode) {
$form->addElement('checkbox', 'record_contribution', ts('Record Payment?'), NULL,
['onclick' => "return showHideByValue('record_contribution','','payment_information','table-row','radio',false);"]
);
// Check permissions for financial type first
if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus()) {
CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes, $form->_action);
}
else {
$financialTypes = CRM_Contribute_PseudoConstant::financialType();
}

$form->add('select', 'financial_type_id',
ts('Financial Type'),
['' => ts('- select -')] + $financialTypes
);

$form->add('datepicker', 'receive_date', ts('Received'), [], FALSE, ['time' => TRUE]);

$form->add('select', 'payment_instrument_id',
ts('Payment Method'),
['' => ts('- select -')] + CRM_Contribute_PseudoConstant::paymentInstrument(),
FALSE, ['onChange' => "return showHideByValue('payment_instrument_id','4','checkNumber','table-row','select',false);"]
);
// don't show transaction id in batch update mode
$path = CRM_Utils_System::currentPath();
$form->assign('showTransactionId', FALSE);
if ($path != 'civicrm/contact/search/basic') {
$form->add('text', 'trxn_id', ts('Transaction ID'));
$form->addRule('trxn_id', ts('Transaction ID already exists in Database.'),
'objectExists', ['CRM_Contribute_DAO_Contribution', $form->_eventId, 'trxn_id']
);
$form->assign('showTransactionId', TRUE);
}

$form->add('select', 'contribution_status_id',
ts('Payment Status'), CRM_Contribute_BAO_Contribution_Utils::getContributionStatuses('participant')
);

$form->add('text', 'check_number', ts('Check Number'),
CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_Contribution', 'check_number')
);

$form->add('text', 'total_amount', ts('Amount'),
CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_Contribution', 'total_amount')
);
}
}
else {
$form->add('text', 'amount', ts('Event Fee(s)'));
}
$form->assign('onlinePendingContributionId', $form->get('onlinePendingContributionId'));

$form->assign('paid', $form->_isPaidEvent);

$form->addElement('checkbox',
'send_receipt',
ts('Send Confirmation?'), NULL,
['onclick' => "showHideByValue('send_receipt','','notice','table-row','radio',false); showHideByValue('send_receipt','','from-email','table-row','radio',false);"]
);

$form->add('select', 'from_email_address', ts('Receipt From'), $form->_fromEmails['from_email_id']);

$form->add('textarea', 'receipt_text', ts('Confirmation Message'));

// Retrieve the name and email of the contact - form will be the TO for receipt email ( only if context is not standalone)
if ($form->_context != 'standalone') {
if ($form->_contactId) {
list($form->_contributorDisplayName,
$form->_contributorEmail
) = CRM_Contact_BAO_Contact_Location::getEmailDetails($form->_contactId);
$form->assign('email', $form->_contributorEmail);
}
else {
//show email block for batch update for event
$form->assign('batchEmail', TRUE);
}
}

$mailingInfo = Civi::settings()->get('mailing_backend');
$form->assign('outBound_option', $mailingInfo['outBound_option']);
$form->assign('hasPayment', $form->_paymentId);
}

}

0 comments on commit b0d8e90

Please sign in to comment.