本文整理汇总了PHP中CRM_Contact_BAO_Contact::createFlat方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Contact_BAO_Contact::createFlat方法的具体用法?PHP CRM_Contact_BAO_Contact::createFlat怎么用?PHP CRM_Contact_BAO_Contact::createFlat使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Contact_BAO_Contact
的用法示例。
在下文中一共展示了CRM_Contact_BAO_Contact::createFlat方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: postProcess
/**
* Process the form
*
* @return void
* @access public
*/
function postProcess()
{
$contactID = $this->get('contactID');
if (!$contactID) {
// make a copy of params so we dont destroy our params
// (since we pass this by reference)
$premiumParams = $params = $this->_params;
// so now we have a confirmed financial transaction
// lets create or update a contact first
require_once 'api/crm.php';
$ids = CRM_Core_BAO_UFGroup::findContact($params);
$contactsIDs = explode(',', $ids);
// if we find more than one contact, use the first one
$contact_id = $contactsIDs[0];
$contact = null;
if ($contact_id) {
$contact =& crm_get_contact(array('contact_id' => $contact_id));
}
$ids = array();
if (!$contact || !is_a($contact, 'CRM_Contact_BAO_Contact')) {
$contact =& CRM_Contact_BAO_Contact::createFlat($params, $ids);
} else {
// need to fix and unify all contact creation
$idParams = array('id' => $contact_id, 'contact_id' => $contact_id);
$defaults = array();
CRM_Contact_BAO_Contact::retrieve($idParams, $defaults, $ids);
$contact =& CRM_Contact_BAO_Contact::createFlat($params, $ids);
}
if (is_a($contact, 'CRM_Core_Error')) {
CRM_Core_Error::fatal("Failed creating contact for contributor");
}
$contactID = $contact->id;
$this->set('contactID', $contactID);
}
$contributionType =& new CRM_Contribute_DAO_ContributionType();
$contributionType->id = $this->_values['contribution_type_id'];
if (!$contributionType->find(true)) {
CRM_Core_Error::fatal("Could not find a system table");
}
// add some contribution type details to the params list
// if folks need to use it
$this->_params['contributionType_name'] = $contributionType->name;
$this->_params['contributionType_accounting_code'] = $contributionType->accounting_code;
$this->_params['contributionForm_id'] = $this->_values['id'];
require_once 'CRM/Contribute/Payment.php';
$payment =& CRM_Contribute_Payment::singleton($this->_mode);
if ($this->_contributeMode == 'express') {
$result =& $payment->doExpressCheckout($this->_params);
} else {
$result =& $payment->doDirectPayment($this->_params);
}
if (is_a($result, 'CRM_Core_Error')) {
CRM_Core_Error::displaySessionError($result);
CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contribute/transact', '_qf_Main_display=true'));
}
$now = date('YmdHis');
$this->_params = array_merge($this->_params, $result);
$this->_params['receive_date'] = $now;
$this->set('params', $this->_params);
$this->assign('trxn_id', $result['trxn_id']);
$this->assign('receive_date', CRM_Utils_Date::mysqlToIso($this->_params['receive_date']));
// result has all the stuff we need
// lets archive it to a financial transaction
$config =& CRM_Core_Config::singleton();
$receiptDate = null;
if ($this->_values['is_email_receipt']) {
$receiptDate = $now;
}
if ($contributionType->is_deductible) {
$this->assign('is_deductible', true);
$this->set('is_deductible', true);
}
// assigning Premium information to receipt tpl
if ($premiumParams['selectProduct'] && $premiumParams['selectProduct'] != 'no_thanks') {
$startDate = $endDate = "";
$this->assign('selectPremium', true);
require_once 'CRM/Contribute/DAO/Product.php';
$productDAO =& new CRM_Contribute_DAO_Product();
$productDAO->id = $premiumParams['selectProduct'];
$productDAO->find(true);
$this->assign('product_name', $productDAO->name);
$this->assign('price', $productDAO->price);
$this->assign('sku', $productDAO->sku);
$this->assign('option', $premiumParams['options_' . $premiumParams['selectProduct']]);
$periodType = $productDAO->period_type;
if ($periodType) {
$fixed_period_start_day = $productDAO->fixed_period_start_day;
$duration_unit = $productDAO->duration_unit;
$duration_interval = $productDAO->duration_interval;
if ($periodType == 'rolling') {
$startDate = date('Y-m-d');
} else {
if ($periodType == 'fixed') {
if ($fixed_period_start_day) {
//.........这里部分代码省略.........