# 📦 Stok Takip Uygulaması

HTML tabanlı stok takip uygulamasının **tam özellikli Python versiyonu**. Tüm özellikler korunmuş ve taşınabilir klasör yapısında sunulmuştur.

## ✨ Özellikler

### 🔥 Temel Özellikler
- ✅ **Stok Giriş/Çıkış İşlemleri** - Detaylı fatura takibi
- ✅ **Stok Kartları Yönetimi** - KDO ve ürün bilgileri
- ✅ **Gerçek Zamanlı Stok Kontrolü** - Negatif stok uyarıları
- ✅ **Çoklu Ürün Girişi** - Aynı faturada birden fazla ürün
- ✅ **Otomatik Stok Hesaplama** - Tarih bazlı stok seviyeleri

### 📊 Raporlama Sistemi
- ✅ **Muavin Dökümü** - Ürün bazlı hareket raporu
- ✅ **FIFO Maliyet Raporu** - İlk giren ilk çıkar maliyetleme
- ✅ **Excel Export** - CSV formatında tüm raporlar
- ✅ **Stok Değerleme** - Ortalama maliyet hesaplama
- ✅ **İstatistik Paneli** - Özet bilgiler

### 🎨 Kullanıcı Dostu Arayüz
- ✅ **Modern GUI** - Tkinter tabanlı profesyonel tasarım
- ✅ **Yazı Boyutu Ayarlama** - Erişilebilirlik desteği
- ✅ **Klavye Kısayolları** - Hızlı çalışma imkanı
- ✅ **Autocomplete** - Ürün arama ve seçim
- ✅ **Renkli Gösterimler** - Stok durumu görselleştirme

### 💾 Veri Yönetimi
- ✅ **JSON Veri Tabanı** - Hafif ve taşınabilir
- ✅ **Otomatik Kaydetme** - Veri kaybı koruması
- ✅ **İçe/Dışa Aktarma** - Backup ve migration
- ✅ **Ayarlar Kaydetme** - Kullanıcı tercihleri

## 🚀 Kurulum ve Çalıştırma

### Sistem Gereksinimleri
- **Python 3.7 veya üzeri** (Python 3.8+ önerilir)
- **Tkinter** (Python ile birlikte gelir)
- **Windows/Linux/macOS** desteği

### Hızlı Başlangıç

#### Windows Kullanıcıları
1. **Python'u indirin**: [python.org](https://python.org) adresinden Python 3.8+ sürümünü indirin
2. **Dosyaları çıkarın**: Uygulamayı istediğiniz klasöre çıkarın
3. **Çalıştırın**: `run.bat` dosyasına çift tıklayın

```batch
# Veya komut satırından:
python main.py
```

#### Linux/Mac Kullanıcıları
```bash
# Terminal'de uygulama klasörüne gidin
cd stok-takip-uygulamasi

# Çalıştırma izni verin
chmod +x run.sh

# Uygulamayı başlatın
./run.sh

# Veya doğrudan Python ile:
python3 main.py
```

### Manuel Kurulum
```bash
# 1. Dosyaları indirin/çıkarın
# 2. Terminal/Command Prompt'ta uygulama klasörüne gidin
cd stok-takip-uygulamasi

# 3. (Opsiyonel) Ek paketler kurun
pip install -r requirements.txt

# 4. Uygulamayı çalıştırın
python main.py
```

## 📁 Dosya Yapısı

```
stok-takip-uygulamasi/
├── main.py                 # Ana uygulama dosyası
├── stok_manager.py         # İş mantığı ve veri yönetimi
├── config.py               # Konfigürasyon ayarları
├── requirements.txt        # Python bağımlılıkları
├── README.md              # Bu dosya
├── run.bat                # Windows çalıştırma dosyası
├── run.sh                 # Linux/Mac çalıştırma dosyası
├── data/                  # Veri klasörü (otomatik oluşur)
│   ├── stok_data.json     # Ana veri dosyası
│   └── sample_data.json   # Örnek test verileri
└── gui/                   # Arayüz modülleri
    ├── __init__.py
    ├── main_window.py     # Ana pencere
    ├── dialogs.py         # Modal pencereler
    └── reports.py         # Rapor dışa aktarma
```

## 🎯 Kullanım Kılavuzu

### 🏗️ İlk Kurulum
1. **Uygulamayı başlatın** - `python main.py` veya `run.bat`
2. **İlk stok kartını oluşturun** - "Stok Kartları" sekmesi → "Yeni Stok Kartı"
3. **İlk işlemi yapın** - "Yeni İşlem Ekle" butonuna tıklayın

### 📝 Temel İşlemler

#### Stok Kartı Oluşturma
```
1. "Stok Kartları" sekmesine gidin
2. "➕ Yeni Stok Kartı" butonuna tıklayın
3. Bilgileri doldurun:
   - Stok Kodu: Otomatik üretilir (değiştirilebilir)
   - Ürün İsmi: Benzersiz olmalı
   - Birim: ADET, KG, M, PAKET
4. "Kaydet" butonuna tıklayın
```

#### Giriş İşlemi Yapma
```
1. "➕ Yeni İşlem Ekle" butonuna tıklayın
2. Form bilgilerini doldurun:
   - İşlem Türü: GİRİŞ
   - Tarih: İşlem tarihi
   - Fatura No: Fatura/belge numarası
   - Ürün: Listeden seçin (arama yapabilirsiniz)
   - Miktar: Giriş miktarı
   - Fiyat: Birim fiyat
3. "Kaydet" veya "Kaydet ve Devam Et" butonuna tıklayın
```

#### Çıkış İşlemi Yapma
```
1. "➕ Yeni İşlem Ekle" butonuna tıklayın
2. İşlem Türü: ÇIKIŞ seçin
3. Ürün seçtiğinizde mevcut stok gösterilir
4. Stok yeterli ise çıkış miktarını girin
5. Sistem otomatik olarak stok kontrolü yapar
```

### 📊 Raporlar

#### Muavin Dökümü (Ürün Detay Raporu)
```
1. "Stok Kartları" sekmesinde ürüne sağ tıklayın
2. "📋 Detay Rapor" seçin
3. Tüm hareketleri kronolojik olarak görün
4. "⬇️ Excel'e Aktar" ile CSV olarak kaydedin
```

#### FIFO Maliyet Raporu
```
1. "Stok Kartları" sekmesinde "📊 FIFO Maliyet Raporu" butonuna tıklayın
2. İlk giren ilk çıkar maliyetleme sistemine göre rapor görün
3. Toplam stok değerini görün
4. Excel'e aktarabilirsiniz
```

### ⌨️ Klavye Kısayolları

| Kısayol | Açıklama |
|---------|----------|
| `Ctrl+N` | Yeni işlem ekle |
| `Ctrl+S` | Veriyi kaydet |
| `F5` | Verileri yenile |
| `Ctrl+Tab` | Sekme değiştir |
| `Esc` | Modal pencereleri kapat |
| `Enter` | Dropdown'dan seç |
| `↑↓` | Dropdown'da gezin |

## 🔧 Gelişmiş Özellikler

### Çoklu Ürün Girişi
Aynı faturaya birden fazla ürün eklemek için:
1. İlk ürünü ekledikten sonra "Kaydet ve Devam Et" butonunu kullanın
2. Fatura bilgileri sabit kalır, sadece ürün değiştirin
3. "Yeni Fatura" butonu ile farklı faturaya geçin

### Stok Kontrolü
- Çıkış yaparken sistem otomatik stok kontrolü yapar
- Negatif stok durumunda uyarı verir
- Tarih bazlı stok hesaplama yapar

### Veri Yedekleme
```
1. "⬇️ Tüm Veriyi Dışa Aktar" ile JSON backup alın
2. "⬆️ Veri İçe Aktar" ile geri yükleyin
3. data/stok_data.json dosyasını manuel olarak kopyalayın
```

## 🐛 Sorun Giderme

### Uygulama Açılmıyor
```bash
# Python versiyonunu kontrol edin
python --version  # 3.7+ olmalı

# Tkinter kurulu mu kontrol edin
python -c "import tkinter; print('Tkinter OK')"

# Manuel başlatma
python main.py
```

### Veri Kaybı Durumunda
1. `data/` klasöründe `stok_data.json.backup` dosyası olup olmadığını kontrol edin
2. JSON dosyasını manuel olarak düzenleyebilirsiniz
3. Boş bir JSON ile başlayabilirsiniz: `{"islemler": [], "stokKartlari": []}`

### Performans Sorunları
- Çok fazla işlem varsa (10.000+) filtreleme kullanın
- JSON dosyasını düzenli olarak temizleyin
- Eski işlemleri arşivleyin

## 💡 İpuçları

### Verimli Kullanım
- **Stok kodlarını düzenli tutun**: `STOK-001`, `STOK-002` formatı
- **Birim kullanımında tutarlı olun**: Her ürün için doğru birim seçin
- **Fatura numaralarını sistemli yapın**: `FAT-2024-001` gibi
- **Düzenli backup alın**: Haftada bir veri yedekleyin

### Excel İle Çalışma
- CSV dosyalarını Excel'de açarken "Veri" → "Metinden Sütunlara" kullanın
- Sütun ayırıcı olarak `;` (noktalı virgül) seçin
- Türkçe format nedeniyle sayılar doğru görünmeyebilir, Excel'de düzeltin

## 📞 Destek

### Hata Raporlama
Bir hata bulursanız:
1. Hatanın ekran görüntüsünü alın
2. `data/stok_data.json` dosyasını yedekleyin
3. Adımları detaylı olarak not alın
4. Sistem bilgilerinizi (Python versiyonu, işletim sistemi) ekleyin

### Özellik İstekleri
Yeni özellik önerileri için:
- Mevcut HTML versiyonundaki özelliklerle karşılaştırın
- Use case'inizi detaylı açıklayın
- Örnek verilerle açıklayın

## 📊 HTML Versiyonu ile Farklar

| Özellik | HTML | Python | Durum |
|---------|------|---------|-------|
| Temel stok takibi | ✅ | ✅ | **Aynı** |
| FIFO raporu | ✅ | ✅ | **Aynı** |
| Excel export | ✅ | ✅ | **Aynı** |
| Çoklu giriş | ✅ | ✅ | **Aynı** |
| Font boyutu | ✅ | ✅ | **Aynı** |
| Autocomplete | ✅ | ✅ | **Aynı** |
| Modal pencereler | ✅ | ✅ | **Aynı** |
| Klavye kısayolları | ✅ | ✅ | **Aynı** |
| Veri persistency | ✅ | ✅ | **Aynı** |
| Stok uyarıları | ✅ | ✅ | **Aynı** |

**Sonuç**: Python versiyonu HTML versiyonunun %100 özellik eşdeğeridir!

## 📈 Gelecek Güncellemeler

- [ ] Grafik ve chartlar
- [ ] Gelişmiş filtreleme
- [ ] Multi-user desteği
- [ ] Web API entegrasyonu
- [ ] Barcode desteği
- [ ] Mobil uygulama

## 📝 Lisans

Bu proje MIT lisansı altında sunulmaktadır. Ticari ve kişisel kullanım için serbesttir.

---

## 🎉 Başarılı Kurulum Kontrolü

Uygulama başarıyla çalışıyorsa:
1. ✅ Ana pencere açılmalı
2. ✅ "📦 Stok Takip Uygulaması" başlığı görülmeli  
3. ✅ İstatistik kartları "0" değerlerini göstermeli
4. ✅ "İşlemler" ve "Stok Kartları" sekmeleri çalışmalı
5. ✅ "Yeni İşlem Ekle" butonu modal pencere açmalı

**Tebrikler! Stok takip sisteminiz hazır! 🎈**
