Mikro'ya yazılan evrak
Fatura, stok hareketi, tahsilat; fiyat, KDV ve stok kuralları. Yönetici için
Bu sayfa, bir POS satışının Mikro'da tam olarak neye dönüştüğünü anlatır; muhasebe ve Mikro kullanıcıları için başvuru niteliğindedir.
#Satış → Perakende Satış Faturası
Her POS satışı Mikro'da tek bir transaction içinde şunları yaratır (hepsi yazılır ya da hiçbiri yazılmaz):
| Kayıt | Tablo | Ayrıntı |
|---|---|---|
| Fatura başlığı | CARI_HESAP_HAREKETLERI | Evrak tipi 63 (Açık Satış Faturası), fatura cinsi 7 (Perakende). Tutar = genel toplam, ara toplam, KDV pointer'ına göre KDV tutarları (cha_vergi1..20). Cari: satışın carisi. |
| Fatura satırları | STOK_HAREKETLERI | Satır başına bir kayıt: evrak tipi 4 (Çıkış Faturası), çıkış deposu = terminalin deposu, miktar, KDV hariç net tutar, KDV pointer ve KDV tutarı. |
| Tahsilat makbuzu (ödeme tipi biliniyorsa) | CARI_HESAP_HAREKETLERI | Evrak tipi 1 (Tahsilat); nakit → kasa (KASALAR), kredi kartı → banka (BANKALAR). Kart için MK-000-000-YYYY-XXXXXXXX referans no üretilir. |
İade (iade fişi gelirse): fatura evrak tipi 0 (iade), stok girişi (3), ve makbuz yerine tediye (64) yazılır; depo girişi yapılır.
#Evrak numarası
Evrak seri/sıra kernel tarafından Mikro'daki o seri için en büyük sıra + 1 olarak (kilitli, aynı transaction'da) üretilir. Seri öncelik sırası: terminal ▸ depo ▸ genel ayar. Boş seri geçerlidir. Tahsilat makbuzu aynı seride, kendi sıra numarasıyla yazılır.
#Satışı Mikro'da bulma
Kernel'in yazdığı tüm kayıtlar işaretlidir:
| Alan | Değer |
|---|---|
| special1 (cha_special1 / sth_special1) | NEMRAPOS — Mikro'da filtreleyerek tüm POS kayıtlarını görürsünüz. |
| special2 | POS satış kimliği (id2) — satışı panelle eşler, çift kaydı önler. |
| special3, belge no | POS fiş numarası (ör. A012026000000042). |
| Oluşturan kullanıcı | Mikro Bağlantısı'nda girilen Mikro kullanıcı no. |
Aynı satış ikinci kez gelirse kernel önce Mikro'da special1 = NEMRAPOS ve special2 = id2 kaydı arar; varsa yenisini yazmaz, mevcut evrakı satışa bağlar. Bu yüzden kernel yeniden başlasa ya da bir transaction commit sonrasında kopsa bile çift fatura oluşmaz.
#Fiyat ve KDV
- Fiyat: kasadaki birim fiyat, Mikro Bağlantısı'nda seçtiğiniz satış fiyat listesinden gelir ve POS'a KDV hariç iletilir. Liste KDV dahilse kernel KDV'yi ürünün oranıyla ayıklayarak hariç fiyata çevirir.
- Kasiyerin gördüğü fiyat KDV dahildir: POS net fiyata KDV'yi ekleyerek gösterir; fiyatsız üründe kasiyerin girdiği fiyat KDV dahil kabul edilir ve içeride KDV hariça çevrilir.
- KDV oranı ürünün Mikro vergi pointer'ından gelir; faturada pointer'a göre toplanıp başlığa yazılır.
- Yuvarlama: kernel her satırı POS ile birebir aynı kuralla yeniden hesaplar: satır net tutarı = miktar × birim fiyat × (1 − iskonto%), 2 haneye yuvarlanır; KDV bu net tutar üzerinden hesaplanıp 2 haneye yuvarlanır. Toplam POS'taki fişle aynı çıkar.
- İndirim satır iskontosu olarak her satıra eşit oranda yansır.
#Stok
- Kasadaki stok bilgisi, Mikro STOK_HAREKETLERI toplamından depo bazında hesaplanır ve Mikro'nun fn_DepodakiMiktar işleviyle birebir doğrulanmıştır. Her 2 dakikada bir tazelenir.
- Satış, stok hareketini terminalin deposundan çıkış olarak yazar. Kernel, parası alınmış bir satışı stok yetersiz diye reddetmez; negatif stok kararı Mikro tarafındaki ayara/sürecinize aittir.
#Kimlik eşlemeleri
| POS'taki | Mikro'daki |
|---|---|
| Ürün | Stok kodu (sto_kod) |
| Depo | Depo no (dep_no) |
| Cari | Cari kodu (cari_kod) |
| KDV | Mikro vergi pointer'ı |
#Yazım hataları
- Cari Mikro'da bulunamadı veya iptal — satışın carisi (Perakende Müşteri / terminal varsayılan / seçilen cari) Mikro'da yok ya da iptal.
- Mikro'da stok kartı bulunamadı: … — satıştaki bir ürünün stok kartı silinmiş/yok.
- Nakit/Kart tahsilat için kasa/banka kodu tanımlı değil — ödeme tipi bilinen satış için kasa/banka hesabı girilmemiş (Mikro bağlantısı).
- Bağlantı/zaman aşımı — geçici hata sayılır, satış kuyrukta kalıp tekrar denenir. Diğerleri kalıcıdır: Hata olarak işaretlenir (Satışlar).
#Bilinen sınırlar
Ödeme tipi gelmiyor. Mevcut POS sürümü faturayla nakit/kart bilgisini göndermez. Kernel bu durumda (varsayılan) tahsilat yazmaz: fatura cari hesapta açık kalır; Mikro Bağlantısı'nda "Tümünü nakit say" seçilirse tüm satışlar nakit kasaya tahsil edilir (kart satış yapılıyorsa yanlıştır). POS'a tek alan (paymentMethod: Cash | Card) eklenirse tahsilat nakit/kart ayrımıyla otomatik yazılır ve gün sonu raporunda nakit/kart kırılımı görünür; alan eklenmese de eski POS çalışmaya devam eder. Birden çok ödeme tipi için payments: [{method, amount}] biçimi de desteklenir (para üstü nakitten düşülür).
- Koli/paket barkodları aktarılmaz: ana birim dışındaki barkodlar, POS çarpan taşımadığı için kasaya verilmez (sayısı Senkron ayrıntısında skippedUnitBarcodes).
- Dövizli fiyat satırları atlanır (skippedForeignPrice); satış fiyat listesi TL olmalıdır.
- Rol matrisi POS içinde sabittir: kasiyer/süpervizör/müdür'ün kasada ne yapabileceği POS yazılımında tanımlıdır; kernel yalnızca rolü atar.
- Mikro tarihleri gün hassasiyetindedir: faturanın tarihi, satışın sunucu yerel saatine göre gününe yazılır.