//Masaların adisyonlarını değiştiren butonun methodu private void changeTablesButton_Click(object sender, EventArgs e) { masaDegistirForm = new MasaDegistirFormu(MasaAdi, hangiDepartman.departmanAdi, this); masaDegistirForm.ShowDialog(); if (masaDegistirForm.yeniMasa == "iptalEdildi") return; else { if (Properties.Settings.Default.Server == 2) // server { SqlCommand cmd; switch (masaDegistirForm.yapilmasiGerekenIslem) { case 0: // departman değişmedi ve masaların ikisi de açık cmd = SQLBaglantisi.getCommand("UPDATE Adisyon SET MasaAdi = CASE MasaAdi WHEN @masaninAdiEski THEN @masaninAdiYeni WHEN @masaninAdiYeni THEN @masaninAdiEski END WHERE MasaAdi in (@masaninAdiEski,@masaninAdiYeni) AND AcikMi=1 AND DepartmanAdi=@departmanAdiEski"); cmd.Parameters.AddWithValue("@masaninAdiEski", MasaAdi); cmd.Parameters.AddWithValue("@masaninAdiYeni", masaDegistirForm.yeniMasa); cmd.Parameters.AddWithValue("@departmanAdiEski", hangiDepartman.departmanAdi); break; case 1: // masalar açık departman değişti cmd = SQLBaglantisi.getCommand("UPDATE Adisyon SET MasaAdi = CASE MasaAdi WHEN @masaninAdiEski THEN @masaninAdiYeni WHEN @masaninAdiYeni THEN @masaninAdiEski END, DepartmanAdi = CASE DepartmanAdi WHEN @departmanAdiEski THEN @departmanAdiYeni WHEN @departmanAdiYeni THEN @departmanAdiEski END WHERE MasaAdi in (@masaninAdiEski,@masaninAdiYeni) AND AcikMi=1 AND DepartmanAdi in (@departmanAdiEski,@departmanAdiYeni)"); cmd.Parameters.AddWithValue("@masaninAdiEski", MasaAdi); cmd.Parameters.AddWithValue("@masaninAdiYeni", masaDegistirForm.yeniMasa); cmd.Parameters.AddWithValue("@departmanAdiEski", hangiDepartman.departmanAdi); cmd.Parameters.AddWithValue("@departmanAdiYeni", masaDegistirForm.yeniDepartman); break; case 2: // departman değişmedi 1 masa açık cmd = SQLBaglantisi.getCommand("UPDATE Adisyon SET MasaAdi=@masaninAdi WHERE MasaAdi='" + MasaAdi + "' AND DepartmanAdi='" + hangiDepartman.departmanAdi + "' AND AcikMi=1"); cmd.Parameters.AddWithValue("@masaninAdi", masaDegistirForm.yeniMasa); break; case 3: // departman değişti 1 masa açık cmd = SQLBaglantisi.getCommand("UPDATE Adisyon SET MasaAdi=@masaninAdi, DepartmanAdi=@departmanAdi WHERE MasaAdi='" + MasaAdi + "' AND DepartmanAdi='" + hangiDepartman.departmanAdi + "' AND AcikMi=1"); cmd.Parameters.AddWithValue("@masaninAdi", masaDegistirForm.yeniMasa); cmd.Parameters.AddWithValue("@departmanAdi", masaDegistirForm.yeniDepartman); break; default: cmd = null; break; } cmd.ExecuteNonQuery(); cmd.Connection.Close(); cmd.Connection.Dispose(); yeniMasaninAdi = masaDegistirForm.yeniMasa; yeniDepartmaninAdi = masaDegistirForm.yeniDepartman; masaDegisti = masaDegistirForm.yapilmasiGerekenIslem; masaFormu.serverdanMasaDegisikligi(MasaAdi, hangiDepartman.departmanAdi, masaDegistirForm.yeniMasa, masaDegistirForm.yeniDepartman, "masaDegistir"); } else // client { masaFormu.menuFormundanServeraMasaDegisikligi(masaDegistirForm.yeniMasa, masaDegistirForm.yeniDepartman, MasaAdi, hangiDepartman.departmanAdi, masaDegistirForm.yapilmasiGerekenIslem, "masaDegistir"); yeniMasaninAdi = masaDegistirForm.yeniMasa; yeniDepartmaninAdi = masaDegistirForm.yeniDepartman; masaDegisti = masaDegistirForm.yapilmasiGerekenIslem; } masaAktarmaIslemlerindenSonraCik(masaDegistirForm.yeniMasa, masaDegistirForm.yeniDepartman); if (masaDegisti == 2 || masaDegisti == 3) listUrunFiyat.Items.Clear(); masaDegistirForm = null; buttonTamam_Click(null, null); } }
//Seçili siparişlerin adisyonunu değiştiren butonun methodu -- Yeni Siparişler taşınamaz private void buttonTasi_Click(object sender, EventArgs e) { UrunDegistir urunDegistirForm = new UrunDegistir(listUrunFiyat.SelectedItems); DialogResult urunDegissinMi = urunDegistirForm.ShowDialog(); if (urunDegissinMi == DialogResult.OK) { Decimal toplam = 0; //Eğer taşınmak istenen ürünlerin miktarı 0 yapılmışsa, 0 yapılanları taşımaya çalışma //Eğer taşınmak istenen ürünlerin fiyatları hesabı aşıyorsa ürünleri taşıma for (int i = 0; i < urunDegistirForm.miktarlar.Count; i++) { if (urunDegistirForm.miktarlar[i] == 0) { urunDegistirForm.miktarlar.RemoveAt(i); listUrunFiyat.Items[listUrunFiyat.SelectedItems[i].Index].Selected = false; i--; } else { toplam += Convert.ToDecimal(listUrunFiyat.Items[listUrunFiyat.SelectedItems[i].Index].SubItems[3].Text); } } //Eğer taşınması gereken ürün sayılarında 0 yapılanlar varsa ve onların dışında taşınacak ürün yoksa, ürün taşıma if (urunDegistirForm.miktarlar.Count < 1) { buttonTemizle_Click(null, null); return; } if (toplam > Convert.ToDecimal(labelKalanHesap.Text)) { buttonTemizle_Click(null, null); KontrolFormu dialog = new KontrolFormu("Ürün taşıma gerçekleştirilemedi\nTaşınmak istenen ürünlerin toplam tutarı,\n kalan hesabı geçemez", false); dialog.Show(); return; } masaDegistirForm = new MasaDegistirFormu(MasaAdi, hangiDepartman.departmanAdi, this); masaDegistirForm.ShowDialog(); if (masaDegistirForm.yeniMasa == "iptalEdildi") { buttonTemizle_Click(null, null); return; } else { int istenilenTasimaMiktari; int tasinacakUrunIkramMi; StringBuilder aktarmaBilgileri = new StringBuilder(); if (Properties.Settings.Default.Server == 2) // server { int aktarilacakMasaninAdisyonID; SqlCommand cmd = SQLBaglantisi.getCommand("SELECT AdisyonID FROM Adisyon WHERE Adisyon.AcikMi=1 AND Adisyon.IptalMi=0 AND Adisyon.MasaAdi='" + masaDegistirForm.yeniMasa + "' AND Adisyon.DepartmanAdi='" + masaDegistirForm.yeniDepartman + "' "); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); try { aktarilacakMasaninAdisyonID = dr.GetInt32(0); } catch { aktarilacakMasaninAdisyonID = bosAdisyonOlustur(masaDegistirForm.yeniMasa, masaDegistirForm.yeniDepartman); urunTasinirkenYeniMasaOlusturulduysaOlusanMasaninAdi = masaDegistirForm.yeniMasa; urunTasinirkenYeniMasaOlusturulduysaOlusanDepartmaninAdi = masaDegistirForm.yeniDepartman; } if (listUrunFiyat.Items.Count == urunDegistirForm.miktarlar.Count) { masaAcikMi = false; } for (int i = 0; i < urunDegistirForm.miktarlar.Count; i++) { string tur = listUrunFiyat.SelectedItems[i].SubItems[1].Text[listUrunFiyat.SelectedItems[0].SubItems[1].Text.Length - 1].ToString(); bool turBool = false; if (tur == "K") { turBool = true; } istenilenTasimaMiktari = urunDegistirForm.miktarlar[i]; if (Convert.ToDouble(listUrunFiyat.SelectedItems[i].SubItems[0].Text) > Convert.ToDouble(istenilenTasimaMiktari)) masaAcikMi = true; double dusulecekDeger = Convert.ToDouble(listUrunFiyat.SelectedItems[i].SubItems[3].Text); if (listUrunFiyat.SelectedItems[i].Group == listUrunFiyat.Groups[2]) // ürünü diğer adisyona geçirirken IkramMi değerini bu değişkenden alacağız { tasinacakUrunIkramMi = 0; } else { tasinacakUrunIkramMi = 1; } cmd = SQLBaglantisi.getCommand("SELECT SiparisID,Adisyon.AdisyonID,Adet,Siparis.VerilisTarihi,NotificationGorulduMu FROM Siparis JOIN Adisyon ON Siparis.AdisyonID=Adisyon.AdisyonID WHERE Adisyon.AcikMi=1 AND Adisyon.IptalMi=0 AND Siparis.IkramMi='" + tasinacakUrunIkramMi + "' AND Siparis.IptalMi=0 AND Siparis.OdendiMi=0 AND Adisyon.MasaAdi='" + MasaAdi + "' AND Adisyon.DepartmanAdi='" + hangiDepartman.departmanAdi + "' AND Siparis.YemekAdi='" + listUrunFiyat.SelectedItems[i].SubItems[2].Text + "' AND Siparis.Garsonu='" + siparisiKimGirdi + "' AND Siparis.Porsiyon=CONVERT(DECIMAL(5,2),@_Porsiyon) AND Siparis.KiloSatisiMi=@_Tur ORDER BY Adet DESC"); cmd.Parameters.AddWithValue("@_Porsiyon", Convert.ToDecimal(listUrunFiyat.SelectedItems[i].SubItems[1].Text.Substring(0, listUrunFiyat.SelectedItems[i].SubItems[1].Text.Length - 1))); cmd.Parameters.AddWithValue("@_Tur", turBool); dr = cmd.ExecuteReader(); int siparisID, adisyonID, adet; DateTime verilisTarihi; bool NotificationGorulduMu; while (dr.Read()) { try { siparisID = dr.GetInt32(0); adisyonID = dr.GetInt32(1); adet = dr.GetInt32(2); verilisTarihi = dr.GetDateTime(3); NotificationGorulduMu = dr.GetBoolean(4); } catch { buttonTemizle_Click(null, null); KontrolFormu dialog = new KontrolFormu("Ürünü taşırken bir hata oluştu, lütfen tekrar deneyiniz", false); dialog.Show(); return; } if (adet < istenilenTasimaMiktari) // elimizde ikram edilmemişler ikramı istenenden küçükse { urunTasimaUpdateTam(siparisID, aktarilacakMasaninAdisyonID); istenilenTasimaMiktari -= adet; } else if (adet > istenilenTasimaMiktari) // den büyükse { urunTasimaUpdateInsert(siparisID, aktarilacakMasaninAdisyonID, adet, dusulecekDeger, istenilenTasimaMiktari, listUrunFiyat.SelectedItems[i].SubItems[2].Text, tasinacakUrunIkramMi, verilisTarihi, listUrunFiyat.SelectedItems[i].SubItems[1].Text.Substring(0, listUrunFiyat.SelectedItems[i].SubItems[1].Text.Length - 1), turBool, NotificationGorulduMu); istenilenTasimaMiktari = 0; } else // elimizde ikram edilmemişler ikramı istenene eşitse { urunTasimaUpdateTam(siparisID, aktarilacakMasaninAdisyonID); istenilenTasimaMiktari = 0; } if (istenilenTasimaMiktari == 0 && urunDegistirForm.miktarlar.Count - 1 == i) break; else if (istenilenTasimaMiktari == 0) break; } if (istenilenTasimaMiktari != 0)// aktarılacaklar daha bitmedi başka garsonların siparişlerinden aktarıma devam et { cmd = SQLBaglantisi.getCommand("SELECT SiparisID,Adet,Siparis.VerilisTarihi,NotificationGorulduMu FROM Siparis JOIN Adisyon ON Siparis.AdisyonID=Adisyon.AdisyonID WHERE Adisyon.AcikMi=1 AND Adisyon.IptalMi=0 AND Siparis.IkramMi='" + tasinacakUrunIkramMi + "' AND Siparis.IptalMi=0 AND Siparis.OdendiMi=0 AND Adisyon.MasaAdi='" + MasaAdi + "' AND Adisyon.DepartmanAdi='" + hangiDepartman.departmanAdi + "' AND Siparis.YemekAdi='" + listUrunFiyat.SelectedItems[i].SubItems[2].Text + "' AND Siparis.Garsonu!='" + siparisiKimGirdi + "' AND Siparis.Porsiyon=CONVERT(DECIMAL(5,2),@_Porsiyon) AND Siparis.KiloSatisiMi=@_Tur ORDER BY Adet DESC"); cmd.Parameters.AddWithValue("@_Porsiyon", Convert.ToDecimal(listUrunFiyat.SelectedItems[i].SubItems[1].Text.Substring(0, listUrunFiyat.SelectedItems[i].SubItems[1].Text.Length - 1))); cmd.Parameters.AddWithValue("@_Tur", turBool); dr = cmd.ExecuteReader(); while (dr.Read()) { try { siparisID = dr.GetInt32(0); adet = dr.GetInt32(1); verilisTarihi = dr.GetDateTime(2); NotificationGorulduMu = dr.GetBoolean(3); } catch { buttonTemizle_Click(null, null); KontrolFormu dialog = new KontrolFormu("Ürünü taşırken bir hata oluştu, lütfen tekrar deneyiniz", false); dialog.Show(); return; } if (adet < istenilenTasimaMiktari) // elimizde ikram edilmemişler ikramı istenenden küçükse { urunTasimaUpdateTam(siparisID, aktarilacakMasaninAdisyonID); istenilenTasimaMiktari -= adet; } else if (adet > istenilenTasimaMiktari) // den büyükse { urunTasimaUpdateInsert(siparisID, aktarilacakMasaninAdisyonID, adet, dusulecekDeger, istenilenTasimaMiktari, listUrunFiyat.SelectedItems[i].SubItems[2].Text, tasinacakUrunIkramMi, verilisTarihi, listUrunFiyat.SelectedItems[i].SubItems[1].Text.Substring(0, listUrunFiyat.SelectedItems[i].SubItems[1].Text.Length - 1), turBool, NotificationGorulduMu); istenilenTasimaMiktari = 0; } else // elimizde ikram edilmemişler ikramı istenene eşitse { urunTasimaUpdateTam(siparisID, aktarilacakMasaninAdisyonID); istenilenTasimaMiktari = 0; } if (istenilenTasimaMiktari == 0 && urunDegistirForm.miktarlar.Count - 1 == i) break; else if (istenilenTasimaMiktari == 0) break; } } cmd.Connection.Close(); cmd.Connection.Dispose(); } if (!masaAcikMi) { cmd = SQLBaglantisi.getCommand("UPDATE Adisyon SET AcikMi=0, IptalMi=1, KapanisZamani=@date WHERE AdisyonID=(SELECT AdisyonID FROM Adisyon WHERE AcikMi=1 AND MasaAdi='" + MasaAdi + "' AND DepartmanAdi='" + hangiDepartman.departmanAdi + "')"); cmd.Parameters.AddWithValue("@date", DateTime.Now); try //adisyonID alınabilirse adisyon var demektir, ancak sipariş yok - o zaman adisyon kapatılır { cmd.ExecuteNonQuery(); cmd.Connection.Close(); cmd.Connection.Dispose(); } catch // masaya ait adisyon yok, çık { cmd.Connection.Close(); cmd.Connection.Dispose(); this.Close(); return; } } masaFormu.serverdanMasaDegisikligi(MasaAdi, hangiDepartman.departmanAdi, masaDegistirForm.yeniMasa, masaDegistirForm.yeniDepartman, "urunTasindi"); urunAktarmaIslemlerindenSonraSiparisleriGir(MasaAdi, hangiDepartman.departmanAdi); dialogTimer = new KontrolFormu("Masa(" + MasaAdi + ")'dan seçilen ürünler " + masaDegistirForm.yeniDepartman + "\ndepartmanındaki, " + masaDegistirForm.yeniMasa + " masasına aktarıldı\nLütfen masaya yeniden giriş yapınız", false, this); timerDialogClose.Start(); dialogTimer.Show(); this.Enabled = false; } else //client { if (listUrunFiyat.Items.Count == urunDegistirForm.miktarlar.Count) { masaAcikMi = false; } urunTasinirkenYeniMasaOlusturulduysaOlusanMasaninAdi = masaDegistirForm.yeniMasa; urunTasinirkenYeniMasaOlusturulduysaOlusanDepartmaninAdi = masaDegistirForm.yeniDepartman; for (int i = 0; i < urunDegistirForm.miktarlar.Count; i++) { istenilenTasimaMiktari = urunDegistirForm.miktarlar[i]; if (listUrunFiyat.SelectedItems[i].Group == listUrunFiyat.Groups[2]) // ürünü diğer adisyona geçirirken IkramMi değerini bu değişkenden alacağız { tasinacakUrunIkramMi = 0; } else { tasinacakUrunIkramMi = 1; } double dusulecekDeger = Convert.ToDouble(listUrunFiyat.SelectedItems[i].SubItems[3].Text); aktarmaBilgileri.Append("*" + listUrunFiyat.SelectedItems[i].SubItems[2].Text + "-" + dusulecekDeger.ToString() + "-" + istenilenTasimaMiktari.ToString() + "-" + tasinacakUrunIkramMi.ToString() + "-" + listUrunFiyat.SelectedItems[i].SubItems[1].Text.Substring(0, listUrunFiyat.SelectedItems[i].SubItems[1].Text.Length - 1) + "-" + listUrunFiyat.SelectedItems[i].SubItems[1].Text[listUrunFiyat.SelectedItems[i].SubItems[1].Text.Length - 1].ToString()); if (Convert.ToDouble(listUrunFiyat.SelectedItems[i].SubItems[0].Text) > Convert.ToDouble(istenilenTasimaMiktari)) // eğer kalan ürün varsa masa açık masaAcikMi = true; } if (aktarmaBilgileri.Length >= 1) { aktarmaBilgileri.Remove(0, 1); } urunAktarmaIslemlerindenSonraSiparisleriGir(MasaAdi, hangiDepartman.departmanAdi); masaFormu.menuFormundanServeraUrunTasinacakBilgisiGonder(MasaAdi, hangiDepartman.departmanAdi, "urunuTasi", masaDegistirForm.yeniMasa, masaDegistirForm.yeniDepartman, siparisiKimGirdi, aktarmaBilgileri); if (!masaAcikMi) { masaFormu.siparisListesiBos(MasaAdi, hangiDepartman.departmanAdi, "listeBos"); } } } } }