birden fazla depo mantığı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

birden fazla depo mantığı

Mesaj gönderen burakb44 »

arkadaşlar merhaba, tek depo mantığı ile çalışan stok depo programımı çoklu depo yapısına dönüştürmek istiyorum. her deponun stok miktarları ve hareketleri farklı olabilir ama neticede ana bi dosyada hepsini tutmak istiryorum çalışma esnasında yeni depolar açılacak şekilde mantığını çözemedim . yardımcı olursanız sevinirim
Kullanıcı avatarı
tinekci
Üye
Mesajlar: 18
Kayıt: 11 Tem 2010 01:59

Re: birden fazla depo mantığı

Mesaj gönderen tinekci »

her deponun stoğunu ayrı ayrı tutabilmek için depo hareketlerını gerceklestırdıgın evraklara depo kodu getırmelısın
mesela stok faturası keserken fatura ust bılgısınde stok cıkısının hangı depodan oldugunu sectırmelısın.
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: birden fazla depo mantığı

Mesaj gönderen burakb44 »

aslında bu söylediğini yaptım şu anda, stok tablom var aynı şekilde depo tanımlarının yapıldığı depo tablomda mevcut, girişleri yatırırkende depo kodunu alarak hangi depoya mal girmiş hangisinden çıkmış bunların hepsini yaptırıyorum ama şöyle bişe takıldı kafama, şimdi bi stok kartını açtığımız zaman o stok kartındaki ürünlerden hangi depoda kaç tane var bunları görmek istediğimde giriş-çıkış yapılan bütün tablolaların hepsinde sorgulatma yapmam gerekecek, faturalar-stok fişleri-depolar arası transferler-perakende satışlar yani hepsini sorgulatınca hangi depoda kaçtane ürün var , bunu görmek istediğimde sorgular zaman alacak , hele kayıtlar bi çoğalmaya başlarsa hepten yavaşlayacaktır, bu konudaki fikirlerinizide almak isterim
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: birden fazla depo mantığı

Mesaj gönderen unicorn64 »

madem ki her işlemi farklı tablolardan takip ediyorsun, STOKDEPO diye bir tablo oluşturup depolarda stokların son durumunu bu tablodan takip edebilirsin...

DepoId,StokId,Miktar şeklinde 3 alanı olan bir tablo... işlem türü ne olursa olsun herhangi bir stok giriş/çıkış durumunda bu tabloda güncelleme yaparsın...
stok giriş çıkış işlemlerinde bir fazla işlem yapmış olursun ama depo bazlı stok durumu için de sadece bu tablodan bir tek sorgu yapman yeterli olur...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: birden fazla depo mantığı

Mesaj gönderen burakb44 »

unicorn64 yazdı:madem ki her işlemi farklı tablolardan takip ediyorsun, STOKDEPO diye bir tablo oluşturup depolarda stokların son durumunu bu tablodan takip edebilirsin...

DepoId,StokId,Miktar şeklinde 3 alanı olan bir tablo... işlem türü ne olursa olsun herhangi bir stok giriş/çıkış durumunda bu tabloda güncelleme yaparsın...
stok giriş çıkış işlemlerinde bir fazla işlem yapmış olursun ama depo bazlı stok durumu için de sadece bu tablodan bir tek sorgu yapman yeterli olur...
öncelikle cevabınız için teşekkür ederim.

evet çok haklısınız fakat buradada şöyle bi sıkıntı mevcut, her yeni depo kaydı açıldığında stok dosyasında kaç tane stok kaydı varsa tabloda o kadar yeni kayıt eklemek gerekecek

diyelimki stok dosyasında 10.000 kalem ürün olsun 2 depo olsa sizin belirttiğiniz yöntem ile yeni depo açılır açılmaz 10.000 kalem ürünü tabloda her iki depo içinde tanımlamak gerekecek, yani 20.000 kayıt eder, 10 depo olduğunda 100.000 kayıt yapacak bu durumda database aşırı şişecek
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: birden fazla depo mantığı

Mesaj gönderen unicorn64 »

her üründen her bir depoda mutlaka bulunması durumunda evet 10000 stok ve 10 depo için 100000 kayıt edecek,
(depoda olmayan stok için tabloda kayıt tutmaya gerek yok sonuçta) ama sadece 3 alan olacağı için çok da şişireceğini sanmam...

ihtiyacınızı karşılamak için 2 yol geliyor aklıma;
1.si bahsettiğim gibi depolardaki stok miktarlarını bir tabloda tutmak.
2.si tüm stokl giriş/çıkış kayıtlarınızda depoyu belirtmek ve bakiye için tüm tablolar üzerinden toplama çıkarma yapıp sum almak.
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: birden fazla depo mantığı

Mesaj gönderen burakb44 »

unicorn64 yazdı:her üründen her bir depoda mutlaka bulunması durumunda evet 10000 stok ve 10 depo için 100000 kayıt edecek,
(depoda olmayan stok için tabloda kayıt tutmaya gerek yok sonuçta) ama sadece 3 alan olacağı için çok da şişireceğini sanmam...

ihtiyacınızı karşılamak için 2 yol geliyor aklıma;
1.si bahsettiğim gibi depolardaki stok miktarlarını bir tabloda tutmak.
2.si tüm stokl giriş/çıkış kayıtlarınızda depoyu belirtmek ve bakiye için tüm tablolar üzerinden toplama çıkarma yapıp sum almak.

aslında stok tablosuna 10 tane depo alanı eklesem ve her deponun miktarlarını bu alanlarda saklasam stabil olur ancak ileride yeni depo açmak gerektiğinde bu 10 alanı artırmak gerekcek buda çok dinamik bi yapı oluşturmaz, bunun yerine 2. öneriniz yani halihazırdaki sistemi devam ettirmek daha mantıklı görünüyor. ilgnize teşekkür ederim. bu konuda diğer forumdaşlarında fikirlerini almak isterim. neticede piyasada bu tip çalışan bir sürü program var eminim aramızda daha önce bu sorunla karşılaşanda olmuştur. yeni önerilere açığım.
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: birden fazla depo mantığı

Mesaj gönderen esistem »

Merhaba;

Aslında dediğin gibi stok tablosuna 10 adet alan açarak giren ve çıkan adetleri otomatik arttırıp eksilterek bu işi çözebilirsin ama unicorn64 un dediği gibi yapman daha mantıklı olacaktır zira veritabanı tasarımlarında mutlak suretle o şekilde yapılmaktadır. Alan açarsan sadece "ya bi depo daha eklememiz lazım" dendiğinde hiç yoktan bi sürü kod yazman gerekir. Benim başıma geldi çünkü zamanında, "sadece 4 depomuz var" gerek yok depoyu bizim tanımlamamıza dediler, 2 yıl sonra şirket büyüdü, 6 depo daha oldu, il ikisinde alan ekledim önce sonra baktım ardı arkası kesilmiyo komple değiştirdim, 2. bi tabloda tutmaya başladım çok şükür hala bi sorunla karşılaşmadan kullanıyolar ve istedikleri gibi depo ekleyip silebiliyolar. Bende 500 kalem civarı ürün vardı en son sanırım 12 adet depo tanımlıydı, 500*12=6000 kayıt yapar veritabanı paradoxtu zaten hiç dokunmadım bi daha.
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: birden fazla depo mantığı

Mesaj gönderen burakb44 »

esistem yazdı:Merhaba;

Aslında dediğin gibi stok tablosuna 10 adet alan açarak giren ve çıkan adetleri otomatik arttırıp eksilterek bu işi çözebilirsin ama unicorn64 un dediği gibi yapman daha mantıklı olacaktır zira veritabanı tasarımlarında mutlak suretle o şekilde yapılmaktadır. Alan açarsan sadece "ya bi depo daha eklememiz lazım" dendiğinde hiç yoktan bi sürü kod yazman gerekir. Benim başıma geldi çünkü zamanında, "sadece 4 depomuz var" gerek yok depoyu bizim tanımlamamıza dediler, 2 yıl sonra şirket büyüdü, 6 depo daha oldu, il ikisinde alan ekledim önce sonra baktım ardı arkası kesilmiyo komple değiştirdim, 2. bi tabloda tutmaya başladım çok şükür hala bi sorunla karşılaşmadan kullanıyolar ve istedikleri gibi depo ekleyip silebiliyolar. Bende 500 kalem civarı ürün vardı en son sanırım 12 adet depo tanımlıydı, 500*12=6000 kayıt yapar veritabanı paradoxtu zaten hiç dokunmadım bi daha.

sistem zaten unicorn64 arkadaşın dediği gibiydi bunun bir dezavantajı kayıt sayısı arttığı zaman sorgulamalar uzun sürecek, sorgu zamanını minimuma indirmek için araştırma yapıyorum. sorgulamalarda bu süre için yardımcı ne yapılabilir onları düşünüyorum. database e indexler eklemek, basit sql cümleleri vs. bakalım artık nasıl olacak. cevaplar için teşekkürler
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: birden fazla depo mantığı

Mesaj gönderen conari »

stok hareketlerinin olduğu tabloyu birleştirin, Hareket ayrımı için hareket tipi diye bir alan ekleyerek orada takip edin.
İşte;
Fatura için F,
Depo transferi için D,
Devir için A,
v.s. gibi.
sorgularınızı buradan çekerken bir group by yeter.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: birden fazla depo mantığı

Mesaj gönderen esistem »

Merhaba;

Sistem zaten o şekildeyse hiçbişiden çakinmene gerek yok, 100K kayıtta üstelik 3 integer alanlı ve yine üstelik indexli bi taloda SQL ile ile yanıt alman saniye sürmez, ama mesela "x stoğundan kaç adet satmışım" veya "Y stoğundan kaç adet depolar arası sevkiyat yapmışım" gibi bi rapor için gidip tablodaki kayıt sayısını count() ile çekiyosan makinayı boşa yorarsın bence.

Benim STOK tablom alanları şöyleydi, KOD, ADI vs. , GIREN, CIKAN, SEVK_GIREN (depolar arası), SEVK_CIKAN (Depolar arası)
stok hareket tablom da KOD, STOK_KODU, TURU (alış,satış,sevk giris(Depolar arası),sevk cikis(Depolar arası),sair çıkış) şeklindedir. Yapılan her işlemi hareket tablosuna kaydettikten sonra STOK tablosundaki alanların değerlerini arttırıp azaltarak rahatça görüyodum. Ama tabi satış raporu alırken haliyle dediğin sorguları yapman lazım.
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: birden fazla depo mantığı

Mesaj gönderen burakb44 »

esistem yazdı:Merhaba;

Sistem zaten o şekildeyse hiçbişiden çakinmene gerek yok, 100K kayıtta üstelik 3 integer alanlı ve yine üstelik indexli bi taloda SQL ile ile yanıt alman saniye sürmez, ama mesela "x stoğundan kaç adet satmışım" veya "Y stoğundan kaç adet depolar arası sevkiyat yapmışım" gibi bi rapor için gidip tablodaki kayıt sayısını count() ile çekiyosan makinayı boşa yorarsın bence.

Benim STOK tablom alanları şöyleydi, KOD, ADI vs. , GIREN, CIKAN, SEVK_GIREN (depolar arası), SEVK_CIKAN (Depolar arası)
stok hareket tablom da KOD, STOK_KODU, TURU (alış,satış,sevk giris(Depolar arası),sevk cikis(Depolar arası),sair çıkış) şeklindedir. Yapılan her işlemi hareket tablosuna kaydettikten sonra STOK tablosundaki alanların değerlerini arttırıp azaltarak rahatça görüyodum. Ama tabi satış raporu alırken haliyle dediğin sorguları yapman lazım.
bendeki yapı biraz farklı,
çalışan program üzerinde değişik modüller var, alış-satış faturaları, perakende satış, depolar arası transfer- devir miktarları- (sisteme sonradan ilave edilen araç-takip-digital baskı gibi normal bi programın içinde olmayan fakat gelen talepler doğrultusunda stok dosyasıyla entegre çalışan bölümler var) - bunların hepsini tek dosyada toplama şansım yok mecburen stok hareketlerini ya tek tek sorgulatacığım yada bi tablo açıp oraya yapılan işlemleri özet halinde tutup tek bi sorgu ile çekeceğim
Cevapla