/** * @param $print_flag */ function calculate_page_content($print_flag) { $specmanagement_database_api = new specmanagement_database_api(); $specmanagement_print_api = new specmanagement_print_api(); $specmanagement_editor_api = new specmanagement_editor_api(); $version_id = $_POST['version_id']; $version_spec_bug_ids = $specmanagement_database_api->get_version_spec_bugs(version_get_field($version_id, 'version')); if (!is_null($version_spec_bug_ids)) { /** get bug and work package data */ $plugin_version_obj = $specmanagement_database_api->get_plugin_version_row_by_version_id($version_id); $p_version_id = $plugin_version_obj[0]; foreach ($version_spec_bug_ids as $version_spec_bug_id) { $p_source_row = $specmanagement_database_api->get_source_row($version_spec_bug_id); if (is_null($p_source_row[2])) { $specmanagement_database_api->update_source_row($version_spec_bug_id, $p_version_id, ''); } } $work_packages = $specmanagement_database_api->get_document_spec_workpackages($p_version_id); asort($work_packages); $no_work_package_bug_ids = $specmanagement_database_api->get_workpackage_spec_bugs($p_version_id, ''); /** get type options */ $type_string = $specmanagement_database_api->get_type_string($specmanagement_database_api->get_type_by_version($version_id)); $type_id = $specmanagement_database_api->get_type_id($type_string); $type_row = $specmanagement_database_api->get_type_row($type_id); $type_options = explode(';', $type_row[2]); /** generate and print page content */ $specmanagement_editor_api->print_document_head($type_string, $version_id, $version_spec_bug_ids, $print_flag); if ($type_options[2] == '1') { $specmanagement_editor_api->print_directory($p_version_id, $work_packages, $no_work_package_bug_ids, $type_options[0], $print_flag); } $specmanagement_editor_api->print_editor_table_head($print_flag); $specmanagement_editor_api->generate_content($p_version_id, $work_packages, $no_work_package_bug_ids, $type_options[0], true, $print_flag); echo '</table>'; if ($type_options[1] == '1') { $specmanagement_editor_api->print_expenses_overview($work_packages, $p_version_id, $print_flag, $no_work_package_bug_ids); } } else { echo '<br/>'; $specmanagement_editor_api->print_editor_table_head($print_flag); echo '<tr><td class="center">'; echo plugin_lang_get('editor_no_issues'); echo '</td></tr>'; $specmanagement_print_api->printTableFoot(); } }
/** * Print table body from directory * * @param $p_version_id * @param $work_packages * @param $no_work_package_bug_ids * @param $option_show_duration * @param $detail_flag * @param $print_flag */ public function generate_content($p_version_id, $work_packages, $no_work_package_bug_ids, $option_show_duration, $detail_flag, $print_flag) { $specmanagement_database_api = new specmanagement_database_api(); $directory_depth = $this->calculate_directory_depth($work_packages); $chapter_counter_array = $this->prepare_chapter_counter($directory_depth); $last_chapter_depth = 0; $version_id = $_POST['version_id']; $version = version_get($version_id); $version_date = $version->date_order; /** Iterate through defined work packages */ if (!is_null($work_packages)) { foreach ($work_packages as $work_package) { if (strlen($work_package) > 0) { $work_package_spec_bug_ids = $specmanagement_database_api->get_workpackage_spec_bugs($p_version_id, $work_package); $chapters = explode('/', $work_package); $chapter_depth = count($chapters); if ($chapter_depth == 1) { $this->reset_chapter_counter($chapter_counter_array); } $chapter_prefix_data = $this->generate_chapter_prefix($chapter_counter_array, $chapter_depth, $last_chapter_depth); $chapter_counter_array = $chapter_prefix_data[0]; $chapter_prefix = $chapter_prefix_data[1]; $chapter_suffix = $this->generate_chapter_suffix($chapters, $chapter_depth); $this->process_chapter($p_version_id, $work_package, $chapter_prefix, $chapter_suffix, $option_show_duration, $detail_flag, $print_flag); $this->process_content($work_package_spec_bug_ids, $version_date, $chapter_prefix, $chapter_suffix, $option_show_duration, $detail_flag, $print_flag); $last_chapter_depth = $chapter_depth; } } } /** Iterate through issues without defined work package */ $chapter_prefix = $chapter_counter_array[0] + 1; $chapter_suffix = plugin_lang_get('editor_no_workpackage'); if (count($no_work_package_bug_ids) > 0) { $this->process_chapter($p_version_id, '', $chapter_prefix, $chapter_suffix, $option_show_duration, $detail_flag, $print_flag); $this->process_content($no_work_package_bug_ids, $version_date, $chapter_prefix, $chapter_suffix, $option_show_duration, $detail_flag, $print_flag); } }
/** * Print table body from directory * * @param $pdf * @param $p_version_id * @param $work_packages * @param $no_work_package_bug_ids * @param $option_show_duration * @param $detail_flag * @return Array */ function generate_content(PDF $pdf, $p_version_id, $work_packages, $no_work_package_bug_ids, $option_show_duration, $detail_flag) { $specmanagement_database_api = new specmanagement_database_api(); $specmanagement_editor_api = new specmanagement_editor_api(); $directory_depth = $specmanagement_editor_api->calculate_directory_depth($work_packages); $chapter_counter_array = $specmanagement_editor_api->prepare_chapter_counter($directory_depth); $last_chapter_depth = 0; $version_id = $_POST['version_id']; $version = version_get($version_id); $version_date = $version->date_order; /** Iterate through defined work packages */ if (!is_null($work_packages)) { foreach ($work_packages as $work_package) { if (strlen($work_package) > 0) { $work_package_spec_bug_ids = $specmanagement_database_api->get_workpackage_spec_bugs($p_version_id, $work_package); $chapters = explode('/', $work_package); $chapter_depth = count($chapters); if ($chapter_depth == 1) { $specmanagement_editor_api->reset_chapter_counter($chapter_counter_array); } $chapter_prefix_data = $specmanagement_editor_api->generate_chapter_prefix($chapter_counter_array, $chapter_depth, $last_chapter_depth); $chapter_counter_array = $chapter_prefix_data[0]; $chapter_prefix = $chapter_prefix_data[1]; $chapter_suffix = $specmanagement_editor_api->generate_chapter_suffix($chapters, $chapter_depth); $chapter_duration = $specmanagement_database_api->get_workpackage_duration($p_version_id, $work_package); if ($detail_flag) { $pdf->ChapterTitle($chapter_prefix, utf8_decode($chapter_suffix), $option_show_duration, $chapter_duration); } else { $pdf->SetFont('Arial', 'B', 12); $pdf->SetFillColor(255, 255, 255); $pdf->Cell(95, 6, $chapter_prefix . ' ' . utf8_decode($chapter_suffix), 0, 0, 'L', 1); $pdf->Cell(95, 6, $pdf->PageNo(), 0, 0, 'R', 1); $pdf->SetFont('Arial', '', 12); $pdf->Ln(); } process_content($pdf, $work_package_spec_bug_ids, $version_date, $chapter_prefix, $option_show_duration, $detail_flag); $last_chapter_depth = $chapter_depth; } if ($detail_flag) { $pdf->Cell(0, 0, '', 'T'); } $pdf->Ln(7); } } /** Iterate through issues without defined work package */ $chapter_prefix = $chapter_counter_array[0] + 1; if (count($no_work_package_bug_ids) > 0) { $chapter_suffix = plugin_lang_get('editor_no_workpackage'); $chapter_duration = $specmanagement_database_api->get_workpackage_duration($p_version_id, ''); if ($detail_flag) { $pdf->ChapterTitle($chapter_prefix, utf8_decode($chapter_suffix), $option_show_duration, $chapter_duration); } else { $pdf->SetFont('Arial', 'B', 12); $pdf->SetFillColor(255, 255, 255); $pdf->Cell(0, 6, $chapter_prefix . ' ' . utf8_decode($chapter_suffix), 0, 0, 'L', 1); $pdf->SetFont('Arial', '', 12); $pdf->Ln(); } process_content($pdf, $no_work_package_bug_ids, $version_date, $chapter_prefix, $option_show_duration, $detail_flag); if ($detail_flag) { $pdf->Cell(0, 0, '', 'T'); } $pdf->Ln(7); $chapter_prefix++; } $content_package = array(); $content_package[0] = $pdf; $content_package[1] = $chapter_prefix; return $content_package; }