Forum
Merhaba;
Üzerinde çalıştığım bir veritabanım var. Veritabanında depodan depoya transfer fişi düzenliyorum fakat bir türlü mantalitesini oturtamadım. bu konuda yardımlarını rica ediyorum. Sorum şu;
"TransferFisleriFormu" mdaki girişimi sorgularda "StokAnaTabloEklemesi" ile ana tabloya ters kayıt, "StokDetayTabloEkleme" ekleme sorgusu ilede ters oluşturulan kayıta ait malzeme kayıtlarını tablolara aktarıyorum. Örneğimdede göreceğiniz gibi "TransferFisleriFormu" mdaki 158 nolu kayıtta Brokoli ve şeker transfer ediliyor. Transfer işlemi "Merkez Depo" dan "B Projesi" ne olacak şekildedir. "Verileri aktar" butonuna bastığımda düğmenin click olayına yazdığım ekleme sorguları ile "StokFisleriAnaTablo" suna 1 den 4 e yani Merkez Depo'dan B projesine veri girilmiş ve bunun tersi olarakda 4 nolu depo yani B projesinede stok girişi için yeni bir kayıt atılmıştır. Bunun detayı da "StokFisleriDetayTablo" sunda yer almaktadır.
Tüm bu yapılan işlemler aslında aynı anda kullanıcılar tarafından kullanılan bir veritabanı açısından uygun olmamış durumda. Depodan depoya transfer fişinin tasarımı ve benim ekteki veritabanıma uygulayabileceğim başka bir yol istiyorum. Konu hakkında daha öncesinde uğraşanlar olmuştur düşüncesiyle cevabınızı bekliyorum. Teşekkür ederim.
Selamlar;
Mrb ,
Senin tasarımı pek anlayamadım ama sana gerçek erp prog.larında örn ax da bu işin nasıl yapıldığını kısa temeli ile bahsedeyim.
Yapman gereken tüm depo transferlerini tutman için stocktrans gibi bi tablo oluşturman sornası bu bir depo temelinde +/- çıkışlarla çalışır yani transfer ters kayıt,iade,mal kabul,satış ne bunların hepsi depodan bir + girişi veya - çıkışıdır, o yüzden miktar değerini reel yapmalısın.Topmalmarını aldığında ise +/- işlemler olduğundan güncel stok miktarını her zaman net alırsın. işlem tiplerinede gelince her hareketin bir transtype olur bunu c# da enum'ları atayarak yapabilirsin.Örn: bi hareket satışsa 1,satınalma ise 2, iade ise 3, gibi böylece hareket tiplerini ayırt edebilirsin. depo işlemlerine de gelince bunları boyutlar gibi tanımlayabilirsin.Yani bir mal a deposundan b ye geçiyorsa bunu borç alacak mantığına uygun şekilde stock trans'da a deposu- transfer b deposu için + transfer olarak insterleyebilir transtype'sinde depo transferleri diyebilirsin. bu ürün transfer bilgilerini ayrı bir tablo yaparak boyut bilgisi gibi tutabilirsin şöyle; ürünün ambalaj,lot,depo yer, vb, gibi tüm ürünler için olan ortak özelliklerini başka bi tabloda tutup stocktrans'a 1..n şeklinde bir ilişkilendirme yapaiblirsin.
Umarım yeterli olmuştur.
http://msdn.microsoft.com/en-us/library/aa624918(v=ax.50).aspx
http://msdn.microsoft.com/en-us/library/aa624918(v=ax.50).aspx
Merhaba Gökhan bey,
Cevabınız için teşekkür ederim. Bahsettiklerinize benzer şekilde bir tasarım yaptım. Fiş Türleri adında bir tablom var. Tüm fiş türleri buradan alınarak + veya - geliyor. Bunun yanında stokanatablo ve stokdetaytablo yapım var. Ana tabloda fiş nolarını detay tabloda da bu fiş nolarına ait detayları tutuyorum. Transfer yaptığım formdaki verileri iki ekleme sorgusu ile stokanatablo ve stokdetaytablo ya aktarıyorum. Sıkıntım tamda bundan sonra çıkıyor. Şöyleki;
Stokanatabloya kaynak depodan çıkarmak istediğim stok hareketi yansıyor fakat iş hedef depodaki girişi ifade etmeye gelince tıkanıyorum. Ayrıca kullanıcı fişi silmek veya düzenlemek istediğinde o kayıtları çağırıp edit etmek gerektiğinde sql bilgim yetersiz kalıyor. Çeşke size buradan dosyayı paylaşabilseydim. Ne demek istediğimi çok daha net anlayabilirdiniz.
Selamlar
Mrb,
Harekette depo taşıma bilgisi değiştirme işini bahsettiğim gibi yapabilirsiniz. detaylısı,
BoyuTablosu olsun aşağıdaki gibi
DimId,Depo,lot,ambalaj vs..
Stok Hareketleri tablosunda dimId bilgisini eklerseniz yaptığınız +/- işlemlerde önce şunu kontrol edersiniz. girişi olacak hareketin seçili boyut bilgilerini önce boyut tablosunda aratırsınız eğer eşleşen varsa ilgili dimId yi bu kayıt a atarsınız aksi durumda yoksa yeni kayıt oluşturup bu kaydın dimId sini bu harekete aktarırsınız.
Böylece her kayıt için ayrıca dimId oluşmaz bir süre sonra hareketlere bağlı olarak dimId ler tanımlı oludğundan aynı depo,lot,ambalaj,vs.. bilgisini birçok harekete atabilirsiniz.
Verdiğim link'leri inceleyip biraz daha detaylı araştırabilirsiniz.