<?php
/*
BELASTING BEREKENEN
===================
De directe belasting wordt (in Belgi๋ althans) als volgt berekend:
(recente schaalindelingen en bedragen op 14/11/2005)

- Zowieso krijgt iedereen een vrijgesteld bedrag van  5780 ($vd['vast'])
- Voor kinderen krijg je ook een belastingsvoordeel. Dit gaat als volgt:
	Aantal kinderen		Voordeel
		1				 1230
		2				 3160
		3				 7080
		4				 11450
		
		Meer:			 4370/kind
	
	Het laatste bedrag gaat dus in vanaf je 5de kind.
	Dus, 6 kinderen = 11450 + (2* 4370) = 20190
	OPGELET: als dit systeem ooit veranderd, dan moet je in de functie $vd['kind'] uitbreiden / inkorten
	Het systeem telt toch het aantal vastgelegde bedragen, dus het zal nog steeds werken
	
- Indien je gehuwd bent krijg je nogmaals  5780 onbelastbaar inkomen erbij

Vervolgens moet je het inkomen in de juiste schijf duwen.
	Inkomen			Percentage belasting
	0 - 7100		25%
	7100 - 10100	30%
	10100 - 16830	40%
	16830 - 30840	45%
	30840 - ...		50%


Sidenote: 	als je 7 kinderen hebt hoef je trouwens geen BTW te betalen (indirecte belastingen dus)
			dus begin er maar aan ;-)
*/
function belasting($iInkomen,$iKinderen=0,$iGehuwd=0) {
	$vd				 = array();
	$vd['vast']		 = 5780;
	$vd['kind'][1]	 = 1230;
	$vd['kind'][2]	 = 3160;
	$vd['kind'][3]	 = 7080;
	$vd['kind'][4]	 = 11450;
	$vd['kind']['+'] = 4370;
	$vd['gehuwd']	 = 5780;
	
	$iBelastbaar	 = $iInkomen;
	$iBelastbaar	-= $vd['vast'];
	// Vrijgesteld van belasting
	
	if($iGehuwd != 0) {
		$iBelastbaar	-= $vd['gehuwd'];
	}
	
	$iMaxVast			 = count($vd['kind'])-1;
	// Het maximum aantal vastgelegde bedragen. De '+' telt natuurlijk niet mee, dus -1
	if($iKinderen > 0 && $iKinderen < $iMaxVast) {
		$iBelastbaar	-= $vd['kind'][$iKinderen];
		// Happa, voordeel dankzij de kids :D
	} elseif($iKinderen >= $iMaxVast) {
		$iBelastbaar	-= $vd['kind'][$iMaxVast];
		// Eerst en vooral krijg je voor de eerste 5 kids als vrijstelling
		$iBelastbaar	-= ($vd['kind']['+']*($iMaxVast-$iKinderen));
		// De overige kids * vrijstelling er nog eens van
	}
	
	// We hebben nu het belastbaar inkomen. Nu even het verschil met het inkomen vastleggen
	$iVerschil		 = $iInkomen-$iBelastbaar;

	// Nu komt het moeilijkste: het bedrag in de juiste schijf pompen en de berekening maken.
	$aSchil			 = array();
	$aSchil[0]['start']	= 0;		$aSchil[0]['per']	= 25;
	$aSchil[1]['start']	= 7100;		$aSchil[1]['per']	= 30;
	$aSchil[2]['start']	= 10100;	$aSchil[2]['per']	= 40;
	$aSchil[3]['start']	= 16830;	$aSchil[3]['per']	= 45;
	$aSchil[4]['start']	= 30840;	$aSchil[4]['per']	= 50;

	for($i = 0; $i < count($aSchil); $i++) {
		if(($i+1) == count($aSchil)) {
			$iEind		= microtime()*microtime();
			// Hier moeten we een immens groot getal zetten
			// Als je dit verdient, dan hou je je echt niet bezig met 
			// zooi als dit :)
		} else {
			$iEind		= $aSchil[$i+1]['start'];
		}
		// $aSchil[$i+1] bevat het eindbedrag van de schil
		// aangezien dit het begin van een nieuwe is ;-)
		$iPercentage	= $aSchil[$i]['per']/100;
		// We kunnen nu gemakkelijk het te belasten bedrag hiermee
		// vermenigvuldigen :)
		$iStart			= $aSchil[$i]['start'];
		// Gewoon omdat dit korter is om te schrijven :p
		if($i == 0) {
			// Voor de eerste schil moeten we even het $iVerschil er nog uithalen
			$iBelast	= $iEind - $iVerschil;
			// Het bedrag dat we gaan belasten
			if($iBelast <= 0) {
				$iBelasting	= 0;
				// Als het een negatief verschil betreft ben je voor deze schil
				// vrijgesteld van belasting
				$minSchijf2	= $iBelast;
				// Even onthouden dat we dan in de tweede schijf het negatieve verschil
				// er even afhalen!
			} else {
				$iBelasting = ($iBelast*$iPercentage);
				// Weg ermee, niet meer nodig
			}
		} elseif($i == 1 && isset($minSchijf2)) {
			// Als we in de tweede "ronde zitten" moeten we eventueel
			// het negatieve $iBelast er af halen
			$iBelast = $iEind-$iStart+$minSchijf2;
			// $minSchijf2 is negatief, dus tellen we dat erbij op
			// waardoor het er van getrokken wordt (basiskennis wiskunde :p)
			
			// Nu kunnen we hierop dus het percentage heffen
			// en dit toevoegen aan de belasting
			$iBelasting	+= ($iBelast*$iPercentage);
		} else {
			if($iInkomen < $iEind) {
				$iBelast	= $iInkomen-$iStart;
			} else {
				$iBelast	= $iEind-$iStart;	
			}
			
			if($iBelast > 0) {
			$iBelasting	+= ($iBelast*$iPercentage);
			}
		}
	}
	$ret['inkomen']		= $iInkomen;
	$ret['bInkomen']	= $iBelastbaar;
	$ret['voordeel']	= $iVerschil;
	$ret['belasting']	= $iBelasting;
	return $ret;
	
}
?> 