Пример #1
0
 /**
  * @param mixed $handler_id The ID of the handler.
  * @param Array $args The argument list.
  * @param Array &$data The local request data.
  */
 public function _handler_generator($handler_id, array $args, array &$data)
 {
     midcom::get('auth')->require_valid_user();
     $this->_generator_load_redirect($args);
     $this->_handler_generator_style();
     $data['invoices'] = array();
     // Calculate time range
     $data['start'] = $this->_request_data['query_data']['start'];
     $data['end'] = $this->_request_data['query_data']['end'];
     // List sales projects
     $salesproject_mc = org_openpsa_sales_salesproject_dba::new_collector('metadata.deleted', false);
     $salesproject_mc->add_constraint('status', '<>', org_openpsa_sales_salesproject_dba::STATUS_LOST);
     if ($this->_request_data['query_data']['resource'] != 'all') {
         $this->_request_data['query_data']['resource_expanded'] = $this->_expand_resource($this->_request_data['query_data']['resource']);
         $salesproject_mc->begin_group('OR');
         foreach ($this->_request_data['query_data']['resource_expanded'] as $pid) {
             $salesproject_mc->add_constraint('owner', '=', $pid);
         }
         $salesproject_mc->end_group();
     }
     $salesprojects = $salesproject_mc->get_values('id');
     // List deliverables related to the sales projects
     $deliverable_mc = org_openpsa_sales_salesproject_deliverable_dba::new_collector('metadata.deleted', false);
     $deliverable_mc->add_constraint('state', '<>', org_openpsa_sales_salesproject_deliverable_dba::STATUS_DECLINED);
     $deliverable_mc->add_constraint('salesproject', 'IN', $salesprojects);
     $deliverables = $deliverable_mc->get_values('id');
     foreach ($deliverables as $guid => $id) {
         $data['invoices'][$guid] = $this->_get_deliverable_invoices($id);
     }
     $this->add_stylesheet(MIDCOM_STATIC_URL . "/org.openpsa.core/list.css");
 }