Exemplo n.º 1
0
 /**
  *  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;
 }