| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
protected $_isRecurring = FALSE;
protected $_isFirstOrLastRecurringPayment = FALSE;
+
/**
* Constructor
*/
* @throws CRM_Core_Exception
*/
public function setInputParameters($parameters) {
- if(!is_array($parameters)) {
+ if (!is_array($parameters)) {
throw new CRM_Core_Exception('Invalid input parameters');
}
$this->_inputParameters = $parameters;
}
+
/**
* Validate incoming data. This function is intended to ensure that incoming data matches
* It provides a form of pseudo-authentication - by checking the calling fn already knows
* Paypal allows you to resend Instant Payment Notifications if you, for example, moved site
* and didn't update your IPN URL.
*
- * @param array $input interpreted values from the values returned through the IPN
- * @param array $ids more interpreted values (ids) from the values returned through the IPN
- * @param array $objects an empty array that will be populated with loaded object
- * @param boolean $required boolean Return FALSE if the relevant objects don't exist
- * @param integer $paymentProcessorID Id of the payment processor ID in use
+ * @param array $input
+ * Interpreted values from the values returned through the IPN.
+ * @param array $ids
+ * More interpreted values (ids) from the values returned through the IPN.
+ * @param array $objects
+ * An empty array that will be populated with loaded object.
+ * @param bool $required
+ * Boolean Return FALSE if the relevant objects don't exist.
+ * @param int $paymentProcessorID
+ * Id of the payment processor ID in use.
* @return boolean
*/
public function validateData(&$input, &$ids, &$objects, $required = TRUE, $paymentProcessorID = NULL) {
$contact = new CRM_Contact_BAO_Contact();
$contact->id = $ids['contact'];
if (!$contact->find(TRUE)) {
- CRM_Core_Error::debug_log_message("Could not find contact record: {$ids['contact']} in IPN request: ".print_r($input, TRUE));
+ CRM_Core_Error::debug_log_message("Could not find contact record: {$ids['contact']} in IPN request: " . print_r($input, TRUE));
echo "Failure: Could not find contact record: {$ids['contact']}<p>";
return FALSE;
}
$contribution = new CRM_Contribute_BAO_Contribution();
$contribution->id = $ids['contribution'];
if (!$contribution->find(TRUE)) {
- CRM_Core_Error::debug_log_message("Could not find contribution record: {$contribution->id} in IPN request: ".print_r($input, TRUE));
+ CRM_Core_Error::debug_log_message("Could not find contribution record: {$contribution->id} in IPN request: " . print_r($input, TRUE));
echo "Failure: Could not find contribution record for {$contribution->id}<p>";
return FALSE;
}
* @param $input
* @param array $ids
* @param array $objects
- * @param boolean $required
- * @param integer $paymentProcessorID
+ * @param bool $required
+ * @param int $paymentProcessorID
* @param array $error_handling
*
- * @return multitype:number NULL |boolean
+ * @return boolean
*/
public function loadObjects(&$input, &$ids, &$objects, $required, $paymentProcessorID, $error_handling = NULL) {
if (empty($error_handling)) {
try {
$success = $contribution->loadRelatedObjects($input, $ids, $required);
}
- catch(Exception $e) {
+ catch (Exception $e) {
$success = FALSE;
if (!empty($error_handling['log_error'])) {
CRM_Core_Error::debug_log_message($e->getMessage());
}
if (!empty($error_handling['echo_error'])) {
- echo ($e->getMessage());
+ echo($e->getMessage());
}
if (!empty($error_handling['return_error'])) {
return array(
$participant = &$objects['participant'];
//CRM-15546
- $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
$contribution->receive_date = CRM_Utils_Date::isoToMysql($contribution->receive_date);
$contribution->receipt_date = CRM_Utils_Date::isoToMysql($contribution->receipt_date);
$contribution->thankyou_date = CRM_Utils_Date::isoToMysql($contribution->thankyou_date);
if (empty($input['skipComponentSync'])) {
if (!empty($memberships)) {
// if transaction is failed then set "Cancelled" as membership status
- $membershipStatuses = CRM_Core_PseudoConstant::get('CRM_Member_DAO_Membership', 'status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $membershipStatuses = CRM_Core_PseudoConstant::get('CRM_Member_DAO_Membership', 'status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
foreach ($memberships as $membership) {
if ($membership) {
$membership->status_id = $membershipStatuses['Cancelled'];
}
if ($participant) {
- $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
$participant->status_id = $participantStatuses['Cancelled'];
$participant->save();
}
if (empty($contribution->id)) {
$addLineItems = TRUE;
}
- $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
$contribution->contribution_status_id = $contributionStatuses['Cancelled'];
$contribution->cancel_date = self::$_now;
$contribution->cancel_reason = CRM_Utils_Array::value('reasonCode', $input);
if (empty($input['skipComponentSync'])) {
if (!empty($memberships)) {
- $membershipStatuses = CRM_Core_PseudoConstant::get('CRM_Member_DAO_Membership', 'status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $membershipStatuses = CRM_Core_PseudoConstant::get('CRM_Member_DAO_Membership', 'status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
foreach ($memberships as $membership) {
if ($membership) {
$membership->status_id = $membershipStatuses['Cancelled'];
}
if ($participant) {
- $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
$participant->status_id = $participantStatuses['Cancelled'];
$participant->save();
}
if (is_numeric($memberships)) {
$memberships = array($objects['membership']);
}
- $participant = &$objects['participant'];
- $event = &$objects['event'];
- $changeToday = CRM_Utils_Array::value('trxn_date', $input, self::$_now);
+ $participant = &$objects['participant'];
+ $event = &$objects['event'];
+ $changeToday = CRM_Utils_Array::value('trxn_date', $input, self::$_now);
$recurContrib = &$objects['contributionRecur'];
$values = array();
$values['receipt_from_name'] = $domainValues[0];
$values['receipt_from_email'] = $domainValues[1];
}
- if($recurContrib && $recurContrib->id){
+ if ($recurContrib && $recurContrib->id) {
//CRM-13273 - is_email_receipt setting on recurring contribution should take precedence over contribution page setting
$values['is_email_receipt'] = $recurContrib->is_email_receipt;
}
}
if (!empty($memberships)) {
- $membershipsUpdate = array( );
+ $membershipsUpdate = array();
foreach ($memberships as $membershipTypeIdKey => $membership) {
if ($membership) {
$format = '%Y%m%d';
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)) {
(array) $membership
);
- $formatedParams = array('status_id' => CRM_Utils_Array::value('id', $calcStatus, 2),
+ $formatedParams = array(
+ 'status_id' => CRM_Utils_Array::value('id', $calcStatus, 2),
'join_date' => CRM_Utils_Date::customFormat(CRM_Utils_Array::value('join_date', $dates), $format),
'start_date' => CRM_Utils_Date::customFormat(CRM_Utils_Array::value('start_date', $dates), $format),
'end_date' => CRM_Utils_Date::customFormat(CRM_Utils_Array::value('end_date', $dates), $format),
$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;
$values['is_email_receipt'] = 1;
}
if (empty($input['skipComponentSync'])) {
- $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
$participant->status_id = $participantStatuses['Registered'];
}
$participant->save();
if (empty($contribution->id)) {
$addLineItems = TRUE;
}
- $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1));
+ $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
$contribution->contribution_status_id = $contributionStatuses['Completed'];
$contribution->is_test = $input['is_test'];
$contribution->fee_amount = CRM_Utils_Array::value('fee_amount', $input, 0);
//add lineitems for recurring payments
if (!empty($objects['contributionRecur']) && $objects['contributionRecur']->id) {
if ($addLineItems) {
- $input ['line_item'] = $this->addRecurLineItems($objects['contributionRecur']->id, $contribution);
+ $input['line_item'] = $this->addRecurLineItems($objects['contributionRecur']->id, $contribution);
}
else {
// this is just to prevent e-notices when we call recordFinancialAccounts - per comments on that line - intention is somewhat unclear
// From a lot of code reading /debugging I'm still not sure the intent WRT first & subsequent payments in this code
// it would be good if someone added some comments or refactored this
if ($contribution->id) {
- $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1));
- if ((empty($input['prevContribution']) && $paymentProcessorId) || (!$input['prevContribution']->is_pay_later &&
-- $input['prevContribution']->contribution_status_id == $contributionStatuses['Pending'])) {
- $input['payment_processor'] = $paymentProcessorId;
+ $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
+ if ((empty($input['prevContribution']) && $paymentProcessorId) || (!$input['prevContribution']->is_pay_later && $input['prevContribution']->contribution_status_id == $contributionStatuses['Pending'])) {
+ $input['payment_processor'] = $paymentProcessorId;
}
$input['contribution_status_id'] = $contributionStatuses['Completed'];
$input['total_amount'] = $input['amount'];
* Send receipt from contribution. Note that the compose message part has been moved to contribution
* In general LoadObjects is called first to get the objects but the composeMessageArray function now calls it
*
- * @param array $input Incoming data from Payment processor
- * @param array $ids Related object IDs
+ * @param array $input
+ * Incoming data from Payment processor.
+ * @param array $ids
+ * Related object IDs.
* @param $objects
- * @param array $values values related to objects that have already been loaded
- * @param bool $recur is it part of a recurring contribution
- * @param bool $returnMessageText Should text be returned instead of sent. This
- * is because the function is also used to generate pdfs
+ * @param array $values
+ * Values related to objects that have already been loaded.
+ * @param bool $recur
+ * Is it part of a recurring contribution.
+ * @param bool $returnMessageText
+ * Should text be returned instead of sent. This.
+ * is because the function is also used to generate pdfs
*
* @return array
*/
* Update contribution status - this is only called from one place in the code &
* it is unclear whether it is a function on the way in or on the way out
*
- * @param unknown_type $params
- * @return void|Ambigous <value, unknown, array>
+ * @param array $params
+ * @return void|int
*/
public function updateContributionStatus(&$params) {
// get minimum required values.
- $statusId = CRM_Utils_Array::value('contribution_status_id', $params);
- $componentId = CRM_Utils_Array::value('component_id', $params);
- $componentName = CRM_Utils_Array::value('componentName', $params);
+ $statusId = CRM_Utils_Array::value('contribution_status_id', $params);
+ $componentId = CRM_Utils_Array::value('component_id', $params);
+ $componentName = CRM_Utils_Array::value('componentName', $params);
$contributionId = CRM_Utils_Array::value('contribution_id', $params);
if (!$contributionId || !$componentId || !$componentName || !$statusId) {
$contribution = &$objects['contribution'];
- $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name','flip' => 1));
+ $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array(
+ 'labelColumn' => 'name',
+ 'flip' => 1,
+ ));
$input['skipComponentSync'] = CRM_Utils_Array::value('skipComponentSync', $params);
if ($statusId == $contributionStatuses['Cancelled']) {
$baseIPN->cancelled($objects, $transaction, $input);
//set values for ipn code.
foreach (array(
- 'fee_amount', 'check_number', 'payment_instrument_id') as $field) {
+ 'fee_amount',
+ 'check_number',
+ 'payment_instrument_id',
+ ) as $field) {
if (!$input[$field] = CRM_Utils_Array::value($field, $params)) {
$input[$field] = $contribution->$field;
}
return $statusId;
}
- /*
+ /**
* Update pledge associated with a recurring contribution
*
* If the contribution has a pledge_payment record pledge, then update the pledge_payment record & pledge based on that linkage.
*
* The pledge payment record should already exist & will need to be updated with the new contribution ID.
* If not the contribution will also need to be linked to the pledge
- */
- /**
- * @param $contribution
+ *
+ * @param CRM_Contribute_BAO_Contribution $contribution
*/
public function updateRecurLinkedPledge(&$contribution) {
$returnProperties = array('id', 'pledge_id');
- $paymentDetails = $paymentIDs = array();
+ $paymentDetails = $paymentIDs = array();
if (CRM_Core_DAO::commonRetrieveAll('CRM_Pledge_DAO_PledgePayment', 'contribution_id', $contribution->id,
- $paymentDetails, $returnProperties
- )) {
+ $paymentDetails, $returnProperties
+ )
+ ) {
foreach ($paymentDetails as $key => $value) {
$paymentIDs[] = $value['id'];
$pledgeId = $value['pledge_id'];
// we have a pledge now we need to get the oldest unpaid payment
$paymentDetails = CRM_Pledge_BAO_PledgePayment::getOldestPledgePayment($pledgeId);
- if(empty($paymentDetails['id'])){
+ if (empty($paymentDetails['id'])) {
// we can assume this pledge is now completed
// return now so we don't create a core error & roll back
return;
$lineSets[$priceField->price_set_id][] = $value;
if ($value['entity_table'] == 'civicrm_membership') {
try {
- civicrm_api3('membership_payment', 'create', array('membership_id' => $value['entity_id'], 'contribution_id' => $contribution->id));
+ civicrm_api3('membership_payment', 'create', array(
+ 'membership_id' => $value['entity_id'],
+ 'contribution_id' => $contribution->id,
+ ));
}
catch (CiviCRM_API3_Exception $e) {
// we are catching & ignoring errors as an extra precaution since lost IPNs may be more serious that lost membership_payment data
return $lineSets;
}
- // function to copy custom data of the
- // initial contribution into its recurring contributions
/**
+ * copy custom data of the initial contribution into its recurring contributions
* @param int $recurId
* @param int $targetContributionId
*/
}
foreach ($table as $tableName => $tableColumns) {
- $insert = 'INSERT INTO ' . $tableName . ' (' . implode(', ', $tableColumns) . ') ';
+ $insert = 'INSERT INTO ' . $tableName . ' (' . implode(', ', $tableColumns) . ') ';
$tableColumns[0] = $targetContributionId;
- $select = 'SELECT ' . implode(', ', $tableColumns);
- $from = ' FROM ' . $tableName;
- $where = " WHERE {$tableName}.entity_id = {$sourceContributionId}";
- $query = $insert . $select . $from . $where;
- $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
+ $select = 'SELECT ' . implode(', ', $tableColumns);
+ $from = ' FROM ' . $tableName;
+ $where = " WHERE {$tableName}.entity_id = {$sourceContributionId}";
+ $query = $insert . $select . $from . $where;
+ $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
}
}
}
}
- // function to copy soft credit record of first recurring contribution
- // and add new soft credit against $targetContributionId
/**
+ * copy soft credit record of first recurring contribution
+ * and add new soft credit against $targetContributionId
+ *
* @param int $recurId
* @param int $targetContributionId
*/
$soft_contribution->save();
}
}
+
}