<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
* Static field for all the contribution information that we can potentially import
*
* @var array
- * @static
*/
static $_importableFields = NULL;
* Static field for all the contribution information that we can potentially export
*
* @var array
- * @static
*/
static $_exportableFields = NULL;
*/
public $_component = NULL;
- /*
- * construct method
- */
/**
* Class constructor
*
- * @access public
* @return \CRM_Contribute_DAO_Contribution
*/
/**
- *
*/
- function __construct() {
+ public function __construct() {
parent::__construct();
}
* contribution object. the params array could contain additional unused name/value
* pairs
*
- * @param array $params (reference ) an assoc array of name/value pairs
- * @param array $ids the array that holds all the db ids
+ * @param array $params
+ * (reference ) an assoc array of name/value pairs.
+ * @param array $ids
+ * The array that holds all the db ids.
*
- * @return CRM_Contribute_BAO_Contribution object
- * @access public
- * @static
+ * @return CRM_Contribute_BAO_Contribution|void
*/
- static function add(&$params, $ids = array()) {
+ public static function add(&$params, $ids = array()) {
if (empty($params)) {
- return;
+ return NULL;
}
//per http://wiki.civicrm.org/confluence/display/CRM/Database+layer we are moving away from $ids array
$contributionID = CRM_Utils_Array::value('contribution', $ids, CRM_Utils_Array::value('id', $params));
}
}
- //set defaults in create mode
+ //set defaults in create mode
if (!$contributionID) {
CRM_Core_DAO::setCreateDefaults($params, self::getDefaults());
self::calculateMissingAmountParams($params);
* Get defaults for new entity
* @return array
*/
- static function getDefaults() {
+ public static function getDefaults() {
return array(
'payment_instrument_id' => key(CRM_Core_OptionGroup::values('payment_instrument',
FALSE, FALSE, FALSE, 'AND is_default = 1')
* Given the list of params in the params array, fetch the object
* and store the values in the values array
*
- * @param array $params input parameters to find object
- * @param array $values output values of the object
- * @param array $ids the array that holds all the db ids
+ * @param array $params
+ * Input parameters to find object.
+ * @param array $values
+ * Output values of the object.
+ * @param array $ids
+ * The array that holds all the db ids.
*
* @return CRM_Contribute_BAO_Contribution|null the found object or null
- * @access public
- * @static
*/
- static function &getValues($params, &$values, &$ids) {
+ public static function &getValues($params, &$values, &$ids) {
if (empty($params)) {
return NULL;
}
* @return int
*/
public function getNumTermsByContributionAndMembershipType($membershipTypeID, $contributionID) {
- $numTerms = CRM_Core_DAO::singleValueQuery("
+ $numTerms = CRM_Core_DAO::singleValueQuery("
SELECT membership_num_terms FROM civicrm_line_item li
LEFT JOIN civicrm_price_field_value v ON li.price_field_value_id = v.id
WHERE contribution_id = %1 AND membership_type_id = %2",
- array(1 => array($contributionID, 'Integer') , 2 => array($membershipTypeID, 'Integer'))
+ array(1 => array($contributionID, 'Integer'), 2 => array($membershipTypeID, 'Integer'))
);
// default of 1 is precautionary
return empty($numTerms) ? 1 : $numTerms;
/**
* Takes an associative array and creates a contribution object
*
- * @param array $params (reference ) an assoc array of name/value pairs
- * @param array $ids the array that holds all the db ids
+ * @param array $params
+ * (reference ) an assoc array of name/value pairs.
+ * @param array $ids
+ * The array that holds all the db ids.
*
- * @return CRM_Contribute_BAO_Contribution object
- * @access public
- * @static
+ * @return CRM_Contribute_BAO_Contribution
*/
- static function create(&$params, $ids = array()) {
+ public static function create(&$params, $ids = array()) {
$dateFields = array('receive_date', 'cancel_date', 'receipt_date', 'thankyou_date');
foreach ($dateFields as $df) {
if (isset($params[$df])) {
);
$retrieveRequired = 0;
foreach ($titleFields as $titleField) {
- if(!isset($contribution->$titleField)){
+ if (!isset($contribution->$titleField)) {
$retrieveRequired = 1;
break;
}
$softParams['pcp_roll_nickname'] = CRM_Utils_Array::value('pcp_roll_nickname', $pcp);
$softParams['pcp_personal_note'] = CRM_Utils_Array::value('pcp_personal_note', $pcp);
$softParams['soft_credit_type_id'] = CRM_Core_OptionGroup::getValue('soft_credit_type', 'pcp', 'name');
- CRM_Contribute_BAO_ContributionSoft::add($softParams);
+ $contributionSoft = CRM_Contribute_BAO_ContributionSoft::add($softParams);
+ //Send notification to owner for PCP
+ if ($contributionSoft->pcp_id) {
+ CRM_Contribute_Form_Contribution_Confirm::pcpNotifyOwner($contribution, $contributionSoft);
+ }
}
if (isset($params['soft_credit'])) {
$softParams = $params['soft_credit'];
if (!empty($softIDs)) {
- foreach ( $softIDs as $softID) {
+ foreach ($softIDs as $softID) {
if (!in_array($softID, $params['soft_credit_ids'])) {
$deleteParams = array('id' => $softID);
CRM_Contribute_BAO_ContributionSoft::del($deleteParams);
);
$retrieveRequired = 0;
foreach ($titleFields as $titleField) {
- if(!isset($contribution->$titleField)){
+ if (!isset($contribution->$titleField)) {
$retrieveRequired = 1;
break;
}
}
- if($retrieveRequired == 1){
+ if ($retrieveRequired == 1) {
$contribution->find(TRUE);
}
$contributionTypes = CRM_Contribute_PseudoConstant::financialType();
/**
* Get the values for pseudoconstants for name->value and reverse.
*
- * @param array $defaults (reference) the default values, some of which need to be resolved.
- * @param boolean $reverse true if we want to resolve the values in the reverse direction (value -> name)
+ * @param array $defaults
+ * (reference) the default values, some of which need to be resolved.
+ * @param bool $reverse
+ * True if we want to resolve the values in the reverse direction (value -> name).
*
* @return void
- * @access public
- * @static
*/
- static function resolveDefaults(&$defaults, $reverse = FALSE) {
+ public static function resolveDefaults(&$defaults, $reverse = FALSE) {
self::lookupValue($defaults, 'financial_type', CRM_Contribute_PseudoConstant::financialType(), $reverse);
self::lookupValue($defaults, 'payment_instrument', CRM_Contribute_PseudoConstant::paymentInstrument(), $reverse);
self::lookupValue($defaults, 'contribution_status', CRM_Contribute_PseudoConstant::contributionStatus(), $reverse);
}
/**
- * This function is used to convert associative array names to values
+ * convert associative array names to values
* and vice-versa.
*
* This function is used by both the web form layer and the api. Note that
* the api needs the name => value conversion, also the view layer typically
* requires value => name conversion
*/
- static function lookupValue(&$defaults, $property, &$lookup, $reverse) {
+ public static function lookupValue(&$defaults, $property, &$lookup, $reverse) {
$id = $property . '_id';
$src = $reverse ? $property : $id;
* full featured over a period of time. This is the inverse function of
* create. It also stores all the retrieved values in the default array
*
- * @param array $params (reference ) an assoc array of name/value pairs
- * @param array $defaults (reference ) an assoc array to hold the name / value pairs
+ * @param array $params
+ * (reference ) an assoc array of name/value pairs.
+ * @param array $defaults
+ * (reference ) an assoc array to hold the name / value pairs.
* in a hierarchical manner
- * @param array $ids (reference) the array that holds all the db ids
+ * @param array $ids
+ * (reference) the array that holds all the db ids.
*
- * @return CRM_Contribute_BAO_Contribution object
- * @access public
- * @static
+ * @return CRM_Contribute_BAO_Contribution
*/
- static function retrieve(&$params, &$defaults, &$ids) {
+ public static function retrieve(&$params, &$defaults, &$ids) {
$contribution = CRM_Contribute_BAO_Contribution::getValues($params, $defaults, $ids);
return $contribution;
}
* @param string $contactType
* @param bool $status
*
- * @return array array of importable Fields
- * @access public
- * @static
+ * @return array
+ * array of importable Fields
*/
- static function &importableFields($contactType = 'Individual', $status = TRUE) {
+ public static function &importableFields($contactType = 'Individual', $status = TRUE) {
if (!self::$_importableFields) {
if (!self::$_importableFields) {
self::$_importableFields = array();
// Using new Dedupe rule.
$ruleParams = array(
'contact_type' => $contactType,
- 'used' => 'Unsupervised',
+ 'used' => 'Unsupervised',
);
$fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
$tmpContactField = array();
/**
* @return array
*/
- static function &exportableFields() {
+ public static function &exportableFields() {
if (!self::$_exportableFields) {
if (!self::$_exportableFields) {
self::$_exportableFields = array();
}
- $impFields = CRM_Contribute_DAO_Contribution::export();
- $expFieldProduct = CRM_Contribute_DAO_Product::export();
- $expFieldsContrib = CRM_Contribute_DAO_ContributionProduct::export();
- $typeField = CRM_Financial_DAO_FinancialType::export();
- $financialAccount = CRM_Financial_DAO_FinancialAccount::export();
- $optionField = CRM_Core_OptionValue::getFields($mode = 'contribute');
+ $impFields = CRM_Contribute_DAO_Contribution::export();
+ $expFieldProduct = CRM_Contribute_DAO_Product::export();
+ $expFieldsContrib = CRM_Contribute_DAO_ContributionProduct::export();
+ $typeField = CRM_Financial_DAO_FinancialType::export();
+ $financialAccount = CRM_Financial_DAO_FinancialAccount::export();
+ $optionField = CRM_Core_OptionValue::getFields($mode = 'contribute');
$contributionStatus = array(
'contribution_status' => array(
'title' => ts('Contribution Status'),
'name' => 'contribution_status',
- 'data_type' => CRM_Utils_Type::T_STRING
- ));
+ 'data_type' => CRM_Utils_Type::T_STRING,
+ ),
+ );
+
+ $contributionPage = array(
+ 'contribution_page' => array(
+ 'title' => ts('Contribution Page'),
+ 'name' => 'contribution_page',
+ 'where' => 'civicrm_contribution_page.title',
+ 'data_type' => CRM_Utils_Type::T_STRING,
+ ),
+ );
$contributionNote = array(
- 'contribution_note' =>
- array(
+ 'contribution_note' => array(
'title' => ts('Contribution Note'),
'name' => 'contribution_note',
- 'data_type' => CRM_Utils_Type::T_TEXT
- )
+ 'data_type' => CRM_Utils_Type::T_TEXT,
+ ),
);
$contributionRecurId = array(
'title' => ts('Recurring Contributions ID'),
'name' => 'contribution_recur_id',
'where' => 'civicrm_contribution.contribution_recur_id',
- 'data_type' => CRM_Utils_Type::T_INT
- ));
+ 'data_type' => CRM_Utils_Type::T_INT,
+ ),
+ );
$extraFields = array(
'contribution_batch' => array(
- 'title' => ts('Batch Name')
- )
+ 'title' => ts('Batch Name'),
+ ),
);
$softCreditFields = array(
'name' => 'contribution_soft_credit_name',
'title' => 'Soft Credit For',
'where' => 'civicrm_contact_d.display_name',
- 'data_type' => CRM_Utils_Type::T_STRING
+ 'data_type' => CRM_Utils_Type::T_STRING,
),
'contribution_soft_credit_amount' => array(
'name' => 'contribution_soft_credit_amount',
'title' => 'Soft Credit Amount',
'where' => 'civicrm_contribution_soft.amount',
- 'data_type' => CRM_Utils_Type::T_MONEY
+ 'data_type' => CRM_Utils_Type::T_MONEY,
),
'contribution_soft_credit_type' => array(
'name' => 'contribution_soft_credit_type',
'title' => 'Soft Credit Type',
'where' => 'contribution_softcredit_type.label',
- 'data_type' => CRM_Utils_Type::T_STRING
+ 'data_type' => CRM_Utils_Type::T_STRING,
),
'contribution_soft_credit_contribution_id' => array(
'name' => 'contribution_soft_credit_contribution_id',
'title' => 'Soft Credit For Contribution ID',
'where' => 'civicrm_contribution_soft.contribution_id',
- 'data_type' => CRM_Utils_Type::T_INT
+ 'data_type' => CRM_Utils_Type::T_INT,
),
);
- $fields = array_merge($impFields, $typeField, $contributionStatus, $optionField, $expFieldProduct,
+ $fields = array_merge($impFields, $typeField, $contributionStatus, $contributionPage, $optionField, $expFieldProduct,
$expFieldsContrib, $contributionNote, $contributionRecurId, $extraFields, $softCreditFields, $financialAccount,
CRM_Core_BAO_CustomField::getFieldsForImport('Contribution')
);
*
* @return array|null
*/
- static function getTotalAmountAndCount($status = NULL, $startDate = NULL, $endDate = NULL) {
+ public static function getTotalAmountAndCount($status = NULL, $startDate = NULL, $endDate = NULL) {
$where = array();
switch ($status) {
case 'Valid':
GROUP BY currency
";
- $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
+ $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
$amount = array();
- $count = 0;
+ $count = 0;
while ($dao->fetch()) {
$count += $dao->total_count;
$amount[] = CRM_Utils_Money::format($dao->total_amount, $dao->currency);
}
if ($count) {
- return array('amount' => implode(', ', $amount),
+ return array(
+ 'amount' => implode(', ', $amount),
'count' => $count,
);
}
*
* @param int $id
*
- * @return mixed|null $results no of deleted Contribution on success, false otherwise@access public
- * @static
+ * @return mixed|null
+ * $results no of deleted Contribution on success, false otherwise
*/
- static function deleteContribution($id) {
+ public static function deleteContribution($id) {
CRM_Utils_Hook::pre('delete', 'Contribution', $id, CRM_Core_DAO::$_nullArray);
$transaction = new CRM_Core_Transaction();
/**
* Check if there is a contribution with the same trxn_id or invoice_id
*
- * @param array $input an assoc array of name/value pairs
- * @param array $duplicates (reference ) store ids of duplicate contribs
- *
+ * @param array $input
+ * An assoc array of name/value pairs.
+ * @param array $duplicates
+ * (reference) store ids of duplicate contribs.
* @param int $id
*
- * @return boolean true if duplicate, false otherwise
- * @access public
- * static
+ * @return bool
+ * true if duplicate, false otherwise
*/
- static function checkDuplicate($input, &$duplicates, $id = NULL) {
+ public static function checkDuplicate($input, &$duplicates, $id = NULL) {
if (!$id) {
$id = CRM_Utils_Array::value('id', $input);
}
$input[3] = array($id, 'Integer');
}
- $query = "SELECT id FROM civicrm_contribution WHERE $clause";
- $dao = CRM_Core_DAO::executeQuery($query, $input);
+ $query = "SELECT id FROM civicrm_contribution WHERE $clause";
+ $dao = CRM_Core_DAO::executeQuery($query, $input);
$result = FALSE;
while ($dao->fetch()) {
$duplicates[] = $dao->id;
* contribution_product object. the params array could contain additional unused name/value
* pairs
*
- * @param array $params (reference ) an assoc array of name/value pairs
+ * @param array $params
+ * (reference) an assoc array of name/value pairs.
*
- * @return CRM_Contribute_BAO_ContributionProduct object
- * @access public
- * @static
+ * @return CRM_Contribute_DAO_ContributionProduct
*/
- static function addPremium(&$params) {
+ public static function addPremium(&$params) {
$contributionProduct = new CRM_Contribute_DAO_ContributionProduct();
$contributionProduct->copyValues($params);
return $contributionProduct->save();
* For now we only allow custom contribution fields to be in
* profile
*
- * @param boolean $addExtraFields true if special fields needs to be added
+ * @param bool $addExtraFields
+ * True if special fields needs to be added.
*
- * @return array the list of contribution fields
- * @static
- * @access public
+ * @return array
+ * the list of contribution fields
*/
- static function getContributionFields($addExtraFields = TRUE) {
+ public static function getContributionFields($addExtraFields = TRUE) {
$contributionFields = CRM_Contribute_DAO_Contribution::export();
$contributionFields = array_merge($contributionFields, CRM_Core_OptionValue::getFields($mode = 'contribute'));
/**
* Add extra fields specific to contribtion
*
- * @static
*/
- static function getSpecialContributionFields() {
+ public static function getSpecialContributionFields() {
$extraFields = array(
'contribution_soft_credit_name' => array(
'name' => 'contribution_soft_credit_name',
*
* @return array
*/
- static function getCurrentandGoalAmount($pageID) {
+ public static function getCurrentandGoalAmount($pageID) {
$query = "
SELECT p.goal_amount as goal, sum( c.total_amount ) as total
FROM civicrm_contribution_page p,
$config = CRM_Core_Config::singleton();
$params = array(1 => array($pageID, 'Integer'));
- $dao = CRM_Core_DAO::executeQuery($query, $params);
+ $dao = CRM_Core_DAO::executeQuery($query, $params);
if ($dao->fetch()) {
return array($dao->goal, $dao->total);
/**
* Get list of contribution In Honor of contact Ids
*
- * @param int $honorId In Honor of Contact ID
+ * @param int $honorId
+ * In Honor of Contact ID.
*
- * @return return the list of contribution fields
+ * @return array
+ * list of contribution fields
*
- * @access public
- * @static
*/
- static function getHonorContacts($honorId) {
+ public static function getHonorContacts($honorId) {
$params = array();
$honorDAO = new CRM_Contribute_DAO_ContributionSoft();
$honorDAO->contact_id = $honorId;
/**
* Get the sort name of a contact for a particular contribution
*
- * @param int $id id of the contribution
+ * @param int $id
+ * Id of the contribution.
*
- * @return null|string sort name of the contact if found
- * @static
- * @access public
+ * @return null|string
+ * sort name of the contact if found
*/
- static function sortName($id) {
+ public static function sortName($id) {
$id = CRM_Utils_Type::escape($id, 'Integer');
$query = "
*
* @return array
*/
- static function annual($contactID) {
+ public static function annual($contactID) {
if (is_array($contactID)) {
$contactIDs = implode(',', $contactID);
}
AND b.receive_date < $endDate
GROUP BY currency
";
- $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
- $count = 0;
+ $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
+ $count = 0;
$amount = $average = array();
while ($dao->fetch()) {
if ($dao->count > 0 && $dao->amount > 0) {
* Check if there is a contribution with the params passed in.
* Used for trxn_id,invoice_id and contribution_id
*
- * @param array $params an assoc array of name/value pairs
+ * @param array $params
+ * An assoc array of name/value pairs.
*
- * @return array contribution id if success else NULL
- * @access public
- * static
+ * @return array
+ * contribution id if success else NULL
*/
- static function checkDuplicateIds($params) {
+ public static function checkDuplicateIds($params) {
$dao = new CRM_Contribute_DAO_Contribution();
$clause = array();
}
}
$clause = implode(' AND ', $clause);
- $query = "SELECT id FROM civicrm_contribution WHERE $clause";
- $dao = CRM_Core_DAO::executeQuery($query, $input);
+ $query = "SELECT id FROM civicrm_contribution WHERE $clause";
+ $dao = CRM_Core_DAO::executeQuery($query, $input);
while ($dao->fetch()) {
$result = $dao->id;
/**
* Get the contribution details for component export
*
- * @param int $exportMode export mode
- * @param string $componentIds component ids
+ * @param int $exportMode
+ * Export mode.
+ * @param string $componentIds
+ * Component ids.
*
- * @return array associated array
+ * @return array
+ * associated array
*
- * @static
- * @access public
*/
- static function getContributionDetails($exportMode, $componentIds) {
+ public static function getContributionDetails($exportMode, $componentIds) {
$paymentDetails = array();
$componentClause = ' IN ( ' . implode(',', $componentIds) . ' ) ';
/**
* Create address associated with contribution record.
*
- * @param array $params an associated array
+ * @param array $params
* @param int $billingLocationTypeID
*
- * @return address id
- * @static
+ * @return int
+ * address id
*/
- static function createAddress(&$params, $billingLocationTypeID) {
+ public static function createAddress(&$params, $billingLocationTypeID) {
$billingFields = array(
'street_address',
'city',
* @param int $contributionId
* @param int $contactId
*
- * @access public
- * @static
*/
- static function deleteAddress($contributionId = NULL, $contactId = NULL) {
+ public static function deleteAddress($contributionId = NULL, $contactId = NULL) {
$clauses = array();
$contactJoin = NULL;
* This function check online pending contribution associated w/
* Online Event Registration or Online Membership signup.
*
- * @param int $componentId participant/membership id.
- * @param string $componentName Event/Membership.
+ * @param int $componentId
+ * Participant/membership id.
+ * @param string $componentName
+ * Event/Membership.
*
- * @return $contributionId pending contribution id.
- * @static
+ * @return int
+ * pending contribution id.
*/
- static function checkOnlinePendingContribution($componentId, $componentName) {
+ public static function checkOnlinePendingContribution($componentId, $componentName) {
$contributionId = NULL;
if (!$componentId ||
!in_array($componentName, array('Event', 'Membership'))
}
if ($componentName == 'Event') {
- $idName = 'participant_id';
+ $idName = 'participant_id';
$componentTable = 'civicrm_participant';
- $paymentTable = 'civicrm_participant_payment';
- $source = ts('Online Event Registration');
+ $paymentTable = 'civicrm_participant_payment';
+ $source = ts('Online Event Registration');
}
if ($componentName == 'Membership') {
- $idName = 'membership_id';
+ $idName = 'membership_id';
$componentTable = 'civicrm_membership';
- $paymentTable = 'civicrm_membership_payment';
- $source = ts('Online Contribution');
+ $paymentTable = 'civicrm_membership_payment';
+ $source = ts('Online Contribution');
}
$pendingStatusId = array_search('Pending', CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'));
}
/**
- * This function update contribution as well as related objects.
+ * Update contribution as well as related objects.
*/
- static function transitionComponents($params, $processContributionObject = FALSE) {
+ public static function transitionComponents($params, $processContributionObject = FALSE) {
// get minimum required values.
$contactId = CRM_Utils_Array::value('contact_id', $params);
$componentId = CRM_Utils_Array::value('component_id', $params);
// we process only ( Completed, Cancelled, or Failed ) contributions.
if (!$contributionId ||
- !in_array($contributionStatusId, array(array_search('Completed', $contributionStatuses),
- array_search('Cancelled', $contributionStatuses),
- array_search('Failed', $contributionStatuses),
- ))
+ !in_array($contributionStatusId, array(
+ array_search('Completed', $contributionStatuses),
+ array_search('Cancelled', $contributionStatuses),
+ array_search('Failed', $contributionStatuses),
+ ))
) {
return $updateResult;
}
CRM_Core_Error::fatal();
}
- $memberships = &$objects['membership'];
- $participant = &$objects['participant'];
+ $memberships = &$objects['membership'];
+ $participant = &$objects['participant'];
$pledgePayment = &$objects['pledge_payment'];
- $contribution = &$objects['contribution'];
+ $contribution = &$objects['contribution'];
if ($pledgePayment) {
$pledgePaymentIDs = array();
WHERE membership_id=$membership->id
ORDER BY id DESC
LIMIT 1;";
- $dao = new CRM_Core_DAO;
+ $dao = new CRM_Core_DAO();
$dao->query($sql);
if ($dao->fetch()) {
if (!empty($dao->membership_type_id)) {
}
}
+ // CRM-15735-to update the membership status as per the contribution receive date
+ if (!empty($params['receive_date'])) {
+ $status = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($membership->start_date,
+ $membership->end_date,
+ $membership->join_date,
+ $params['receive_date'],
+ FALSE,
+ $membership->membership_type_id,
+ (array) $membership
+ );
+ $membership->status_id = CRM_Utils_Array::value('id', $status, $membership->status_id);
+ $membership->save();
+ }
+
if ($currentMembership) {
CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew($currentMembership, NULL);
$dates = CRM_Member_BAO_MembershipType::getRenewalDatesForMembershipType($membership->id, NULL, NULL, $numterms);
//updating the membership log
$membershipLog = array();
$membershipLog = $formattedParams;
- $logStartDate = CRM_Utils_Date::customFormat(CRM_Utils_Array::value('log_start_date', $dates), $format);
- $logStartDate = ($logStartDate) ? CRM_Utils_Date::isoToMysql($logStartDate) : $formattedParams['start_date'];
+ $logStartDate = CRM_Utils_Date::customFormat(CRM_Utils_Array::value('log_start_date', $dates), $format);
+ $logStartDate = ($logStartDate) ? CRM_Utils_Date::isoToMysql($logStartDate) : $formattedParams['start_date'];
$membershipLog['start_date'] = $logStartDate;
$membershipLog['membership_id'] = $membership->id;
if ($processContribution) {
$contributionParams = array();
$fields = array(
- 'contact_id', 'total_amount', 'receive_date', 'is_test', 'campaign_id',
- 'payment_instrument_id', 'trxn_id', 'invoice_id', 'financial_type_id',
- 'contribution_status_id', 'non_deductible_amount', 'receipt_date', 'check_number',
+ 'contact_id',
+ 'total_amount',
+ 'receive_date',
+ 'is_test',
+ 'campaign_id',
+ 'payment_instrument_id',
+ 'trxn_id',
+ 'invoice_id',
+ 'financial_type_id',
+ 'contribution_status_id',
+ 'non_deductible_amount',
+ 'receipt_date',
+ 'check_number',
);
foreach ($fields as $field) {
if (empty($params[$field])) {
}
/**
- * This function returns all contribution related object ids.
+ * Returns all contribution related object ids.
*/
public static function getComponentDetails($contributionId) {
$componentDetails = $pledgePayment = array();
*
* @return null|string
*/
- static function contributionCount($contactId, $includeSoftCredit = TRUE) {
+ public static function contributionCount($contactId, $includeSoftCredit = TRUE) {
if (!$contactId) {
return 0;
}
/**
* Get individual id for onbehalf contribution
*
- * @param int $contributionId contribution id
- * @param int $contributorId contributor id
+ * @param int $contributionId
+ * Contribution id.
+ * @param int $contributorId
+ * Contributor id.
*
- * @return array $ids containing organization id and individual id
- * @access public
+ * @return array
+ * containing organization id and individual id
*/
- static function getOnbehalfIds($contributionId, $contributorId = NULL) {
+ public static function getOnbehalfIds($contributionId, $contributorId = NULL) {
$ids = array();
/**
* @return array
- * @static
*/
- static function getContributionDates() {
- $config = CRM_Core_Config::singleton();
+ public static function getContributionDates() {
+ $config = CRM_Core_Config::singleton();
$currentMonth = date('m');
- $currentDay = date('d');
+ $currentDay = date('d');
if ((int ) $config->fiscalYearStart['M'] > $currentMonth ||
((int ) $config->fiscalYearStart['M'] == $currentMonth &&
(int ) $config->fiscalYearStart['d'] > $currentDay
else {
$year = date('Y');
}
- $year = array('Y' => $year);
+ $year = array('Y' => $year);
$yearDate = $config->fiscalYearStart;
$yearDate = array_merge($year, $yearDate);
$yearDate = CRM_Utils_Date::format($yearDate);
);
}
- /*
+ /**
* Load objects relations to contribution object
* Objects are stored in the $_relatedObjects property
* In the first instance we are just moving functionality from BASEIpn -
- * see http://issues.civicrm.org/jira/browse/CRM-9996
+ * @see http://issues.civicrm.org/jira/browse/CRM-9996
*
- * @param array $input Input as delivered from Payment Processor
- * @param array $ids Ids as Loaded by Payment Processor
- * @param boolean $required Is Payment processor / contribution page required
- * @param boolean $loadAll - load all related objects - even where id not passed in? (allows API to call this)
* Note that the unit test for the BaseIPN class tests this function
- */
- /**
- * @param $input
- * @param $ids
+ *
+ * @param array $input
+ * Input as delivered from Payment Processor.
+ * @param array $ids
+ * Ids as Loaded by Payment Processor.
* @param bool $required
+ * Is Payment processor / contribution page required.
* @param bool $loadAll
+ * Load all related objects - even where id not passed in? (allows API to call this).
*
* @return bool
* @throws Exception
*/
- function loadRelatedObjects(&$input, &$ids, $required = FALSE, $loadAll = false) {
- if($loadAll){
- $ids = array_merge($this->getComponentDetails($this->id),$ids);
- if(empty($ids['contact']) && isset($this->contact_id)){
+ public function loadRelatedObjects(&$input, &$ids, $required = FALSE, $loadAll = FALSE) {
+ if ($loadAll) {
+ $ids = array_merge($this->getComponentDetails($this->id), $ids);
+ if (empty($ids['contact']) && isset($this->contact_id)) {
$ids['contact'] = $this->contact_id;
}
}
if (empty($this->_component)) {
- if (! empty($ids['event'])) {
+ if (!empty($ids['event'])) {
$this->_component = 'event';
}
else {
// CRM-6056
//in any case get the memberships associated with the contribution
//because we now support multiple memberships w/ price set
- // see if there are any other memberships to be considered for same contribution.
- $query = "
+ // see if there are any other memberships to be considered for same contribution.
+ $query = "
SELECT membership_id
FROM civicrm_membership_payment
WHERE contribution_id = %1 ";
$params = array(1 => array($this->id, 'Integer'));
- $dao = CRM_Core_DAO::executeQuery($query, $params );
- while ($dao->fetch()) {
+ $dao = CRM_Core_DAO::executeQuery($query, $params);
+ while ($dao->fetch()) {
if ($dao->membership_id) {
if (!is_array($ids['membership'])) {
$ids['membership'] = array();
}
- $ids['membership'][] = $dao->membership_id;
- }
+ $ids['membership'][] = $dao->membership_id;
}
+ }
if (array_key_exists('membership', $ids) && is_array($ids['membership'])) {
- foreach ($ids['membership'] as $id) {
- if (!empty($id)) {
- $membership = new CRM_Member_BAO_Membership();
- $membership->id = $id;
- if (!$membership->find(TRUE)) {
- throw new Exception("Could not find membership record: $id");
- }
- $membership->join_date = CRM_Utils_Date::isoToMysql($membership->join_date);
- $membership->start_date = CRM_Utils_Date::isoToMysql($membership->start_date);
- $membership->end_date = CRM_Utils_Date::isoToMysql($membership->end_date);
- $this->_relatedObjects['membership'][$membership->membership_type_id] = $membership;
- $membership->free();
+ foreach ($ids['membership'] as $id) {
+ if (!empty($id)) {
+ $membership = new CRM_Member_BAO_Membership();
+ $membership->id = $id;
+ if (!$membership->find(TRUE)) {
+ throw new Exception("Could not find membership record: $id");
}
+ $membership->join_date = CRM_Utils_Date::isoToMysql($membership->join_date);
+ $membership->start_date = CRM_Utils_Date::isoToMysql($membership->start_date);
+ $membership->end_date = CRM_Utils_Date::isoToMysql($membership->end_date);
+ $this->_relatedObjects['membership'][$membership->membership_type_id] = $membership;
+ $membership->free();
}
}
+ }
if (!empty($ids['pledge_payment'])) {
return TRUE;
}
- /*
+ /**
* Create array of message information - ie. return html version, txt version, to field
*
- * @param array $input incoming information
- * - is_recur - should this be treated as recurring (not sure why you wouldn't
+ * @param array $input
+ * Incoming information.
+ * - is_recur - should this be treated as recurring (not sure why you wouldn't
* just check presence of recur object but maintaining legacy approach
* to be careful)
- * @param array $ids IDs of related objects
- * @param array $values any values that may have already been compiled by calling process
+ * @param array $ids
+ * IDs of related objects.
+ * @param array $values
+ * Any values that may have already been compiled by calling process.
* This is augmented by values 'gathered' by gatherMessageValues
- * @param bool $returnMessageText distinguishes between whether to send message or return
- * message text. We are working towards this function ALWAYS returning message text & calling
- * function doing emails / pdfs with it
- * @return array $messageArray - messages
- */
- /**
- * @param $input
- * @param $ids
- * @param $values
* @param bool $recur
* @param bool $returnMessageText
+ * Distinguishes between whether to send message or return.
+ * message text. We are working towards this function ALWAYS returning message text & calling
+ * function doing emails / pdfs with it
*
+ * @return array
+ * messages
* @throws Exception
*/
- function composeMessageArray(&$input, &$ids, &$values, $recur = FALSE, $returnMessageText = TRUE) {
+ public function composeMessageArray(&$input, &$ids, &$values, $recur = FALSE, $returnMessageText = TRUE) {
if (empty($this->_relatedObjects)) {
$this->loadRelatedObjects($input, $ids);
}
}
}
- /*
+ /**
* Gather values for contribution mail - this function has been created
* as part of CRM-9996 refactoring as a step towards simplifying the composeMessage function
* Values related to the contribution in question are gathered
*
- * @param array $input input into function (probably from payment processor)
- * @param array $ids the set of ids related to the inpurt
- *
- * @return array $values
- *
- * NB don't add direct calls to the function as we intend to change the signature
- */
- /**
- * @param $input
- * @param $values
+ * @param array $input
+ * Input into function (probably from payment processor).
+ * @param array $values
* @param array $ids
+ * The set of ids related to the input.
*
- * @return mixed
+ * @return array
*/
- function _gatherMessageValues($input, &$values, $ids = array()) {
+ public function _gatherMessageValues($input, &$values, $ids = array()) {
// set display address of contributor
if ($this->address_id) {
- $addressParams = array('id' => $this->address_id);
- $addressDetails = CRM_Core_BAO_Address::getValues($addressParams, FALSE, 'id');
- $addressDetails = array_values($addressDetails);
+ $addressParams = array('id' => $this->address_id);
+ $addressDetails = CRM_Core_BAO_Address::getValues($addressParams, FALSE, 'id');
+ $addressDetails = array_values($addressDetails);
$values['address'] = $addressDetails[0]['display'];
}
if ($this->_component == 'contribute') {
if ($this->id) {
$lineItem = CRM_Price_BAO_LineItem::getLineItems($this->id, 'contribution', 1);
if (!empty($lineItem)) {
- $itemId = key($lineItem);
+ $itemId = key($lineItem);
foreach ($lineItem as &$eachItem) {
- if (array_key_exists($eachItem['membership_type_id'], $this->_relatedObjects['membership']) ) {
+ if (array_key_exists($eachItem['membership_type_id'], $this->_relatedObjects['membership'])) {
$eachItem['join_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->join_date);
$eachItem['start_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->start_date);
$eachItem['end_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->end_date);
}
}
$values['lineItem'][0] = $lineItem;
- $values['priceSetID'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItem[$itemId]['price_field_id'], 'price_set_id');
- }
+ $values['priceSetID'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItem[$itemId]['price_field_id'], 'price_set_id');
+ }
}
$relatedContact = CRM_Contribute_BAO_Contribution::getOnbehalfIds(
$ufJoinParams = array(
'entity_table' => 'civicrm_event',
- 'entity_id' => $ids['event'],
- 'module' => 'CiviEvent',
+ 'entity_id' => $ids['event'],
+ 'module' => 'CiviEvent',
);
list($custom_pre_id,
- $custom_post_ids
- ) = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams);
+ $custom_post_ids
+ ) = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams);
$values['custom_pre_id'] = $custom_pre_id;
$values['custom_post_id'] = $custom_post_ids;
*
* @param $values
* @param $input
- * @param $template CRM_Core_SMARTY
+ * @param CRM_Core_SMARTY $template
* @param bool $recur
* @param bool $returnMessageText
*
* @return mixed
*/
- function _assignMessageVariablesToTemplate(&$values, $input, &$template, $recur = FALSE, $returnMessageText = True) {
+ public function _assignMessageVariablesToTemplate(&$values, $input, &$template, $recur = FALSE, $returnMessageText = TRUE) {
$template->assign('first_name', $this->_relatedObjects['contact']->first_name);
$template->assign('last_name', $this->_relatedObjects['contact']->last_name);
$template->assign('displayName', $this->_relatedObjects['contact']->display_name);
if (!empty($values['lineItem']) && !empty($this->_relatedObjects['membership'])) {
- $template->assign('useForMember', true);
+ $template->assign('useForMember', TRUE);
}
//assign honor information to receipt message
$softRecord = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($this->id);
);
$softCreditTypes = CRM_Core_OptionGroup::values('soft_credit_type');
- $template->assign('soft_credit_type', $softRecord['soft_credit'][1]['soft_credit_type_label']);
+ $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 {
$softCreditTypes[$key] = $softCredit['soft_credit_type_label'];
$softCredits[$key] = array(
'Name' => $softCredit['contact_name'],
- 'Amount' => CRM_Utils_Money::format($softCredit['amount'], $softCredit['currency'])
+ 'Amount' => CRM_Utils_Money::format($softCredit['amount'], $softCredit['currency']),
);
}
$template->assign('softCreditTypes', $softCreditTypes);
$template->assign('price', $productDAO->price);
$template->assign('sku', $productDAO->sku);
}
- $template->assign('title', CRM_Utils_Array::value('title',$values));
- $amount = CRM_Utils_Array::value('total_amount', $input,(CRM_Utils_Array::value('amount', $input)),null);
- if(empty($amount) && isset($this->total_amount)){
+ $template->assign('title', CRM_Utils_Array::value('title', $values));
+ $amount = CRM_Utils_Array::value('total_amount', $input, (CRM_Utils_Array::value('amount', $input)), NULL);
+ if (empty($amount) && isset($this->total_amount)) {
$amount = $this->total_amount;
}
$template->assign('amount', $amount);
$values['financial_type_id'] = $this->financial_type_id;
}
-
$template->assign('trxn_id', $this->trxn_id);
$template->assign('receive_date',
CRM_Utils_Date::mysqlToIso($this->receive_date)
$values['params'] = array();
//to get email of primary participant.
$primaryEmail = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Email', $this->_relatedObjects['participant']->contact_id, 'email', 'contact_id');
- $primaryAmount[] = array('label' => $this->_relatedObjects['participant']->fee_level . ' - ' . $primaryEmail, 'amount' => $this->_relatedObjects['participant']->fee_amount);
+ $primaryAmount[] = array(
+ 'label' => $this->_relatedObjects['participant']->fee_level . ' - ' . $primaryEmail,
+ 'amount' => $this->_relatedObjects['participant']->fee_amount,
+ );
//build an array of cId/pId of participants
$additionalIDs = CRM_Event_BAO_Event::buildCustomProfile($this->_relatedObjects['participant']->id, NULL, $this->_relatedObjects['contact']->id, $isTest, TRUE);
unset($additionalIDs[$this->_relatedObjects['participant']->id]);
$additionalParticipantInfo = CRM_Contact_BAO_Contact::displayName($additional->contact_id);
}
$amount[0] = array('label' => $additional->fee_level, 'amount' => $additional->fee_amount);
- $primaryAmount[] = array('label' => $additional->fee_level . ' - ' . $additionalParticipantInfo, 'amount' => $additional->fee_amount);
+ $primaryAmount[] = array(
+ 'label' => $additional->fee_level . ' - ' . $additionalParticipantInfo,
+ 'amount' => $additional->fee_amount,
+ );
$additional->save();
$additional->free();
$template->assign('amount', $amount);
* Check whether payment processor supports
* cancellation of contribution subscription
*
- * @param int $contributionId contribution id
+ * @param int $contributionId
+ * Contribution id.
*
* @param bool $isNotCancelled
*
- * @return boolean
- * @access public
- * @static
+ * @return bool
*/
- static function isCancelSubscriptionSupported($contributionId, $isNotCancelled = TRUE) {
+ public static function isCancelSubscriptionSupported($contributionId, $isNotCancelled = TRUE) {
$cacheKeyString = "$contributionId";
$cacheKeyString .= $isNotCancelled ? '_1' : '_0';
/**
* Check whether subscription is already cancelled
*
- * @param int $contributionId contribution id
+ * @param int $contributionId
+ * Contribution id.
*
- * @return string $status contribution status
- * @access public
- * @static
+ * @return string
+ * contribution status
*/
- static function isSubscriptionCancelled($contributionId) {
+ public static function isSubscriptionCancelled($contributionId) {
$sql = "
SELECT cr.contribution_status_id
FROM civicrm_contribution_recur cr
LEFT JOIN civicrm_contribution con ON ( cr.id = con.contribution_recur_id )
WHERE con.id = %1 LIMIT 1";
- $params = array(1 => array($contributionId, 'Integer'));
+ $params = array(1 => array($contributionId, 'Integer'));
$statusId = CRM_Core_DAO::singleValueQuery($sql, $params);
- $status = CRM_Contribute_PseudoConstant::contributionStatus($statusId);
+ $status = CRM_Contribute_PseudoConstant::contributionStatus($statusId);
if ($status == 'Cancelled') {
return TRUE;
}
/**
* Create all financial accounts entry
*
- * @param array $params contribution object, line item array and params for trxn
+ * @param array $params
+ * Contribution object, line item array and params for trxn.
*
*
* @param array $financialTrxnValues
*
* @return null|object
- * @access public
- * @static
*/
- static function recordFinancialAccounts(&$params, $financialTrxnValues = NULL) {
+ public static function recordFinancialAccounts(&$params, $financialTrxnValues = NULL) {
$skipRecords = $update = $return = $isRelatedId = FALSE;
$additionalParticipantId = array();
$statusId = $params['contribution']->contribution_status_id;
// CRM-13964 partial payment
if (CRM_Utils_Array::value('contribution_status_id', $params) == array_search('Partially paid', $contributionStatuses)
- && !empty($params['partial_payment_total']) && !empty($params['partial_amount_pay'])) {
+ && !empty($params['partial_payment_total']) && !empty($params['partial_amount_pay'])
+ ) {
$partialAmtPay = $params['partial_amount_pay'];
$partialAmtTotal = $params['partial_payment_total'];
}
if (CRM_Utils_Array::value('contribution_status_id', $params) != array_search('Failed', $contributionStatuses) &&
- !(CRM_Utils_Array::value('contribution_status_id', $params) == array_search('Pending', $contributionStatuses) && !$params['contribution']->is_pay_later)) {
+ !(CRM_Utils_Array::value('contribution_status_id', $params) == array_search('Pending', $contributionStatuses) && !$params['contribution']->is_pay_later)
+ ) {
$skipRecords = TRUE;
- $pendingStatus = array(array_search('Pending', $contributionStatuses), array_search('In Progress', $contributionStatuses));
+ $pendingStatus = array(
+ array_search('Pending', $contributionStatuses),
+ array_search('In Progress', $contributionStatuses),
+ );
if (in_array(CRM_Utils_Array::value('contribution_status_id', $params), $pendingStatus)) {
$relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Accounts Receivable Account is' "));
$params['to_financial_account_id'] = CRM_Contribute_PseudoConstant::financialAccountType($params['financial_type_id'], $relationTypeId);
$params['trxnParams']['trxn_id'] = $params['prevContribution']->trxn_id;
$params['trxnParams']['status_id'] = $params['prevContribution']->contribution_status_id;
-
if (!(($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatuses)
- || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatuses))
- && $params['contribution']->contribution_status_id == array_search('Completed', $contributionStatuses))) {
+ || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatuses))
+ && $params['contribution']->contribution_status_id == array_search('Completed', $contributionStatuses))
+ ) {
$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) {
+ $params['contribution']->financial_type_id != $params['prevContribution']->financial_type_id
+ ) {
$incomeTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Income Account is' "));
$oldFinancialAccount = CRM_Contribute_PseudoConstant::financialAccountType($params['prevContribution']->financial_type_id, $incomeTypeId);
$newFinancialAccount = CRM_Contribute_PseudoConstant::financialAccountType($params['financial_type_id'], $incomeTypeId);
//Update contribution status
$params['trxnParams']['status_id'] = $params['contribution']->contribution_status_id;
if (!empty($params['contribution_status_id']) &&
- $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id) {
+ $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id
+ ) {
//Update Financial Records
self::updateFinancialAccounts($params, 'changedStatus');
}
$params['trxnParams']['payment_instrument_id'] = $params['contribution']->payment_instrument_id;
$params['trxnParams']['check_number'] = CRM_Utils_Array::value('check_number', $params);
if (array_key_exists('payment_instrument_id', $params)) {
- $params['trxnParams']['total_amount'] = - $trxnParams['total_amount'];
+ $params['trxnParams']['total_amount'] = -$trxnParams['total_amount'];
if (CRM_Utils_System::isNull($params['prevContribution']->payment_instrument_id) &&
- !CRM_Utils_System::isNull($params['contribution']->payment_instrument_id)) {
+ !CRM_Utils_System::isNull($params['contribution']->payment_instrument_id)
+ ) {
//check if status is changed from Pending to Completed
// do not update payment instrument changes for Pending to Completed
if (!($params['contribution']->contribution_status_id == array_search('Completed', $contributionStatuses) &&
- in_array($params['prevContribution']->contribution_status_id, $pendingStatus))) {
+ in_array($params['prevContribution']->contribution_status_id, $pendingStatus))
+ ) {
// for all other statuses create new financial records
self::updateFinancialAccounts($params, 'changePaymentInstrument');
$params['total_amount'] = $params['trxnParams']['total_amount'] = $trxnParams['total_amount'];
self::updateFinancialAccounts($params, 'changePaymentInstrument');
}
}
- else if ((!CRM_Utils_System::isNull($params['contribution']->payment_instrument_id) ||
- !CRM_Utils_System::isNull($params['prevContribution']->payment_instrument_id)) &&
- $params['contribution']->payment_instrument_id != $params['prevContribution']->payment_instrument_id) {
+ elseif ((!CRM_Utils_System::isNull($params['contribution']->payment_instrument_id) ||
+ !CRM_Utils_System::isNull($params['prevContribution']->payment_instrument_id)) &&
+ $params['contribution']->payment_instrument_id != $params['prevContribution']->payment_instrument_id
+ ) {
// for any other payment instrument changes create new financial records
self::updateFinancialAccounts($params, 'changePaymentInstrument');
$params['total_amount'] = $params['trxnParams']['total_amount'] = $trxnParams['total_amount'];
self::updateFinancialAccounts($params, 'changePaymentInstrument');
}
- else if (!CRM_Utils_System::isNull($params['contribution']->check_number) &&
- $params['contribution']->check_number != $params['prevContribution']->check_number) {
+ elseif (!CRM_Utils_System::isNull($params['contribution']->check_number) &&
+ $params['contribution']->check_number != $params['prevContribution']->check_number
+ ) {
// another special case when check number is changed, create new financial records
// create financial trxn with negative amount
$params['trxnParams']['check_number'] = $params['prevContribution']->check_number;
$params['trxnParams']['total_amount'] = $trxnParams['total_amount'] = $params['total_amount'] = $totalAmount;
$params['trxnParams']['trxn_id'] = $params['contribution']->trxn_id;
if (isset($totalAmount) &&
- $totalAmount != $params['prevContribution']->total_amount) {
+ $totalAmount != $params['prevContribution']->total_amount
+ ) {
//Update Financial Records
$params['trxnParams']['from_financial_account_id'] = NULL;
self::updateFinancialAccounts($params, 'changedAmount');
}
if (!empty($params['prevContribution']) && $entityTable == 'civicrm_participant'
- && $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id) {
+ && $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id
+ ) {
$eventID = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $entityId, 'event_id');
$feeLevel[] = str_replace('\ 1', '', $params['prevContribution']->amount_level);
CRM_Event_BAO_Participant::createDiscountTrxn($eventID, $params, $feeLevel);
/**
* Update all financial accounts entry
*
- * @param array $params contribution object, line item array and params for trxn
+ * @param array $params
+ * Contribution object, line item array and params for trxn.
*
- * @param string $context update scenarios
+ * @param string $context
+ * Update scenarios.
*
* @param null $skipTrxn
*
- * @access public
- * @static
*/
- static function updateFinancialAccounts(&$params, $context = NULL, $skipTrxn = NULL) {
+ public static function updateFinancialAccounts(&$params, $context = NULL, $skipTrxn = NULL) {
$itemAmount = $trxnID = NULL;
//get all the statuses
$contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
if (($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatus)
- || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
+ || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
&& $params['contribution']->contribution_status_id == array_search('Completed', $contributionStatus)
- && $context == 'changePaymentInstrument') {
+ && $context == 'changePaymentInstrument'
+ ) {
return;
}
if ($context == 'changedAmount' || $context == 'changeFinancialType') {
if ($params['prevContribution']->contribution_status_id == array_search('Completed', $contributionStatus)
&& ($params['contribution']->contribution_status_id == array_search('Refunded', $contributionStatus)
- || $params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus))) {
- $params['trxnParams']['total_amount'] = - $params['total_amount'];
+ || $params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus))
+ ) {
+ $params['trxnParams']['total_amount'] = -$params['total_amount'];
}
elseif (($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatus)
- && $params['prevContribution']->is_pay_later) || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus)) {
+ && $params['prevContribution']->is_pay_later) || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus)
+ ) {
$financialTypeID = CRM_Utils_Array::value('financial_type_id', $params) ? $params['financial_type_id'] : $params['prevContribution']->financial_type_id;
if ($params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus)) {
$params['trxnParams']['to_financial_account_id'] = NULL;
- $params['trxnParams']['total_amount'] = - $params['total_amount'];
+ $params['trxnParams']['total_amount'] = -$params['total_amount'];
}
$relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Accounts Receivable Account is' "));
$params['trxnParams']['from_financial_account_id'] = CRM_Contribute_PseudoConstant::financialAccountType(
if ($context == 'changedStatus') {
if (($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatus)
- || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
- && ($params['contribution']->contribution_status_id == array_search('Completed', $contributionStatus))) {
+ || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
+ && ($params['contribution']->contribution_status_id == array_search('Completed', $contributionStatus))
+ ) {
$query = "UPDATE civicrm_financial_item SET status_id = %1 WHERE entity_id = %2 and entity_table = 'civicrm_line_item'";
$sql = "SELECT id, amount FROM civicrm_financial_item WHERE entity_id = %1 and entity_table = 'civicrm_line_item'";
}
else {
if ($context == 'changeFinancialType' || $params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus)
- || $params['contribution']->contribution_status_id == array_search('Refunded', $contributionStatus)) {
- $diff = -1;
+ || $params['contribution']->contribution_status_id == array_search('Refunded', $contributionStatus)
+ ) {
+ $diff = -1;
}
$amount = $diff * $fieldValues['line_total'];
}
'status_id' => $prevfinancialItem->status_id,
'financial_account_id' => $financialAccount,
'entity_table' => 'civicrm_line_item',
- 'entity_id' => $fieldValues['id']
+ 'entity_id' => $fieldValues['id'],
);
CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
/**
* Check status validation on update of a contribution
*
- * @param array $values previous form values before submit
+ * @param array $values
+ * Previous form values before submit.
*
- * @param array $fields the input form values
+ * @param array $fields
+ * The input form values.
*
- * @param array $errors list of errors
+ * @param array $errors
+ * List of errors.
*
* @return bool
- * @access public
- * @static
*/
- static function checkStatusValidation($values, &$fields, &$errors) {
+ public static function checkStatusValidation($values, &$fields, &$errors) {
if (CRM_Utils_System::isNull($values) && !empty($fields['id'])) {
$values['contribution_status_id'] = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $fields['id'], 'contribution_status_id');
if ($values['contribution_status_id'] == $fields['contribution_status_id']) {
'Completed' => array('Cancelled', 'Refunded'),
'Pending' => array('Cancelled', 'Completed', 'Failed'),
'In Progress' => array('Cancelled', 'Completed', 'Failed'),
- 'Refunded' => array('Cancelled', 'Completed')
+ 'Refunded' => array('Cancelled', 'Completed'),
);
if (!in_array($contributionStatuses[$fields['contribution_status_id']], $checkStatus[$contributionStatuses[$values['contribution_status_id']]])) {
- $errors['contribution_status_id'] = ts("Cannot change contribution status from %1 to %2.", array(1 => $contributionStatuses[$values['contribution_status_id']], 2 => $contributionStatuses[$fields['contribution_status_id']]));
+ $errors['contribution_status_id'] = ts("Cannot change contribution status from %1 to %2.", array(
+ 1 => $contributionStatuses[$values['contribution_status_id']],
+ 2 => $contributionStatuses[$fields['contribution_status_id']],
+ ));
}
}
*
* CRM-12155
*
- * @param integer $contactId contact id
+ * @param int $contactId
+ * Contact id.
*
- * @access public
- * @static
*/
- static function deleteContactContribution($contactId) {
+ public static function deleteContactContribution($contactId) {
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->contact_id = $contactId;
$contribution->find();
* Get options for a given contribution field.
* @see CRM_Core_DAO::buildOptions
*
- * @param String $fieldName
- * @param String $context : @see CRM_Core_DAO::buildOptionsContext
- * @param Array $props : whatever is known about this dao object
+ * @param string $fieldName
+ * @param string $context see CRM_Core_DAO::buildOptionsContext.
+ * @param array $props whatever is known about this dao object.
*
- * @return Array|bool
+ * @return array|bool
*/
public static function buildOptions($fieldName, $context = NULL, $props = array()) {
$className = __CLASS__;
if (!empty($props['contribution_page_id'])) {
$page = civicrm_api('contribution_page', 'getsingle', array(
'version' => 3,
- 'id' => ($props['contribution_page_id'])
+ 'id' => ($props['contribution_page_id']),
));
$types = (array) CRM_Utils_Array::value('payment_processor', $page, 0);
$params['condition'] = 'id IN (' . implode(',', $types) . ')';
}
break;
+
// CRM-13981 This field was combined with soft_credits in 4.5 but the api still supports it
case 'honor_type_id':
$className = 'CRM_Contribute_BAO_ContributionSoft';
*
* CRM-13231
*
- * @param integer $financialTypeId Financial Type id
+ * @param int $financialTypeId
+ * Financial Type id.
*
* @param string $relationName
*
* @return array|bool
- * @access public
- * @static
*/
- static function validateFinancialType($financialTypeId, $relationName = 'Expense Account is') {
+ public static function validateFinancialType($financialTypeId, $relationName = 'Expense Account is') {
$expenseTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE '{$relationName}' "));
$financialAccount = CRM_Contribute_PseudoConstant::financialAccountType($financialTypeId, $expenseTypeId);
}
- /*
+ /**
* Function to record additional payment for partial and refund contributions
*
- * @param integer $contributionId : is the invoice contribution id (got created after processing participant payment)
- * @param array $trxnData : to take user provided input of transaction details.
- * @param string $paymentType 'owed' for purpose of recording partial payments, 'refund' for purpose of recording refund payments
- */
- /**
* @param int $contributionId
- * @param $trxnsData
+ * is the invoice contribution id (got created after processing participant payment).
+ * @param array $trxnsData
+ * to take user provided input of transaction details.
* @param string $paymentType
+ * 'owed' for purpose of recording partial payments, 'refund' for purpose of recording refund payments.
* @param int $participantId
*
* @return null|object
*/
- static function recordAdditionalPayment($contributionId, $trxnsData, $paymentType = 'owed', $participantId = NULL) {
+ public static function recordAdditionalPayment($contributionId, $trxnsData, $paymentType = 'owed', $participantId = NULL) {
$statusId = CRM_Core_OptionGroup::getValue('contribution_status', 'Completed', 'name');
$getInfoOf['id'] = $contributionId;
$defaults = array();
$params = array_merge($defaults, $params);
$params['skipLineItem'] = TRUE;
$trxnsData['trxn_date'] = !empty($trxnsData['trxn_date']) ? $trxnsData['trxn_date'] : date('YmdHis');
- $trxnsData['total_amount'] = - $trxnsData['total_amount'];
+ $trxnsData['total_amount'] = -$trxnsData['total_amount'];
$relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Accounts Receivable Account is' "));
$trxnsData['from_financial_account_id'] = CRM_Contribute_PseudoConstant::financialAccountType($contributionDAO->financial_type_id, $relationTypeId);
'amount' => $financialTrxn->total_amount,
'status_id' => array_search('Paid', $financialItemStatus),
'entity_id' => $lineItemId->id,
- 'entity_table' => 'civicrm_line_item'
+ 'entity_table' => 'civicrm_line_item',
);
- $trxnIds['id'] = $financialTrxn->id;
+ $trxnIds['id'] = $financialTrxn->id;
CRM_Financial_BAO_FinancialItem::create($addFinancialEntry, NULL, $trxnIds);
}
if ($participantId) {
*
* @throws CRM_Core_Exception
*/
- static function addActivityForPayment($entityObj, $trxnObj, $activityType, $component, $contributionId) {
+ public static function addActivityForPayment($entityObj, $trxnObj, $activityType, $component, $contributionId) {
if ($component == 'event') {
$date = CRM_Utils_Date::isoToMysql($trxnObj->trxn_date);
$paymentAmount = CRM_Utils_Money::format($trxnObj->total_amount, $trxnObj->currency);
*
* @return mixed
*/
- static function getPaymentInfo($id, $component, $getTrxnInfo = FALSE, $usingLineTotal = FALSE) {
+ public static function getPaymentInfo($id, $component, $getTrxnInfo = FALSE, $usingLineTotal = FALSE) {
if ($component == 'event') {
$entity = 'participant';
$entityTable = 'civicrm_participant';
if (empty($total) || $usingLineTotal) {
// for additional participants
if ($entityTable == 'civicrm_participant') {
- $ids = CRM_Event_BAO_Participant::getParticipantIds($contributionId);
- $total = 0;
- foreach ($ids as $val) {
- $total += CRM_Price_BAO_LineItem::getLineTotal($val, $entityTable);
- }
+ $ids = CRM_Event_BAO_Participant::getParticipantIds($contributionId);
+ $total = 0;
+ foreach ($ids as $val) {
+ $total += CRM_Price_BAO_LineItem::getLineTotal($val, $entityTable);
+ }
}
else {
$total = CRM_Price_BAO_LineItem::getLineTotal($id, $entityTable);
$statuses = CRM_Contribute_PseudoConstant::contributionStatus();
$financialTypes = CRM_Contribute_PseudoConstant::financialType();
- while($resultDAO->fetch()) {
+ while ($resultDAO->fetch()) {
$paidByLabel = CRM_Core_PseudoConstant::getLabel('CRM_Core_BAO_FinancialTrxn', 'payment_instrument_id', $resultDAO->payment_instrument_id);
$paidByName = CRM_Core_PseudoConstant::getName('CRM_Core_BAO_FinancialTrxn', 'payment_instrument_id', $resultDAO->payment_instrument_id);
$val = array(
*
* @return FinancialAccountId
*/
- static function getFinancialAccountId($financialTypeId) {
+ public static function getFinancialAccountId($financialTypeId) {
$accountRel = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Sales Tax Account is' "));
$searchParams = array(
'entity_table' => 'civicrm_financial_type',
'account_relationship' => $accountRel,
);
$result = array();
- CRM_Financial_BAO_FinancialTypeAccount::retrieve( $searchParams, $result );
+ CRM_Financial_BAO_FinancialTypeAccount::retrieve($searchParams, $result);
- return CRM_Utils_Array::value( 'financial_account_id', $result );
+ return CRM_Utils_Array::value('financial_account_id', $result);
}
public static function checkTaxAmount($params, $isLineItem = FALSE) {
$prevContributionValue = CRM_Contribute_BAO_Contribution::getValues($contrbutionParams, $values, $ids);
// To assign pervious finantial type on update of contribution
- if (!isset($params['financial_type_id'])) {
+ if (!isset($params['financial_type_id'])) {
$params['financial_type_id'] = $prevContributionValue->financial_type_id;
}
- else if (isset($params['financial_type_id']) && !array_key_exists($params['financial_type_id'], $taxRates)) {
+ elseif (isset($params['financial_type_id']) && !array_key_exists($params['financial_type_id'], $taxRates)) {
// Assisn tax Amount on update of contrbution
if (!empty($prevContributionValue->tax_amount)) {
$params['tax_amount'] = 'null';
// New Contrbution and update of contribution with tax rate financial type
if (isset($params['financial_type_id']) && array_key_exists($params['financial_type_id'], $taxRates) &&
- empty($params['skipLineItem']) && !$isLineItem)
- {
- $taxRateParams = $taxRates[$params['financial_type_id']];
- $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($params['total_amount'], $taxRateParams);
- $params['tax_amount'] = round($taxAmount['tax_amount'], 2);
+ empty($params['skipLineItem']) && !$isLineItem
+ ) {
+ $taxRateParams = $taxRates[$params['financial_type_id']];
+ $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($params['total_amount'], $taxRateParams);
+ $params['tax_amount'] = round($taxAmount['tax_amount'], 2);
- // Get Line Item on update of contribution
- if (isset($params['id'])) {
- CRM_Price_BAO_LineItem::getLineItemArray($params, array($params['id']));
- }
- else {
- CRM_Price_BAO_LineItem::getLineItemArray($params);
- }
- foreach ($params['line_item'] as $setID => $priceField) {
- foreach ($priceField as $priceFieldID => $priceFieldValue) {
- $params['line_item'][$setID][$priceFieldID]['tax_amount'] = $params['tax_amount'];
- }
+ // Get Line Item on update of contribution
+ if (isset($params['id'])) {
+ CRM_Price_BAO_LineItem::getLineItemArray($params, array($params['id']));
+ }
+ else {
+ CRM_Price_BAO_LineItem::getLineItemArray($params);
+ }
+ foreach ($params['line_item'] as $setID => $priceField) {
+ foreach ($priceField as $priceFieldID => $priceFieldValue) {
+ $params['line_item'][$setID][$priceFieldID]['tax_amount'] = $params['tax_amount'];
}
- $params['total_amount'] = $params['total_amount'] + $params['tax_amount'];
}
- else if (isset($params['api.line_item.create'])) {
+ $params['total_amount'] = $params['total_amount'] + $params['tax_amount'];
+ }
+ elseif (isset($params['api.line_item.create'])) {
// Update total amount of contribution using lineItem
$taxAmountArray = array();
foreach ($params['api.line_item.create'] as $key => $value) {
if (isset($value['financial_type_id']) && array_key_exists($value['financial_type_id'], $taxRates)) {
- $taxRate = $taxRates[$value['financial_type_id']];
+ $taxRate = $taxRates[$value['financial_type_id']];
$taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($value['line_total'], $taxRate);
$taxAmountArray[] = round($taxAmount['tax_amount'], 2);
}
}
return $params;
}
+
}