예제 #1
0
        //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);
            }
        }
예제 #2
0
        //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");
                        }
                    }
                }
            }
        }