/** * @param $amount_stat_columns * @param $print_flag * @param $show_zero_issues * @param $versions */ function print_tablebody($amount_stat_columns, $print_flag, $show_zero_issues, $versions) { $specmanagement_database_api = new specmanagement_database_api(); $specmanagement_print_api = new specmanagement_print_api(); echo '<tbody>'; for ($version_index = 0; $version_index < count($versions); $version_index++) { $version = $versions[$version_index]; $version_spec_bug_ids = $specmanagement_database_api->get_version_spec_bugs($version['version']); if (is_null($version_spec_bug_ids) && !$show_zero_issues) { continue; } $version_deadline = date_is_null($version['date_order']) ? '' : string_attribute(date(config_get('calendar_date_format'), $version['date_order'])); $timeleft = time() - $version['date_order']; $unsolved_bug_duration = null; $add_rel_duration = 0; $status_process = null; $uncertainty_bug_ids = array(); $add_rel_uncertainty_bug_ids = array(); $sum_duration = 0; $uncertainty_status_process = null; $unsolved_bug_finished_date = null; $null_issues_flag = true; if (!is_null($version_spec_bug_ids)) { $unsolveld_bug_ids = get_unsolved_issues($version_spec_bug_ids); $unsolved_bug_duration = $specmanagement_database_api->get_bug_array_duration($unsolveld_bug_ids); $rel_based_data = calculate_rel_based_data($unsolveld_bug_ids); $add_rel_duration = $rel_based_data[0]; $add_rel_uncertainty_bug_ids = $rel_based_data[1]; $sum_duration = $unsolved_bug_duration + $add_rel_duration; $status_process = 100 * round(1 - count($unsolveld_bug_ids) / count($version_spec_bug_ids), 2); $uncertainty_bug_ids = get_uncertainty_issues($unsolveld_bug_ids); $uncertainty_status_process = 100 * round(count($uncertainty_bug_ids) / count($version_spec_bug_ids), 2); $null_issues_flag = false; } $time_delay = calc_time_delay($timeleft, $sum_duration); $specmanagement_print_api->printRow(); print_version($version); print_date($version_deadline, $time_delay[0]); print_issue_amount($amount_stat_columns, $print_flag, $version, $version_spec_bug_ids, $null_issues_flag); print_process($status_process, $null_issues_flag); print_duration($sum_duration, $add_rel_duration, $null_issues_flag); print_uncertainty($uncertainty_bug_ids, $add_rel_uncertainty_bug_ids, $uncertainty_status_process, $null_issues_flag); //print_information( $version, $null_issues_flag, $time_delay[1] ); echo '</tr>'; } echo '</tbody>'; }
/** * Get issue data for specific versions * * @param $version * @return array */ function get_version_data($version) { $specmanagement_database_api = new specmanagement_database_api(); $version_data = array(); /* Prjekte sammeln */ $project_ids = prepare_relevant_projects(); /* Issues sammeln */ $reachable_issue_ids = prepare_relevant_issues($project_ids); /* Unpassende Issues aussortieren */ $relevant_issue_ids = calculate_relevant_issues($version, $reachable_issue_ids); /* Dauer für relevante Issues berechnen */ $relevant_issues_duration = $specmanagement_database_api->get_bug_array_duration($relevant_issue_ids); /* Fortschritt berechnen */ $status_process = calculate_status($relevant_issue_ids); /* Daten sammeln */ $version_data[0] = $relevant_issue_ids; $version_data[1] = $relevant_issues_duration; $version_data[2] = $status_process; return $version_data; }