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

function func_LB_BZ_fiktiv($wert, $prozentsatz)
{
  // Berechnung der Leistungszulagen BZ in die Zukunft sowie die fiktiven Zulagen für FIKTIVE PROFESSOREN.

 $db = dbconnect();
 $result_anz_fikt = $db->query("SELECT count(*) Anz
                                 FROM prog_tmp_professor
                                WHERE art='F'
                              ");
 $row_anz_fikt = $result_anz_fikt->fetch_array();
 if($row_anz_fikt['Anz'] >0){
  
  
  // Die Tabelle darf nicht geleert werden, da sie durch die vorher laufende fun_lb_bz gelöscht wird. Aufruf in func_gesamtberechnung.php
  $result_truncate = $db->query("DELETE FROM prog_tmp_lb_bz WHERE did IN (SELECT did FROM prog_tmp_professor WHERE art='F')");

  // Teil 1: Vorhandene Leistungsbezüge monatlich hochrechnen


    # 1 Monat abziehen, da man wissen möchte, in welchem Monat der Prof seine letzte Zulage bekommt. In der DB steht der erste Tag der Pension
    $result_weggang = $db->query("SELECT did, date_format(zugang, '%Y-%m-01') zugang_form, date_format(date_sub(weggang, INTERVAL 1 MONTH) ,'%Y-%m-28') enddat_form
                                    FROM prog_tmp_professor
                                   WHERE art='F'
                                   ORDER BY tdid ASC
                                 ");
    $row = $result_weggang->fetch_array();
    $ende = $row['enddat_form'];
    
    $start = date_create_from_format('Y-m-d', $row['zugang_form'], new DateTimeZone('GMT'));   
    $end = date_create($ende, new DateTimeZone('GMT'));
    $wert2 = $wert;


    

    // Foreach Schleife dauert lange. Ggf.
    // Es scheint so, dass DateInterval den letzten Monat weglässt wenn jmd z.B. am 01. August in Ruhestand , dann rechnet die foreach-Schleife nur bis Juli. Daher wird oben im Select der 28 als Monatsende eingetragen
  
    foreach(new DatePeriod($start, new DateInterval('P1M') , $end) as $cur) {

          if($cur->format('m') == '01'){
            $prozent = $wert * $prozentsatz / 100;
            $wert = $wert + $prozent;
            $wert2 = round($wert,2);
          }else{
            $wert2 = $wert2;
          }
          $result_insert = $db->query("INSERT INTO prog_tmp_lb_bz (lbbzid, monat, did, wert, anpassung, art) VALUES (0, '" . $cur->format('Y-m-01') . "', $row[did], $wert2, 'Y', 'F')");
    }
 }
} // Ende Funktion

#func_LB_BZ_fiktiv(250,2);

?>