Forum

Stoktan düş...
 
Bildirimler
Hepsini Temizle

Stoktan düşürme sorunu

7 Yazılar
2 Üyeler
0 Likes
1,608 Görüntüleme
(@CihanCoskun)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Merhaba, 
Bir restoran stok takip programı yapıyorum. Yapmak istediğim şey yemeklerin bir reçetesi olması ve yemek satılınca o reçetedeki malzemelerin stoktan düşmesi. C# ve sql server kullanıyorum.

Programa önce malzemeleri giriyorum. Patates, domates, un, yağ vb.
Daha sonra yemek ekliyorum. Patates yemeği, börek vb.
Yemeği eklerken veritabanındaki "yemekler" tablosu içine bir "yemek kodu" ekletiyorum.
Bu eklediğim "yemek kodu" benzersiz 15 harften olusan random harflerden olusuyor ve bu kod ile o yemek için yeni bir tablo oluşturuyorum.
Bu tabloda "malzemeadı" ve "gerekenmiktar" alanlarım mevut.

Tekrar etmem gerekirse "adisyon" ekranında yemeği seçip eklediğim zaman, bu yemeğin adını yemekler tablosunda bulup, "yemekkodu" değerini çekecek; bu "yemekkodu"na ait tabloya gidip oradaki "malzemeadi" ve "gerekenmiktar" alanlarını teker teker okuyup, "malzemeler" tablosundaki "malzemeadi" kısmında eşleşenlerin "stok" alanındaki değerlerini "gerekenmiktar" kadar düşürecek. Fakat tüm bu mantık arasından tek tek okuma ve tek tek azaltma döngüsünü kuramadığım için başarısız oldum. 

Neler yapabilirim. Yardımlarınızı bekliyorum.

Teşekkürler.

 
Gönderildi : 20/07/2016 15:52

(@eravse)
Gönderiler: 1753
Üye
 

merhaba tek tek okutma degılde zaten sız yemekId ıle bır urun gırısı yapıyorusnuz soyle ızah etmeye calısayım

 

YemekTablosu

ID     Yemek Adı

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

12522   Patlıcan Musakka

 

YemekBirimKullanımları

ID    YemekId   MalzemeID    Miktar      

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

1   12522           1                    2

 

Malzemeler

ID    Malzeme Adı   Birim

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

1       Patlıcan          Ad

2       Kıyma            Gr

.....

 

MalzemeStok

ID   MalzemeID     MevcutStok

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

1           1               120

2           2               1200

 

buraya kadar 4 tablo ıle ana seklımızı verdık zaten benzer bır yapın oldugunu dusunuyorum adısyon ekranında patlıcan musakka secıldıgınde button ınsert yada adısyon ekle eventınde  YemekBirimKullanımları tablosunda 12522 nolu yemege kı bu senın secımınden gelen ıd select atarak tum ogelerı for each dongusune sokacaksın ve Malzeme stok tablosundan eksılteceksın. daha sonra submıt changes eventını kullanarak kayıt edeceksın aynı sekılde bır malzeme ekleme ıcınde admıne bır ekran yaparsan patlıcan eklemek ıstedıgınde alıs faturasından malzemestok tablosuna eklettırebılırsın

 

zannedersem dogru anladım ? bır eksık var ıse yazalım devamını saygılar

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 20/07/2016 16:37

(@CihanCoskun)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Detaylı anlatımınız için teşekkür ederim.

Tamamen doğru anlamışsınız. Ancak benim hata aldığım, başaramadığım kısım zaten foreach dongusu. Burada adisyon ekranındaki yemek adını seçip o yemeğe ait tablodaki birimleri foreach dongusu ile alacak ve malzemelerin stok tablosundan düşüreceğim. Ancak burada nasıl bir döngü kurmalıyım onu yapamıyorum. 

Örnek olarak;

cmd = new SqlCommand("select YEMEKKODU from yemekler where YEMEKADI='" + yemekadi + "'", con);

 

komut satırı ile adisyona eklediğim yemeğin kodunu alıp,

hangi basamakları uygulamalıyım ki;

select YEMEKADI,GEREKENMIKTAR from "+yemekadi+" "", con)

komut satırı ile yemeğin tablosundan seçtiğim YEMEKADI ve GEREKENMIKTAR alanlarını tek tek okuyup, malzemeler tablosundaki MALZEMEADI, STOK ile eşleştirip eksiltebileyim?

Umarım anlatabilmişimdir.

Saygılar.

 
Gönderildi : 20/07/2016 18:41

(@eravse)
Gönderiler: 1753
Üye
 

şimdi zaten burda kodu bulmussun daha sonra senın artık ada ıhtıyacın yok bence ıkıncı select sorunlu senın

cmd = new SqlCommand("select YEMEKKODU from yemekler where YEMEKADI='" + yemekadi + "'", con);

 

ornek kod yazmaya calısacagım ama malum bıraz yogun step step yazmaya calısıyorum

Yemek kodunu bul

Yemel Malzeme Listesinden bir Class a yemek kodu ile sorgu yaparak birimleri cek

yemek malzemeden elde ettıgın bırım mıktaları stok malzeme tablosundan eksılt 

 

dedıgım gıbı foreach yazmaya calısayım ama bıraz yogunluk var anlasılmayan bır durum varsa ufak ufak step step devam edelım  ?uygunsa

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 20/07/2016 19:15

(@CihanCoskun)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Sayın hocam ilk yazdığım sorgu ile ben yemekler tablosundaki kodu alıp o yemeğin tablosuna bağlanıyorum.

Şimdi yazdıgım sorgu ile tablodaki alanların verilerini dt içine attım..

con.Open();
string cmd= "select * from "+ yemekadi+"";
SqlDataAdapter data_adaptor = new SqlDataAdapter(cmd, con);
con.Close();

data_adaptor.Fill(dt);

foreach (DataRow item in dt.Rows)
{
}

burada datatable içine tablonun tümünü alıyorum. Ancak foreach dongusunde satırları cekemedim bir türlü. Çeksem dahi sonraki adımda eşleştirmeyi nasıl yapmalıyım ?

Burada örnek koda ihitiyaç duyuyorum. Zamanınızı almak istememekle birlikte küçük de olsa bir yardım işimi görecektir. Saygılar.

 
Gönderildi : 20/07/2016 20:27

(@CihanCoskun)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Günaydın hocam,

Örnek kod yazmaya fırsat bulabildiniz mi? Ne türkçe ne ingilizce kaynaklardan sorunumun çözümünü bulamadım. Yardımınıza ihtiyacım var.

Saygılar.

 
Gönderildi : 21/07/2016 12:49

(@eravse)
Gönderiler: 1753
Üye
 

selamlar yogunluk nedenı ıle yazamadım ılk fırsatta bakmak ıstıyorum

saygılar

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 02/08/2016 14:18

Paylaş: