Depolar Arası Stok Transferi

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Depolar Arası Stok Transferi

Mesaj gönderen kadirkurtoglu »

Merhabalar, Depolar arası stok transferi konusunda sağlam bir yapı kurmak istiyorum. Hali hazırda master tabloda DEPOIDG ve DEPOIDC şeklinde iki alan tanımladım. Detail tablosunda ise MIKTARG ve MIKTARC şeklinde iki alan tanımladım. Stok miktarlarını view ile göstermek istiyorum ancak case when ile istediğim sonuca ulaşamadım. Stok değerleri sürekli değiştiği için SP kullanmak istemiyorum.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Depolar Arası Stok Transferi

Mesaj gönderen csunguray »

Bir depo transfer fişi kaydettiğinizde programın diğer depoya giriş için bir fiş daha oluşturması gerekir. Yani aynı fişin kopyasının (ve tabi satırlarının) bir çıkış bir de giriş olması gerekir. Diğer depoya giriş fişi otomatik olarak kaydedilebilir. Ama bazı uygulamalarda diğer depodakşi elemanın gelen malı sayıp giriş fişini elle oluşturması da istenebilir. Siz şimdilik otomatik oluşturun.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Depolar Arası Stok Transferi

Mesaj gönderen freeman35 »

StokHareket dosyasına, hareket tipi ni belirtecek bir field ekle, bunu where clause da kullan. bu sayede iki tane miktar alanına da ihtiyacın kalmaz.view içerisinde "select sum(miktar)....where stokid=??? and harekettipi in (1,2,3,4)...." yetecekir. csunguray ın dediği de önemli. İlave olarak, "onay" diye bir alan eklmeyi tercih ederim, yani karşı taraf, depo sorumlusu, sayıp kontrol edip almayı ister, ama her satırı ve miktarı da tekrar girmek istemez. zaten bu program mantığına ters, program angaryayı kaldırmalı, işi zorlaştırmamalı. Hatta buraya onay miktarı da eklenebilir. Yani 10 geldi görünüyor ama 9una onay var. eksik olabilir, gelmemiş olabilir vs vs
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Re: Depolar Arası Stok Transferi

Mesaj gönderen kadirkurtoglu »

freeman35 yazdı: 09 Eyl 2020 08:10 StokHareket dosyasına, hareket tipi ni belirtecek bir field ekle, bunu where clause da kullan. bu sayede iki tane miktar alanına da ihtiyacın kalmaz.view içerisinde "select sum(miktar)....where stokid=??? and harekettipi in (1,2,3,4)...." yetecekir. csunguray ın dediği de önemli. İlave olarak, "onay" diye bir alan eklmeyi tercih ederim, yani karşı taraf, depo sorumlusu, sayıp kontrol edip almayı ister, ama her satırı ve miktarı da tekrar girmek istemez. zaten bu program mantığına ters, program angaryayı kaldırmalı, işi zorlaştırmamalı. Hatta buraya onay miktarı da eklenebilir. Yani 10 geldi görünüyor ama 9una onay var. eksik olabilir, gelmemiş olabilir vs vs

Master Tabloda tip var. Onay kısmına gelince, Bu işlemi yapılmış olan kaydın girilmesi işi, Depocular da bulunan evrak ile giriş ve çıkış işlemlerini yapımışlar. Hali hazırda depodan depoya sevk edilmiş ürün ya da ürünlerin Program da takibi ile alakalı. 15 e yakın tip var, dolayısıyla where şartı işimi görmüyor
Case When tipID = 1 Then ...

Burda alış, satış iadeler, konsinye sevkler vs.. gibi işlemler de sıkıntı yok. Yapı içerisinde Master Tabloda DepoIDG girişi temsil ediyor. İşlem tipi Alış ise DepoIDG, Satış ise DepoIDC alanlarından birine depoId değeri gönderiliyor. Sıkıntı hem DepoIDG hem de DepoIDC alanı aynı anda kullanılınca Select ile işin içerisinden çıkılması işi zorlaştırıyor.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Depolar Arası Stok Transferi

Mesaj gönderen csunguray »

kadirkurtoglu yazdı: 09 Eyl 2020 11:50 Master Tabloda tip var. Onay kısmına gelince, Bu işlemi yapılmış olan kaydın girilmesi işi, Depocular da bulunan evrak ile giriş ve çıkış işlemlerini yapımışlar. Hali hazırda depodan depoya sevk edilmiş ürün ya da ürünlerin Program da takibi ile alakalı. 15 e yakın tip var, dolayısıyla where şartı işimi görmüyor
Case When tipID = 1 Then ...

Burda alış, satış iadeler, konsinye sevkler vs.. gibi işlemler de sıkıntı yok. Yapı içerisinde Master Tabloda DepoIDG girişi temsil ediyor. İşlem tipi Alış ise DepoIDG, Satış ise DepoIDC alanlarından birine depoId değeri gönderiliyor. Sıkıntı hem DepoIDG hem de DepoIDC alanı aynı anda kullanılınca Select ile işin içerisinden çıkılması işi zorlaştırıyor.
Girişleri ayrı çıkışları ayrı select ile çekip union ile birleştirin. Hız için Case kullanımından kaçının.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Cevapla