/**
  * @param $work_packages
  * @param $p_version_id
  * @param $no_workpackage_bug_ids
  */
 public function print_expenses_overview_body($work_packages, $p_version_id, $no_workpackage_bug_ids)
 {
     $specmanagement_database_api = new specmanagement_database_api();
     $document_duration = 0;
     echo '<tbody>';
     if ($work_packages != null) {
         $document_duration = 0;
         foreach ($work_packages as $work_package) {
             /** go to next record, if work package is empty */
             if (strlen($work_package) == 0) {
                 continue;
             }
             $duration = $specmanagement_database_api->get_workpackage_duration($p_version_id, $work_package);
             if (is_null($duration)) {
                 $duration = 0;
             }
             $document_duration += $duration;
             echo '<tr>';
             echo '<td>' . $work_package . '</td>';
             echo '<td class="duration">' . $duration . '</td>';
             echo '</tr>';
         }
     }
     if (count($no_workpackage_bug_ids) > 0) {
         $sum_no_work_package_bug_duration = 0;
         foreach ($no_workpackage_bug_ids as $no_workpackage_bug_id) {
             $no_work_package_bug_duration = $specmanagement_database_api->get_bug_duration($no_workpackage_bug_id);
             if (!is_null($no_work_package_bug_duration)) {
                 $sum_no_work_package_bug_duration += $no_work_package_bug_duration;
             }
         }
         $document_duration += $sum_no_work_package_bug_duration;
         echo '<tr>';
         echo '<td>' . plugin_lang_get('editor_no_workpackage') . '</td>';
         echo '<td class="duration">' . $sum_no_work_package_bug_duration . '</td>';
         echo '</tr>';
     }
     echo '<tr>';
     echo '<td colspan="2"><hr width="100%" align="center" /></td>';
     echo '</tr>';
     echo '<tr>';
     echo '<td>';
     echo plugin_lang_get('editor_expenses_overview_sum') . ':';
     echo '</td>';
     echo '<td class="duration">' . $document_duration . '</td>';
     echo '</tr>';
     echo '</tbody>';
 }
/**
 * @param $unsolveld_bug_ids
 * @return array
 */
function get_uncertainty_issues($unsolveld_bug_ids)
{
    $specmanagement_database_api = new specmanagement_database_api();
    $uncertainty_bug_ids = array();
    foreach ($unsolveld_bug_ids as $unsolveld_bug_id) {
        if ($specmanagement_database_api->get_bug_duration($unsolveld_bug_id) == 0) {
            array_push($uncertainty_bug_ids, $unsolveld_bug_id);
        }
    }
    return $uncertainty_bug_ids;
}
/**
 * @param $pdf
 * @param $p_version_id
 * @param $work_packages
 * @param $no_work_package_bug_ids
 * @return mixed
 */
function generate_expenses_overview(PDF $pdf, $p_version_id, $work_packages, $no_work_package_bug_ids)
{
    $specmanagement_database_api = new specmanagement_database_api();
    $document_duration = 0;
    $table_column_widths = array(95, 95);
    $header = array(plugin_lang_get('bug_view_specification_wpg'), plugin_lang_get('bug_view_planned_time') . ' ( ' . plugin_lang_get('editor_duration_unit') . ')');
    /** Head */
    $pdf->SetFont('Arial', 'B', 12);
    for ($head_column_index = 0; $head_column_index < count($header); $head_column_index++) {
        $pdf->Cell($table_column_widths[$head_column_index], 7, $header[$head_column_index], 1, 0, 'C');
    }
    $pdf->SetFont('Arial', '', 12);
    $pdf->Ln();
    /** Body */
    if ($work_packages != null) {
        $document_duration = 0;
        foreach ($work_packages as $work_package) {
            /** go to next record, if work package is empty */
            if (strlen($work_package) == 0) {
                continue;
            }
            $duration = $specmanagement_database_api->get_workpackage_duration($p_version_id, $work_package);
            if (is_null($duration)) {
                $duration = 0;
            }
            $document_duration += $duration;
            $pdf->Cell($table_column_widths[0], 6, $work_package, 'LR');
            $pdf->Cell($table_column_widths[1], 6, $duration, 'LR', 0, 0);
            $pdf->Ln();
            $pdf->Cell(array_sum($table_column_widths), 0, '', 'T');
            $pdf->Ln();
        }
    }
    if (count($no_work_package_bug_ids) > 0) {
        $sum_no_work_package_bug_duration = 0;
        foreach ($no_work_package_bug_ids as $no_work_package_bug_id) {
            $no_work_package_bug_duration = $specmanagement_database_api->get_bug_duration($no_work_package_bug_id);
            if (!is_null($no_work_package_bug_duration)) {
                $sum_no_work_package_bug_duration += $no_work_package_bug_duration;
            }
        }
        $document_duration += $sum_no_work_package_bug_duration;
        $pdf->Cell($table_column_widths[0], 6, utf8_decode(plugin_lang_get('editor_no_workpackage')), 'LR');
        $pdf->Cell($table_column_widths[1], 6, $sum_no_work_package_bug_duration, 'LR', 0, 0);
        $pdf->Ln();
        $pdf->Cell(array_sum($table_column_widths), 0, '', 'T');
        $pdf->Ln();
    }
    $pdf->SetFont('Arial', 'B', 12);
    $pdf->Cell($table_column_widths[0], 6, plugin_lang_get('editor_expenses_overview_sum') . ':', 'LR');
    $pdf->Cell($table_column_widths[1], 6, $document_duration, 'LR', 0, 0);
    $pdf->Ln();
    $pdf->SetFont('Arial', '', 12);
    $pdf->Cell(array_sum($table_column_widths), 0, '', 'T');
    return $pdf;
}