|
|
@@ -460,4 +460,61 @@ EOF';
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
+ public static function kwotaSlownie($kwota = 0, $waluta = "PLN") {
|
|
|
+ if (!preg_match("/^[[:digit:]]*(\.[[:digit:]]+)?$/",$kwota)) throw new Exception("Błędna liczba");
|
|
|
+ if (!preg_match("/^[[:digit:]]{0,48}(\.[[:digit:]]+)?$/",$kwota)) throw new Exception("Zbyt duża liczba");
|
|
|
+
|
|
|
+ $waluty = array(
|
|
|
+ 'PLN' => array('złoty','złotych','złote'),
|
|
|
+ 'USD' => array('dolar','dolarów','dolary')
|
|
|
+ );
|
|
|
+
|
|
|
+ $jednosci = array('zero','jeden','dwa','trzy','cztery','pięć','sześć','siedem','osiem','dziewięć','dziesięć','jedenaście',
|
|
|
+ 'dwanaście','trzynaście','czternaście','piętnaście','szesnaście','siednaście','osiemnaście','dziewiętnaście');
|
|
|
+ $dziesiatki = array('','','dwadzieścia','trzydzieści','czterdzieści','pięćdziesiąt','sześćdziesiąt','siedemdziesiąt','osiemdziesiąt','dziewięćdziesiąt');
|
|
|
+ $setki = array('','sto','dwieście','trzysta','czterysta','pięćset','sześćset','siedemset','osiemset','dziewięćset');
|
|
|
+
|
|
|
+ if (!isset($waluty[$waluta])) $tysiace[] = array($waluta,$waluta,$waluta);
|
|
|
+ else $tysiace[] = $waluty[$waluta];
|
|
|
+ $tysiace[] = array('tysiąc','tysięcy','tysiące');
|
|
|
+ $tysiace[] = array('milion','milionów','miliony');
|
|
|
+ $tysiace[] = array('miliard','miliardów','miliardy');
|
|
|
+ $tysiace[] = array('bilion','bilionów','bilony');
|
|
|
+ $tysiace[] = array('biliard','biliardów','biliardy');
|
|
|
+ $tysiace[] = array('trylion','trylionów','tryliony');
|
|
|
+ $tysiace[] = array('tryliard','tryliardów','tryliardy');
|
|
|
+ $tysiace[] = array('kwadrylion','kwadrylionów','kwadryliony');
|
|
|
+ $tysiace[] = array('kwadryliard','kwadryliardów','kwaryliardy');
|
|
|
+ $tysiace[] = array('kwintylion','kwintylionów','kwintyliony');
|
|
|
+ $tysiace[] = array('kwintyliard','kwintyliardów','kwintyliardy');
|
|
|
+ $tysiace[] = array('sekstylion','sekstylionów','sepstyliony');
|
|
|
+ $tysiace[] = array('sekstyliard','sekstyliardów','sekstyliardy');
|
|
|
+ $tysiace[] = array('septylion','septylionów','septyliony');
|
|
|
+ $tysiace[] = array('septyliard','septyliardów','septyliardy');
|
|
|
+
|
|
|
+ $kwota = (!substr_count($kwota, '.')) ? $kwota.'.00' : $kwota;
|
|
|
+ list($zlote, $grosze) = explode('.', $kwota);
|
|
|
+ if (strlen($grosze) == 1) $grosze .= "0";
|
|
|
+ elseif (strlen($grosze) > 2) $grosze = round(substr($grosze, 0, 2).".".substr($grosze, 2), 0);
|
|
|
+ $zlote = strrev(wordwrap(strrev($zlote), 3, '.', true));
|
|
|
+
|
|
|
+ $zloteArr = explode('.', $zlote);
|
|
|
+ foreach ($zloteArr as $i => $l) {
|
|
|
+ $tysiac = count($zloteArr) - $i - 1;
|
|
|
+ $setka = $setki[floor($l/100)];
|
|
|
+ $dziesiatka = $dziesiatki[floor(($l%100)/10)];
|
|
|
+ $jednosc = $dziesiatka ? $jednosci[$l%10] : $jednosci[$l%100];
|
|
|
+ if ($l == 1 and ($tysiac > 0 or count($zloteArr) == 1)) $odmiana = 0;
|
|
|
+ elseif (floor($l%100/10) != 1 and $l%10 >= 2 and $l%10 <= 4) $odmiana = 2;
|
|
|
+ else $odmiana = 1;
|
|
|
+ if ($setka) $resultArr[] = $setka;
|
|
|
+ if ($dziesiatka) $resultArr[] = $dziesiatka;
|
|
|
+ $resultArr[] = $jednosc;
|
|
|
+ $resultArr[] = $tysiace[$tysiac][$odmiana];
|
|
|
+ }
|
|
|
+
|
|
|
+ $resultArr[] = $grosze . "/100";
|
|
|
+ return implode(" ", $resultArr);
|
|
|
+ }
|
|
|
+
|
|
|
}
|