Esempio n. 1
0
 private function _list_bookings()
 {
     $task_booked_time = 0;
     $task_booked_percentage = 100;
     $bookings = array('confirmed' => array(), 'suspected' => array());
     $mc = new org_openpsa_relatedto_collector($this->_object->guid, 'org_openpsa_calendar_event_dba');
     $mc->add_value_property('status');
     $mc->add_constraint('status', '<>', org_openpsa_relatedto_dba::NOTRELATED);
     // TODO: fromClass too?
     $mc->execute();
     $relations = $mc->list_keys();
     foreach ($relations as $guid => $empty) {
         try {
             $booking = new org_openpsa_calendar_event_dba($mc->get_subkey($guid, 'fromGuid'));
         } catch (midcom_error $e) {
             continue;
         }
         if ($mc->get_subkey($guid, 'status') == org_openpsa_relatedto_dba::CONFIRMED) {
             $bookings['confirmed'][] = $booking;
             $task_booked_time += ($booking->end - $booking->start) / 3600;
         } else {
             $bookings['suspected'][] = $booking;
         }
     }
     usort($bookings['confirmed'], array('self', '_sort_by_time'));
     usort($bookings['suspected'], array('self', '_sort_by_time'));
     $task_booked_time = round($task_booked_time);
     if ($this->_object->plannedHours != 0) {
         $task_booked_percentage = round(100 / $this->_object->plannedHours * $task_booked_time);
     }
     $this->_request_data['task_booked_percentage'] = $task_booked_percentage;
     $this->_request_data['task_booked_time'] = $task_booked_time;
     return $bookings;
 }