Bu proje, SAP Business One veritabanına bağlanarak ürün ağaçları (BOM – Bill of Materials) üzerinden maliyet planlaması yapmayı sağlayan bir masaüstü uygulamasıdır.
Uygulama Python + Tkinter ile geliştirilmiştir, veri kaynağı olarak SQL Server (pyodbc) kullanır. Sonuçlar Excel (openpyxl) ve PDF (reportlab) formatlarına aktarılabilir.
- SQL Server (SAP B1) veritabanına güvenli bağlantı
- Ürün ağaçlarını (BOM) görüntüleme
- Malzeme maliyet hesaplama (son alış fiyatı, işçilik ve genel gider oranları dahil)
- Kullanıcı dostu Tkinter arayüzü
- Çıktıları Excel ve PDF olarak kaydetme
- Ayarlar için .env veya
config.inidesteği (gizli veriler koda gömülmez)
- Python 3.9+ kurulu olmalı.
- Gerekli kütüphaneleri yükle:
pip install pyodbc openpyxl reportlab python-dotenv
- SQL Server ODBC sürücüsünü kur (Windows için “ODBC Driver 17/18 for SQL Server”).
Uygulama, veritabanı bağlantısını 3 farklı şekilde alabilir:
set DB_SERVER=YOUR_SQL_SERVER
set DB_DATABASE=YOUR_DB
set DB_USERNAME=YOUR_USER
set DB_PASSWORD=YOUR_PASS
set DB_TRUST_SERVER_CERT=yes
set DB_ENCRYPT=noProjenin kök dizinine .env ekle:
DB_SERVER=YOUR_SQL_SERVER
DB_DATABASE=YOUR_DB
DB_USERNAME=YOUR_USER
DB_PASSWORD=YOUR_PASS
DB_TRUST_SERVER_CERT=yes
DB_ENCRYPT=no
Windows: %APPDATA%\bom_costing\config.ini
Linux/macOS: ~/.config/bom_costing/config.ini
[database]
server=YOUR_SQL_SERVER
database=YOUR_DB
username=YOUR_USER
password=YOUR_PASS
trust_server_certificate=yes
encrypt=no🔒 Not:
.envveconfig.inidosyalarını .gitignore içine eklemeyi unutma. Böylece GitHub’a çıkmazlar.
- Bilgisayarınızda Python 3.9+ kurulu olmalıdır.
- İlgili uygulama dosyalarını indirin (
app.py,requirements.txt). - Terminalden şu komutları çalıştırın:
pip install -r requirements.txt python app.py
📖 Kullanım Mantığı
Bu uygulama, SAP Business One veritabanındaki ürün ağaçlarını (BOM) okuyarak maliyet hesaplaması yapar. Amaç, bir ürünün üretiminde kullanılan tüm alt bileşenlerin malzeme maliyetlerini, üzerine işçilik ve genel gider oranlarını ekleyerek toplam ürün maliyetini görmektir.
🖥️ Kullanım Adımları
Uygulamayı Aç
python app.py komutunu çalıştır. Ana pencere açılacaktır.
Veritabanı Bağlantısı
Program açılırken arka planda .env veya config.ini dosyasındaki bilgileri kullanarak SQL Server’a bağlanır. Kullanıcı olarak ekstra şifre girmen gerekmez (bilgiler gizli dosyalarda saklanır).
Ürün Seçimi Uygulama penceresinde bir ürün kodu gir veya listeden seç. Seçtiğin ürünün ürün ağacı (alt malzemeler) otomatik yüklenir.
Maliyet Hesaplama
Her bir alt malzemenin son alış fiyatı veritabanından alınır. Miktar × Fiyat hesaplanarak toplam alt malzeme maliyeti çıkarılır. Ardından sisteme tanımlı işçilik (%) ve genel gider (%) eklenir. Sonuçta ürünün toplam maliyeti ekranda gösterilir.
Çıktı Alma
“Excel’e Aktar” butonu ile tüm ürün ağacını Excel dosyası olarak kaydedebilirsin. “PDF Çıktı” butonu ile maliyet raporunu PDF formatında alabilirsin.
🔑 Özet
Arka planda: SQL’den ürün ağaçları çekilir → maliyetler hesaplanır → ekrana yansıtılır. Kullanıcı için: Ürün seç → maliyet hesapla → ister ekranda gör, ister Excel/PDF’e al. Avantajı: Manuel Excel hesaplama derdini ortadan kaldırır, maliyetleri her zaman güncel fiyatlarla verir.
project_root/
├─ app.py # Ana uygulama
├─ requirements.txt # Bağımlılıklar
├─ README.md # Bu dosya
└─ .gitignore # Gizli dosya ayarları (.env, config.ini dışarı çıkmaz)
- Kodun içinde hiçbir şifre bulunmaz.
- Veritabanı bilgileri
.envveyaconfig.inidosyasında tutulur. - GitHub’a yüklediğinizde gizli bilgiler paylaşılmaz.
- Python 3.9+
- pyodbc
- openpyxl
- reportlab
- python-dotenv
- SQL Server (ODBC Driver 17/18)
- Bu projeyi fork’la
- Yeni bir branch aç (
feature/xyz) - Kodunu commit et
- Pull request gönder
Bu proje MIT lisansı altındadır. İsteyen herkes kullanabilir, değiştirebilir, dağıtabilir.