Uretim Planlama
ERPNext
- Author: Junius-Soft
- Repository: https://github.com/Junius-Soft/uretim_planlama
- GitHub stars: 1
- Forks: 0
- License: MIT
- Category: Other
- Maintenance: Actively Maintained
Install Uretim Planlama
bench get-app https://github.com/Junius-Soft/uretim_planlama
Add the Frappe Gems badge to your README
Maintain Uretim Planlama? Paste this into your README:
[](https://frappegems.com/gems/apps/Junius-Soft/uretim_planlama)
About Uretim Planlama
Üretim Planlama (Uretim Planlama)
ERPNext tabanlı üretim planlama uygulaması
🚀 YENİ ÖZELLİKLER 🆕
1. MALZEME TALEBİ KALEM SEÇİMİ (Material Request Item Selection) ⭐
Genel Bakış
Material Request'ten Stock Entry veya Purchase Order oluştururken belirli itemları seçerek ekleme imkanı sağlar. Artık tüm MR'yi değil, sadece ihtiyacınız olan itemları seçip aktarabilirsiniz!
Temel Özellikler
- ✅ Item Bazında Seçim: MR'deki itemlardan sadece istediğinizi seçin
- ✅ Çoklu MR Desteği: Birden fazla MR'den farklı itemlar seçebilirsiniz
- ✅ Filtreleme: Item Code, Item Group gibi alanlara göre filtreleyin
- ✅ Otomatik Statü: Kısmi transfer edilen MR'lar "Partially Received" olur
- ✅ ERPNext Uyumlu: Çekirdek fonksiyonlara dokunmadan çalışır
Kullanım
Stock Entry İçin:
1. Stock Entry oluştur
2. "Öğeleri Burdan Al" → "Malzeme Talebi"
3. ☑️ "Malzeme Talebi Kalemi Seçimi" kutusunu işaretle
4. Bir veya birden fazla MR seç
5. Tablo açılır - istediğiniz itemları seçin
6. "Ürünleri Getir" butonu
7. ✅ Sadece seçili itemlar Stock Entry'e eklenir
Purchase Order İçin:
1. Purchase Order oluştur
2. "Get Items From" → "Material Request"
3. ☑️ "Malzeme Talebi Kalemi Seçimi" kutusunu işaretle
4. MR seç → Item seç → "Get Items"
5. ✅ Sadece seçili itemlar PO'ya eklenir
Teknik Detaylar
- Frontend: Custom Client Script - ERPNext'in
map_current_docfonksiyonunu wrap eder - Backend:
stock_entry_material_request.py: Stock Entry için custom mappingpurchase_order_material_request.py: Purchase Order için custom mapping
- Mantık:
filtered_childrenparametresi ile seçili item name'leri backend'e gönderilir
2. BİRLEŞTİRİLMİŞ MALZEME TALEBİ SİSTEMİ
Genel Bakış
Birden fazla Material Request'i tek bir Stock Entry, Purchase Order veya Purchase Receipt belgesinde birleştirerek işleme imkanı sağlar. Aynı ürünler tek satırda toplanır ve tüm MR referansları kaydedilir.
Temel Özellikler
- ✅ Otomatik Merge: Aynı ürünler tek satırda toplanır
- ✅ Referans Saklama: Tüm MR referansları
custom_material_request_referencesfield'ında saklanır - ✅ Otomatik Statü Güncelleme: Tüm birleştirilmiş MR'ların statüsü doğru şekilde güncellenir
- ✅ Material Transfer: İki MR → Tek Stock Entry → Her ikisi "Transferred"
- ✅ Purchase Flow: İki MR → Tek PO → Tek PR → Her ikisi "Ordered" → "Received"
- ✅ Cancel Desteği: Cancel işleminde tüm MR'lar "Pending"e döner
Kullanım Senaryoları
Material Transfer (Stok Hareketi)
1. İki Material Request oluştur (Material Transfer tipi)
- MAT-MR-001: Item ABC, 20 adet
- MAT-MR-002: Item ABC, 30 adet
2. Stock Entry oluştur
- Get Items From → Material Request → MAT-MR-001 seç
- Get Items From → Material Request → MAT-MR-002 seç
- Otomatik merge: 50 adet (tek satır)
- Material Request References: "MAT-MR-001, MAT-MR-002"
3. Submit et
- MAT-MR-001: "Transferred" ✅
- MAT-MR-002: "Transferred" ✅
Purchase Flow (Satınalma Akışı)
1. İki Material Request oluştur (Purchase tipi)
- MAT-MR-001: Item XYZ, 100 adet
- MAT-MR-002: Item XYZ, 150 adet
2. Purchase Order oluştur
- Get Items From → Material Request → İki MR'ı seç
- Otomatik merge: 250 adet (tek satır)
- Material Request References: "MAT-MR-001, MAT-MR-002"
- Submit: Her ikisi "Ordered" ✅
3. Purchase Receipt oluştur
- Make → Purchase Receipt (From Purchase Order)
- Custom field otomatik kopyalanır
- Submit: Her ikisi "Received" ✅
Teknik Detaylar
Custom Fields
custom_material_request_references(Small Text)- Purchase Order Item
- Stock Entry Detail
- Purchase Receipt Item
Frontend Merge (get_items_merge.js)
- Aynı ürünleri tek satırda toplar
- MR referanslarını birleştirir
- Purchase Order, Stock Entry, Purchase Receipt için çalışır
Backend Hooks
stock_entry_events.py: Material Transfer statü güncellemeleripurchase_order_events.py: Purchase Order statü güncellemeleripurchase_receipt_events.py: Purchase Receipt statü güncellemeleri
🚀 PROFESYONEL PROFİL STOK YÖNETİMİ
Genel Bakış
Bu uygulama, profil ürünlerinin hem ERPNext orijinal stok takibinde (mtül) hem de özel boy bazında stok takibinde senkronize olarak yönetilmesini sağlar.
Temel Özellikler
- ✅ Merkezi Profil Stok Yönetimi: Tüm profil stok işlemleri tek yerden yönetilir
- ✅ ERPNext Stok Senkronizasyonu: Orijinal ERPNext stok sistemi ile tam uyumlu
- ✅ Boy Bazında Detaylı Takip: Her profil boy için ayrı stok takibi
- ✅ Çoklu Doküman Desteği: Tüm ERPNext dokümanlarında profil stok yönetimi
- ✅ Otomatik Stok Güncelleme: Giriş/çıkış işlemlerinde otomatik stok güncelleme
- ✅ Hata Yönetimi ve Loglama: Kapsamlı hata takibi ve loglama sistemi
Desteklenen Dokümanlar
| Doküman Türü | Stok Girişi | Stok Çıkışı | Rezervasyon | Doğrulama |
|---|---|---|---|---|
| Alış İrsaliyesi | ✅ | ✅ (İptal) | - | ✅ |
| Satınalma Faturası | ✅ | - | - | ✅ |
| Stok Girişi | ✅ | - | - | ✅ |
| Satış Siparişi | - | - | ✅ | ✅ |
| Sevk İrsaliyesi | ✅ (İptal) | ✅ | - | ✅ |
| Satış Faturası | ✅ (İptal) | ✅ | - | ✅ |
| Stok Çıkışı | ✅ (İptal) | ✅ | - | ✅ |
| Malzeme Talebi | - | - | ✅ | ✅ |
Teknik Mimari
1. Merkezi Profil Stok Yönetici (profile_stock_manager.py)
- Profil ürün kontrolü
- MTÜL hesaplama
- ERPNext stok güncelleme
- Profile Stock Ledger güncelleme
- Hata yönetimi ve loglama
2. Event Handler'lar (doctype_events.py)
- Tüm dokümanlar için profil stok event'leri
- Giriş/çıkış işlemleri
- İptal işlemleri
- Doğrulama işlemleri
3. API Fonksiyonları (profile_stock_api.py)
- Stok özeti
- Boy bazında stok bilgisi
- Stok yeterlilik kontrolü
- Hareket geçmişi
- Stok uyarıları
Kullanım Senaryoları
Alış İşlemi (Stok Girişi)
- Alış irsaliyesi oluşturulur
- Profil ürünler için
custom_is_profileişaretlenir custom_profile_length_m(boy) vecustom_profile_length_qty(adet) girilir- Doküman onaylandığında:
- ERPNext stok sistemi güncellenir (mtül)
- Profile Stock Ledger güncellenir (boy bazında)
- Her iki sistem senkronize olur
Satış İşlemi (Stok Çıkışı)
- Sevk irsaliyesi oluşturulur
- Profil ürünler için boy ve adet bilgileri girilir
- Doküman onaylandığında:
- ERPNext stok sistemi güncellenir (mtül)
- Profile Stock Ledger güncellenir (boy bazında)
- Stok yeterliliği kontrol edilir
Stok Kontrolü
- API fonksiyonları ile gerçek zamanlı stok kontrolü
- Boy bazında stok yeterliliği
- Düşük stok uyarıları
- Hareket geçmişi takibi
Jaluzi İşlemleri
- İlgili dokümanda (SO, DN, PR, vb.) satır eklenir
custom_is_jalousieişaretlenir (otomatik olarak profil alanları devre dışı kalır)custom_jalousie_width(en) vecustom_jalousie_height(boy) girilir- "Miktarı Hesapla" butonuna basılır
- Sistem otomatik olarak alan hesabını yapar: En × Boy = Alan (m²)
- Hesaplanan değer
qtyvestock_qtyalanlarına yazılır
Örnek: 2.5m × 1.8m = 4.5 m²
Yazdırma Formatı
Yazdırma formatında (Print Format) sadece boyut alanları görüntülenir:
Görünen Alanlar:
- ✅ Profile Length (m) - Profil boyu
- ✅ Profile Length Qty - Profil adedi
- ✅ Jalousie Width (m) - Jaluzi eni
- ✅ Jalousie Height (m) - Jaluzi boyu
Gizlenen Alanlar:
- ❌ Is Profile checkbox
- ❌ Is Jaluzi checkbox
- ❌ Calculate Quantity butonları
Otomatik Description Güncellemesi:
- Item description alanına teknik detaylar eklenir
- Profil: "Profil: 6.0m × 5 adet"
- Jaluzi: "Jaluzi: 2.5m (En) × 1.8m (Boy) = 4.50 m²"
İrsaliye Çıktıları
Delivery Note (Sevk İrsaliyesi) ve Purchase Receipt (Alış İrsaliyesi) print format'ında fiyat bilgileri tamamen gizlidir:
Gizlenen Fiyat Alanları (Item Seviyesi):
- ❌ Rate - Birim Fiyat
- ❌ Amount - Tutar
- ❌ Discount Amount - İndirim Tutarı
- ❌ Distributed Discount Amount - Dağıtılmış İndirim Tutarı
- ❌ Rate and Amount - Fiyat ve Tutar
- ❌ Stock UOM Rate - Stok Birim Fiyatı
- ❌ Base Rate With Margin - Marjlı Fiyat (Şirket Para Birimi)
Gizlenen Toplam Alanları (Belge Seviyesi):
- ❌ Total - Toplam
- ❌ Grand Total - Genel Toplam
- ❌ Rounded Total - Yuvarlatılmış Toplam
- ❌ In Words - Yazıyla Tutar
- ❌ Tax Withholding Net Total - Vergi Tevkifatı Net Toplamı (Purchase Receipt)
- ❌ Amount Eligible for Commission - Komisyona Uygun Tutar (Delivery Note)
Gizlenen Diğer Alanlar:
- ❌ Use Serial No / Batch Fields - Seri No / Parti Alanlarını Kullanın
- ❌ Grant Commission - Komisyona İzin ver (Delivery Note)
Görünen Alanlar: - ✅ Item Code, Description, Quantity, UOM - ✅ Profil/Jaluzi boyut bilgileri (varsa) - ✅ Tedarikçi/Müşteri, tarih, adres bilgileri
Bu sayede irsaliye çıktılarında sadece miktar ve ürün bilgileri görünür, tüm fiyat detayları gizli kalır.
Kurulum ve Konfigürasyon
1. Custom Field'lar
Profil Ürünler İçin:
custom_is_profile: Profil ürün kontrolücustom_profile_length_m: Boy bilgisicustom_profile_length_qty: Adet bilgisi
Jaluzi Ürünler İçin:
custom_is_jalousie: Jaluzi ürün kontrolücustom_jalousie_width: En bilgisi (m)custom_jalousie_height: Boy bilgisi (m)
Not: Profil ve Jaluzi alanları birbirini dışlar. Bir satır ya profil ya da jaluzi olarak işaretlenebilir.
2. Event Hook'ları
hooks.py dosyasında tüm gerekli event hook'ları tanımlanmıştır.
3. Profil Ürün Grupları
Varsayılan olarak PVC ve Camlar ürün grupları profil olarak kabul edilir.
API Kullanımı
Stok Özeti
import frappe
result = frappe.call('uretim_planlama.uretim_planlama.profile_stock_api.get_profile_stock_overview')
Stok Yeterlilik Kontrolü
result = frappe.call('uretim_planlama.uretim_planlama.profile_stock_api.check_profile_availability',
item_code='PROFIL-001',
required_length=5.0,
required_qty=10)
Hareket Geçmişi
result = frappe.call('uretim_planlama.uretim_planlama.profile_stock_api.get_profile_transaction_history',
profile_type='PROFIL-001',
from_date='2025-01-01',
to_date='2025-12-31')
Hata Yönetimi
- Tüm işlemler try-catch blokları ile korunur
- Hatalar
frappe.log_errorile loglanır - Kullanıcıya anlaşılır hata mesajları gösterilir
- İşlem başarısı/başarısızlığı detaylı olarak raporlanır
Performans Optimizasyonu
- Gereksiz veritabanı sorguları minimize edilir
- Batch işlemler için optimize edilmiş fonksiyonlar
- Cache mekanizmaları ile hızlı erişim (Profil grupları 5 dakika cache)
- Asenkron işlem desteği
- Otomatik cache invalidation (Item Group değişikliklerinde)
Güvenlik
- Tüm API fonksiyonları
@frappe.whitelist()ile korunur - Kullanıcı yetki kontrolü
- SQL injection koruması
- Veri doğrulama ve sanitizasyon
Test ve Doğrulama
- Her doküman türü için ayrı test senaryoları
- Stok tutarlılığı kontrolü
- Hata durumları test edilir
- Performans testleri
Yardımcı Araçlar (Utilities)
Toplu Profil Stok İçe Aktarma
# CSV dosyasından toplu profil stok içe aktarma
bench --site sitename execute uretim_planlama.api.bulk_profile_import.process_bulk_import \
--args "{'file_path': '/path/to/file.csv', 'create_profile_entries': True, 'submit_entries': True}"
Özellikler: - Toplu CSV import desteği - Otomatik Profile Entry oluşturma - Tarih bazında gruplama - Import özet raporu
Duplicate Kayıt Birleştirme
```bash
Duplicate profil stok kayıtlarını birleştirme (Dry Run)
bench --site sitename execute uretimplanlama.api.consolidateprofilestock.consolidateduplicates \ --args "{'dry_run': Tru
Related Other apps for Frappe & ERPNext
- Erpnext — Free and Open Source Enterprise Resource Planning (ERP)
- Helpdesk — Modern, Streamlined, Free and Open Source Customer Service Software
- Print Designer — Visual print designer for Frappe / ERPNext
- Ctr — CTR模型代码和学习笔记总结
- Whitelabel — Whitelabel ERPNext
- Fossunited — fossunited.org
- Helm — Helm Chart Repository for Frappe/ERPNext
- Frappe Attachments S3 — A frappe app to upload file attachments in doctypes to s3.