Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev/core#2155 Remove obscure broken handling for onlinePendingContribution #18964

Merged
merged 1 commit into from
Nov 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 0 additions & 92 deletions CRM/Member/Form/Membership.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ class CRM_Member_Form_Membership extends CRM_Member_Form {

protected $_memType = NULL;

protected $_onlinePendingContributionId;

public $_mode;

public $_contributeMode = 'direct';
Expand Down Expand Up @@ -276,16 +274,6 @@ public function preProcess() {

// Add custom data to form
CRM_Custom_Form_CustomData::addToForm($this, $this->_memType);

// CRM-4395, get the online pending contribution id.
$this->_onlinePendingContributionId = NULL;
if (!$this->_mode && $this->_id && ($this->_action & CRM_Core_Action::UPDATE)) {
$this->_onlinePendingContributionId = CRM_Contribute_BAO_Contribution::checkOnlinePendingContribution($this->_id,
'Membership'
);
}
$this->assign('onlinePendingContributionId', $this->_onlinePendingContributionId);

$this->setPageTitle(ts('Membership'));
}

Expand All @@ -308,10 +296,6 @@ public function setDefaultValues() {
$defaults['num_terms'] = 1;

if (!empty($defaults['id'])) {
if ($this->_onlinePendingContributionId) {
$defaults['record_contribution'] = $this->_onlinePendingContributionId;
}
else {
$contributionId = CRM_Core_DAO::singleValueQuery("
SELECT contribution_id
FROM civicrm_membership_payment
Expand All @@ -323,7 +307,6 @@ public function setDefaultValues() {
$defaults['record_contribution'] = $contributionId;
}
}
}
else {
if ($this->_contactID) {
$defaults['contact_id'] = $this->_contactID;
Expand Down Expand Up @@ -861,15 +844,6 @@ public static function formRule($params, $files, $self) {
}
}

// validate contribution status for 'Failed'.
if ($self->_onlinePendingContributionId && !empty($params['record_contribution']) &&
(CRM_Utils_Array::value('contribution_status_id', $params) ==
array_search('Failed', CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'))
)
) {
$errors['contribution_status_id'] = ts('Please select a valid payment status before updating.');
}

return empty($errors) ? TRUE : $errors;
}

Expand Down Expand Up @@ -975,9 +949,6 @@ public static function emailReceipt(&$form, &$formValues, &$membership, $customV
if (!empty($formValues['contribution_id'])) {
$form->assign('contributionID', $formValues['contribution_id']);
}
elseif (isset($form->_onlinePendingContributionId)) {
$form->assign('contributionID', $form->_onlinePendingContributionId);
}

if (!empty($formValues['contribution_status_id'])) {
$form->assign('contributionStatusID', $formValues['contribution_status_id']);
Expand Down Expand Up @@ -1252,7 +1223,6 @@ public function submit() {
$params[$f] = $formValues[$f] ?? NULL;
}

if (!$this->_onlinePendingContributionId) {
if (empty($formValues['source'])) {
$params['contribution_source'] = ts('%1 Membership: Offline signup (by %2)', [
1 => $membershipType,
Expand All @@ -1262,7 +1232,6 @@ public function submit() {
else {
$params['contribution_source'] = $formValues['source'];
}
}

$completedContributionStatusId = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed');
if (empty($params['is_override']) &&
Expand Down Expand Up @@ -1496,66 +1465,6 @@ public function submit() {
}
else {
$params['action'] = $this->_action;
if ($this->_onlinePendingContributionId && !empty($formValues['record_contribution'])) {

// update membership as well as contribution object, CRM-4395
$params['contribution_id'] = $this->_onlinePendingContributionId;
$params['componentId'] = $params['id'];
$params['componentName'] = 'contribute';
// Only available statuses are Pending and completed so cancel or failed is not possible here.
$result = CRM_Contribute_BAO_Contribution::transitionComponents($params, TRUE);
if (!empty($result) && !empty($params['contribution_id'])) {
$lineItem = [];
$lineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($params['contribution_id']);
$itemId = key($lineItems);
$priceSetId = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItems[$itemId]['price_field_id'], 'price_set_id');

$lineItems[$itemId]['unit_price'] = $params['total_amount'];
$lineItems[$itemId]['line_total'] = $params['total_amount'];
$lineItems[$itemId]['id'] = $itemId;
$lineItem[$priceSetId] = $lineItems;
$contributionBAO = new CRM_Contribute_BAO_Contribution();
$contributionBAO->id = $params['contribution_id'];
$contributionBAO->contact_id = $params['contact_id'];
$contributionBAO->find();
CRM_Price_BAO_LineItem::processPriceSet($params['contribution_id'], $lineItem, $contributionBAO, 'civicrm_membership');

//create new soft-credit record, CRM-13981
if ($softParams) {
$softParams['contribution_id'] = $params['contribution_id'];
while ($contributionBAO->fetch()) {
$softParams['currency'] = $contributionBAO->currency;
$softParams['amount'] = $contributionBAO->total_amount;
}
CRM_Contribute_BAO_ContributionSoft::add($softParams);
}
}

//carry updated membership object.
$membership = new CRM_Member_DAO_Membership();
$membership->id = $this->_id;
$membership->find(TRUE);

$cancelled = TRUE;
if ($membership->end_date) {
//display end date w/ status message.
$endDate = $membership->end_date;

if (!in_array($membership->status_id, [
// CRM-15475
array_search('Cancelled', CRM_Member_PseudoConstant::membershipStatus(NULL, " name = 'Cancelled' ", 'name', FALSE, TRUE)),
array_search('Expired', CRM_Member_PseudoConstant::membershipStatus()),
])
) {
$cancelled = FALSE;
}
}
// suppress form values in template.
$this->assign('cancelled', $cancelled);

$createdMemberships[] = $membership;
}
else {
$count = 0;
foreach ($this->_memTypeSelected as $memType) {
if ($count && !empty($formValues['record_contribution']) &&
Expand Down Expand Up @@ -1585,7 +1494,6 @@ public function submit() {
$count++;
}
}
}
$isRecur = $params['is_recur'] ?? NULL;
if (($this->_action & CRM_Core_Action::UPDATE)) {
$this->addStatusMessage($this->getStatusMessageForUpdate($membership, $endDate));
Expand Down
8 changes: 4 additions & 4 deletions templates/CRM/Member/Form/Membership.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,9 @@
<span class="description">{ts}When <strong>Status Override</strong> is active, the selected status will remain in force (it will NOT be subject to membership status rules) until it is cancelled or become inactive.{/ts}</span></td></tr>
{/if}

{if $accessContribution and !$membershipMode AND ($action neq 2 or (!$rows.0.contribution_id AND !$softCredit) or $onlinePendingContributionId)}
{if $accessContribution and !$membershipMode AND ($action neq 2 or (!$rows.0.contribution_id AND !$softCredit))}
<tr id="contri">
<td class="label">{if $onlinePendingContributionId}{ts}Update Payment Status{/ts}{else}{$form.record_contribution.label}{/if}</td>
<td class="label">{$form.record_contribution.label}</td>
<td>{$form.record_contribution.html}<br />
<span class="description">{ts}Check this box to enter or update payment information. You will also be able to generate a customized receipt.{/ts}</span></td>
</tr>
Expand Down Expand Up @@ -251,7 +251,7 @@
</div> <!-- end form-block -->

{if $action neq 8} {* Jscript additions not need for Delete action *}
{if $accessContribution and !$membershipMode AND ($action neq 2 or !$rows.0.contribution_id or $onlinePendingContributionId)}
{if $accessContribution and !$membershipMode AND ($action neq 2 or !$rows.0.contribution_id)}

{include file="CRM/common/showHideByFieldValue.tpl"
trigger_field_id ="record_contribution"
Expand All @@ -268,7 +268,7 @@
function setPaymentBlock(mode, checkboxEvent) {
var memType = parseInt(cj('#membership_type_id_1').val( ));
var isPriceSet = 0;
var existingAmount = {/literal}{if !empty($onlinePendingContributionId)}1{else}0{/if}{literal};
var existingAmount = 0;

if ( cj('#price_set_id').length > 0 && cj('#price_set_id').val() ) {
isPriceSet = 1;
Expand Down
2 changes: 1 addition & 1 deletion templates/CRM/Member/Form/MembershipCommon.tpl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{if !$membershipMode}
{if $accessContribution && ($action != 2 or (!$rows.0.contribution_id AND !$softCredit) or $onlinePendingContributionId)}
{if $accessContribution && ($action != 2 or (!$rows.0.contribution_id AND !$softCredit))}
<table>
<tr class="crm-{$formClass}-form-block-contribution-contact">
<td class="label">{$form.is_different_contribution_contact.label}</td>
Expand Down