/** * @param int $clientID * @param int $caseID * @param string $activitySetName * @param array $params * @param CRM_Core_Form $form * * @return mixed */ public static function getCaseReport($clientID, $caseID, $activitySetName, $params, $form) { $template = CRM_Core_Smarty::singleton(); $template->assign('caseId', $caseID); $template->assign('clientID', $clientID); $template->assign('activitySetName', $activitySetName); if (!empty($params['is_redact'])) { $form->_isRedact = TRUE; $template->assign('_isRedact', 'true'); } else { $form->_isRedact = FALSE; $template->assign('_isRedact', 'false'); } // first get all case information $case = $form->caseInfo($clientID, $caseID); $template->assign_by_ref('case', $case); if ($params['include_activities'] == 1) { $template->assign('includeActivities', 'All'); } else { $template->assign('includeActivities', 'Missing activities only'); } $xml = $form->retrieve($case['caseTypeName']); $activitySetNames = CRM_Case_XMLProcessor_Process::activitySets($xml->ActivitySets); $pageTitle = CRM_Utils_Array::value($activitySetName, $activitySetNames); $template->assign('pageTitle', $pageTitle); if ($activitySetName) { $activityTypes = $form->getActivityTypes($xml, $activitySetName); } else { $activityTypes = CRM_Case_XMLProcessor::allActivityTypes(); } if (!$activityTypes) { return FALSE; } // next get activity set Information $activitySet = array('label' => $form->getActivitySetLabel($xml, $activitySetName), 'includeActivities' => 'All', 'redact' => 'false'); $template->assign_by_ref('activitySet', $activitySet); //now collect all the information about activities $activities = array(); $form->getActivities($clientID, $caseID, $activityTypes, $activities); $template->assign_by_ref('activities', $activities); // now run the template $contents = $template->fetch('CRM/Case/XMLProcessor/Report.tpl'); return $contents; }