Voor een klein facturatie systeem dat ik in mijn applicatie moest schrijven heb ik een functie gemaakt om het bedrag om te zetten naar het bedrag volluit (is verplicht op een factuur denk ik)
ik post het hier want op het internet vind je meestal aleen engelse varianten
het kan altijd nuttig zijn
snippet uit mijn controller:
protected function nummerNaarWoord($number)
{
//nummers omzetten naar woorden, zit waarschijnlijk nog vol met bugs maarja, nederlands is geen makkelijke taal
if (($number < 0) || ($number > 999999999))
{
throw new Exception("Number is out of range");
}
$Gn = floor($number / 1000000);
$number -= $Gn * 1000000;
$kn = floor($number / 1000);
$number -= $kn * 1000;
$Hn = floor($number / 100);
$number -= $Hn * 100;
$Dn = floor($number / 10);
$n = $number % 10;
$res = "";
if ($Gn)
{
$res .= $this->nummerNaarWoord($Gn) . "miljoen";
}
if ($kn)
{
$res .= (empty($res) ? "" : " ") .
$this->nummerNaarWoord($kn) . "duizend";
}
if ($Hn)
{
$tmp = ($Hn>1)?$this->nummerNaarWoord($Hn):"";
$res .= (empty($res) ? "" : " ") .
$tmp. "honderd";
}
$ones = array("", "een", "twee", "drie", "vier", "vijf", "Zes",
"Zeven", "Acht", "Negen", "Tien", "Elf", "Twaalf", "Dertien",
"Veertien", "Vijftien", "Zestien", "Zeventien", "Achtien",
"Negentien");
$tens = array("", "", "Twintig", "Dertig", "Veertig", "Vijftig", "Zestig",
"Zeventig", "Achtig", "Negentig");
if ($Dn || $n)
{
if (!empty($res))
{
$res .= "";
}
if ($Dn < 2)
{
$res .= $ones[$Dn * 10 + $n];
}
else
{
if ($n)
{
$res .= $ones[$n]."en".$tens[$Dn];
} else $res .= $tens[$Dn];
}
}
if (empty($res))
{
$res = "Nul";
}
return ucfirst(strtolower($res));
}