/**
  * Prints the header element of a document
  *
  * @param $type_string
  * @param $version_id
  * @param $allRelevantBugs
  * @param $print_flag
  */
 public function print_document_head($type_string, $version_id, $allRelevantBugs, $print_flag)
 {
     $specmanagement_database_api = new specmanagement_database_api();
     $project_id = helper_get_current_project();
     $parent_project_id = $specmanagement_database_api->get_main_project_by_hierarchy($project_id);
     $versions = version_get_all_rows_with_subs($project_id, null, null);
     $act_version = version_get($version_id);
     $head_project_id = $project_id;
     if ($parent_project_id == 0) {
         $parent_project_id = version_get_field($version_id, 'project_id');
         $head_project_id = version_get_field($version_id, 'project_id');
     }
     $this->print_editor_table_head($print_flag);
     $this->print_editor_table_title($type_string, $version_id, $print_flag);
     $this->print_doc_head_row('head_version', version_get_field($version_id, 'version'));
     $this->print_doc_head_row('head_customer', project_get_name($parent_project_id));
     $this->print_doc_head_row('head_project', project_get_name($head_project_id));
     $this->print_doc_head_row('head_date', date('d\\.m\\.Y'));
     $this->print_doc_head_row('head_person_in_charge', $this->calculate_person_in_charge($version_id));
     if (!is_null($allRelevantBugs)) {
         $process = $this->get_process($allRelevantBugs);
         if (is_array($process)) {
             $sum_pt_all = $process[0];
             $sum_pt_bug = $process[1];
             $pt_process = 0;
             if ($sum_pt_all != 0) {
                 $pt_process = round($sum_pt_bug * 100 / $sum_pt_all, 2);
             }
             $process_string = '<span class="bar" style="width: ' . $pt_process . '%;">' . $sum_pt_bug . '/' . $sum_pt_all . ' ' . plugin_lang_get('editor_duration_unit') . ' (' . $pt_process . ' %)' . '</span>';
         } else {
             $process_string = '<span class="bar" style="width: ' . $process . '%;">' . round($process, 2) . ' %</span>';
         }
         //$this->print_doc_head_row ( 'head_process', $this->create_process_bar ( $process_string ) );
     }
     if (!$print_flag) {
         $this->print_doc_head_versions($versions, $act_version);
     }
     echo '</table>';
     echo '<br />';
 }
/**
 * @param PDF $pdf
 * @param $type_string
 * @param $version_id
 * @param $version_spec_bug_ids
 * @return PDF
 */
function generate_document_head(PDF $pdf, $type_string, $version_id, $version_spec_bug_ids)
{
    $specmanagement_database_api = new specmanagement_database_api();
    $specmanagement_editor_api = new specmanagement_editor_api();
    $project_id = helper_get_current_project();
    $parent_project_id = $specmanagement_database_api->get_main_project_by_hierarchy($project_id);
    $head_project_id = $project_id;
    if ($parent_project_id == 0) {
        $parent_project_id = version_get_field($version_id, 'project_id');
        $head_project_id = version_get_field($version_id, 'project_id');
    }
    $table_column_widths = array(95, 95);
    $pdf->Cell(array_sum($table_column_widths), 0, '', 'T');
    $pdf->Ln();
    generate_document_head_row($pdf, 'head_version', version_get_field($version_id, 'version'));
    generate_document_head_row($pdf, 'manversions_thdoctype', $type_string);
    generate_document_head_row($pdf, 'head_customer', project_get_name($parent_project_id));
    generate_document_head_row($pdf, 'head_project', project_get_name($head_project_id));
    generate_document_head_row($pdf, 'head_date', date('d\\.m\\.Y'));
    generate_document_head_row($pdf, 'head_person_in_charge', $specmanagement_editor_api->calculate_person_in_charge($version_id));
    if (!is_null($version_spec_bug_ids)) {
        $process = $specmanagement_editor_api->get_process($version_spec_bug_ids);
        if (is_array($process)) {
            $sum_pt_all = $process[0];
            $sum_pt_bug = $process[1];
            $pt_process = 0;
            if ($sum_pt_all != 0) {
                $pt_process = round($sum_pt_bug * 100 / $sum_pt_all, 2);
            }
            $process_string = $sum_pt_bug . '/' . $sum_pt_all . ' ' . plugin_lang_get('editor_duration_unit') . ' (' . $pt_process . ' %)';
        } else {
            $process_string = $process . ' %';
        }
        generate_document_head_row($pdf, 'head_process', $process_string);
    }
    return $pdf;
}