<?php
require_once ("config.inc.php");

function func_LB_obergrenze($prozentsatz)
{

  // Werte können unter dem Jahr gespeichert werden.
  // Daher die erfassten werte übernehmen, 1 Jahr nach dem letzten Wert eine Steigerung um 2%
  // Ab jedem neuen Jahr eine Steigerung von 2%

  $db = dbconnect();
  $result_truncate = $db->query("TRUNCATE TABLE prog_tmp_lb_obergrenze");
  $query_minjahr = $db->query("SELECT min(jahr) jahr
                                 FROM `prog_vergaberahmen`
                             ");
                             
  $row_minjahr = $query_minjahr->fetch_array();
  $start = new DateTime($row_minjahr['jahr'] . '-01-01');
  $query_maxjahr = $db->query("SELECT date_format(max(date_sub(weggang, INTERVAL 1 MONTH)),'%Y-%m-28') enddat_form
                                 FROM `prog_tmp_professor`
                             ");
                             
  $row_maxjahr = $query_maxjahr->fetch_array();
  $ende = $row_maxjahr['enddat_form'];
  $end = date_create($ende, new DateTimeZone('GMT'));
  foreach(new DatePeriod($start, new DateInterval('P1M') , $end) as $cur) {
    $akt_mon = $cur->format('Y-m');
    $mon = $cur->format('m');

    // ab welchem Datum wird eine prozentuale erhöhung vorgenommen. Maximaler Zuschlag bis einschl. 2017 war C3 Stufe15 - W2
    $result_proz = $db->query("SELECT date_format(max(startdat), '%Y-%m') proz_dat 
                                 FROM `prog_grundgehalt`
                                WHERE besoldung='C3'
                             ");
    $row_proz = $result_proz->fetch_array();
    if ($row_proz['proz_dat'] >= $akt_mon) {

      // An der Oberfläche werden Jahreswerte berechnet. Diese werden anteilig auf den Monat verteilt

      $result_akt_wert_c3 = $db->query("SELECT gid, betrag C3
                                       FROM prog_grundgehalt
                                      WHERE date_format(startdat, '%Y-%m') <= '$akt_mon'
                                        AND besoldung = 'C3'
                                        AND stufe = '15'
                                      ORDER BY startdat desc
                                      LIMIT 1");
      $row_akt_wert_c3 = $result_akt_wert_c3->fetch_array();
      
      $result_akt_wert_w2 = $db->query("SELECT gid, betrag W2
                                          FROM prog_grundgehalt
                                         WHERE date_format(startdat, '%Y-%m') <= '$akt_mon'
                                           AND besoldung = 'W2'
                                           AND stufe = '0'
                                         ORDER BY startdat desc
                                         LIMIT 1");
      $row_akt_wert_w2 = $result_akt_wert_w2->fetch_array();
      
      $max_zulage = $row_akt_wert_c3['C3']-$row_akt_wert_w2['W2'];
      
      $result_insert = $db->query("INSERT INTO prog_tmp_lb_obergrenze (gidc3, gidw2, ab_datum, w2, c3, max_zulage, art) VALUES ($row_akt_wert_c3[gid], $row_akt_wert_w2[gid],'" . $cur->format('Y-m-01') . "', '$row_akt_wert_w2[W2]', '$row_akt_wert_c3[C3]', '$max_zulage', 'B')");
      $last_wert_w2 = $row_akt_wert_w2['W2'];
      $last_wert_c3 = $row_akt_wert_c3['C3'];
    }
    else {

      // 1 Jahr nach dem letzten wert soll der Wert um 2 Prozent erhöht werden für weitere 12 Monate usw.
      // Fiktiver Wert: Nachdem 12 Monate vergangen sind, dann +2% sowie alle 12 Monate
      //              echo "";

      if ($mon == '01') { //Erhöhung im Januar um 2 Prozent
        $prozent_w2 = $last_wert_w2 * $prozentsatz / 100;
        $last_wert_w2 = $last_wert_w2 + $prozent_w2;
        $prozent_c3 = $last_wert_c3 * $prozentsatz / 100;
        $last_wert_c3 = $last_wert_c3 + $prozent_c3;
        $max_zulage = $last_wert_c3 - $last_wert_w2;
        $result_insert = $db->query("INSERT INTO prog_tmp_lb_obergrenze (gidc3, gidw2, ab_datum, w2, c3, max_zulage, art) VALUES ($row_akt_wert_c3[gid], $row_akt_wert_w2[gid], '" . $cur->format('Y-m-01') . "', '$last_wert_w2', '$last_wert_c3', '$max_zulage', 'F')");
      }
      else {
        $max_zulage = $last_wert_c3 - $last_wert_w2;
        $result_insert = $db->query("INSERT INTO prog_tmp_lb_obergrenze (gidc3, gidw2, ab_datum, w2, c3, max_zulage, art) VALUES ($row_akt_wert_c3[gid], $row_akt_wert_w2[gid], '" . $cur->format('Y-m-01') . "', '$last_wert_w2', '$last_wert_c3', '$max_zulage', 'F')");
      }
    }

    // echo "INSERT INTO prog_tmp_lb_lz (lblzid, monat, did, wert) VALUES ($row[lblzid], '".$cur->format('Y-m-01')."', $row[did], $row[wert])<br />";

  }
}

// func_LB_obergrenze(2);

?>