{{ posCategory === 'fav' ? 'Henüz favori ürün yok. ☆ simgesiyle ekleyin.' : 'Bu kategoride ürün yok' }}
Toplam {{ productsTotal }} ürün
| Görsel | Barkod | Ürün | Kategori | Alış | Satış | Stok | İşlem |
|---|---|---|---|---|---|---|---|
|
|
{{ p.barcode || '-' }} |
{{ p.name }}
🔥 -%{{ getDiscountPercent(p) }}
⭐ Favori
|
{{ p.category_name || '-' }} | {{ fmt(p.purchase_price) }} |
{{ fmt(p.sale_price) }}
{{ fmt(getEffectivePrice(p)) }}
|
{{ p.stock }} | 🔒 |
| Ürün bulunamadı | |||||||
| No | 📅 Tarih · Saat | 👥 Kasiyer | 📄 Belge | 👤 Müşteri | Toplam | Ödeme | Durum | İşlem |
|---|---|---|---|---|---|---|---|---|
| Bu kriterlerde satış bulunamadı. | ||||||||
| #{{ s.sale_no }} | {{ formatDate(s.created_at) }} |
{{ s.cashier_name || '—' }}
@{{ s.cashier_username }}
|
📑 {{ s.invoice_no }} 🧾 Fiş |
{{ s.customer_name }}
{{ s.customer_tax_no }}
—
|
{{ fmt(s.grand_total) }} | {{ s.payment_method==='cash'?'💵 Nakit':s.payment_method==='card'?'💳 Kart':s.payment_method==='credit'?'📒 Veresiye':'🔀 Karışık' }} | {{ s.status==='completed'?'✓ Tamamlandı':'✗ İptal' }} | |
| {{ reportFilter.group_by==='hour'?'Saat':reportFilter.group_by==='product'?'Ürün':reportFilter.group_by==='category'?'Kategori':reportFilter.group_by==='cashier'?'Kasiyer':'Tarih' }} | Miktar | Satış | Toplam |
|---|---|---|---|
| {{ row.label }} | {{ row.qty }} | {{ row.sale_count }} | {{ fmt(row.total) }} |
| Bu aralıkta veri yok | |||
| Ürün | Adet | Tutar |
|---|---|---|
| {{ tp.product_name }} | {{ tp.total_qty }} | {{ fmt(tp.total_amount) }} |
| # | Ürün | Adet | Ciro | ||
|---|---|---|---|---|---|
| {{ i<3 ? ['🥇','🥈','🥉'][i] : '#'+(i+1) }} | {{ p.product_name }} | {{ parseFloat(p.total_qty).toFixed(0) }} | {{ fmt(p.total_revenue) }} | ||
| Bu aralıkta satış verisi yok | |||||
| # | Ürün | Ciro | Kar | Marj % | ||
|---|---|---|---|---|---|---|
| {{ i<3 ? ['🥇','🥈','🥉'][i] : '#'+(i+1) }} | {{ p.product_name }} | {{ fmt(p.revenue) }} | {{ fmt(p.profit) }} | {{ parseFloat(p.margin_percent || 0).toFixed(1) }}% | ||
| Bu aralıkta veri yok | ||||||
| Barkod | Ürün | Stok | Birim Fiyat | Bağlı Tutar |
|---|---|---|---|---|
| {{ p.barcode || '-' }} | {{ p.name }} | {{ parseFloat(p.stock).toFixed(0) }} | {{ fmt(p.sale_price) }} | {{ fmt(p.stock_value) }} |
| Tüm ürünler son 30 günde satıldı 🎉 | ||||
Stok girişi, çıkışı ve hareket takibi
| Görsel | Ürün | Stok | Toplam ₺ | İşlem | |||
|---|---|---|---|---|---|---|---|
|
|
{{ p.name }}
{{ p.barcode || '-' }}
|
{{ parseFloat(p.stock).toFixed(0) }} | {{ fmt(parseFloat(p.stock) * parseFloat(p.sale_price)) }} | 🔒 | |||
| Eşleşen ürün yok | |||||||
| Tarih | Ürün | İşlem | Miktar | |||
|---|---|---|---|---|---|---|
| {{ formatDate(m.created_at) }} | {{ m.product_name }} | {{ {sale:'Satış',purchase:'Giriş',adjustment:'Düzeltme',return:'İade'}[m.type] }} | {{ m.type === 'sale' ? '-' : '+' }}{{ Math.abs(m.quantity) }} | |||
| Hareket yok | ||||||
Toplam {{ customerList.length }} müşteri · {{ customerDebtCount }} kişide borç var
| İsim | Toplam Borç | İşlem | ||
|---|---|---|---|---|
|
{{ (c.name || '?').charAt(0).toUpperCase() }}
{{ c.name }}
{{ c.note }}
|
{{ fmt(c.total_credit) }} |
|
||
|
👥
{{ customerFilter.only_debt ? 'Borçlu müşteri yok' : 'Henüz müşteri yok' }}
| ||||
İşletme giderlerini takip edin (kira, fatura, vb.)
| Tarih | Kategori | Tutar | İşlem | |
|---|---|---|---|---|
| {{ formatDate(e.created_at) }} | {{ e.category }} | {{ fmt(e.amount) }} | 🔒 | |
| Bu aralıkta gider kaydı yok | ||||
Günlük detaylı kapanış raporu
Kasiyerin yaptığı tüm satışlar, iadeler ve ödeme detayları — kasa teslimi tutanağı
| ⏰ Saat | Fiş No | Tip | Müşteri | Ödeme | Nakit | Kart | Toplam | Durum | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ fmtTime(sale.created_at) }} | {{ sale.sale_no }} | {{ sale.document_type === 'invoice' ? '📄 Fatura' : '🧾 Fiş' }} {{ sale.invoice_no }} | {{ sale.customer_name || '-' }} | {{ sale.payment_method === 'cash' ? '💵 Nakit' : sale.payment_method === 'card' ? '💳 Kart' : sale.payment_method === 'mixed' ? '🔀 Karışık' : sale.payment_method === 'credit' ? '📒 Veresiye' : sale.payment_method }} | {{ parseFloat(sale.cash_amount) > 0 ? fmt(sale.cash_amount) : '-' }} | {{ parseFloat(sale.card_amount) > 0 ? fmt(sale.card_amount) : '-' }} | {{ fmt(sale.grand_total) }} | {{ sale.status === 'completed' ? '✓ Tamam' : '✗ İptal' }} | ||||||||||||
|
Kalemler:
📝 {{ sale.note }}
|
||||||||||||||||||||
| ⏰ Saat | Fiş No | Ürün | Miktar | Birim Fiyat | İade Tutarı | Ödeme | Not |
|---|---|---|---|---|---|---|---|
| {{ fmtTime(r.created_at) }} | {{ r.sale_no || '-' }} | {{ r.product_name }} ({{ r.barcode }}) | {{ r.quantity }} | {{ fmt(r.unit_price) }} | {{ fmt(r.amount) }} | {{ r.payment_method === 'cash' ? '💵' : r.payment_method === 'card' ? '💳' : r.payment_method === 'credit' ? '📒' : '🔀' }} {{ r.payment_method }} | {{ r.note || '-' }} |
| ⏰ Saat | Fiş No | Müşteri | Telefon | Borç |
|---|---|---|---|---|
| {{ fmtTime(c.created_at) }} | {{ c.sale_no }} | {{ c.customer_name }} | {{ c.customer_phone || '-' }} | {{ fmt(c.grand_total) }} |
| # | Ürün | Miktar | Tutar |
|---|---|---|---|
| {{ i + 1 }} | {{ p.name }} | {{ parseFloat(p.qty).toFixed(2) }} | {{ fmt(p.total) }} |
| Ad Soyad | Kullanıcı Adı | Rol | Durum | İşlem |
|---|---|---|---|---|
| {{ u.full_name }} | {{ u.username }} | {{ u.role==='admin'?'Yönetici':'Kasiyer' }} | {{ u.is_active==1?'Aktif':'Pasif' }} | 🔒 |
Sidebar, giriş ekranı ve fişlerde görünür. PNG/JPG/WEBP/SVG · Max 2MB
🔒 Demo modda logo değiştirilemez
Seçtiğiniz tema anında tüm sisteme uygulanır.
Kendi renklerinizi seçin — anında uygulanır, otomatik kaydedilir.
🔒 Demo modda tema kaydedilmez
Fatura kestiğinizde otomatik üretilen numaralandırma. Format: [Önek][Seri][6 hane] · Örn: FTR2026000001
Max 5 hane · Boşluksuz
Yıl başında değiştirin
Bir sonraki fatura no
Her satışta fatura sorulsun mu? Belirli müşterilere otomatik fatura kesimi ayarı.
Faturayı otomatik GIB'e gönderen entegrator. Test mod açıkken sadece simülasyon çalışır.
Bu bilgiler her fatura ve fişte yer alır. Vergi mükellefi iseniz mutlaka doldurun.
Açık olduğunda kart/karışık ödemede tutar otomatik olarak POS cihazına gönderilir.
Bankanızın POS SDK / Web Service URL'si
Bearer token ya da `user:pass` (Basic Auth otomatik dönüşür)