Faturadaki Toplam Tutarı Yazı İle Yazma ( YARDIM )

deathpoint

OpenCart-TR
Katılım
7 Ocak 2014
Mesajlar
3
Tepkime puanı
0
Puanları
0
Faturadaki Toplam Tutarı Yazı İle Yazdırmam lazım. Forumda birkaç konuya ulaştım ama açıklık getirilmemiş bir türlü işin çıkamadım yardım edermisiniz.

Elimde şöyle bir kod dizimi var.

PHP:
<?php echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="<?php echo $direction; ?>" lang="<?php echo $language; ?>" xml:lang="<?php echo $language; ?>">
<head>
<title><?php echo $title; ?></title>
<base href="<?php echo $base; ?>" />
</head>
<?php
class yaziyla {

    var $sayi=0;
    var $kurus=0;
    var $eksi="";
    var $birim="TL";
    var $kurus_birim = "KR";
    var $bolukler;
    var $birler;
    var $onlar;

    function yaziyla($birim="TL", $kurus_birim="KR") {

        $this->birim          = $birim;
        $this->kurus_birim    = $kurus_birim;
        $this->bolukler       = array("","bin","milyon","milyar","trilyon","katrilyon","trilyar","kentrilyon","kentrilyar","kontrilyar");
        $this->birler         = array("sıfır","bir","iki","üç","dört","beş","altı","yedi","sekiz","dokuz");
        $this->onlar          = array("","on","yirmi","otuz","kırk","elli","altmış","yetmiş","seksen","doksan","yüz");

    }
    function yaz($sayi) {

        $tam="";
        $kurus="";
        if($this->sayi_cozumle($sayi)) {

        return "Hatalı Sayı Formatı!";
        }

        if(($this->sayi+$this->kurus) == 0) return $this->birler[0].' '.$this->birim;

        if($this->sayi>0) $tam = $this->oku($this->sayi);
        if($this->kurus>0) $kurus = $this->oku($this->kurus);

        if( $this->sayi == 0 ) return $this->eksi.' '.$kurus.' '.$this->kurus_birim;
        if( $this->kurus == 0 ) return $this->eksi.' '.$tam.' '.$this->birim;
        return $this->eksi.' '.$tam.' '.$this->birim.' '.$kurus.' '.$this->kurus_birim;
    }
    function oku($sayi) {

    if($sayi == 0) return $this->birler[0];
        $ubb = sizeof($this->bolukler);
        $kac_sifir = 3 - (strlen($sayi) % 3);
        if($kac_sifir!=3) for($i=0;$i<$kac_sifir;++$i) { $sayi = "0$sayi"; }

        $k = 0; $sonuc = "";
        for($i = strlen($sayi); $i>0; $i-=3,++$k) {

           $boluk = $this->boluk_oku(substr($sayi, $i-3, 3));
           if($boluk) {
           if(($k == 1) && ($boluk == $this->birler[1])) $boluk = "";
           if(  $k > $ubb) $sonuc = $boluk ."Tanımsız(".($k*3).".Basamak) $sonuc";
           else $sonuc = $boluk . $this->bolukler[$k]." $sonuc";
           }
        }
        return $sonuc;
    }
    function boluk_oku($sayi) {

         $sayi = ((int)($sayi)) % 1000; $sonuc = "";
         $bir = $sayi % 10;
         $on_ = (int)($sayi / 10) % 10;
         $yuz = (int)($sayi / 100) % 10;

         if($yuz) { if($yuz == 1) $sonuc = $this->onlar[10];
         else $sonuc = $this->birler[$yuz].$this->onlar[10]; }

         if($on_) $sonuc = $sonuc.$this->onlar[$on_];
         if($bir) $sonuc = $sonuc.$this->birler[$bir];
         return $sonuc;
    }
    function sayi_cozumle($sayi) {

        $sayi = trim($sayi);
        if($sayi[0] == "-") { $this->eksi="Eksi"; $sayi = substr($sayi, 1); }
        if(preg_match("/^(0*\.0+|0*|\.0+)$/", $sayi)) { $this->sayi = $this->kurus = 0; return 0; }
        if(preg_match("/^(\d+)\.(\d+)$/", $sayi, $m))
        {
        $sayi = $m[1]; $this->sayi = (int)preg_replace("/^0+/","",$sayi);
        if(!preg_match("/^0+$/",$m[2])) $this->kurus = (int)$m[2];
        }
        else if(preg_match("/^0*(\d+)$/", $sayi, $m) || preg_match("/^0*(\d+)\.0+$/", $sayi, $m)) { $this->sayi = (int)$m[1]; }
        else if(preg_match("/^0*\.(\d+)$/", $sayi, $m)) { $this->sayi = 0; $this->kurus = (int)$m[1]; }
        else return 1;
        if($this->kurus>0) {

        $this->kurus= number_format('0.'.$this->kurus, 2);
        if( (int)$this->kurus == 1 ) { ++$this->sayi; $this->kurus = 0; }
        else $this->kurus = (int)str_replace("0.", "", $this->kurus);
        }
        return 0;
    }
}
$yaziyla = new yaziyla("TÜRK LİRASI", "KURUŞ");
?>
<body>
<?php foreach ($orders as $order) { ?>
<div style="page-break-after: always;">
  
  <table width="750" class="store">

  </table>
  <table width="730" class="address">
    <tr>
      <td align="center"><?php echo $order['payment_address']; ?><br/></td>
      <td align="right"><?php echo $order['date_added']; ?></td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td align="right">&nbsp;</td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td align="right">&nbsp;</td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td align="right">&nbsp;</td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td align="right">&nbsp;</td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td align="right">&nbsp;</td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td align="right">&nbsp;</td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td align="right">&nbsp;</td>
    </tr>
  </table>
  <table width="730" class="product">
    <?php foreach ($order['product'] as $product) { ?>
    
    <tr>
      <td width="37" valign="top">&nbsp;</td>
      <td width="37" height="202" valign="top"><?php echo $product['quantity']; ?></td>
      <td width="327" valign="top"><?php echo $product['name']; ?></td>
      <td width="56" valign="top"><?php foreach ($product['option'] as $option) { ?></td>
      <td width="58" valign="top"><small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small><?php } ?></td>
      <td width="49" valign="top"><?php echo $product['model']; ?></td>
      <td width="56" valign="top"><?php echo $product['price']; ?></td>
      <td width="74" align="right" valign="top"><?php echo $product['total']; ?></td>
    </tr>    

    <?php } ?>
    <?php foreach ($order['voucher'] as $voucher) { ?>
    <tr>
      <td align="right">&nbsp;</td>
      
      <td align="right"><?php echo $voucher['description']; ?></td>
      <td align="right"></td>
      <td align="right"></td>
      <td align="right"></td>
      <td align="right"></td>
      <td align="right"></td>
      <td align="right"></td>
    </tr>
    <?php } ?>
    <?php foreach ($order['total'] as $total) { ?>
    <tr>
      <td align="right"></td>
      <td align="right"></td>
      <td align="right">&nbsp;</td>
      <td colspan="3" align="right"><b><?php echo $total['title']; ?>:</b></td>
      <td colspan="2" align="right"><?php echo $total['text']; ?></td>
    </tr>
    <?php } ?>
  </table><table width="730" align="left">
    <tr align="right" class="heading">
    <td><?php
    $miktar = $total['text'];
    $yenimiktar = str_replace("TL","",$miktar);
    $yenimiktar2 = str_replace(" ","",$yenimiktar);
    $yenimiktar3 = str_replace(",","",$yenimiktar2);
    ?>
    <?php echo 'YALNIZ'. $yaziyla->yaz($yenimiktar3); ?>
    </td>    
  </tr></table>
</p>
</div>
<?php } ?>
</body>
</html>


Arkadaşlar sorun şu aslında ama çözemedim para birimini opencar temasınında ondalık kısmına 2 yazıdğımızda ,00 sonraki kısmı hesaplatamadım 25.00 lira ya İKİBİN BEŞYÜZ TL Diyor
 

bakitaro

OpenCart-TR
Katılım
17 Haz 2013
Mesajlar
36
Tepkime puanı
0
Puanları
0
Yaş
42
Web sitesi
opencartfx.com
Biraz gecikmeli bir cevap oldu ama belki birilerinin işine yarayabilir.

Arşivimde bulunan bir kod; düzenlenirse işe yarayabilir.

Kod:
<?php
header("Content-type: text/html; charset=utf-8");

$birler = array("","bir ","iki ","üç ","dört ","beş ","altı ","yedi ","sekiz ","dokuz ");
$onlar = array("","on ","yirmi ","otuz ","kırk ","elli ","atmış ","yetmiş ","seksen ","doksan ");
$yuzler = array("","yüz ","iki yüz ","üç yüz ","dört yüz ","beş yüz ","altı yüz ","yedi yüz ","sekiz yüz ","dokuz yüz ");
$ek_kelime = array(""," ","bin ","milyon ","milyar ","trilyon ","katrilyon ","kentilyon ","seksilyon ","septilyon ","oktilyon ");

/////
function uclukhaneyecevir($rakam)
{
$eksik=(3-strlen($rakam)); for($i=0;$i<$eksik;$i++){$rakam="0".$rakam."";}
return $rakam;
}
//////
function uclukyazdir($rakam)
{
global $birler, $onlar, $yuzler;
$birinci=substr($rakam,2,1);
$ikinci=substr($rakam,1,1);
$ucuncu=substr($rakam,0,1);
$sonhali="$yuzler[$ucuncu] $onlar[$ikinci] $birler[$birinci]";
return $sonhali;

}
////
function rakam2yazi($sayi)
{
global $birler, $onlar, $yuzler, $ek_kelime;
list($tam,$ondalik)=explode(",",number_format($sayi,"2",",",""));
$ayirsana=explode(",",number_format($tam));
$say=count($ayirsana);

$ayirsanao=explode(",",number_format($ondalik));
$sayo=count($ayirsanao);

//echo number_format($sayi); echo " > ";
$tamy="";
$ondaliky="";
for($i=0;$i<$say;$i++)
{

if($ayirsana[$i]!="000"){

$kontrol=uclukyazdir(uclukhaneyecevir($ayirsana[$i]))."".$ek_kelime[$say-$i];

if(trim($kontrol)=="bir bin"){
 $tamy.=$ek_kelime[$say-$i];
 }else{
 $tamy.= uclukyazdir(uclukhaneyecevir($ayirsana[$i]))."".$ek_kelime[$say-$i];
 }
}
}
for($i=0;$i<$sayo;$i++)
{
 $kontrol=uclukyazdir(uclukhaneyecevir($ayirsanao[$i]))."".$ek_kelime[$sayo-$i];
 if(trim($kontrol)=="bir bin"){
 $ondaliky.=$ek_kelime[$sayo-$i];
 }else{
 $ondaliky.=uclukyazdir(uclukhaneyecevir($ayirsanao[$i]))."".$ek_kelime[$sayo-$i];
 }

}
if($tam>0){$tamsonuc=$tamy." lira ";}else{$tamsonuc="";}
if($ondalik>0){$ondaliksonuc=$ondaliky." kuruş ";}else{$ondaliksonuc="";}
$sonuc=$tamsonuc." ".$ondaliksonuc;
return $sonuc;

}

////
echo trim(rakam2yazi("1250567.455"));
?>
 
Üst