Vertragsübersicht zeigt nun auch den Fiktivmonatsbezug an

This commit is contained in:
Andreas Österreicher
2015-01-14 13:18:06 +00:00
parent c66eff871e
commit 4d0b7375ce
+54 -3
View File
@@ -63,6 +63,10 @@ if($studiensemester_kurzbz!='')
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$format_number =& $workbook->addFormat();
$format_number->setNumFormat('0,0.00');
$spalte=0;
$zeile=0;
@@ -77,6 +81,8 @@ if($studiensemester_kurzbz!='')
$maxlength[$spalte]=15;
$worksheet->write($zeile,++$spalte,'Gesamthonorar',$format_bold);
$maxlength[$spalte]=15;
$worksheet->write($zeile,++$spalte,'Fiktivmonatsbezug',$format_bold);
$maxlength[$spalte]=15;
$stsem = new studiensemester($studiensemester_kurzbz);
@@ -122,9 +128,27 @@ if($studiensemester_kurzbz!='')
if(mb_strlen($row->ende)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($row->ende);
$worksheet->write($zeile,++$spalte, $row->gesamthonorar);
if(mb_strlen($row->gesamthonorar)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($row->gesamthonorar);
$gesamthonorar = number_format($row->gesamthonorar,2,'.','');
$worksheet->write($zeile,++$spalte, $gesamthonorar, $format_number);
if(mb_strlen($gesamthonorar)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($gesamthonorar);
// Fiktivmonatsbezug berechnen
// (Honorar gesamt/ Tage offen) * 30 / 7 * 6
$tageoffen = BerechneGesamtTage($row->beginn, $row->ende);
if($tageoffen!=0)
{
$fiktivmonatsbezug = ($row->gesamthonorar / $tageoffen) * 30 / 7 * 6;
$fiktivmonatsbezug = number_format($fiktivmonatsbezug, 2,'.','');
}
else
$fiktivmonatsbezug = '';
$worksheet->write($zeile,++$spalte, $fiktivmonatsbezug,$format_number);
if(mb_strlen($fiktivmonatsbezug)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($fiktivmonatsbezug);
}
}
@@ -150,4 +174,31 @@ else
</html>
';
}
function BerechneGesamtTage($startdatum, $endedatum)
{
$gesamttage=0;
$datum = new DateTime($startdatum);
$ende = new DateTime($endedatum);
$i=0;
while($datum<$ende)
{
$i++;
if($i>100)
die('Rekursion? Abbruch');
$tag = $datum->format('d');
if($tag==31)
$gesamttage+=1;
else
$gesamttage+=31-$tag;
$datum = new DateTime(date('Y-m-t',$datum->getTimestamp())); // Letzten Tag im Monat
$datum->add(new DateInterval('P1D')); // 1 Tag dazuzaehlen
}
return $gesamttage;
}
?>