Folio · Finans · Kasa · Gün Sonu

Folio, finans ve kasa — çift-sayımın imkânsız olduğu tek defter

Her rezervasyonun gerçek folio defteri, otelin kasa oturumları ve gün sonu kapanışı tek bir tutarlı finans merkezinde birleşir. Append-only defter, gece gece konaklama, idempotent senkron ve silinemez denetim izi ile para hiçbir yerde "elle" yazılmaz — her hareket merkezi bir servisten geçer.

Aurora folio ve finans merkezi — cari hesap ekstresi ve kasa özeti ekranı
Neden önemli

Tek birleşik defter: her satır bir hareket, hiçbir satır silinmez

Aurora'nın finans mimarisi tek birleşik defter üzerine kuruludur: tüm finansal hareketler tek tabloda toplanır ve defter append-only'dir — satır asla silinmez veya güncellenmez. Her satırda iki bağımsız eksen bulunur: yön (borç / alacak) ve hareket tipi + departman. Kalan bakiye yalnızca aktif satırlar üzerinden Σ(borç) − Σ(alacak) ile hesaplanır; tutar her zaman pozitif saklanır, artı/eksi etkisi yönden gelir.

Append-only folio defteri — borç/alacak eksenli hareket ekstresi
Hareket tipleri

Her posting ayrı: borç, alacak, indirim, iade, düzeltme, ters kayıt

Aynı departmanı hem borçlandırıp hem alacaklandırma (ör. ekstra + karşılık ödemesi) mümkündür; kaynak bazlı kırılım Konaklama ile Ekstra'yı departmana değil kaynağa göre ayırır.

charge — borç

Konaklama, restoran, minibar, bar, transfer, etkinlik, ek yatak ve ekstra harcamaları folio'ya borç olarak işlenir.

payment — alacak

Kapora, nakit, kart, havale, online ve cari tahsilat kanonik ödeme defterine ve folio'ya alacak olarak yazılır.

discount — indirim

Alacak kaydıdır ama ödeme değildir; kasaya dokunmaz, geliri azaltır. postDiscount ile ayrı akış.

refund — iade

Borç kaydıdır; kasadan/hesaptan para çıkarır. Onaylı iade akışıyla kasa çıkışı birlikte oluşur.

adjustment — düzeltme

Serbest düzeltme kalemi; borç veya alacak yönünde işlenebilir. Denetim izinde açıkça görünür.

void — ters kayıt

Bir önceki satırı nötrleyen ters hareket; orijinal satır "reversed" işaretlenir, silinmez. Append-only düzeltme yöntemi tam denetim izini korur.

Rezervasyon detayında folio kartı — özet bloğu ve satır satır ekstre
Folio kartı & çıktı

Gece gece konaklama, idempotent senkron, kurumsal PDF

Rezervasyon detayında folio kartı sayfa açılınca kaynaklardan otomatik senkron edilir (hata olsa bile sayfayı kırmaz — try/catch korumalı). Konaklama ücreti gece gece işlenir: her gece için ayrı charge satırı, o gecenin tarihiyle; kısmi konaklama ve erken çıkış doğru yansır.

  • Özet bloğu 7 satır: Konaklama / Ekstra / İndirim / Ara Toplam / Tahsilat / İade / Kalan Bakiye.
  • İdempotent senkron: aynı kaynak satırı yalnızca bir kez post edilir (UNIQUE kaynak_tablo, kaynak_id); metot kaç kez çağrılırsa çağrılsın güvenli.
  • 10 departman/kategori: KON, RES, MIN, BAR, SPA, TRF, ETK, EKY, EKS, IND.
  • Folio PDF kurumsal tasarımlı, kartla aynı veri kaynağını kullanır; logo ayarlardan gelir (dinamik, sabit değil).
  • Fatura durum rozeti: sağlayıcı-bağımsız ortak katman + "Fatura Kes" butonu; toplu backfill komutu geçmiş rezervasyonları idempotent işler.
Finans merkezi & kasa

Kasa oturumları, vardiyalar, yetkiler ve gün sonu kapanışı

Folio ve ödeme omurgası üzerine profesyonel bir finans operasyon merkezi kurulur: kasa oturumları, vardiyalar, personel kabiliyet bayrakları, tahsilat/iade akışı ve gün sonu kapanışı. 7 finans/folio raporu ortak premium UI + DataTables + Excel/PDF/Yazdır/Kopyala export ile gelir.

  • Kasa oturumu yaşam döngüsü: aç → hareket ekle → beklenen nakit (canlı) → kapat → fark otomatik → eşik aşılırsa yönetici onayı.
  • Kabiliyet bayrakları: tahsilat alabilir, iade yapabilir, indirim yapabilir, gün sonu kapatabilir, onaylayabilir, kasa kullanabilir.
  • Ödeme al zinciri: kanonik defter → folio senkron → kasa hareketi → ödeme cash_session_id ile oturuma linklenir.
  • İade durum makinesi: talep → yönetici onayı/reddi → onaylanınca ödeme defteri + folio + kasa çıkışı birlikte.
  • Hugin yazarkasa köprüsü: kart + Hugin kasasında ödeme cihaza gönderilir; cihaz pasifse manuel devam.
Finans merkezi — kasa oturumu ve gün sonu özeti ekranı
Online & tesiste ödeme

Çoklu ödeme sağlayıcısı, tek tutarlı kalıp

Her sağlayıcı aynı kalıba oturur: hosted checkout + webhook + admin ayar ekranı. Webhook otoriter onaydır — kullanıcı tarayıcıyı kapatsa bile ödeme kesinleşir.

Yerel sağlayıcılar

Iyzico, ZiraatPay, Sanal POS (VirtualPos), PayTR, Havale/EFT, Tesiste Ödeme ve Acente Ödemesi — her biri kanonik ödeme yöntemi olarak kayıtlı.

İdempotent finalize

Hem success dönüşü hem webhook aynı sonucu güvenle işler; çift onay veya çift stok düşümü olmaz. Ödeme onayında odalar rezervasyona atanır.

Otomatik zincir

Ödeme başarısında stok, ödeme durumu, folio, CRM ve oda atama tek callback'le otomatik akar.

Stripe Checkout (Avrupa)

Iyzico kalıbıyla birebir: hosted checkout + webhook + admin ayar ekranı. Otel rezervasyonu ve etkinlik satışı için.

İskandinav yöntemleri otomatik

Klarna, Swish, MobilePay, Vipps ayrı entegrasyon değil — Stripe'ın dinamik ödeme yöntemleri. Dashboard'da açılan yöntem otomatik checkout'ta çıkar.

Çoklu para birimi

EUR (varsayılan) + SEK / NOK / DKK / ISK / PLN. Yerel cüzdanlar para birimine bağlı; tutar Stripe standardına uygun gönderilir.

Nasıl çalışır

Tahsilattan gün sonu kilidine: dört adım

Merkezi tahsilat

Ödeme al modalı kanonik ödeme defterine yazar, folio'ya senkronlar, açık kasa oturumuna hareket oluşturur ve ödemeyi oturuma linkler. Yetki (can_collect) ve yönteme göre oturum zorunluluğu kontrol edilir.

Folio güncel

Konaklama gece gece, ekstralar ve tahsilat/iade idempotent olarak folio'ya düşer; kalan bakiye postings'ten anlık hesaplanabilir. Cache güvenilir ama otoriter değildir.

Gün sonu kontrolleri

Kapanış öncesi açık kasa oturumu, kapatılmamış fark, onaysız iade, açık bakiyeli check-out ve faturasız kayıt kontrol edilir; özet yöntem/personel/kasa bazlı çıkar.

Kapat & kilitle

Kritik blok varsa yönetici override + can_close_day yetkisiyle geçilir; kapanış anlık durumu JSON snapshot'a alınır, gün kilitlenir ve çift kapatma reddedilir.

Teknik güç

Çift-sayım imkânsız: muhasebe ile kasa ayrı ama bağlı

Muhasebe tarafı (folio postings) ve kasa tarafı (kasa hareketleri) bilinçle ayrı tutulur ama ödeme id'siyle birbirine bağlanır. Sistem mevcut ödeme gateway callback'lerine hiç dokunulmadan üstüne inşa edilmiştir; ödemeler ve ekstralar folio'ya idempotent senkronla düşer.

  • İki katmanlı yetki: sayfa izni + kabiliyet bayrağı. Denetim (audit) logu CLI-korumalı ve silinemez.
  • Append-only defter → tam denetlenebilirlik; her düzeltme iz bırakır (void ile).
  • Kurulum tek idempotent komutla (finance:install) 9 finans tablosunu kurar.
  • Globallik: her posting satırında para birimi + döviz kuru alanı hazır; çoklu para birimli folio altyapısı mevcut.
Muhasebe ile kasa ayrımı ve ödeme id bağı şeması
SSS

Folio & finans hakkında sık sorulanlar

Tüm finansal hareketler tek tabloda tutulur ve satır asla silinmez veya güncellenmez. Bir kaydı düzeltmek gerektiğinde ters kayıt (void) atılır; orijinal satır "reversed" işaretlenir ama defterde kalır. Böylece tam denetim izi korunur ve kalan bakiye her an postings'ten yeniden hesaplanabilir. Bakiye cache hız için saklanır ama otoriter değildir.

Muhasebe tarafı (folio postings) ile kasa tarafı (kasa hareketleri) bilinçle ayrı tutulur ama ödeme id'siyle birbirine bağlanır. Para asla ad-hoc yazılmaz; tahsilat/iade daima merkezi tahsilat servisinden, folio hareketi daima folio servisinden geçer. Ayrıca UNIQUE(kaynak_tablo, kaynak_id) kısıtı bir kaynak satırının yalnızca bir kez post edilmesini garanti eder.

Kapanıştan önce kontroller çalışır: açık kasa oturumu, kapatılmamış kasa farkı, onaysız iade, açık bakiyeyle yapılmış check-out ve faturasız kayıt. Kritik blok varsa yönetici override ve gün sonu kapatma yetkisi (can_close_day) gerekir; kapanış anlık durumu JSON snapshot'a alınır, gün kilitlenir ve çift kapatma reddedilir.

Yerel: Iyzico, ZiraatPay, Sanal POS, PayTR, Havale/EFT, Tesiste Ödeme ve Acente Ödemesi. Avrupa için Stripe Checkout; Klarna, Swish, MobilePay ve Vipps ayrı entegrasyon değil, Stripe'ın dinamik ödeme yöntemleridir (Dashboard'da açılan yöntem otomatik checkout'ta çıkar). Webhook otoriter onaydır: kullanıcı tarayıcıyı kapatsa bile ödeme kesinleşir ve tüm zincir otomatik akar.

Finansınızı denetlenebilir tek deftere taşıyın

Append-only folio, kasa oturumları, gün sonu snapshot'ı ve silinemez denetim izi — para bir daha asla kaybolmasın.