public function addDefaultPeriod() { if (CRM_HRAbsence_BAO_HRAbsencePeriod::getRecordCount($params = array()) == 0) { $currentYear = date('Y'); $params = array('name' => $currentYear, 'title' => $currentYear . ' (Jan 1 to Dec 31)', 'start_date' => $currentYear . '-01-01 00:00:00', 'end_date' => $currentYear . '-12-31 23:59:59'); CRM_HRAbsence_BAO_HRAbsencePeriod::create($params); } }
/** * This is a method to create absence entitlements */ function addAbsenceEntitlements($cid) { $periods = CRM_HRAbsence_BAO_HRAbsencePeriod::getPeriods(); $periodIds = array_keys($periods); //create period combinations $employmentPeriodClusters = array(array($periodIds[0]), array($periodIds[0], $periodIds[1], $periodIds[2]), array($periodIds[2], $periodIds[3], $periodIds[1]), array($periodIds[3], $periodIds[2], $periodIds[0]), array($periodIds[0], $periodIds[1], $periodIds[2], $periodIds[3])); //every period will have following absenceTypes $absenceTypes = civicrm_api3('HRAbsenceType', 'get', array()); //pick up random period $employmentPeriods = $employmentPeriodClusters[mt_rand(0, 4)]; foreach ($employmentPeriods as $this->employmentPeriod) { foreach ($absenceTypes['values'] as $absenceType) { if ($absenceType['name'] != "TOIL" && $absenceType['name'] != "Other") { $absenceEntitlementValues = array('contact_id' => $cid, 'period_id' => $this->employmentPeriod, 'type_id' => $absenceType['id'], 'amount' => mt_rand(5, 15)); //create Entitlement civicrm_api3('HRAbsenceEntitlement', 'create', $absenceEntitlementValues); } } // add absence requests per employmentPeriod. $this->addAbsenceRequests($cid); } }
/** * Function to process the form * * @access public * @return void */ public function postProcess() { if ($this->_action & CRM_Core_Action::DELETE) { CRM_HRAbsence_BAO_HRAbsencePeriod::del($this->_id); CRM_Core_Session::setStatus(ts('Selected absence period has been deleted.'), 'Success', 'success'); } else { $params = $ids = array(); // store the submitted values in an array $params = $this->exportValues(); if ($this->_action & CRM_Core_Action::UPDATE) { $params['id'] = $this->_id; } //format params $params['name'] = CRM_Utils_String::munge($params['title']); $params['start_date'] = CRM_Utils_Date::processDate($params['start_date'], $params['start_date_time']); $params['end_date'] = CRM_Utils_Date::processDate($params['end_date'], $params['end_date_time']); $absencePeriod = CRM_HRAbsence_BAO_HRAbsencePeriod::create($params); if ($this->_action & CRM_Core_Action::UPDATE) { CRM_Core_Session::setStatus(ts('The absence period \'%1\' has been updated.', array(1 => $absencePeriod->title)), 'Success', 'success'); } else { CRM_Core_Session::setStatus(ts('The absence period \'%1\' has been added.', array(1 => $absencePeriod->title)), 'Success', 'success'); } $url = CRM_Utils_System::url('civicrm/absence/period', 'reset=1&action=browse'); $session = CRM_Core_Session::singleton(); $session->replaceUserContext($url); } }