<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.4 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
* $Id$
*
*/
if (empty($ids['contribution']) && empty($params['contribution_status_id'])) {
$params['contribution_status_id'] = CRM_Core_OptionGroup::getValue('contribution_status', 'Completed', 'name');
}
-
+ $setPrevContribution = TRUE;
// CRM-13964 partial payment
- if (empty($contributionID)) {
- if (!empty($params['partial_payment_total']) && !empty($params['partial_amount_pay'])) {
- $partialAmtTotal = $params['partial_payment_total'];
- $partialAmtPay = $params['partial_amount_pay'];
- $params['total_amount'] = $partialAmtTotal;
+ if (!empty($params['partial_payment_total']) && !empty($params['partial_amount_pay'])) {
+ $partialAmtTotal = $params['partial_payment_total'];
+ $partialAmtPay = $params['partial_amount_pay'];
+ $params['total_amount'] = $partialAmtTotal;
+ if ($partialAmtPay < $partialAmtTotal) {
$params['contribution_status_id'] = CRM_Core_OptionGroup::getValue('contribution_status', 'Partially paid', 'name');
+ $params['is_pay_later'] = 0;
+ $setPrevContribution = FALSE;
}
}
$contribution->currency = $config->defaultCurrency;
}
- if ($contributionID) {
+ if ($contributionID && $setPrevContribution) {
$params['prevContribution'] = self::getValues(array('id' => $contributionID), CRM_Core_DAO::$_nullArray, CRM_Core_DAO::$_nullArray);
}
}
// Handle soft credit and / or link to personal campaign page
- list($type, $softIDs) = CRM_Contribute_BAO_ContributionSoft::getSoftCreditType($contribution->id);
+ $softIDs = CRM_Contribute_BAO_ContributionSoft::getSoftCreditIds($contribution->id);
+
+ //Delete PCP against this contribution and create new on submitted PCP information
+ $pcpId = CRM_Contribute_BAO_ContributionSoft::getSoftCreditIds($contribution->id, TRUE);
+ if ($pcpId) {
+ $deleteParams = array('id' => $pcpId);
+ CRM_Contribute_BAO_ContributionSoft::del($deleteParams);
+ }
if ($pcp = CRM_Utils_Array::value('pcp', $params)) {
- if (!empty($type) && $type == 'soft') {
- $deleteParams = array('contribution_id' => $contribution->id);
- CRM_Contribute_BAO_ContributionSoft::del($deleteParams);
- }
$softParams = array();
$softParams['contribution_id'] = $contribution->id;
$softParams['pcp_id'] = $pcp['pcp_made_through_id'];
$softParams['soft_credit_type_id'] = CRM_Core_OptionGroup::getValue('soft_credit_type', 'pcp', 'name');
CRM_Contribute_BAO_ContributionSoft::add($softParams);
}
- elseif (isset($params['soft_credit'])) {
+ if (isset($params['soft_credit'])) {
$softParams = $params['soft_credit'];
if (!empty($softIDs)) {
foreach ($softParams as $softParam) {
$softParam['contribution_id'] = $contribution->id;
$softParam['currency'] = $contribution->currency;
+ //case during Contribution Import when we assign soft contribution amount as contribution's total_amount by default
+ if (empty($softParam['amount'])) {
+ $softParam['amount'] = $contribution->total_amount;
+ }
CRM_Contribute_BAO_ContributionSoft::add($softParam);
}
}
'headerPattern' => '/^honor_contact_email$/i',
'where' => 'honor_email.email',
),
- 'honor_contact_id' => array(
- 'name' => 'honor_contact_id',
- 'title' => 'Honor Contact ID',
- 'headerPattern' => '/^honor_contact_id$/i',
- 'where' => 'civicrm_contribution.honor_contact_id',
- ),
- 'honor_type_label' => array(
- 'name' => 'honor_type_label',
- 'title' => 'Honor Type Label',
- 'headerPattern' => '/^honor_type_label$/i',
- 'where' => 'honor_type.label',
- ),
'contribution_soft_credit_name' => array(
'name' => 'contribution_soft_credit_name',
'title' => 'Soft Credit Name',
$dates['end_date'],
$dates['join_date'],
'today',
- TRUE
+ TRUE,
+ $membership->membership_type_id,
+ (array) $membership
);
$formattedParams = array(
$softRecord = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($this->id);
if (isset($softRecord['soft_credit'])) {
- $values['honor'] = array(
- 'honor_profile_values' => array(),
- 'honor_profile_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFJoin', $values['id'], 'uf_group_id', 'entity_id'),
- 'honor_id' => $softRecord['soft_credit'][1]['contact_id'],
- );
- $softCreditTypes = CRM_Core_OptionGroup::values('soft_credit_type');
+ //if id of contribution page is present
+ if (!empty($values['id'])) {
+ $values['honor'] = array(
+ 'honor_profile_values' => array(),
+ 'honor_profile_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFJoin', $values['id'], 'uf_group_id', 'entity_id'),
+ 'honor_id' => $softRecord['soft_credit'][1]['contact_id'],
+ );
+ $softCreditTypes = CRM_Core_OptionGroup::values('soft_credit_type');
- $template->assign('soft_credit_type', $softRecord['soft_credit'][1]['soft_credit_type_label']);
- $template->assign('honor_block_is_active', CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFJoin', $values['id'], 'is_active', 'entity_id'));
+ $template->assign('soft_credit_type', $softRecord['soft_credit'][1]['soft_credit_type_label']);
+ $template->assign('honor_block_is_active', CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFJoin', $values['id'], 'is_active', 'entity_id'));
+ }
+ else {
+ //offline contribution
+ $softCreditTypes = $softCredits = array();
+ foreach ($softRecord['soft_credit'] as $key => $softCredit) {
+ $softCreditTypes[$key] = $softCredit['soft_credit_type_label'];
+ $softCredits[$key] = array(
+ 'Name' => $softCredit['contact_name'],
+ 'Amount' => CRM_Utils_Money::format($softCredit['amount'], $softCredit['currency'])
+ );
+ }
+ $template->assign('softCreditTypes', $softCreditTypes);
+ $template->assign('softCredits', $softCredits);
+ }
}
$dao = new CRM_Contribute_DAO_ContributionProduct();
CRM_Activity_BAO_Activity::create($activityParams);
}
- function getPaymentInfo($id, $component, $getTrxnInfo = FALSE, $usingLineTotal = FALSE) {
+ static function getPaymentInfo($id, $component, $getTrxnInfo = FALSE, $usingLineTotal = FALSE) {
if ($component == 'event') {
$entity = 'participant';
$entityTable = 'civicrm_participant';