# Serttaş ERP — Proje Vizyonu

## Ben Kimim, Bu Sistem Ne İçin?

Kuruyemiş/gıda perakende ve üretim işletmesi yöneticisiyim. Elimde 3 farklı lokasyon var:
- **Fabrika** — üretim ve işleme yapılıyor, ana depo burada, toptancıdan ham madde alınıyor
- **Depo** — ara stok ve dağıtım noktası
- **Mağaza** — perakende satış

Bu sistemi neden yapıyorum? Çünkü şu an şunları takip edemiyorum:
- Toptancıdan ne aldım, hangi fiyattan, hangi lot?
- Fabrikadan mağazaya ne gönderdim, ne kaldı?
- Hangi malı hangi çuvaldan verdim, o çuvalın maliyeti neydi?
- Günün sonunda elimde ne kadar mal var, değeri ne?

Hazır ERP sistemleri ya çok pahalı ya da kuruyemiş işine uymuyor (çuval/kg bazlı çalışmıyor, lot takibi yok). Bu yüzden kendim yapıyorum.

---

## Temel İş Mantığı

### Ürün Yapısı
Kuruyemişte aynı ürünün farklı kaliteleri/boyutları olur:
- "180 hekto Çekirdek" ve "190 hekto Çekirdek" → ikisi de çekirdek ama farklı ürün
- Toptancıda bu ürünün ismi farklı olabilir ("Yayanlar 190 Hekto" gibi)
- Sistemde: `products` = iç ürün, `supplier_products` = toptancının adı ve fiyatı

### Ambalaj Mantığı
- Ürünler çuval, koli, hekto gibi birimlerle satılır
- Her ambalajın kg karşılığı var (1 çuval = 50 kg gibi)
- Fiyatlar genellikle kg bazında, ama hareket çuval bazında olur
- Sistemde hem çuval sayısı hem kg tutulur

### Lot Takibi (En Kritik Kısım)
Her toptancıdan gelen parti = 1 lot:
- LOT-001: 10 çuval, 500 kg, 45₺/kg → Yayanlar'dan 15 Ocak'ta alındı
- LOT-002: 8 çuval, 400 kg, 43₺/kg → Yayanlar'dan 28 Ocak'ta alındı

**Neden lot takibi?**
1. FIFO zorunlu: önce gelen önce çıkar, bozulma riski
2. Maliyet takibi: hangi lottan verdiğimi bilmezem kâr hesabı yapamam
3. Sorun çıkınca izlenebilirlik: "o parti çekirdek nereye gitti?"

### Ağırlıklı Ortalama Maliyet
Her mal girişinde stok maliyeti güncellenir:
```
Eski stok: 100 kg × 45₺ = 4500₺
Yeni giriş: 50 kg × 42₺ = 2100₺
Yeni ortalama: 6600₺ ÷ 150 kg = 44₺/kg
```

---

## Akış: Mal Nasıl Hareket Ediyor?

```
TOPTANCI
    ↓ (PurchaseOrder / Mal Kabul)
    → Fabrika deposuna lot oluşur
    → Stock ve StockTransaction yazılır

FABRİKA DEPOSU
    ↓ (Transfer Order: Mağaza sipariş verir)
    → Mağaza "2 çuval Antep" ister
    → Fabrika istediği lottan, istediği ambalajla gönderir
    → Kısmi gönderim olabilir
    → StockTransaction: TRANSFER_CIKIS (fabrika) + TRANSFER_GIRIS (mağaza)

MAĞAZA
    ↓ (gelecekte: satış modülü)
    → Perakende satış
    → Stok düşer
```

---

## Sipariş Sistemi Felsefem

### Sipariş ≠ Transfer
- **Sipariş**: mağaza fabrikadan ne istediğini söyler (bilgi)
- **Gönderme**: fabrika ne gönderdiğine kendisi karar verir (gerçek)

Örnek:
- Mağaza ister: "2 koli × 10 kg Antep" (20 kg)
- Fabrika gönderir: "1 çuval × 20 kg Antep" (aynı kg, farklı ambalaj)

Bu yüzden sipariş sadece referans, fabrika gönderme ekranında farklı ambalaj/lot seçebilir.

### Şablon Sistemi
Mağaza her gün aynı şeyleri sipariş eder. Şablon:
- Hangi ürünler olacak, varsayılan miktarlar ne olacak → admin tanımlar
- Çalışan sabah şablonu açar, bazılarını kapatır veya miktarı değiştirir, gönderir
- Toptancı şablonu da var: hangi tedarikçiden hangi ürünler alınıyor

### İki Ayrı Sipariş Türü
1. **Transfer Siparişi**: şubeler arası (mağaza → fabrika)
2. **Toptancı Siparişi**: fabrika → toptancı (henüz yapılmadı)

---

## Yetki Anlayışım

Henüz tam oturmadı ama genel mantık:
- **Admin / Genel Sorumlu**: her şeyi görür, her şubeyi yönetir
- **Şube Sorumlusu**: sadece kendi şubesini görür
- **Çalışan**: sadece izin verilen işlemleri yapar (sipariş ver, mal kabul et)

Şu an geliştirme kolaylığı için yetki kontrolleri comment'li bırakıldı, ilerleyen aşamada Spatie Permission ile implement edilecek. Permission isimleri: `order.daily`, `order.weekly`, `order.manual`, `order.supplier`

---

## UI/UX Anlayışım

- Mobil uyumlu olmalı — çalışanlar telefondan da kullanacak
- Sade ve hızlı — kuruyemiş deposunda çalışan teknik değil
- Renk kodlama — her şube veya durum için tutarlı renk
- Lot kartları — görsel, tıklanabilir, bilgi yoğun ama anlaşılır
- Sticky submit bar — uzun formlarda sayfayı kaydırmadan gönder

AdminLTE + Bootstrap 3 kullanıyorum. Bootstrap 5'e geçmek istiyorum ama mevcut sayfalar bozulur diye geçmiyorum. `style="font-size:..."` ve `mr-2`, `ml-3` gibi BS3 sınıfları kullanıyorum.

---

## Gelecekte Yapılacaklar (Öncelik Sırasıyla)

1. **Toptancıya Sipariş** (`/supplier-orders`) — toptancı şablonundan sipariş oluşturma, WhatsApp ile bildirim
2. **Teslim Al** (`/receive-orders`) — mağazanın gelen siparişi teslim alması, kısmi teslim, stok güncelleme
3. **Yetki Sistemi** — Spatie Permission ile tam implement
4. **Fabrika Üretim Fişi** — ham madde girişi → mamul çıkışı (örn: 100kg ham fıstık → 85kg işlenmiş fıstık)
5. **Raporlama** — şube bazlı stok raporu, maliyet analizi, sipariş geçmişi
6. **Sayım Modülü** — periyodik stok sayımı, sistem ile fark tespiti
7. **Satış Modülü** — mağaza POS veya satış girişi (uzak gelecek)
