X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContribute%2FBAO%2FContribution.php;h=fde8e741e67d224f747121fe397a66556b3fa19e;hb=8cf01b22ec5c8a58c2837e0ce8355d9cad715cc1;hp=e5d86ed448d5da705683496d6371abcb225b407c;hpb=f584c0b8a03a21cd062cf8c9b081fb2b8a768f11;p=civicrm-core.git diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index e5d86ed448..fde8e741e6 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -2157,7 +2157,7 @@ WHERE contribution_id = %1 "; if (!empty($this->_relatedObjects['membership'])) { foreach ($this->_relatedObjects['membership'] as $membership) { if ($membership->id) { - $values['membership_id'] = $membership->id; + $values['isMembership'] = TRUE; // need to set the membership values here $template->assign('membership_assign', 1); @@ -2607,7 +2607,7 @@ WHERE contribution_id = %1 "; if (CRM_Utils_Array::value('contribution_mode', $params) == 'membership') { $isRelatedId = TRUE; } - + $entityID[] = $entityId; if (!empty($additionalParticipantId)) { $entityID += $additionalParticipantId; @@ -2730,7 +2730,7 @@ WHERE contribution_id = %1 "; $params['trxnParams']['payment_instrument_id'] = $params['prevContribution']->payment_instrument_id; $params['trxnParams']['check_number'] = $params['prevContribution']->check_number; } - + //if financial type is changed if (!empty($params['financial_type_id']) && $params['contribution']->financial_type_id != $params['prevContribution']->financial_type_id) { @@ -3181,6 +3181,8 @@ WHERE eft.entity_table = 'civicrm_contribution' $contributionDAO->contribution_status_id = $statusId; $contributionDAO->cancel_date = 'null'; $contributionDAO->cancel_reason = NULL; + $netAmount = !empty($trxnsData['net_amount']) ? $trxnsData['net_amount'] : $trxnsData['total_amount']; + $contributionDAO->net_amount = $contributionDAO->net_amount + $netAmount; $contributionDAO->save(); //Change status of financial record too @@ -3332,6 +3334,8 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']}) } /** + * function to get list of payments displayed by Contribute_Page_PaymentInfo + * * @param $id * @param $component * @param bool $getTrxnInfo @@ -3383,6 +3387,11 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']}) $paymentBalance = CRM_Core_BAO_FinancialTrxn::getPartialPaymentWithType($id, $entity, FALSE, $total); $contributionIsPayLater = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $contributionId, 'is_pay_later'); + + $feeRelationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Expense Account is' ")); + $financialTypeId = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $contributionId, 'financial_type_id'); + $feeFinancialAccount = CRM_Contribute_PseudoConstant::financialAccountType($financialTypeId, $feeRelationTypeId); + if ($paymentBalance == 0 && $contributionIsPayLater) { $paymentBalance = $total; } @@ -3395,11 +3404,12 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']}) $info['payLater'] = $contributionIsPayLater; $rows = array(); if ($getTrxnInfo && $baseTrxnId) { + // Need to exclude fee trxn rows so filter out rows where TO FINANCIAL ACCOUNT is expense account $sql = " SELECT ft.total_amount, con.financial_type_id, ft.payment_instrument_id, ft.trxn_date, ft.trxn_id, ft.status_id, ft.check_number FROM civicrm_contribution con LEFT JOIN civicrm_entity_financial_trxn eft ON (eft.entity_id = con.id AND eft.entity_table = 'civicrm_contribution') - LEFT JOIN civicrm_financial_trxn ft ON ft.id = eft.financial_trxn_id + LEFT JOIN civicrm_financial_trxn ft ON ft.id = eft.financial_trxn_id AND ft.to_financial_account_id != {$feeFinancialAccount} WHERE con.id = {$contributionId} ";