예제 #1
0
파일: Report.php 프로젝트: ksecor/civicrm
 function &caseInfo($clientID, $caseID)
 {
     require_once "CRM/Case/PseudoConstant.php";
     $case = $this->_redactionRegexRules = array();
     if (empty($this->_redactionStringRules)) {
         $this->_redactionStringRules = array();
     }
     if ($this->_isRedact == 1) {
         foreach (array('redactionStringRules', 'redactionRegexRules') as $key => $rule) {
             ${$rule} = CRM_Case_PseudoConstant::redactionRule($key);
             if (!empty(${$rule})) {
                 foreach (${$rule} as &$val) {
                     //suffixed with a randomly generated 4-digit number
                     $val .= rand(10000, 100000);
                 }
                 if (!empty($this->{'_' . $rule})) {
                     $this->{'_' . $rule} = CRM_Utils_Array::crmArrayMerge($this->{'_' . $rule}, ${$rule});
                 } else {
                     $this->{'_' . $rule} = ${$rule};
                 }
             }
         }
     }
     $client = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $clientID, 'display_name');
     // add Client to the strings to be redacted across the case session
     if (!array_key_exists($client, $this->_redactionStringRules)) {
         $this->_redactionStringRules = CRM_Utils_Array::crmArrayMerge($this->_redactionStringRules, array($client => 'name_' . rand(10000, 100000)));
         $clientSortName = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $clientID, 'sort_name');
         if (!array_key_exists($clientSortName, $this->_redactionStringRules)) {
             $this->_redactionStringRules[$clientSortName] = $this->_redactionStringRules[$client];
         }
     }
     $case['clientName'] = $this->redact($client);
     require_once 'CRM/Case/DAO/Case.php';
     $dao = new CRM_Case_DAO_Case();
     $dao->id = $caseID;
     if ($dao->find(true)) {
         $case['subject'] = $dao->subject;
         $case['start_date'] = $dao->start_date;
         $case['end_date'] = $dao->end_date;
         // FIXME: when we resolve if case_type_is single or multi-select
         if (strpos($dao->case_type_id, CRM_Core_DAO::VALUE_SEPARATOR) !== false) {
             $caseTypeID = substr($dao->case_type_id, 1, -1);
         } else {
             $caseTypeID = $dao->case_type_id;
         }
         $caseTypeIDs = explode(CRM_Core_DAO::VALUE_SEPARATOR, $dao->case_type_id);
         $case['caseType'] = CRM_Core_OptionGroup::getLabel('case_type', $caseTypeID);
         $caseTypeName = CRM_Case_PseudoConstant::caseTypeName($caseID);
         $case['caseTypeName'] = $caseTypeName['name'];
         $case['status'] = CRM_Core_OptionGroup::getLabel('case_status', $dao->status_id);
     }
     return $case;
 }
예제 #2
0
 function &getRedactionRules()
 {
     foreach (array('redactionStringRules', 'redactionRegexRules') as $key => $rule) {
         ${$rule} = CRM_Case_PseudoConstant::redactionRule($key);
         if (!empty(${$rule})) {
             foreach (${$rule} as &$val) {
                 //suffixed with a randomly generated 4-digit number
                 if ($key == 'redactionStringRules') {
                     $val .= rand(10000, 100000);
                 }
             }
             if (!empty($this->{'_' . $rule})) {
                 $this->{'_' . $rule} = CRM_Utils_Array::crmArrayMerge($this->{'_' . $rule}, ${$rule});
             } else {
                 $this->{'_' . $rule} = ${$rule};
             }
         }
     }
 }
예제 #3
0
 /**
  * Get all the redaction rules.
  *
  *
  * @param null $filter
  *
  * @return array
  *   array reference of all redaction rules
  */
 public static function redactionRule($filter = NULL)
 {
     // if ( ! self::$redactionRule ) {
     self::$redactionRule = array();
     if ($filter === 0) {
         $condition = "  AND (v.filter = 0 OR v.filter IS NULL)";
     } elseif ($filter === 1) {
         $condition = "  AND  v.filter = 1";
     } elseif ($filter === NULL) {
         $condition = NULL;
     }
     self::$redactionRule = CRM_Core_OptionGroup::values('redaction_rule', TRUE, FALSE, FALSE, $condition);
     // }
     return self::$redactionRule;
 }
예제 #4
0
 /**
  * Get all the redaction rules
  *
  * @access public
  * @return array - array reference of all redaction rules
  * @static
  */
 public static function redactionRule($filter = null)
 {
     // if ( ! self::$redactionRule ) {
     self::$redactionRule = array();
     if ($filter === 0) {
         $condition = "  AND (v.filter = 0 OR v.filter IS NULL)";
     } elseif ($filter === 1) {
         $condition = "  AND  v.filter = 1";
     } elseif ($filter === null) {
         $condition = null;
     }
     require_once 'CRM/Core/OptionGroup.php';
     self::$redactionRule = CRM_Core_OptionGroup::values('redaction_rule', true, false, false, $condition);
     // }
     return self::$redactionRule;
 }