Example #1
0
 /**
  * Install default Appraisals Criteria entries
  */
 public function upgrade_0004()
 {
     $criteria = array(1 => 'Below Expectations', 2 => 'Meets Expectations', 3 => 'Exceeds Expectations', 4 => 'Excellent', 5 => 'Lorem Ipsum');
     foreach ($criteria as $value => $label) {
         $instance = new CRM_Appraisals_BAO_AppraisalCriteria();
         $instance->value = $value;
         $criteriaFound = $instance->find(true);
         if ($criteriaFound) {
             continue;
         }
         $params = array('value' => $value, 'label' => $label, 'is_active' => 1);
         CRM_Appraisals_BAO_AppraisalCriteria::create($params);
     }
     return TRUE;
 }
Example #2
0
 /**
  * Function to process the form
  *
  * @access public
  * @return void
  */
 public function postProcess()
 {
     if ($this->_action & CRM_Core_Action::DELETE) {
         // Check if selected item has highest value of all Appraisal Criteria:
         $result = civicrm_api3('AppraisalCriteria', 'getsingle', array('sequential' => 1, 'options' => array('sort' => "value DESC", 'limit' => 1)));
         if (empty($result['id']) || (int) $result['id'] !== (int) $this->_id) {
             CRM_Core_Session::setStatus(ts('You can delete only Appraisal Criteria which has highest Value.'), 'Error', 'error');
             return false;
         }
         CRM_Appraisals_BAO_AppraisalCriteria::del($this->_id);
         CRM_Core_Session::setStatus(ts('Selected Appraisal Criteria has been deleted.'), 'Success', 'success');
     } else {
         $params = $ids = array();
         // store the submitted values in an array
         $params = $this->exportValues();
         foreach (array('value', 'label') as $key => $index) {
             if (!array_key_exists($index, $params)) {
                 $params[$index] = 0;
             }
         }
         if ($this->_action & CRM_Core_Action::UPDATE) {
             $params['id'] = $this->_id;
         }
         // Check for duplicates:
         $singleParams = array('sequential' => 1, 'value' => (int) $params['value'], 'options' => array('limit' => 1));
         if (!empty($params['id'])) {
             $singleParams['id'] = array('!=' => (int) $params['id']);
         }
         $appraisalCriteriaSingle = civicrm_api3('AppraisalCriteria', 'get', $singleParams);
         if (!empty($appraisalCriteriaSingle['values'])) {
             CRM_Core_Session::setStatus(ts('The Appraisal Criteria with Grade value \'%1\' already exists.', array(1 => (int) $params['value'])), 'Error', 'error');
             return false;
         }
         // Check if Grade is consecutive number:
         $singleParams = array('sequential' => 1, 'value' => (int) $params['value'] - 1, 'options' => array('limit' => 1));
         if (!empty($params['id'])) {
             $singleParams['id'] = array('!=' => (int) $params['id']);
         }
         $appraisalCriteriaSingle = civicrm_api3('AppraisalCriteria', 'get', $singleParams);
         if (!isset($appraisalCriteriaSingle['id']) && (int) $params['value'] > 1) {
             CRM_Core_Session::setStatus(ts('The Appraisal Criteria should have consecutive Grade value.'), 'Error', 'error');
             return false;
         }
         $appraisalCriteria = CRM_Appraisals_BAO_AppraisalCriteria::create($params);
         if ($this->_action & CRM_Core_Action::UPDATE) {
             CRM_Core_Session::setStatus(ts('The Appraisal Criteria with Grade value \'%1\' has been updated.', array(1 => $appraisalCriteria->value)), 'Success', 'success');
         } else {
             CRM_Core_Session::setStatus(ts('The Appraisal Criteria with Grade value \'%1\' has been added.', array(1 => $appraisalCriteria->value)), 'Success', 'success');
         }
         $url = CRM_Utils_System::url('civicrm/appraisal_criteria', 'reset=1&action=browse');
         $session = CRM_Core_Session::singleton();
         $session->replaceUserContext($url);
     }
 }