Konsol: fraktal (paralel şeritli 24-bit Mandelbrot/Julia + yakınlaşma), sudoku (geri izlemeli, canlı animasyon), fatura (JSON → terminal tablosu, PDF ve Excel). Masaüstü: hesap makinesi (işlem önceliği, canlı bağlama), odak (Pomodoro), parola atölyesi (entropi ölçer, SHA-256). Web: pano (Kanban REST API + SQLite), kisalt (302 yönlendirme, SVG istatistik), anket (adres başına tek oy, sunucuda çizilen grafik). Hepsi `kabalang calistir` ile derlenip çalışır; web uygulamaları yalnız 127.0.0.1'i dinler, SQL parametre bağlamalı, HTML çıktısı kaçırılır.
40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# Fatura — JSON siparişten terminal tablosu, PDF ve Excel
|
|
|
|

|
|
|
|
`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<T, Hata>` | `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.
|