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;
 }
Esempio n. 2
0
 /**
  * Queries org.openpsa.sales for suspected task links and saves them
  */
 function get_suspected_sales_links()
 {
     debug_add('called');
     //Safety
     if (!$this->_suspects_classes_present()) {
         debug_add('required classes not present, aborting', MIDCOM_LOG_WARN);
         return;
     }
     // Do no seek if we already have confirmed links
     $mc = new org_openpsa_relatedto_collector($this->guid, array('org_openpsa_salesproject_dba', 'org_openpsa_salesproject_deliverable_dba'));
     $mc->add_constraint('status', '=', org_openpsa_relatedto_dba::CONFIRMED);
     $links = $mc->get_related_guids();
     if (!empty($links)) {
         $cnt = count($links);
         debug_add("Found {$cnt} confirmed links already, skipping seek");
         return;
     }
     $link_def = $this->_suspect_defaults();
     $sales_suspect_links = org_openpsa_relatedto_suspect::find_links_object_component($this, 'org.openpsa.sales', $link_def);
     foreach ($sales_suspect_links as $linkdata) {
         debug_add("processing sales link {$linkdata['other_obj']->guid}, (class: " . get_class($linkdata['other_obj']) . ")");
         $stat = $linkdata['link']->create();
         if ($stat) {
             debug_add("saved link to {$linkdata['other_obj']->guid} (link id #{$linkdata['link']->id})", MIDCOM_LOG_INFO);
         } else {
             debug_add("could not save link to {$linkdata['other_obj']->guid}, errstr" . midcom_connection::get_error_string(), MIDCOM_LOG_WARN);
         }
     }
     debug_add('done');
     return;
 }