protected $_formType;
- public $_honoreeProfileType;
-
/**
* Array of the payment fields to be displayed in the payment fieldset (pane) in billingBlock.tpl
* this contains all the information to describe these fields from quickform. See CRM_Core_Form_Payment getPaymentFormFieldsMetadata
public function preProcess() {
// Check permission for action.
if (!CRM_Core_Permission::checkActionPermission('CiviContribute', $this->_action)) {
+ // @todo replace with throw new CRM_Core_Exception().
CRM_Core_Error::fatal(ts('You do not have permission to access this page.'));
}
$this->assign('showCheckNumber', TRUE);
$this->_fromEmails = CRM_Core_BAO_Email::getFromEmail();
- $this->assignPaymentRelatedVariables();
if (in_array('CiviPledge', CRM_Core_Config::singleton()->enableComponents) && !$this->_formType) {
$this->preProcessPledge();
else {
$this->setPageTitle($this->_ppID ? ts('Pledge Payment') : ts('Contribution'));
}
-
- if ($this->_id) {
- CRM_Contribute_Form_SoftCredit::preprocess($this);
- }
}
/**
}
if (empty($defaults['payment_instrument_id'])) {
- $defaults['payment_instrument_id'] = key(CRM_Core_OptionGroup::values('payment_instrument', FALSE, FALSE, FALSE, 'AND is_default = 1'));
+ $defaults['payment_instrument_id'] = $this->getDefaultPaymentInstrumentId();
}
if (!empty($defaults['is_test'])) {
$paneNames[ts('Premium Information')] = 'Premium';
}
- if ($this->_mode) {
- if (CRM_Core_Payment_Form::buildPaymentForm($this, $this->_paymentProcessor, FALSE, TRUE) == TRUE) {
- if (!empty($this->_recurPaymentProcessors)) {
- $buildRecurBlock = TRUE;
- if ($this->_ppID) {
- // ppID denotes a pledge payment.
- foreach ($this->_paymentProcessors as $processor) {
- if (!empty($processor['is_recur']) && !empty($processor['object']) && $processor['object']->supports('recurContributionsForPledges')) {
- $buildRecurBlock = TRUE;
- break;
- }
- $buildRecurBlock = FALSE;
+ if (CRM_Core_Payment_Form::buildPaymentForm($this, $this->_paymentProcessor, FALSE, TRUE, $this->getDefaultPaymentInstrumentId()) == TRUE) {
+ if (!empty($this->_recurPaymentProcessors)) {
+ $buildRecurBlock = TRUE;
+ if ($this->_ppID) {
+ // ppID denotes a pledge payment.
+ foreach ($this->_paymentProcessors as $processor) {
+ if (!empty($processor['is_recur']) && !empty($processor['object']) && $processor['object']->supports('recurContributionsForPledges')) {
+ $buildRecurBlock = TRUE;
+ break;
}
- }
- if ($buildRecurBlock) {
- CRM_Contribute_Form_Contribution_Main::buildRecur($this);
- $this->setDefaults(array('is_recur' => 0));
- $this->assign('buildRecurBlock', TRUE);
- $recurJs = array('onChange' => "buildRecurBlock( this.value ); return false;");
+ $buildRecurBlock = FALSE;
}
}
+ if ($buildRecurBlock) {
+ CRM_Contribute_Form_Contribution_Main::buildRecur($this);
+ $this->setDefaults(array('is_recur' => 0));
+ $this->assign('buildRecurBlock', TRUE);
+ $recurJs = array('onChange' => "buildRecurBlock( this.value ); return false;");
+ }
}
}
if (!empty($this->_params['receive_date'])) {
$this->_params['receive_date'] = CRM_Utils_Date::processDate($this->_params['receive_date'], $this->_params['receive_date_time']);
}
+ else {
+ $this->_params['receive_date'] = $now;
+ }
$this->_params['pcp_display_in_roll'] = CRM_Utils_Array::value('pcp_display_in_roll', $params);
$this->_params['pcp_roll_nickname'] = CRM_Utils_Array::value('pcp_roll_nickname', $params);
$paymentParams['receive_date'] = $this->_params['receive_date'];
}
- $this->_params['receive_date'] = $now;
-
if (!empty($this->_params['is_email_receipt'])) {
$this->_params['receipt_date'] = $now;
}
'payment_processor_id' => $this->_paymentProcessor['id'],
'is_transactional' => FALSE,
'fee_amount' => CRM_Utils_Array::value('fee_amount', $result),
+ 'card_type_id' => CRM_Utils_Array::value('card_type_id', $paymentParams),
+ 'pan_truncation' => CRM_Utils_Array::value('pan_truncation', $paymentParams),
+ 'is_email_receipt' => FALSE,
));
// This has now been set to 1 in the DB - declare it here also
$contribution->contribution_status_id = 1;
* @throws \Exception
*/
protected function submit($submittedValues, $action, $pledgePaymentID) {
-
$pId = $contribution = $isRelatedId = FALSE;
$this->_params = $submittedValues;
$this->beginPostProcess();
+ // reassign submitted form values if the any information is formatted via beginPostProcess
+ $submittedValues = $this->_params;
if (!empty($submittedValues['price_set_id']) && $action & CRM_Core_Action::UPDATE) {
$line = CRM_Price_BAO_LineItem::getLineItems($this->_id, 'contribution');
) {
unset($submittedValues['tax_amount']);
}
+ // @todo - look to remove this line. I believe it relates to CRM-16460
+ // and possibly contributes to fixing the issue described there but
+ // would cause breakage for negative values in some cases.
$submittedValues['total_amount'] = CRM_Utils_Array::value('amount', $submittedValues);
}
if ($this->_id) {
$isEmpty = array_keys(array_flip($submittedValues['soft_credit_contact_id']));
if ($this->_id && count($isEmpty) == 1 && key($isEmpty) == NULL) {
- //Delete existing soft credit records if soft credit list is empty on update
- CRM_Contribute_BAO_ContributionSoft::del(array('contribution_id' => $this->_id, 'pcp_id' => 0));
+ civicrm_api3('ContributionSoft', 'get', array('contribution_id' => $this->_id, 'pcp_id' => NULL, 'api.ContributionSoft.delete' => 1));
}
// set the contact, when contact is selected
'cancel_reason',
'source',
'check_number',
+ 'card_type_id',
+ 'pan_truncation',
);
foreach ($fields as $f) {
$params[$f] = CRM_Utils_Array::value($f, $formValues);
// Set is_pay_later flag for back-office offline Pending status contributions CRM-8996
// else if contribution_status is changed to Completed is_pay_later flag is changed to 0, CRM-15041
- if ($params['contribution_status_id'] == CRM_Core_OptionGroup::getValue('contribution_status', 'Pending', 'name')) {
+ if ($params['contribution_status_id'] == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending')) {
$params['is_pay_later'] = 1;
}
- elseif ($params['contribution_status_id'] == CRM_Core_OptionGroup::getValue('contribution_status', 'Completed', 'name')) {
+ elseif ($params['contribution_status_id'] == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed')) {
$params['is_pay_later'] = 0;
}