Esempio n. 1
0
 static function getLeavesForPeriod($contactId, $startDate = null, $endDate = null)
 {
     $data = CRM_Hrjobcontract_BAO_HRJobLeave::createAbsenceArray();
     $jobContracts = civicrm_api3('HRJobContract', 'get', array('sequential' => 1, 'contact_id' => $contactId, 'deleted' => 0));
     foreach ($jobContracts['values'] as $jobContract) {
         $jobContractDetails = civicrm_api3('HRJobDetails', 'get', array('sequential' => 1, 'jobcontract_id' => $jobContract['id']));
         if (empty($jobContractDetails['values'])) {
             continue;
         }
         $details = CRM_Utils_Array::first($jobContractDetails['values']);
         $details['period_start_date'] = $details['period_start_date'] ? date('Y-m-d H:i:s', strtotime($details['period_start_date'])) : null;
         $details['period_end_date'] = $details['period_end_date'] ? date('Y-m-d H:i:s', strtotime($details['period_end_date'])) : null;
         if (CRM_Hrjobcontract_BAO_HRJobLeave::isJobDetailsInPeriod($details, $startDate, $endDate)) {
             $leaves = civicrm_api3('HRJobLeave', 'get', array('sequential' => 1, 'jobcontract_id' => $jobContract['id']));
             foreach ($leaves['values'] as $leave) {
                 $data[$leave['leave_type']] += $leave['leave_amount'];
             }
         }
     }
     return $data;
 }