Ejemplo n.º 1
0
 /**
  * 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)
 {
     $response = $this->summary($values);
     if ($response != CRM_Import_Parser::VALID) {
         $importRecordParams = array($statusFieldName => 'INVALID', "{$statusFieldName}Msg" => "Invalid (Error Code: {$response})");
         return $response;
     }
     $this->_updateWithId = FALSE;
     $this->_parseStreetAddress = CRM_Utils_Array::value('street_address_parsing', CRM_Core_BAO_Setting::valueOptions(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'address_options'), FALSE);
     $params = $this->getActiveFieldParams();
     $contactType = $this->_contactType ? $this->_contactType : 'Organization';
     $formatted = array('contact_type' => $contactType);
     $session = CRM_Core_Session::singleton();
     $dateType = $session->get('dateTypes');
     $formatted['id'] = $this->_params['contact_id'];
     $setDateFields = array_intersect_key($this->_params, array_flip($this->_dateFields));
     CRM_Contact_Import_Parser_Contact::formatCommonData($this->_params, $formatted, $formatted);
     foreach ($formatted['custom'] as $key => $val) {
         $this->_params['custom_' . $key] = $val[-1]['value'];
     }
     $this->_params['skipRecentView'] = TRUE;
     $this->_params['check_permissions'] = TRUE;
     $this->_params['entity_id'] = $formatted['id'];
     try {
         civicrm_api3('custom_value', 'create', $this->_params);
     } catch (CiviCRM_API3_Exception $e) {
         $error = $e->getMessage();
         array_unshift($values, $error);
         return CRM_Import_Parser::ERROR;
     }
 }