/** * Get check list objects for a control * * @param $control_id * @return array with check list objects */ function get_check_lists_for_control($control_id) { $control_id = (int) $control_id; $sql = "SELECT cl.id as cl_id, cl.status as cl_status, cl.comment as cl_comment, deadline, planned_date, assigned_to, "; $sql .= "completed_date, component_id, location_code, num_open_cases, num_pending_cases "; $sql .= "ci.id as ci_id, control_item_id, check_list_id, cl.serie_id"; $sql .= "FROM controller_check_list cl, controller_check_item ci "; $sql .= "WHERE cl.control_id = {$control_id} "; $sql .= "AND cl.id = ci.check_list_id "; $sql .= "ORDER BY cl.id;"; $this->db->query($sql); $check_list_id = 0; $check_list = null; while ($this->db->next_record()) { if ($this->db->f('cl_id') != $check_list_id) { if ($check_list_id) { $check_list->set_check_item_array($check_items_array); $check_list_array[] = $check_list->toArray(); } $check_list = new controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int')); $check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int')); $check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true), 'string')); $check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int')); $check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'), 'int')); $check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'), 'int')); $check_list->set_component_id($this->unmarshal($this->db->f('component_id'), 'int')); $check_list->set_location_code($this->unmarshal($this->db->f('location_code', true), 'string')); $check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'), 'int')); $check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'), 'int')); $check_list->set_assigned_to($this->unmarshal($this->db->f('assigned_to'), 'int')); $check_list->set_serie_id($this->db->f('serie_id')); $check_items_array = array(); } $check_item = new controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int')); $check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'), 'int')); $check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'), 'int')); $check_items_array[] = $check_item->toArray(); $check_list_id = $check_list->get_id(); } if ($check_list != null) { $check_list->set_check_item_array($check_items_array); $check_list_array[] = $check_list->toArray(); return $check_list_array; } else { return null; } }