本文整理匯總了PHP中CRM_Contribute_DAO_Contribution::free方法的典型用法代碼示例。如果您正苦於以下問題:PHP CRM_Contribute_DAO_Contribution::free方法的具體用法?PHP CRM_Contribute_DAO_Contribution::free怎麽用?PHP CRM_Contribute_DAO_Contribution::free使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類CRM_Contribute_DAO_Contribution
的用法示例。
在下文中一共展示了CRM_Contribute_DAO_Contribution::free方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: foreach
//.........這裏部分代碼省略.........
continue;
}
if (!empty($recur->cancel_date) && $recur->cancel_date != '0000-00-00 00:00:00') {
$this->_addToSummary("SUBSCRIPTION {$subscriptionId} IS MARKED AS CANCELLED. PLEASE REVIEW {$csv_name}");
continue;
}
if ($paymentNum == $totalRecurrences) {
$recur->end_date = $mail_date;
$recur->contribution_status_id = _CRM_PROCESS_AUTHORIZE_REPORT_STATUS_COMPLETE;
}
if ($contributionStatus != CRM_Core_Payment_AuthorizeNet::AUTH_APPROVED) {
$recur->failure_count++;
}
CRM_Core_DAO::transaction('BEGIN');
if (!$recur->save()) {
$this->_addToSummary("THE RECURRING CONTRIBUTION COULD NOT BE UPDATED. PLEASE REVIEW {$csv_name} FOR subscription_id={$subscription_id}");
CRM_Core_DAO::transaction('ROLLBACK');
continue;
}
$this->_addToSummary("The recurring transaction has been updated.");
if ($paymentNum == 1) {
// update first contribution
if (!$first_contribution->save()) {
$this->_addToSummary("THE CONTRIBUTION COULD NOT BE UPDATED. PLEASE REVIEW {$csv_name} FOR subscription_id={$subscription_id}");
CRM_Core_DAO::transaction('ROLLBACK');
continue;
}
// copy $first_contribution to $contribution for use later
$contribution = $first_contribution;
} else {
// create a contribution and then get it processed
$contribution = new CRM_Contribute_DAO_Contribution();
// make sure that the transaction doesn't already exist
$contribution->trxn_id = $transactionId;
if ($contribution->find()) {
$this->_addToSummary("THE TRANSACTION {$transaction_id} ALREADY EXISTS IN CIVICRM. PLEASE REVIEW {$csv_name} FOR subscription_id={$subscription_id}");
CRM_Core_DAO::transaction('ROLLBACK');
continue;
}
$contribution->contribution_recur_id = $recur->id;
$contribution->receive_date = $mail_date;
$contribution->total_amount = $amount;
$contribution->net_amount = $amount;
$contribution->trxn_id = $transactionId;
$contribution->currency = $currency;
$contribution->contribution_status_id = $this->_get_contribution_status($contributionStatus);
$contribution->contact_id = $first_contribution->contact_id;
$contribution->contribution_type_id = $first_contribution->contribution_type_id;
$contribution->contribution_page_id = $first_contribution->contribution_page_id;
$contribution->payment_instrument_id = $first_contribution->payment_instrument_id;
$contribution->is_test = $first_contribution->is_test;
$contribution->invoice_id = md5(uniqid(rand(), true));
if ($contribution_page->is_email_receipt) {
$contribution->receipt_date = date('YmdHis');
}
if (!$contribution->save()) {
$this->_addToSummary("THE CONTRIBUTION COULD NOT BE SAVED. PLEASE REVIEW {$csv_name} FOR subscription_id={$subscription_id}");
CRM_Core_DAO::transaction('ROLLBACK');
continue;
}
}
$this->_addToSummary('Contribution saved');
// create the transaction record
$trxnParams = array('entity_table' => 'civicrm_contribution', 'entity_id' => $contribution->id, 'trxn_date' => $mail_date, 'trxn_type' => 'Debit', 'total_amount' => $amount, 'fee_amount' => $contribution->fee_amount, 'net_amount' => $contribution->net_amount, 'currency' => $contribution->currency, 'payment_processor' => 'AuthNet_AIM', 'trxn_id' => $contribution->trxn_id);
require_once 'CRM/Contribute/BAO/FinancialTrxn.php';
$trxn =& CRM_Contribute_BAO_FinancialTrxn::create($trxnParams);
if (is_a($trxn, 'CRM_Core_Error')) {
$this->_addToSummary("A TRANSACTION RECORD COULD NOT BE CREATED. PLEASE REVIEW {$csv_name} FOR subscription_id={$subscription_id}");
CRM_Core_DAO::transaction('ROLLBACK');
continue;
} else {
$this->_addToSummary("Transaction record created.");
}
// get the title of the contribution page
$title = $contribution_page->title;
// format the money
require_once 'CRM/Utils/Money.php';
$formattedAmount = CRM_Utils_Money::format($amount, $contribution->currency);
CRM_Core_DAO::transaction('COMMIT');
// get the contribution type
require_once 'CRM/Contribute/BAO/ContributionType.php';
$contribution_type_name = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionType', $contribution->contribution_type_id, 'name');
// create an activity history record
$ahParams = array('entity_table' => 'civicrm_contact', 'entity_id' => $recur->contact_id, 'activity_type' => $contribution_type_name, 'module' => 'CiviContribute', 'callback' => 'CRM_Contribute_Page_Contribution::details', 'activity_id' => $contribution->id, 'activity_summary' => "{$formattedAmount} - {$title} (online)", 'activity_date' => $mail_date);
require_once 'api/History.php';
if (is_a(crm_create_activity_history($ahParams), 'CRM_Core_Error')) {
$this->_addToSummary("AN ACTIVITY HISTORY RECORD COULD NOT BE CREATED.");
} else {
$this->_addToSummary("Activity History record created.");
}
$this->_addToSummary("Transaction {$transactionId} has been processed.");
$first_contribution->free();
$contribution_page->free();
$contribution->free();
$recur->free();
$trxn->free();
}
$this->_addToSummary("Done processing {$csv_name}");
$this->_addToSummary('');
}