Beispiel #1
0
 /**
  * Browse all absence types
  *
  *
  * @return void
  * @access public
  * @static
  */
 function browse()
 {
     // get all absence types sorted by name
     $absenceType = array();
     $dao = new CRM_HRAbsence_DAO_HRAbsenceType();
     $dao->orderBy('name');
     $dao->find();
     while ($dao->fetch()) {
         $absenceType[$dao->id] = array();
         $absenceType[$dao->id]['id'] = $dao->id;
         $absenceType[$dao->id]['title'] = $dao->title;
         $absenceType[$dao->id]['is_active'] = $dao->is_active;
         $absenceType[$dao->id]['allow_credits'] = $dao->allow_credits;
         $absenceType[$dao->id]['allow_debits'] = $dao->allow_debits;
         // form all action links
         $action = array_sum(array_keys($this->links()));
         if ($dao->is_active) {
             $action -= CRM_Core_Action::ENABLE;
         } else {
             $action -= CRM_Core_Action::DISABLE;
         }
         //if this absence type has its related activities/leaves then don't show DELETE action
         $isDelete = FALSE;
         if ($dao->debit_activity_type_id) {
             $result = civicrm_api3('Activity', 'get', array('activity_type_id' => $dao->debit_activity_type_id));
             if (count($result['values'])) {
                 $isDelete = TRUE;
             }
         }
         if (!$isDelete && $dao->credit_activity_type_id) {
             $result = civicrm_api3('Activity', 'get', array('activity_type_id' => $dao->credit_activity_type_id));
             if (count($result['values'])) {
                 $isDelete = TRUE;
             }
         }
         if ($isDelete) {
             $action -= CRM_Core_Action::DELETE;
         }
         $absenceType[$dao->id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $dao->id));
     }
     $this->assign('rows', $absenceType);
 }
Beispiel #2
0
 /**
  * returns the list of fields that can be exported
  *
  * @access public
  * return array
  * @static
  */
 static function &export($prefix = false)
 {
     if (!self::$_export) {
         self::$_export = array();
         $fields = self::fields();
         foreach ($fields as $name => $field) {
             if (CRM_Utils_Array::value('export', $field)) {
                 if ($prefix) {
                     self::$_export['hrabsence_type'] =& $fields[$name];
                 } else {
                     self::$_export[$name] =& $fields[$name];
                 }
             }
         }
     }
     return self::$_export;
 }
Beispiel #3
0
 public static function del($absenceTypeId)
 {
     $absenceType = new CRM_HRAbsence_DAO_HRAbsenceType();
     $absenceType->id = $absenceTypeId;
     $absenceType->find(TRUE);
     $absenceActivities = CRM_Core_OptionGroup::values('activity_type', FALSE, FALSE, FALSE, " AND grouping = 'Timesheet'", 'id');
     if ($absenceType->debit_activity_type_id && ($id = CRM_Utils_Array::value($absenceType->debit_activity_type_id, $absenceActivities))) {
         CRM_Core_BAO_OptionValue::del($id);
     }
     if ($absenceType->credit_activity_type_id && ($id = CRM_Utils_Array::value($absenceType->credit_activity_type_id, $absenceActivities))) {
         CRM_Core_BAO_OptionValue::del($id);
     }
     $absenceType->delete();
 }