Stok Projesi hakkında önerilerinizi bekliyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
altunway
Üye
Mesajlar: 217
Kayıt: 11 Haz 2003 09:16
Konum: İstanbul
İletişim:

Stok Projesi hakkında önerilerinizi bekliyorum

Mesaj gönderen altunway »

S.A Arkadaşlar ;

Ben Bir Stok Takip Programı ile uğraşmaktayım..

Sizlere birkaç sorum olacak ;

Öncelikle yapıyı anlatayım ;

StokTanım : Stokların tanımlamalarının yapıldıgı bir tablo
StokGiris : Stok tanım'da tanımlanan verilerin girişinin yapıldıgı tablo
StokCikis : Stok Çıkışlarının yapıldıgı tablo

Sorum Şudur ki

Diyelim ki ben kodu 0001 olan malzemeden toplam 1.000 adet aldım.Daha sonra aynı malzemeden farklı bir fiyat üzerinden 2.000 adet daha aldım.Bu şekilde sürekli malzeme girişi oldu.

Daha Sonra bu malzeme'den yani 0001 kodlu üründen toplam 10.000 adet çıkış yapacagım..İlk giren İlk Çıkar mantıgı ile hareket ederek ilk giren kayıttan başlayarak çıkartma işlemini yapıyorum..İstenen miktarı karşılamıyorsa bir sonraki ne atlıyorum..Topluyorum tekrar karşılayamıyorsa öbürküne atlıyorum..Ama ben ne yazık ki bunları if-then döngüsü ile belli bir kayıt kadar yapabiliyorum..Benim isteğim bunu for veya while ile yapmak.Çünkü çok yüklü miktarlarda isteklere karşılık verebilmem imkansız olur if -then ile... :lol:


İnşallah Derdimi Anlatabilmişimdir..Çok Uğraştım ama ilk deneyim oldugu için bir yerde tıkandım kaldım..

Tecrübelerinizi bana aktarırsanız sevinirim.Veritabanı ile her türlü tavsiyenizi bekliyorum

Herkese teşekkür Ederim ..Allah Kolaylık Versin. :D
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Merhaba delphi dostu kardeşim.
Olayı şöyle düşünebilirsin. FİFO yönteminde genelde farklı zamanlarda girenlerin muhakkak bir farkı vardır. Ya fiyatları farklıdır yada son tarihleri vb. Fiyatlarının farklı olduğunu düşünerek, master-stok tablosu ve detail-hareket tablosu haricinde sadece stok kodları (primary key), fiyati (primary key), top_giren ve top_cikan alanlarından oluşan bir yardımcı FIFO tablon daha olmalı. Hareket tablosuna her kayıt girişinde FIFO tablosunda o kodlu stoktan ve o fiyata sahip bir kayıt var mı bak. Varsa top_girenini miktar kadar arttır, yoksa yeni bir kayıt aç ve top_girene miktarı ata. Çıkış işleminde de aynı işlemi yap fakat burada top_giren - top_cikan farkı sıfırdan büyükse miktar kadarı top_cikandan çıkart. yoksa artanı FIFO.Next ile bir sonraki kayıta geç ve çıkart. Burada dikkat edeceğin husus; fiyat olayı düzenli bir şekilde değişmiyorsa bir de tarih olayını eklemen. Hareket kayıtını silmeye kalktığında da aynı işlemleri tersten yapman gerek. (Ben hareket değişikliklerini sil + yeniden yaz şeklinde yapıyorum. yani fişteki önceki kayıtları sil, yenilerini ekle. eklerken de yukarıdaki işlemleri yapıyor.)

Umarım kafanda epey canlandırabilmişimdir :idea: . Gerisi sana kalmış.. :D

Kolay gele...
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

merhaba,
mesela 0001 nolu stok a yapılan tüm girişler stokgirisleri tablosunda tutuluyor, yani ilk giris 100 adet, ikinci giris 200 adet vs..
sonuçta stok tanımları tablosunda 0001 nolu stok un miktarı 300 oluyor.
çıkış yaparken ise stok çıkışları tablosunda çıkış miktarı belirtiyorsun mesela 50 adet. bu 50 adet çıkış miktarı stoktanımları tablosunda düşmelisin, yani stokgirişleritablosunda toplam girilen miktar hala 300 adet olmalı ama stoktanımları tablosundaki 0001 nolu stok un miktarı 250 olmalı, çünkü 50 adeti şu anda çıkış yapıldı
kolay gelsin
DeveloperToolKit

..::|YeşilMavi|::..
hardndark
Üye
Mesajlar: 23
Kayıt: 14 Tem 2003 05:25
Konum: Keban Barajı

Mesaj gönderen hardndark »

selam,

bir oneri de benden..

stok hareketlerini, stok girisi ve stok cikisi tablolari olarak ayirma.
onun yerine stokHareket adinda tek bir tablo altinda topla.
bu tabloda tutacagin hareket tipini ifade eden bir alan ile kayitlarin ne tur bir hareketi ifade ettigini anlayabilirsin. (giris mi cikis mi?) ornegin alanin adi harTip olsun g ve c degerlerinden birini alabilsin..

hic bir zaman stokTanim tablonda toplam miktar diye bir alan tutarak her stok girisinde burayi arttirip, her stok cikisinda burayi azaltma yoluna giderek stoktaki miktari ogrenme yoluna gitme..
onun yerine toplam miktari stokHareket tablonu sorgulayarak bul...

Kod: Tümünü seç

toplamGiris <-- SELECT SUM(miktar) FROM stokHareket WHERE harTip='g'
toplamCikis <-- SELECT SUM(miktar) FROM stokHareket WHERE harTip='c'
stoktakiMiktar <-- toplamGiris - toplamCikis
gibi...


yani tablolarinda temelde su alanlar bulunsun :

stokTanim : sTNo (auto_inc), stokKod, ......
stokHareket : sHNo (auto_inc), sTNo, harTip (g, c), miktar, ......

----------------------------------------------------

FIFO mantigina gelince..



ek olarak bir de soyle bir tablo daha tut...

stokHarCikisDetay : detayNo (auto_inc), cikisNo, girisNo, miktar



her stok cikis islemi yapildiginda bu tablo'ya veri isle... bu tabloda hangi
stok cikisinin hangi stok giris(ler)inin ne kadarlik miktarini kullandigini tutarsin..
bu yapinin guncelleme ve silme islemleri cok kolay olur.



kolay gelsin ..
İnsanlar, insan sayısı kadar gruba ayrılırlar...
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Stok Projesi hakkında önerilerinizi bekliyorum

Mesaj gönderen yusuf simsek »

Her zamanki gibi Delphi Türkiye...

Canım formum benim :)

Uzun zamandır uğrayamıyordum ama gene sıkıştığım bir anda sevgii üstatlarım gene ufkumu genişletti...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla