*
*/
class CRM_Case_XMLProcessor_Process extends CRM_Case_XMLProcessor {
+ /**
+ * @param $caseType
+ * @param $params
+ *
+ * @throws Exception
+ */
function run($caseType, &$params) {
$xml = $this->retrieve($caseType);
$this->process($xml, $params);
}
+ /**
+ * @param $caseType
+ * @param $fieldSet
+ * @param bool $isLabel
+ * @param bool $maskAction
+ *
+ * @return array|bool|mixed
+ * @throws Exception
+ */
function get($caseType, $fieldSet, $isLabel = FALSE, $maskAction = FALSE) {
$xml = $this->retrieve($caseType);
if ($xml === FALSE) {
}
}
+ /**
+ * @param $xml
+ * @param $params
+ *
+ * @throws Exception
+ */
function process($xml, &$params) {
$standardTimeline = CRM_Utils_Array::value('standardTimeline', $params);
$activitySetName = CRM_Utils_Array::value('activitySetName', $params);
}
}
+ /**
+ * @param $activitySetXML
+ * @param $params
+ */
function processStandardTimeline($activitySetXML, &$params) {
if ('Change Case Type' == CRM_Utils_Array::value('activityTypeName', $params)
&& CRM_Utils_Array::value('resetTimeline', $params, TRUE)) {
}
}
+ /**
+ * @param $activitySetXML
+ * @param $params
+ */
function processActivitySet($activitySetXML, &$params) {
foreach ($activitySetXML->ActivityTypes as $activityTypesXML) {
foreach ($activityTypesXML as $activityTypeXML) {
}
}
+ /**
+ * @param $caseRolesXML
+ * @param bool $isCaseManager
+ *
+ * @return array|mixed
+ */
function &caseRoles($caseRolesXML, $isCaseManager = FALSE) {
$relationshipTypes = &$this->allRelationshipTypes();
return $result;
}
+ /**
+ * @param $relationshipTypeName
+ * @param $params
+ *
+ * @return bool
+ * @throws Exception
+ */
function createRelationships($relationshipTypeName, &$params) {
$relationshipTypes = &$this->allRelationshipTypes();
// get the relationship id
return TRUE;
}
+ /**
+ * @param $params
+ *
+ * @return bool
+ */
function createRelationship(&$params) {
$dao = new CRM_Contact_DAO_Relationship();
$dao->copyValues($params);
return TRUE;
}
+ /**
+ * @param $activityTypesXML
+ * @param bool $maxInst
+ * @param bool $isLabel
+ * @param bool $maskAction
+ *
+ * @return array
+ */
function activityTypes($activityTypesXML, $maxInst = FALSE, $isLabel = FALSE, $maskAction = FALSE) {
$activityTypes = &$this->allActivityTypes(TRUE, TRUE);
$result = array();
return $result;
}
+ /**
+ * @param SimpleXMLElement $caseTypeXML
+ * @return array<string> symbolic activity-type names
+ */
+ function getDeclaredActivityTypes($caseTypeXML) {
+ $result = array();
+
+ if (!empty($caseTypeXML->ActivityTypes) && $caseTypeXML->ActivityTypes->ActivityType) {
+ foreach ($caseTypeXML->ActivityTypes->ActivityType as $activityTypeXML) {
+ $result[] = (string) $activityTypeXML->name;
+ }
+ }
+
+ if (!empty($caseTypeXML->ActivitySets) && $caseTypeXML->ActivitySets->ActivitySet) {
+ foreach ($caseTypeXML->ActivitySets->ActivitySet as $activitySetXML) {
+ if ($activitySetXML->ActivityTypes && $activitySetXML->ActivityTypes->ActivityType) {
+ foreach ($activitySetXML->ActivityTypes->ActivityType as $activityTypeXML) {
+ $result[] = (string) $activityTypeXML->name;
+ }
+ }
+ }
+ }
+
+ $result = array_unique($result);
+ sort($result);
+ return $result;
+ }
+
+ /**
+ * @param SimpleXMLElement $caseTypeXML
+ * @return array<string> symbolic relationship-type names
+ */
+ function getDeclaredRelationshipTypes($caseTypeXML) {
+ $result = array();
+
+ if (!empty($caseTypeXML->CaseRoles) && $caseTypeXML->CaseRoles->RelationshipType) {
+ foreach ($caseTypeXML->CaseRoles->RelationshipType as $relTypeXML) {
+ $result[] = (string) $relTypeXML->name;
+ }
+ }
+
+ $result = array_unique($result);
+ sort($result);
+ return $result;
+ }
+
+ /**
+ * @param $params
+ */
function deleteEmptyActivity(&$params) {
$activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
CRM_Core_DAO::executeQuery($query, $sqlParams);
}
+ /**
+ * @param $params
+ *
+ * @return bool
+ */
function isActivityPresent(&$params) {
$query = "
SELECT count(a.id)
$count = CRM_Core_DAO::singleValueQuery($query, $sqlParams);
// check for max instance
- $caseType = CRM_Case_BAO_Case::getCaseType($params['caseID'], 'title');
+ $caseType = CRM_Case_BAO_Case::getCaseType($params['caseID'], 'name');
$maxInstance = self::getMaxInstance($caseType, $params['activityTypeName']);
return $maxInstance ? ($count < $maxInstance ? FALSE : TRUE) : FALSE;
}
+ /**
+ * @param $activityTypeXML
+ * @param $params
+ *
+ * @return bool
+ * @throws CRM_Core_Exception
+ * @throws Exception
+ */
function createActivity($activityTypeXML, &$params) {
$activityTypeName = (string) $activityTypeXML->name;
$activityTypes = &$this->allActivityTypes(TRUE, TRUE);
return TRUE;
}
+ /**
+ * @param $activitySetsXML
+ *
+ * @return array
+ */
static function activitySets($activitySetsXML) {
$result = array();
foreach ($activitySetsXML as $activitySetXML) {
return $result;
}
+ /**
+ * @param $caseType
+ * @param null $activityTypeName
+ *
+ * @return array|bool|mixed
+ * @throws Exception
+ */
function getMaxInstance($caseType, $activityTypeName = NULL) {
$xml = $this->retrieve($caseType);
return $activityTypeName ? CRM_Utils_Array::value($activityTypeName, $activityInstances) : $activityInstances;
}
+ /**
+ * @param $caseType
+ *
+ * @return array|mixed
+ */
function getCaseManagerRoleId($caseType) {
$xml = $this->retrieve($caseType);
return $this->caseRoles($xml->CaseRoles, TRUE);
}
+ /**
+ * @param string $caseType
+ * @return array<\Civi\CCase\CaseChangeListener>
+ */
+ function getListeners($caseType) {
+ $xml = $this->retrieve($caseType);
+ $listeners = array();
+ if ($xml->Listeners && $xml->Listeners->Listener) {
+ foreach ($xml->Listeners->Listener as $listenerXML) {
+ $class = (string) $listenerXML;
+ $listeners[] = new $class();
+ }
+ }
+ return $listeners;
+ }
+
+ /**
+ * @return int
+ */
function getRedactActivityEmail() {
$xml = $this->retrieve("Settings");
return ( string ) $xml->RedactActivityEmail ? 1 : 0;