# Fatura — JSON siparişten terminal tablosu, PDF ve Excel ![Fatura](../../medya/fatura.png) `siparis.json`'u okur; her kalem için indirim ve KDV hesaplar, KDV'yi oranlara göre döker ve sonucu üç biçimde verir: 1. Terminalde kutu çizgili, renkli bir fatura tablosu 2. `fatura.pdf` — Türkçe karakterleri ve `₺` işaretini taşıyan, sayfa numaralı PDF 3. `fatura.xlsx` — tablolar ayrı çalışma sayfalarında ```bash kabalang calistir fatura.kbl # siparis.json → ./fatura.pdf + ./fatura.xlsx kabalang calistir fatura.kbl -- baska.json --cikti ~/Belgeler ``` ## KabaLang'ın gösterdikleri | Özellik | Nerede | |---|---| | `yapi` + metotlar | `Kalem.brut()`, `matrah()`, `kdv_tutari()` — hesap verinin yanında | | `sonuc` | `siparis_oku` dosya yokken ya da JSON bozukken **değerle** hata döner; yok sayılamaz | | `dene / yakala` | JSON dizisini sonuna kadar gezmek | | `json` | İç içe erişim: `v["satici"]["ad"]`, `v["kalemler"][i]["adet"]` | | `kaba.belge` | Aynı belge nesnesinden `pdf_yaz` ve `xlsx_yaz` | | f-string biçimi | `{ad:<32}`, `{tutar:>15}`, `{k % 100:02d}` — hizalı tablo ve kuruş | ## Para nasıl tutuluyor Her ara sonuç **kuruşa yuvarlanır** (`kurus()`); `0.1 + 0.2` gibi ikili kesir artıkları faturaya taşınmaz. `para()` sayıyı Türkçe biçime çevirir: `1249.9 → 1.249,90 ₺`. Örnek siparişin toplamları elle de hesaplanıp karşılaştırıldı: ara toplam 65.439,80 ₺ · indirim 1.879,99 ₺ · KDV 11.748,96 ₺ · **genel toplam 75.308,77 ₺**. > Satıcı ve alıcı bilgileri örnek amaçlı, hayalidir.