/** * Test civicrm_activity_get() with a good activity ID which * has associated custom data */ function testActivityGetGoodIDCustom() { // Insert rows in civicrm_activity creating activities 4 and // 13 $op = new PHPUnit_Extensions_Database_Operation_Insert(); $op->execute($this->_dbconn, new PHPUnit_Extensions_Database_DataSet_XMLDataSet(dirname(__FILE__) . '/dataset/activity_4_13.xml')); // Insert rows in civicrm_custom_group and civicrm_custom_field // creating Activity Custom to extend activity type 5 $op = new PHPUnit_Extensions_Database_Operation_Insert(); $op->execute($this->_dbconn, new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(dirname(__FILE__) . '/dataset/custom_group_activity_type_5.xml')); // Drop and create table civicrm_value_activity_custom_9 $query = 'DROP TABLE IF EXISTS civicrm_value_activity_custom_9'; AllTests::$utils->do_query($query); $group = new CRM_Core_DAO_CustomGroup(); $group->extends = "Activity"; $group->table_name = 'civicrm_value_activity_custom_9'; $group->is_multiple = 0; $group->is_active = 1; CRM_Core_BAO_CustomGroup::createTable($group); // Add column activity_custom_11 to the custom table $customField =& new CRM_Core_DAO_CustomField(); $customField->column_name = 'activity_custom_11'; $customField->custom_group_id = 9; $customField->is_required = 0; $customField->is_active = 1; $customField->data_type = 'String'; $customField->text_length = 255; CRM_Core_BAO_CustomField::createField($customField, 'add'); // Insert a test value into the new table $query = "INSERT INTO civicrm_value_activity_custom_9" . "( entity_id, activity_custom_11 )" . " VALUES ( 4, 'bite my test data' )"; AllTests::$utils->do_query($query); // Retrieve the test value $params = array('activity_id' => 4, 'activity_type_id' => 5); $result = civicrm_activity_get($params, true); $this->assertEquals(0, $result['is_error'], "Error message: " . $result['error_message']); $this->assertEquals(4, $result['result']['id'], 'In line ' . __LINE__); $this->assertEquals(17, $result['result']['source_contact_id'], 'In line ' . __LINE__); $this->assertEquals(5, $result['result']['activity_type_id'], 'In line ' . __LINE__); $this->assertEquals('test activity type id', $result['result']['subject'], 'In line ' . __LINE__); $this->assertEquals('bite my test data', $result['result']['custom_11_1'], 'In line ' . __LINE__); }
static function getContributionDetails($contributionIds) { if (empty($contributionIds)) { return; } $query = " SELECT contribution.id, contact.id contact_id, contact.display_name, contribution.total_amount, contribution_type.name,\n contribution.source, contribution.receive_date, batch.label , dd_details.activity_id as activity_id FROM civicrm_contribution contribution\n LEFT JOIN civicrm_contact contact ON ( contribution.contact_id = contact.id )\n LEFT JOIN civicrm_contribution_type contribution_type ON ( contribution_type.id = contribution.contribution_type_id )\n LEFT JOIN civicrm_entity_batch entity_batch ON ( entity_batch.entity_id = contribution.id ) \n LEFT JOIN civicrm_value_direct_debit_details dd_details ON ( dd_details.entity_id = contribution.id )\n LEFT JOIN civicrm_batch batch ON ( batch.id = entity_batch.batch_id ) \n WHERE contribution.id IN (" . implode(',', $contributionIds) . ")"; $dao = CRM_Core_DAO::executeQuery($query); $result = array(); while ($dao->fetch()) { $result[$dao->id]['contribution_id'] = $dao->id; $result[$dao->id]['contact_id'] = $dao->contact_id; $result[$dao->id]['display_name'] = $dao->display_name; $result[$dao->id]['total_amount'] = $dao->total_amount; $result[$dao->id]['contribution_type'] = $dao->name; $result[$dao->id]['source'] = $dao->source; $result[$dao->id]['receive_date'] = $dao->receive_date; $result[$dao->id]['batch'] = $dao->label; require_once 'api/v2/Activity.php'; $params = array('activity_id' => $dao->activity_id); $act = civicrm_activity_get($params); $activity_type_id = $act['result']['activity_type_id']; $result[$dao->id]['activity_type_id'] = $activity_type_id; } return $result; }