KabaLang örnekleri: konsol, masaüstü ve web için dokuz proje
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. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user