Envanter Girişi ve Çıkışı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 82
- Kayıt: 19 Ağu 2005 09:34
- Konum: Istanbul
Envanter Girişi ve Çıkışı
Merhabalar Herkeze;
Forumda konusu çok geçti farkındayım yaptığım aramalarda çok detaylı bilgilere ulaşmama rağmen sorunumu çözemedim henüz.
Bir Supermarket dusunun stokdaki konservelerin miktarı 50 adet.
Aynı konservelerden gene satın alınıyor ve bunları stoğa işlemek istiyorum.
90 tane daha aldık diyelim 50+90=140 işlemini yapıp o konserveeler için stok miktarını 140 olarak update etmesini istiyorum. Yani;
Stok=Eskideğer+SatınAlınanmiktar
Sağolun..
Forumda konusu çok geçti farkındayım yaptığım aramalarda çok detaylı bilgilere ulaşmama rağmen sorunumu çözemedim henüz.
Bir Supermarket dusunun stokdaki konservelerin miktarı 50 adet.
Aynı konservelerden gene satın alınıyor ve bunları stoğa işlemek istiyorum.
90 tane daha aldık diyelim 50+90=140 işlemini yapıp o konserveeler için stok miktarını 140 olarak update etmesini istiyorum. Yani;
Stok=Eskideğer+SatınAlınanmiktar
Sağolun..
Celebrating the past , Creating the Future
-
- Üye
- Mesajlar: 82
- Kayıt: 19 Ağu 2005 09:34
- Konum: Istanbul
Bence yukarıda anlattıklarım durumu açıklıyor. Benim yazdığım sql update ediyor fakat benım istediğim update etmesi değil eski değer ile yeni değeri toplayıp tekrar aynı alana yazdırması.
TOPLAM=ESKIDEGER+SATINALINAN DEĞER
Daha açıkmı anlatmalıyım anlaşılmıyormu yazdıklarım yoksa 
TOPLAM=ESKIDEGER+SATINALINAN DEĞER
Kod: Tümünü seç
Bir Supermarket dusunun stokdaki konservelerin miktarı 50 adet.
Aynı konservelerden gene satın alınıyor ve bunları stoğa işlemek istiyorum.
90 tane daha aldık diyelim 50+90=140 işlemini yapıp o konserveeler için stok miktarını 140 olarak update etmesini istiyorum

Celebrating the past , Creating the Future
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
guney_tosun yazdı:Stok=Eskideğer+SatınAlınanmiktar
Kod: Tümünü seç
Format('update stok set miktar=isNull(miktar,0)+%s where Kod=%s',[YeniMiktar,Stokkodu])
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 82
- Kayıt: 19 Ağu 2005 09:34
- Konum: Istanbul
-
- Üye
- Mesajlar: 82
- Kayıt: 19 Ağu 2005 09:34
- Konum: Istanbul
Kod: Tümünü seç
Update Manager. Ord_Ana_Malz Set As_SAV=As_SAV + 2 where SNO='+EDIT1.Text+'
Sorunsuz çalışıyor fakat tek problemim
Alanlarda default value (boş),yani alanlar boş olunca Update işlemi yapmıyor bu kod. Default value olarak 0 tanımlamam gerekiyor.Denedim 0 verince çalıştı..Nası olacak sizce? Farklı bir fikri olan varı ?
Celebrating the past , Creating the Future
Benim anladığım şaban hocanın SQL ine göre MSSQL kullanıyorsunuz.
Yeni kayıt girişinde artıracam demişsiniz.
Düzeltme veya silme olursa ne olucak??
Bunun için delphide değil sql server data da bir Trigger yazmanınız daha mantıklı.
stok giriş tablosunun insert, update ve delete işlemlerini takip edip
alanı güncellettirin.
sitede örnekleri var.
@Fahrettin abinin makalesini bir incele
viewtopic.php?t=644&postdays=0&postorder=asc&start=0
Yeni kayıt girişinde artıracam demişsiniz.
Düzeltme veya silme olursa ne olucak??
Bunun için delphide değil sql server data da bir Trigger yazmanınız daha mantıklı.
stok giriş tablosunun insert, update ve delete işlemlerini takip edip
alanı güncellettirin.
sitede örnekleri var.
@Fahrettin abinin makalesini bir incele
viewtopic.php?t=644&postdays=0&postorder=asc&start=0
Bir kelimenin anlamını öğretsen bile yeter..



- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Eğer değer null ise bazı veritabanları bu değer üzerinden işlem yapmazlar. Sizin bunu 0'mış gibi göstermeniz gerekmektedir. Dikkat edersen sorgumda isNull kullandım ama siz hiç kullanmamışsınız. Birde kullandığın veritabanı nedir diye soracağım ama yine cevap vermeyeceksin herhalde. Çünkü ne sorunda istediklerin ne de çözüm için yardımcı olacak insanlara açıklayıcı bilgilerin hiç yeterli değil. Sırf bu yetersizliğe vurgu yapmak için küçük bir cevap verdim. Sorunuzun cevabını alabilmek için, tüm detaylardan olduğu gibi bahsetmeniz gerekmektedir. Zira buradan sizin ne yapmaya çalıştığınızı anlamaya çalışmak müneccimlikten öte bir şey değildir. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 82
- Kayıt: 19 Ağu 2005 09:34
- Konum: Istanbul
Tekrar merhaba;
Oracle 10g kullanıyorum ..
Urunlrein oldugu bir tablom var ayrıca urunlerin adetlerini değiştiridiğim ayrı bir tablom var. Ürün adetlerini değiştirince lookup ile ana ürün tablosundan bakıp o ürünün stok seviyesini arttırmak amacım. Ama o urun stokda yok 0 olması gerekiyor değerin ama null değer var dolayısıyla kodum dogru olmasına ragmen arttıramıyorum. Null değer yerine 0 girsem kod çalışıyor. ISNULL kullanmadım Oracle10g de nasıl kullanırım veya sorgumda delphiden halletmek ilk tercihim cunku trigger kullanmayı bilmiyorum .
DEdiğim gibi;
Update problemim halloldu sadece alanlardaki default value ları 0 olarak gostermem gerekiyor.Bunu halladersem problemim ortadan kalkıcak.
SAğolun..
Oracle 10g kullanıyorum ..
Urunlrein oldugu bir tablom var ayrıca urunlerin adetlerini değiştiridiğim ayrı bir tablom var. Ürün adetlerini değiştirince lookup ile ana ürün tablosundan bakıp o ürünün stok seviyesini arttırmak amacım. Ama o urun stokda yok 0 olması gerekiyor değerin ama null değer var dolayısıyla kodum dogru olmasına ragmen arttıramıyorum. Null değer yerine 0 girsem kod çalışıyor. ISNULL kullanmadım Oracle10g de nasıl kullanırım veya sorgumda delphiden halletmek ilk tercihim cunku trigger kullanmayı bilmiyorum .
DEdiğim gibi;
Update problemim halloldu sadece alanlardaki default value ları 0 olarak gostermem gerekiyor.Bunu halladersem problemim ortadan kalkıcak.
SAğolun..
Celebrating the past , Creating the Future
Bu öneri ye tam zıttımserkan yazdı:bence depo değerini yani bakiyeyi sabit bir alanda oynayarak değilde stok hareketlerinden toplam_giren-toplam_cikan şeklinde yapın
bu şekilde çok başınız ağrız...özellikle üretim ile alakalı bir modül var ise hepten karışır.
kolay gelsin
stoklar(hatta cari hesaplar) ile ilgili bütün hareket toplamlarını hareket tablosundan ayrı bir tabloda tutulmasından yanayım.((giriş-çıkış,alış-satış siparişi vs..)burda var ise depo bazında)
Özellikle üretim demişsiniz üretim var ise kesinlikle böyle bir uygulamaya gidilmeli.
çünkü özellikle hammadde hareketleri çok olur.Tüm tablodan bu satırları toplattırmak SQL ile baş ağrıtmaya benzer.
Bir kelimenin anlamını öğretsen bile yeter..



-
- Üye
- Mesajlar: 82
- Kayıt: 19 Ağu 2005 09:34
- Konum: Istanbul
Tekrar merhaba;
Üretim modülü yok gelecek için bole bir plan da yok.
"COALESCE(ALAN, 0) ALAN NULL ise 0 ya da istediğin bir değer döner"
Nasıl kullanabilirim bunu ? açıklayabilirmisiniz.
Ayrıca Default Value vermeye çalışmama rağmen olmadı default value suna 0 verdim ama
Bunu dışında Direk update denedim gende null değeri 0 a dönüştürmüyor.. 
Üretim modülü yok gelecek için bole bir plan da yok.
"COALESCE(ALAN, 0) ALAN NULL ise 0 ya da istediğin bir değer döner"
Nasıl kullanabilirim bunu ? açıklayabilirmisiniz.
Ayrıca Default Value vermeye çalışmama rağmen olmadı default value suna 0 verdim ama


Celebrating the past , Creating the Future
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
SQL kodlaması yaparken ALAN yazmak yerine COALESCE(ALAN,0) yazman yeterli.
Kod: Tümünü seç
Update Manager. Ord_Ana_Malz Set As_SAV=COALESCE(As_SAV,0) + 2 where SNO='+EDIT1.Text+'
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 82
- Kayıt: 19 Ağu 2005 09:34
- Konum: Istanbul
Kod: Tümünü seç
Update Manager. Ord_Ana_Malz Set As_SAV=COALESCE(As_SAV,0) + 2 where SNO='+EDIT1.Text+'
bunu as_sav alanındaki her değere uygulamicakmı ? diyelim null olmayıpda içi dolu olan satırlarda var bunlardaki verilere birşey olurmu ?
Teşekkürler.
Celebrating the past , Creating the Future