Yii Framework Forum: [tip] bedrag naar woord - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[tip] bedrag naar woord Rate Topic: -----

#1 User is offline   Mukke 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 51
  • Joined: 05-September 09
  • Location:Brussels (Belgium)

Posted 17 February 2011 - 06:38 AM

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)); 
	} 

(\ /)
( . .)
C('')('') -- This is Tiny Bunny. Copy Tiny Bunny into your signature to help him on his way to world domination.
Posted Image
0

#2 User is offline   domein kopen 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 05-July 13

Posted 05 July 2013 - 08:22 AM

Top mukke! Dit was precies wat ik zocht :)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users