/** * Get a list of all interesting options * * @return array e.g. $fieldOptions[$entityName][$fieldName] contains key-value options */ public static function getFieldOptions() { $fields = array('HRJobContractRevision' => array('hrjc_revision_change_reason' => 'change_reason'), 'HRJobDetails' => array("contract_type", "level_type", "location", 'notice_unit', 'notice_unit_employee', 'department'), 'HRJobHour' => array('hours_type', 'hours_unit'), 'HRJobPay' => array('is_paid', 'pay_unit', 'pay_currency', 'pay_cycle'), 'HRJobPension' => array('pension_type'), 'HRJobHealth' => array('provider', 'plan_type', 'provider_life_insurance', 'plan_type_life_insurance'), 'HRJobRole' => array('location', 'department', 'level_type', 'role_hours_unit', 'region')); $fieldOptions = array(); foreach ($fields as $entityName => $fieldNames) { foreach ($fieldNames as $fieldName) { $fieldOptions[$entityName][$fieldName] = CRM_Core_PseudoConstant::get("CRM_Hrjobcontract_DAO_{$entityName}", $fieldName); } } $absenceTypeResult = civicrm_api3('HRAbsenceType', 'get', array('sequential' => 1, 'return' => 'id,title')); foreach ($absenceTypeResult['values'] as $value) { $fieldOptions['HRJobLeave']['leave_type'][$value['id']] = $value['title']; } $fieldOptions['HRJobPay']['benefit_name'] = CRM_Hrjobcontract_Page_JobContractTab::getCustomOptions('hrjc_benefit_name'); $fieldOptions['HRJobPay']['benefit_type'] = CRM_Hrjobcontract_Page_JobContractTab::getCustomOptions('hrjc_benefit_type'); $fieldOptions['HRJobPay']['deduction_name'] = CRM_Hrjobcontract_Page_JobContractTab::getCustomOptions('hrjc_deduction_name'); $fieldOptions['HRJobPay']['deduction_type'] = CRM_Hrjobcontract_Page_JobContractTab::getCustomOptions('hrjc_deduction_type'); return $fieldOptions; }