/**
  * Attempt to edit the definition of UnforkableCaseType. This fails.
  */
 public function testUnforkable()
 {
     $caseTypeId = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', 'UnforkableCaseType', 'id', 'name');
     $this->assertTrue(is_numeric($caseTypeId) && $caseTypeId > 0);
     $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
     $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
     $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
     $this->callAPISuccess('CaseType', 'create', array('id' => $caseTypeId, 'definition' => array('activityTypes' => array(array('name' => 'First act'), array('name' => 'Second act')))));
     $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
     $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
     $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
 }
Beispiel #2
0
/**
 * Format definition.
 *
 * @param array $result
 *
 * @return array
 * @throws \CRM_Core_Exception
 */
function _civicrm_api3_case_type_get_formatResult(&$result)
{
    foreach ($result['values'] as $key => $caseType) {
        $caseTypeName = isset($caseType['name']) ? $caseType['name'] : CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseType['id'], 'name', 'id', TRUE);
        $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseTypeName);
        if ($xml) {
            $result['values'][$key]['definition'] = CRM_Case_BAO_CaseType::convertXmlToDefinition($xml);
        } else {
            $result['values'][$key]['definition'] = array();
        }
        $result['values'][$key]['is_forkable'] = CRM_Case_BAO_CaseType::isForkable($result['values'][$key]['id']);
        $result['values'][$key]['is_forked'] = CRM_Case_BAO_CaseType::isForked($result['values'][$key]['id']);
    }
    return $result;
}