DEMO İNCELE
ÜCRETSİZ İNDİR

PrestaShop Faturaya, Tutarını Yazı İle Yazmak

Arkadaşlar Merhaba,

Ben fatura üzerinde istediğim şekilde düzenleme ve değişiklik yaptım ancak bildiğiniz gibi faturaların üzerinde toplam tutarın yazı ile yazıldığı bir alan oluyor. (Örneğin 152.90TL fatura toplamı için YüzElliİkiLiraDoksanKuruş yazılacak).

Bu işlemi yapacak olan php fonksiyonu elimde var ancak bu dosyayı presta sisteminde nereye koyacağımı ve geri döndürdüğü değeri faturada {} tag' ları arasında nasıl kullanacağımı bilmiyorum. Eğer yardımcı olabilirseniz çok sevinirim.

Teşekkürler.

13 thoughts on “PrestaShop Faturaya, Tutarını Yazı İle Yazmak

  1. ekonovich - 15 Ağustos 2017 at 13:33

    bu bana da lazım. bilen yok mu. openchartta yapmış adamlar

    Cevap
  2. Şahin YILDIZ - 15 Ağustos 2017 at 13:33

    Şu şekilde çözebilirsiniz…

     

    /config/config.inc.php en altına ekleyin….

     function yaziylasayi($sayi) {       $o = array(           'birlik' => array('bir', 'iki', 'üç', 'dört', 'beş', 'altı', 'yedi', 'sekiz', 'dokuz'),           'onluk' => array('on', 'yirmi', 'otuz', 'kırk', 'elli', 'altmış', 'yetmiş', 'seksen', 'doksan'),           'basamak' => array('yüz', 'bin', 'milyon', 'milyar', 'trilyon', 'katrilyon')       );          $basamak = array_reverse(str_split(implode('', array_reverse(str_split($sayi))), 3));         $basamak_sayisi = count($basamak);         for($i=0; $i < $basamak_sayisi; ++$i) {           $basamak[$i] = implode(array_reverse(str_split($basamak[$i])));                      if(strlen($basamak[$i]) == 1)               $basamak[$i] = '00' . $basamak[$i];           elseif(strlen($basamak[$i]) == 2)               $basamak[$i] = '0' . $basamak[$i];       }        $yenisayi = array();        foreach($basamak as $k => $b) {           if($b[0] > 0)               $yenisayi[] = ($b[0] > 1 ? $o['birlik'][$b[0]-1] . ' ' : '') . $o['basamak'][0];            if($b[1] > 0)               $yenisayi[] = $o['onluk'][$b[1]-1];            if($b[2] > 0)               $yenisayi[] = $o['birlik'][$b[2]-1];            if($basamak_sayisi > 1)               $yenisayi[] = $o['basamak'][$basamak_sayisi-1];            --$basamak_sayisi;       }              return implode(' ', $yenisayi);  	  $smarty->assign('yaziylasayi', $yaziylasayi);  }   

    pdf/invoice.tpl içerisine istediğiniz ekleyin

     {yaziylasayi({displayPrice currency=$order->id_currency price=$order_invoice->total_paid_tax_incl})} 

    Not : config.inc.php 

     

     

    Sonuç

     

    Cevap
  3. ekonovich - 15 Ağustos 2017 at 13:33

    denedim de boş sayfa çıkmaya başladı

    Cevap
  4. ekonovich - 15 Ağustos 2017 at 13:33

    bende öyle birşey çıkmıyorki . ftp programıyla notepadde değiştiriyorum ben

    Cevap
  5. Şahin YILDIZ - 15 Ağustos 2017 at 13:33

    Dreamweaver kullanın…Dreamweaver kullanmadan sen bu siteyi bu hale getirdiysen büyük bir başarı göstermişsin….:)

    Cevap
  6. ekonovich - 15 Ağustos 2017 at 13:33

    sağol üstad. dreamweaver eskiden iyi değildi . benimki grafikerlik sayesinde oldu hocam. uzun süre grafik tasarım yaptım

    Cevap
  7. alex.killioglu - 15 Ağustos 2017 at 13:33

    Merhaba,

     

    paylaşım çok güzel prestanın açığını kapatacak bi çözüm. emeğinize sağlık fakat bi durum var virgülden sonrayı otomatik olarak bin,yüzbin gibi gözüküyor. Aslında sizin paylaştığını fatura görselindede de aynı sorun var. 

     

    Görselde Fatura tutarı rakkam ile 21,71 fakat yazan yirmibir milyon yetmiş bir bin

     

     

    olması gereken (YİRMİ BİR TL YETMİŞ BİR KR )

    Cevap
  8. Şahin YILDIZ - 15 Ağustos 2017 at 13:33

    Aşağıdaki alanda değişiklik yaparak düzenleyebilirsiniz..

     

    Cevap
  9. alex.killioglu - 15 Ağustos 2017 at 13:33

    Teşekkürler… Farklı şekilde çözdüm.

     

    /config/config.inc.php dosyasının sonuna aşağıdaki kodu ekledim…

     function cevir($sayi, $separator) {     $sayarr = explode($separator,$sayi);       $str = "";     $items = array(         array("", ""),         array("BIR", "ON"),         array("IKI", "YIRMI"),         array("UC", "OTUZ"),         array("DORT", "KIRK"),         array("BES", "ELLI"),         array("ALTI", "ALTMIS"),         array("YEDI", "YETMIS"),         array("SEKIZ", "SEKSEN"),         array("DOKUZ", "DOKSAN")     );       for ($eleman = 0; $eleman<count($sayarr); $eleman++) {           for ($basamak = 1; $basamak <=strlen($sayarr[$eleman]); $basamak++) {             $basamakd = 1 + (strlen($sayarr[$eleman]) - $basamak);                 try {                 switch ($basamakd) {                     case 5:                         $str = $str . " " . $items[substr($sayarr[$eleman],$basamak - 1,1)][0] . " YUZ";                         break;                     case 4:                         $str = $str . " " . $items[substr($sayarr[$eleman],$basamak - 1,1)][1];                         break;                     case 3:                         if($items[substr($sayarr[$eleman],$basamak - 1,1)][0]=="") {                             $str.=" ";                         }                         elseif ($items[substr($sayarr[$eleman],$basamak - 1,1)][0] != "BIR" ) $str = $str . " " . $items[substr($sayarr[$eleman],$basamak - 1,1)][0] . " YUZ";                           else $str = $str . " YUZ";                         break;                     case 2:                         $str = $str . " " . $items[substr($sayarr[$eleman],$basamak - 1,1)][1];                         break;                     default:                         $str =  $str . " " . $items[substr($sayarr[$eleman],$basamak - 1,1)][0];                         break;                 }             } catch (Exception $err) {                 echo $err->getMessage();                 break;             }         }         if ($eleman< 1) $str = $str . " TL";         else {             if ($sayarr[1] != "00") $str = $str . " KRS";         }     }     return $str; } 

    pdf/invoice.tpl dosyasında yazının çıkmasını istediğim yere aşağıdaki kodu ekledim. (Not: kuruş ayıracı nokta ise sondaki “,” olan kısmı “.” olarak değiştirmek gerekiyor.)

     {cevir({displayPrice currency=$order->id_currency price=$order_invoice->total_paid_tax_incl},",")} 
    Cevap

Cevap bırakın