Пример #1
0
 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);
     }
 }
Пример #2
0
 /**
  * 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);
     }
 }
Пример #3
0
 /**
  * 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);
     }
 }