function view_closed_cases() { $check_list_id = phpgw::get_var('check_list_id'); $case_location_code = phpgw::get_var('location_code'); $check_list = $this->so_check_list->get_single($check_list_id); // Check list top section info $control = $this->so_control->get_single($check_list->get_control_id()); $location_code = $check_list->get_location_code(); $component_id = $check_list->get_component_id(); if ($component_id > 0) { $location_id = $check_list->get_location_id(); $component_id = $check_list->get_component_id(); $component_arr = execMethod('property.soentity.read_single_eav', array('location_id' => $location_id, 'id' => $component_id)); $location_name = execMethod('property.bolocation.get_location_name', $component_arr['location_code']); $short_desc = $location_name . '::' . execMethod('property.soentity.get_short_description', array('location_id' => $location_id, 'id' => $component_id)); // $short_desc = execMethod('property.soentity.get_short_description', array('location_id' => $location_id, 'id' => $component_id)); $component = new controller_component(); $component->set_id($component_id); $component->set_location_id($location_id); $component->set_location_code($component_arr['location_code']); $component->set_xml_short_desc($short_desc); $component_array = $component->toArray(); $type = 'component'; $building_location_code = $this->location_finder->get_building_location_code($component_arr['location_code']); $buildings_on_property = array(); } else { $location_code = $check_list->get_location_code(); $location_array = execMethod('property.bolocation.read_single', array('location_code' => $location_code)); $type = 'location'; // Fetches buildings on property $buildings_on_property = $this->location_finder->get_buildings_on_property($user_role, $location_code, $level); } // Check list top section info $level = $this->location_finder->get_location_level($location_code); $year = date("Y", $check_list->get_deadline()); $month = date("n", $check_list->get_deadline()); $user_role = true; $closed_check_items_and_cases = $this->so_check_item->get_check_items_with_cases($check_list_id, null, 'closed', null, $case_location_code); if ($buildings_on_property) { foreach ($buildings_on_property as &$building) { $building['selected'] = $building['id'] == $case_location_code ? 1 : 0; } } //--------- foreach ($closed_check_items_and_cases as $key => $check_item) { // $control_item_with_options = $this->so_control_item->get_single_with_options( $check_item->get_control_item_id() ); foreach ($check_item->get_cases_array() as $case) { $component_location_id = $case->get_component_location_id(); $component_id = $case->get_component_id(); if ($component_id) { $short_desc = execMethod('property.soentity.get_short_description', array('location_id' => $component_location_id, 'id' => $component_id)); $case->set_component_descr($short_desc); } } // $check_item->get_control_item()->set_options_array( $control_item_with_options->get_options_array() ); // $closed_check_items_and_cases[$key] = $check_item; } //------- $data = array('control' => $control, 'check_list' => $check_list, 'buildings_on_property' => $buildings_on_property, 'location_array' => $location_array, 'component_array' => $component_array, 'type' => $type, 'location_level' => $level, 'current_year' => $year, 'current_month_nr' => $month, 'closed_check_items_and_cases' => $closed_check_items_and_cases, 'check_list' => $check_list, 'cases_view' => 'closed_cases', 'building_location_code' => $building_location_code); phpgwapi_jquery::load_widget('core'); self::add_javascript('controller', 'controller', 'case.js'); self::add_javascript('controller', 'controller', 'check_list_update_status.js'); self::render_template_xsl(array('check_list/fragments/check_list_menu', 'case/cases_tab_menu', 'case/view_closed_cases', 'case/case_row', 'check_list/fragments/nav_control_plan', 'check_list/fragments/check_list_top_section', 'check_list/fragments/select_buildings_on_property'), $data); }
function view_control_info() { $check_list_id = phpgw::get_var('check_list_id'); $check_list = $this->so->get_single($check_list_id); $control = $this->so_control->get_single($check_list->get_control_id()); $component_id = $check_list->get_component_id(); if ($component_id > 0) { $location_id = $check_list->get_location_id(); $component_id = $check_list->get_component_id(); $component_arr = execMethod('property.soentity.read_single_eav', array('location_id' => $location_id, 'id' => $component_id)); $location_name = execMethod('property.bolocation.get_location_name', $component_arr['location_code']); $short_desc = $location_name . '::' . execMethod('property.soentity.get_short_description', array('location_id' => $location_id, 'id' => $component_id)); $component = new controller_component(); $component->set_id($component_id); $component->set_location_id($location_id); $component->set_location_code($component_arr['location_code']); $component->set_xml_short_desc($short_desc); $component_array = $component->toArray(); $type = 'component'; $building_location_code = $this->location_finder->get_building_location_code($component_arr['location_code']); } else { $location_code = $check_list->get_location_code(); $location_array = execMethod('property.bolocation.read_single', array('location_code' => $location_code)); $type = 'location'; $level = $this->location_finder->get_location_level($location_code); } $year = date("Y", $check_list->get_deadline()); $month = date("n", $check_list->get_deadline()); $level = $this->location_finder->get_location_level($location_code); $user_role = true; // Fetches buildings on property $buildings_on_property = $this->location_finder->get_buildings_on_property($user_role, $location_code, $level); $data = array('control' => $control, 'check_list' => $check_list, 'buildings_on_property' => $buildings_on_property, 'location_array' => $location_array, 'component_array' => $component_array, 'type' => $type, 'current_year' => $year, 'current_month_nr' => $month, 'building_location_code' => $building_location_code, 'location_level' => $level); phpgwapi_jquery::load_widget('core'); self::add_javascript('controller', 'controller', 'check_list_update_status.js'); self::render_template_xsl(array('check_list/fragments/check_list_menu', 'check_list/fragments/check_list_top_section', 'check_list/fragments/nav_control_plan', 'check_list/view_control_info', 'check_list/fragments/select_buildings_on_property'), $data); }
/** * Get all controls assosiated with a component * * @param array $data location_id and component_id * @return array controls assosiated with a component * @throws Exception if missing valid input */ function get_controls_at_component2($data) { if (!isset($data['location_id']) || !$data['location_id']) { throw new Exception("controller_socontrol::get_controls_at_component - Missing location_id in input"); } if (!isset($data['id']) || !$data['id']) { throw new Exception("controller_socontrol::get_controls_at_component - Missing component_id in input"); } static $users = array(); // cache result $location_id = (int) $data['location_id']; $component_id = (int) $data['id']; $sql = "SELECT DISTINCT controller_control_component_list.* ," . " controller_control.id as control_id, controller_control.title, controller_control.enabled as control_enabled," . " controller_control_component_list.enabled as relation_enabled," . " controller_control_serie.enabled as serie_enabled," . " controller_control_serie.id as serie_id," . " controller_control_serie.assigned_to,controller_control_serie.start_date," . " controller_control_serie.repeat_type,controller_control_serie.repeat_interval," . " controller_control_serie.service_time,controller_control_serie.controle_time " . " FROM controller_control_component_list" . " {$this->db->join} controller_control ON controller_control.id = controller_control_component_list.control_id" . " {$this->db->left_join} controller_control_serie ON (controller_control_component_list.id = controller_control_serie.control_relation_id AND controller_control_serie.control_relation_type = 'component')" . " WHERE location_id = {$location_id} AND component_id = {$component_id}"; // _debug_array($sql); $this->db->query($sql, __LINE__, __FILE__); $components_array = array(); $control_relations = array(); while ($this->db->next_record()) { $control_relations[] = array('control_id' => $this->db->f('control_id'), 'serie_id' => $this->db->f('serie_id'), 'assigned_to' => $this->db->f('assigned_to'), 'start_date' => $this->db->f('start_date'), 'repeat_type' => $this->db->f('repeat_type'), 'repeat_interval' => $this->db->f('repeat_interval'), 'service_time' => $this->db->f('service_time'), 'controle_time' => $this->db->f('controle_time'), 'serie_enabled' => (int) $this->db->f('serie_enabled')); } foreach ($control_relations as &$entry) { if ($entry['assigned_to'] && !isset($users[$entry['assigned_to']])) { $users[$entry['assigned_to']] = $GLOBALS['phpgw']->accounts->get($entry['assigned_to'])->__toString(); } $entry['assigned_to_name'] = $users[$entry['assigned_to']]; $component = new controller_component(); // $component->set_type($this->unmarshal($data['bim_type'], 'int')); $component->set_id($component_id); $component->set_location_id($location_id); $component->set_guid($this->unmarshal($data['guid'], 'string')); $component->set_location_code($this->unmarshal($data['location_code'], 'string')); $component->set_loc_1($this->unmarshal($data['loc_1'], 'string')); $component->set_address($this->unmarshal($data['address'], 'string')); // $component->set_type_str($this->unmarshal($data['bim_type_description']), 'string')); $component->set_control_relation($entry); $components_array[] = $component; } return $components_array; }