本文整理汇总了PHP中CRM_Contribute_DAO_Contribution::import方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Contribute_DAO_Contribution::import方法的具体用法?PHP CRM_Contribute_DAO_Contribution::import怎么用?PHP CRM_Contribute_DAO_Contribution::import使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Contribute_DAO_Contribution
的用法示例。
在下文中一共展示了CRM_Contribute_DAO_Contribution::import方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array
/**
* Combine all the importable fields from the lower levels object.
*
* The ordering is important, since currently we do not have a weight
* scheme. Adding weight is super important and should be done in the
* next week or so, before this can be called complete.
*
* @param string $contactType
* @param bool $status
*
* @return array
* array of importable Fields
*/
public static function &importableFields($contactType = 'Individual', $status = TRUE)
{
if (!self::$_importableFields) {
if (!self::$_importableFields) {
self::$_importableFields = array();
}
if (!$status) {
$fields = array('' => array('title' => ts('- do not import -')));
} else {
$fields = array('' => array('title' => ts('- Contribution Fields -')));
}
$note = CRM_Core_DAO_Note::import();
$tmpFields = CRM_Contribute_DAO_Contribution::import();
unset($tmpFields['option_value']);
$optionFields = CRM_Core_OptionValue::getFields($mode = 'contribute');
$contactFields = CRM_Contact_BAO_Contact::importableFields($contactType, NULL);
// Using new Dedupe rule.
$ruleParams = array('contact_type' => $contactType, 'used' => 'Unsupervised');
$fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
$tmpContactField = array();
if (is_array($fieldsArray)) {
foreach ($fieldsArray as $value) {
//skip if there is no dupe rule
if ($value == 'none') {
continue;
}
$customFieldId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', $value, 'id', 'column_name');
$value = $customFieldId ? 'custom_' . $customFieldId : $value;
$tmpContactField[trim($value)] = $contactFields[trim($value)];
if (!$status) {
$title = $tmpContactField[trim($value)]['title'] . ' ' . ts('(match to contact)');
} else {
$title = $tmpContactField[trim($value)]['title'];
}
$tmpContactField[trim($value)]['title'] = $title;
}
}
$tmpContactField['external_identifier'] = $contactFields['external_identifier'];
$tmpContactField['external_identifier']['title'] = $contactFields['external_identifier']['title'] . ' ' . ts('(match to contact)');
$tmpFields['contribution_contact_id']['title'] = $tmpFields['contribution_contact_id']['title'] . ' ' . ts('(match to contact)');
$fields = array_merge($fields, $tmpContactField);
$fields = array_merge($fields, $tmpFields);
$fields = array_merge($fields, $note);
$fields = array_merge($fields, $optionFields);
$fields = array_merge($fields, CRM_Financial_DAO_FinancialType::export());
$fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Contribution'));
self::$_importableFields = $fields;
}
return self::$_importableFields;
}
示例2: array
/**
* combine all the importable fields from the lower levels object
*
* The ordering is important, since currently we do not have a weight
* scheme. Adding weight is super important and should be done in the
* next week or so, before this can be called complete.
*
* @return array array of importable Fields
* @access public
*/
function &importableFields($contacType = 'Individual', $status = true)
{
if (!self::$_importableFields) {
if (!self::$_importableFields) {
self::$_importableFields = array();
}
if (!$status) {
$fields = array('' => array('title' => ts('- do not import -')));
} else {
$fields = array('' => array('title' => ts('- Contribution Fields -')));
}
require_once 'CRM/Core/DAO/Note.php';
$note = CRM_Core_DAO_Note::import();
$tmpFields = CRM_Contribute_DAO_Contribution::import();
unset($tmpFields['option_value']);
require_once 'CRM/Core/OptionValue.php';
$optionFields = CRM_Core_OptionValue::getFields($mode = 'contribute');
require_once 'CRM/Contact/BAO/Contact.php';
$contactFields = CRM_Contact_BAO_Contact::importableFields($contacType, null);
// Using new Dedupe rule.
$ruleParams = array('contact_type' => $contacType, 'level' => 'Strict');
require_once 'CRM/Dedupe/BAO/Rule.php';
$fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
$tmpConatctField = array();
if (is_array($fieldsArray)) {
foreach ($fieldsArray as $value) {
//skip if there is no dupe rule
if ($value == 'none') {
continue;
}
$tmpConatctField[trim($value)] = $contactFields[trim($value)];
if (!$status) {
$title = $tmpConatctField[trim($value)]['title'] . " (match to contact)";
} else {
$title = $tmpConatctField[trim($value)]['title'];
}
$tmpConatctField[trim($value)]['title'] = $title;
}
}
$tmpConatctField['external_identifier'] = $contactFields['external_identifier'];
$tmpConatctField['external_identifier']['title'] = $contactFields['external_identifier']['title'] . " (match to contact)";
$tmpFields['contribution_contact_id']['title'] = $tmpFields['contribution_contact_id']['title'] . " (match to contact)";
$fields = array_merge($fields, $tmpConatctField);
$fields = array_merge($fields, $tmpFields);
$fields = array_merge($fields, $note);
$fields = array_merge($fields, $optionFields);
require_once 'CRM/Contribute/DAO/ContributionType.php';
$fields = array_merge($fields, CRM_Contribute_DAO_ContributionType::export());
$fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Contribution'));
self::$_importableFields = $fields;
}
return self::$_importableFields;
}
示例3: import
/**
* Handle the values in import mode.
*
* @param int $onDuplicate
* The code for what action to take on duplicates.
* @param array $values
* The array of values belonging to this line.
*
* @return bool
* the result of this processing
*/
public function import($onDuplicate, &$values)
{
// first make sure this is a valid line
$response = $this->summary($values);
if ($response != CRM_Import_Parser::VALID) {
return $response;
}
$params =& $this->getActiveFieldParams();
$formatted = array('version' => 3);
// don't add to recent items, CRM-4399
$formatted['skipRecentView'] = TRUE;
//for date-Formats
$session = CRM_Core_Session::singleton();
$dateType = $session->get('dateTypes');
$customDataType = !empty($params['contact_type']) ? $params['contact_type'] : 'Contribution';
$customFields = CRM_Core_BAO_CustomField::getFields($customDataType);
//CRM-10994
if (isset($params['total_amount']) && $params['total_amount'] == 0) {
$params['total_amount'] = '0.00';
}
foreach ($params as $key => $val) {
if ($val) {
switch ($key) {
case 'receive_date':
case 'cancel_date':
case 'receipt_date':
case 'thankyou_date':
$params[$key] = CRM_Utils_Date::formatDate($params[$key], $dateType);
break;
case 'pledge_payment':
$params[$key] = CRM_Utils_String::strtobool($val);
break;
}
if ($customFieldID = CRM_Core_BAO_CustomField::getKeyID($key)) {
if ($customFields[$customFieldID]['data_type'] == 'Date') {
CRM_Contact_Import_Parser_Contact::formatCustomDate($params, $formatted, $dateType, $key);
unset($params[$key]);
} elseif ($customFields[$customFieldID]['data_type'] == 'Boolean') {
$params[$key] = CRM_Utils_String::strtoboolstr($val);
}
}
}
}
//date-Format part ends
static $indieFields = NULL;
if ($indieFields == NULL) {
$tempIndieFields = CRM_Contribute_DAO_Contribution::import();
$indieFields = $tempIndieFields;
}
$paramValues = array();
foreach ($params as $key => $field) {
if ($field == NULL || $field === '') {
continue;
}
$paramValues[$key] = $field;
}
//import contribution record according to select contact type
if ($onDuplicate == CRM_Import_Parser::DUPLICATE_SKIP && (!empty($paramValues['contribution_contact_id']) || !empty($paramValues['external_identifier']))) {
$paramValues['contact_type'] = $this->_contactType;
} elseif ($onDuplicate == CRM_Import_Parser::DUPLICATE_UPDATE && (!empty($paramValues['contribution_id']) || !empty($values['trxn_id']) || !empty($paramValues['invoice_id']))) {
$paramValues['contact_type'] = $this->_contactType;
} elseif (!empty($params['soft_credit'])) {
$paramValues['contact_type'] = $this->_contactType;
} elseif (!empty($paramValues['pledge_payment'])) {
$paramValues['contact_type'] = $this->_contactType;
}
//need to pass $onDuplicate to check import mode.
if (!empty($paramValues['pledge_payment'])) {
$paramValues['onDuplicate'] = $onDuplicate;
}
require_once 'CRM/Utils/DeprecatedUtils.php';
$formatError = _civicrm_api3_deprecated_formatted_param($paramValues, $formatted, TRUE, $onDuplicate);
if ($formatError) {
array_unshift($values, $formatError['error_message']);
if (CRM_Utils_Array::value('error_data', $formatError) == 'soft_credit') {
return CRM_Contribute_Import_Parser::SOFT_CREDIT_ERROR;
} elseif (CRM_Utils_Array::value('error_data', $formatError) == 'pledge_payment') {
return CRM_Contribute_Import_Parser::PLEDGE_PAYMENT_ERROR;
}
return CRM_Import_Parser::ERROR;
}
if ($onDuplicate != CRM_Import_Parser::DUPLICATE_UPDATE) {
$formatted['custom'] = CRM_Core_BAO_CustomField::postProcess($formatted, NULL, 'Contribution');
} else {
//fix for CRM-2219 - Update Contribution
// onDuplicate == CRM_Import_Parser::DUPLICATE_UPDATE
if (!empty($paramValues['invoice_id']) || !empty($paramValues['trxn_id']) || !empty($paramValues['contribution_id'])) {
$dupeIds = array('id' => CRM_Utils_Array::value('contribution_id', $paramValues), 'trxn_id' => CRM_Utils_Array::value('trxn_id', $paramValues), 'invoice_id' => CRM_Utils_Array::value('invoice_id', $paramValues));
$ids['contribution'] = CRM_Contribute_BAO_Contribution::checkDuplicateIds($dupeIds);
//.........这里部分代码省略.........
示例4: array
/**
* combine all the importable fields from the lower levels object
*
* The ordering is important, since currently we do not have a weight
* scheme. Adding weight is super important and should be done in the
* next week or so, before this can be called complete.
*
* @return array array of importable Fields
* @access public
*/
function &importableFields()
{
if (!$GLOBALS['_CRM_CONTRIBUTE_BAO_CONTRIBUTION']['_importableFields']) {
if (!$GLOBALS['_CRM_CONTRIBUTE_BAO_CONTRIBUTION']['_importableFields']) {
$GLOBALS['_CRM_CONTRIBUTE_BAO_CONTRIBUTION']['_importableFields'] = array();
}
if (!$status) {
$fields = array('' => array('title' => ts('- do not import -')));
} else {
$fields = array('' => array('title' => ts('- Contribution Fields -')));
}
$tmpFields = CRM_Contribute_DAO_Contribution::import();
$contactFields = CRM_Contact_BAO_Contact::importableFields('Individual', null);
require_once 'CRM/Core/DAO/DupeMatch.php';
$dao =& new CRM_Core_DAO_DupeMatch();
$dao->find(true);
$fieldsArray = explode('AND', $dao->rule);
$tmpConatctField = array();
if (is_array($fieldsArray)) {
foreach ($fieldsArray as $value) {
$tmpConatctField[trim($value)] = $contactFields[trim($value)];
$tmpConatctField[trim($value)]['title'] = $tmpConatctField[trim($value)]['title'] . " (match to contact)";
}
}
$fields = array_merge($fields, $tmpConatctField);
$fields = array_merge($fields, $tmpFields);
$fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Contribution'));
$GLOBALS['_CRM_CONTRIBUTE_BAO_CONTRIBUTION']['_importableFields'] = $fields;
}
return $GLOBALS['_CRM_CONTRIBUTE_BAO_CONTRIBUTION']['_importableFields'];
}
示例5: import
/**
* handle the values in import mode
*
* @param int $onDuplicate the code for what action to take on duplicates
* @param array $values the array of values belonging to this line
*
* @return boolean the result of this processing
* @access public
*/
function import($onDuplicate, &$values)
{
// first make sure this is a valid line
$response = $this->summary($values);
if ($response != CRM_CONTRIBUTE_IMPORT_PARSER_VALID) {
return $response;
}
$params =& $this->getActiveFieldParams();
//for date-Formats
$session =& CRM_Core_Session::singleton();
$dateType = $session->get("dateTypes");
foreach ($params as $key => $val) {
if ($val) {
switch ($key) {
case 'receive_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
case 'cancel_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
case 'receipt_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
case 'thankyou_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
}
}
}
//date-Format part ends
$formatted = array();
if ($GLOBALS['_CRM_CONTRIBUTE_IMPORT_PARSER_CONTRIBUTION']['indieFields'] == null) {
require_once 'CRM/Contribute/DAO/Contribution.php';
$tempIndieFields =& CRM_Contribute_DAO_Contribution::import();
$GLOBALS['_CRM_CONTRIBUTE_IMPORT_PARSER_CONTRIBUTION']['indieFields'] = $tempIndieFields;
}
foreach ($params as $key => $field) {
if ($field == null || $field === '') {
continue;
}
$value = array($key => $field);
_crm_add_formatted_contrib_param($value, $formatted);
}
if ($this->_contactIdIndex < 0) {
if ($GLOBALS['_CRM_CONTRIBUTE_IMPORT_PARSER_CONTRIBUTION']['cIndieFields'] == null) {
require_once 'CRM/Contact/BAO/Contact.php';
$cTempIndieFields = CRM_Contact_BAO_Contact::importableFields('Individual', null);
$GLOBALS['_CRM_CONTRIBUTE_IMPORT_PARSER_CONTRIBUTION']['cIndieFields'] = $cTempIndieFields;
}
foreach ($params as $key => $field) {
if ($field == null || $field === '') {
continue;
}
if (is_array($field)) {
foreach ($field as $value) {
$break = false;
if (is_array($value)) {
foreach ($value as $name => $testForEmpty) {
if ($name !== 'phone_type' && ($testForEmpty === '' || $testForEmpty == null)) {
$break = true;
break;
}
}
} else {
$break = true;
}
if (!$break) {
_crm_add_formatted_param($value, $contactFormatted);
}
}
continue;
}
$value = array($key => $field);
if (array_key_exists($key, $GLOBALS['_CRM_CONTRIBUTE_IMPORT_PARSER_CONTRIBUTION']['cIndieFields'])) {
$value['contact_type'] = 'Individual';
}
_crm_add_formatted_param($value, $contactFormatted);
}
$contactFormatted['contact_type'] = 'Individual';
$error = _crm_duplicate_formatted_contact($contactFormatted);
$matchedIDs = explode(',', $error->_errors[0]['params'][0]);
if (CRM_Contribute_Import_Parser_Contribution::isDuplicate($error)) {
if (count($matchedIDs) > 1) {
array_unshift($values, "Multiple matching contact records detected for this row. The contribution was not imported");
return CRM_CONTRIBUTE_IMPORT_PARSER_ERROR;
} else {
$cid = $matchedIDs[0];
$formatted['contact_id'] = $cid;
$newContribution = crm_create_contribution_formatted($formatted, $onDuplicate);
if (is_a($newContribution, CRM_Core_Error)) {
array_unshift($values, $newContribution->_errors[0]['message']);
//.........这里部分代码省略.........
示例6: import
/**
* handle the values in import mode
*
* @param int $onDuplicate the code for what action to take on duplicates
* @param array $values the array of values belonging to this line
*
* @return boolean the result of this processing
* @access public
*/
function import($onDuplicate, &$values)
{
// first make sure this is a valid line
$response = $this->summary($values);
if ($response != CRM_Contribute_Import_Parser::VALID) {
return $response;
}
$params =& $this->getActiveFieldParams();
$formatted = array();
// don't add to recent items, CRM-4399
$formatted['skipRecentView'] = true;
//for date-Formats
$session =& CRM_Core_Session::singleton();
$dateType = $session->get("dateTypes");
$customFields = CRM_Core_BAO_CustomField::getFields(CRM_Utils_Array::value('contact_type', $params));
foreach ($params as $key => $val) {
if ($val) {
switch ($key) {
case 'receive_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
case 'cancel_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
case 'receipt_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
case 'thankyou_date':
CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key);
break;
case 'pledge_payment':
$params[$key] = CRM_Utils_String::strtobool($val);
break;
}
if ($customFieldID = CRM_Core_BAO_CustomField::getKeyID($key)) {
if ($customFields[$customFieldID]['data_type'] == 'Date') {
CRM_Import_Parser_Contact::formatCustomDate($params, $formatted, $dateType, $key);
unset($params[$key]);
} else {
if ($customFields[$customFieldID]['data_type'] == 'Boolean') {
$params[$key] = CRM_Utils_String::strtoboolstr($val);
}
}
}
}
}
//date-Format part ends
static $indieFields = null;
if ($indieFields == null) {
require_once 'CRM/Contribute/DAO/Contribution.php';
$tempIndieFields =& CRM_Contribute_DAO_Contribution::import();
$indieFields = $tempIndieFields;
}
$paramValues = array();
foreach ($params as $key => $field) {
if ($field == null || $field === '') {
continue;
}
$paramValues[$key] = $field;
}
//import contribution record according to select contact type
if ($onDuplicate == CRM_Contribute_Import_Parser::DUPLICATE_SKIP && ($paramValues['contribution_contact_id'] || $paramValues['external_identifier'])) {
$paramValues['contact_type'] = $this->_contactType;
} else {
if ($onDuplicate == CRM_Contribute_Import_Parser::DUPLICATE_UPDATE && ($paramValues['contribution_id'] || $values['trxn_id'] || $paramValues['invoice_id'])) {
$paramValues['contact_type'] = $this->_contactType;
} else {
if (!empty($params['soft_credit'])) {
$paramValues['contact_type'] = $this->_contactType;
} else {
if (CRM_Utils_Array::value('pledge_payment', $paramValues)) {
$paramValues['contact_type'] = $this->_contactType;
}
}
}
}
//need to pass $onDuplicate to check import mode.
if (CRM_Utils_Array::value('pledge_payment', $paramValues)) {
$paramValues['onDuplicate'] = $onDuplicate;
}
$formatError = _civicrm_contribute_formatted_param($paramValues, $formatted, true);
if ($formatError) {
array_unshift($values, $formatError['error_message']);
if (CRM_Utils_Array::value('error_data', $formatError) == 'soft_credit') {
return CRM_Contribute_Import_Parser::SOFT_CREDIT_ERROR;
} else {
if (CRM_Utils_Array::value('error_data', $formatError) == 'pledge_payment') {
return CRM_Contribute_Import_Parser::PLEDGE_PAYMENT_ERROR;
}
}
return CRM_Contribute_Import_Parser::ERROR;
//.........这里部分代码省略.........
示例7: array
function &exportableFields()
{
if (!self::$_exportableFields) {
if (!self::$_exportableFields) {
self::$_exportableFields = array();
}
require_once 'CRM/Core/OptionValue.php';
require_once 'CRM/Contribute/DAO/Product.php';
require_once 'CRM/Contribute/DAO/ContributionProduct.php';
require_once 'CRM/Contribute/DAO/ContributionType.php';
$impFields = CRM_Contribute_DAO_Contribution::import();
$expFieldProduct = CRM_Contribute_DAO_Product::export();
$expFieldsContrib = CRM_Contribute_DAO_ContributionProduct::export();
$typeField = CRM_Contribute_DAO_ContributionType::export();
$optionField = CRM_Core_OptionValue::getFields($mode = 'contribute');
$fields = array_merge($impFields, $typeField);
$fields = array_merge($fields, $expFieldProduct);
$fields = array_merge($fields, $expFieldsContrib);
$fields = array_merge($fields, $optionField);
$fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Contribution'));
self::$_exportableFields = $fields;
}
return self::$_exportableFields;
}