コード例 #1
0
ファイル: MasaPlan.cs プロジェクト: sezertt/ROPv1
        //Yeni Masa Planını Kaydet
        private void buttonAddNewTableDesign(object sender, EventArgs e)
        {
            if (textTableDesignName.Text == "Yeni Masa Planı" || textTableDesignName.Text == "")
            {
                KontrolFormu dialog = new KontrolFormu("İzin verilmeyen bir masa planı ismi girdiniz, lütfen kontrol edin", false);
                dialog.Show();
                return;
            }

            //Yeni masa planını kaydet tuşu. ekle tuşuna basıp bilgileri girdikten sonra kaydete basıyoruz önce girilen bilgilerin doğruluğu
            //kontrol edilir daha sonra tablepanel ve textboxtaki bilgiler xmle ve ana ekrana
            if (newTableForm.Text == "Yeni Masa Planı")
            {
                treeMasaPlanName.Nodes.Add(textTableDesignName.Text);

                //yeni bir dizayn oluşturulur, bilgiler tablepanelden ve textboxtan alındıktan sonra listeye eklenir
                MasaDizayn newTableDesign = new MasaDizayn();
                newTableDesign.masaPlanIsmi = textTableDesignName.Text;

                string[][] refresher3 = new string[][]
                {
                    new string[] {null, null, null, null, null, null, null},
                    new string[] {null, null, null, null, null, null, null},
                    new string[] {null, null, null, null, null, null, null},
                    new string[] {null, null, null, null, null, null, null},
                    new string[] {null, null, null, null, null, null, null},
                    new string[] {null, null, null, null, null, null, null}
                };

                newTableDesign.masaYerleri = refresher3;

                foreach (Button tablebutton in tablePanel.Controls)
                {
                    if (tablebutton.Text != "")
                    {
                        newTableDesign.masaYerleri[tablePanel.GetRow(tablebutton)][tablePanel.GetColumn(tablebutton)] = tablebutton.Text;
                    }
                }

                masaDizaynListesi.Add(newTableDesign);

                //liste kaydedilir
                XmlSave.SaveRestoran(masaDizaynListesi, "masaDizayn.xml");

                //seçilen node olarak son eklenen node gösterilir
                treeMasaPlanName.SelectedNode = treeMasaPlanName.Nodes[treeMasaPlanName.Nodes.Count - 1];

                //masaların initial ismi girilen dizayn ismine göre, ilk 2 kelimesinin ilk harfleriyle belirlenir
                string buttonText = "";
                Array.ForEach(newTableDesign.masaPlanIsmi.Split(' '), s => buttonText += s[0]);

                //dizayn ismi tek kelimeden oluşması durumunda ismin ilk harfi alınır
                if (buttonText.Length > 2)
                    buttonText = buttonText[0].ToString().ToUpper() + buttonText[1].ToString().ToUpper();
                else
                    buttonText = buttonText.ToUpper();

                int masaSayisi = 1;

                //masaların bilgileri tablepanele girilir
                for (int i = 0; i < 6; i++)
                {
                    for (int j = 0; j < 7; j++)
                    {
                        Button tablebutton = tablePanel.Controls["" + i + j] as Button;
                        if (masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaYerleri[i][j] != null)
                        {
                            tablebutton.Text = buttonText + masaSayisi;
                            masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaYerleri[i][j] = tablebutton.Text;
                            tablebutton.Visible = true;
                            tablebutton.ForeColor = SystemColors.ActiveCaption;
                            masaSayisi++;
                        }
                        else
                        {
                            masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaYerleri[i][j] = null;
                            tablebutton.Text = "";
                            tablebutton.Visible = false;
                        }
                        tablebutton.BackColor = Color.White;
                    }
                }

                //liste kaydedilir
                XmlSave.SaveRestoran(masaDizaynListesi, "masaDizayn.xml");

                treeMasaPlanName.Focus();

                //eğer 1den fazla dizayn olmuşsa silme butonu aktif hale getirilir
                if (treeMasaPlanName.Nodes.Count > 1)
                    buttonDeleteTable.Enabled = true;

                //eğer 10dan fazla dizayn olmuşsa ekleme butonu devredışı duruma  getirilir
                if (treeMasaPlanName.Nodes.Count > 9)
                    buttonAddTableDesign.Enabled = false;
                KontrolFormu dialog = new KontrolFormu("Yeni Masa Planı Bilgileri Kaydedilmiştir", false);
                dialog.Show();
            }
            else
            {
                //Masa dizaynında değişiklik yapıldıktan sonra basılan kaydet butonu.
                // Girilen bilgilerin doğruluğu kontrol edilir daha sonra tablepanel ve textboxtaki bilgiler xmle aktarılır ve dizayn ismi treeviewda güncellenir.
                masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaPlanIsmi = textTableDesignName.Text;

                //tablepaneldeki buton bilgileri alınarak listedeki seçili dizaynın değerleri güncellenir
                foreach (Button tablebutton in tablePanel.Controls)
                {
                    if (tablebutton.Text != "")
                    {
                        masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaYerleri[tablePanel.GetRow(tablebutton)][tablePanel.GetColumn(tablebutton)] = tablebutton.Text;
                    }
                    else
                    {
                        masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaYerleri[tablePanel.GetRow(tablebutton)][tablePanel.GetColumn(tablebutton)] = null;
                    }
                }

                //liste kaydedilir
                XmlSave.SaveRestoran(masaDizaynListesi, "masaDizayn.xml");

                // ekranda görünen dizayn ismi güncellenir
                treeMasaPlanName.Nodes[treeMasaPlanName.SelectedNode.Index].Text = textTableDesignName.Text;

                //ekranda görünen butonların bilgileri eklenir
                for (int i = 0; i < 6; i++)
                {
                    for (int j = 0; j < 7; j++)
                    {
                        Button tablebutton = tablePanel.Controls["" + i + j] as Button;
                        if (masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaYerleri[i][j] != null)
                        {
                            tablebutton.Text = masaDizaynListesi[treeMasaPlanName.SelectedNode.Index].masaYerleri[i][j];
                            tablebutton.Visible = true;
                            tablebutton.ForeColor = SystemColors.ActiveCaption;
                        }
                        else
                        {
                            tablebutton.Text = "";
                            tablebutton.Visible = false;
                        }
                        tablebutton.BackColor = Color.White;
                    }
                }
                KontrolFormu dialog = new KontrolFormu("Masa Planı Bilgileri Güncellenmiştir", false);
                dialog.Show();
            }
            //kısıtlanan butonların kısıtları kaldırılır, düzen ekranı devredışı bırakılır, düzenlemenin bittiği belirtilir
            newTableForm.Text = textTableDesignName.Text;
            buttonAddTableDesign.Enabled = true;
            buttonEditDesign.Enabled = true;
            newTableForm.Enabled = false;
            editingDesign = false;

            //Nodeların eklenmesinden sonra taşma varsa bile ekrana sığması için font boyutunu küçültüyoruz
            foreach (TreeNode node in treeMasaPlanName.Nodes)
            {
                while (treeMasaPlanName.Width - 12 < System.Windows.Forms.TextRenderer.MeasureText(node.Text, new Font(treeMasaPlanName.Font.FontFamily, treeMasaPlanName.Font.Size, treeMasaPlanName.Font.Style)).Width)
                {
                    treeMasaPlanName.Font = new Font(treeMasaPlanName.Font.FontFamily, treeMasaPlanName.Font.Size - 0.5f, treeMasaPlanName.Font.Style);
                }
            }
        }
コード例 #2
0
ファイル: MasaPlan.cs プロジェクト: sezertt/ROPv1
        // form load
        private void MasaPlan_Load(object sender, EventArgs e)
        {
            string masaAdi;

            SqlCommand cmd = SQLBaglantisi.getCommand("SELECT MasaAdi FROM Adisyon WHERE AcikMi=1 AND IptalMi=0");
            SqlDataReader dr = cmd.ExecuteReader();
            dr.Read();

            try
            {
                masaAdi = dr.GetString(0);

                cmd.Connection.Close();
                cmd.Connection.Dispose();

                KontrolFormu dialog = new KontrolFormu( masaAdi + " adlı masa açık. Açık masa bulunurken masa planlaması yapılamaz", false);
                dialog.Show();
                buttonSaveNewTable.Enabled = false;
                buttonCancel.Enabled = false;
                buttonDeleteTable.Enabled = false;
                buttonEditDesign.Enabled = false;
            }
            catch
            {
                cmd.Connection.Close();
                cmd.Connection.Dispose();

                //açılışta capslock açıksa kapatıyoruz.
                ToggleCapsLock(false);

                #region xml oku

                MasaDizayn[] info = new MasaDizayn[1];

                //eğer masaDizayn listesi bulunmuyorsa default değerlerle ilk dizaynı oluşturuyoruz
                if (!File.Exists("masaDizayn.xml"))
                {
                    if (!File.Exists("restoran.xml"))
                    {
                        departmanVarmi[0] = new Restoran();
                        departmanVarmi[0].departmanAdi = "Departman";
                        departmanVarmi[0].departmanMenusu = "Menü";
                        departmanVarmi[0].departmanEkrani = "Masa Ekranı";
                        XmlSave.SaveRestoran(departmanVarmi, "restoran.xml");
                    }

                    XmlLoad<Restoran> loadInfoFromDepartman = new XmlLoad<Restoran>();
                    departmanVarmi = loadInfoFromDepartman.LoadRestoran("restoran.xml");

                    info[0] = new MasaDizayn();
                    info[0].masaPlanIsmi = departmanVarmi[0].departmanEkrani;

                    string[][] refresher = new string[][]
                {
                    new string[] {"RP1", "RP2", "RP3", "RP4", "RP5", null, null},
                    new string[] {"RP6", "RP7", "RP8", "RP9", "RP10", null, null},
                    new string[] {"RP11", "RP12", "RP13", "RP14", "RP15", null, null},
                    new string[] {"RP16", "RP17", "RP18", "RP19", "RP20", null, null},
                    new string[] {"RP21", "RP22", "RP23", "RP24", "RP25", null, null},
                    new string[] {null, null, null, null, null, null, null}
                };

                    info[0].masaYerleri = refresher;
                    XmlSave.SaveRestoran(info, "masaDizayn.xml");
                }
                else
                {
                    XmlLoad<Restoran> loadInfoFromDepartman2 = new XmlLoad<Restoran>();
                    departmanVarmi = loadInfoFromDepartman2.LoadRestoran("restoran.xml");
                }

                //liste varsa okuyoruz
                XmlLoad<MasaDizayn> loadInfo = new XmlLoad<MasaDizayn>();
                info = loadInfo.LoadRestoran("masaDizayn.xml");

                //kendi listemize atıyoruz
                masaDizaynListesi.AddRange(info);

                //listenin ilk elemanının ismini ekranda gösteriyoruz
                textTableDesignName.Text = masaDizaynListesi[0].masaPlanIsmi;

                //Kaç masa eklendiğini tutması için oluşturulan değişken
                int masaSayisi = 0;

                //tüm masalar oluşturuluyor(42 adet) ve listenin ilk elemanının planına göre dolular belirleniyor
                for (int i = 0; i < 6; i++)
                {
                    for (int j = 0; j < 7; j++)
                    {
                        Button buttonTable = new Button();
                        buttonTable.UseVisualStyleBackColor = false;
                        buttonTable.BackColor = Color.White;
                        buttonTable.ForeColor = SystemColors.ActiveCaption;
                        buttonTable.Font = new Font("Arial", 12, FontStyle.Bold);
                        buttonTable.Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
                        tablePanel.Controls.Add(buttonTable, j, i);
                        buttonTable.Click += buttonTablePressed;
                        buttonTable.Name = "" + i + j;

                        if (masaDizaynListesi[0].masaYerleri[i][j] != null)
                        {
                            buttonTable.Text = masaDizaynListesi[0].masaYerleri[i][j];
                            buttonTable.Visible = true;
                            masaSayisi++;
                        }
                        else
                            buttonTable.Visible = false;
                    }
                }

                numericTableCount.Value = masaSayisi;

                newTableForm.Text = textTableDesignName.Text;

                treeMasaPlanName.Nodes.Add(masaDizaynListesi[0].masaPlanIsmi);

                //listede başka dizaynlar varsa onların da isimleri gösteriliyor
                for (int i = 1; i < masaDizaynListesi.Count; i++)
                {
                    treeMasaPlanName.Nodes.Add(masaDizaynListesi[i].masaPlanIsmi);
                }

                //Nodeların eklenmesinden sonra taşma varsa bile ekrana sığması için font boyutunu küçültüyoruz
                foreach (TreeNode node in treeMasaPlanName.Nodes)
                {
                    while (treeMasaPlanName.Width - 12 < System.Windows.Forms.TextRenderer.MeasureText(node.Text, new Font(treeMasaPlanName.Font.FontFamily, treeMasaPlanName.Font.Size, treeMasaPlanName.Font.Style)).Width)
                    {
                        treeMasaPlanName.Font = new Font(treeMasaPlanName.Font.FontFamily, treeMasaPlanName.Font.Size - 0.5f, treeMasaPlanName.Font.Style);
                    }
                }

                #endregion

                //ilk dizaynı seçili dizayn yapıyoruz
                treeMasaPlanName.SelectedNode = treeMasaPlanName.Nodes[0];

                // 1 dizayn varsa silinemesin
                if (treeMasaPlanName.Nodes.Count < 2)
                    buttonDeleteTable.Enabled = false;

                // 10 dan fazla dizayn eklenemesin
                if (treeMasaPlanName.Nodes.Count > 9)
                    buttonAddTableDesign.Enabled = false;
            }
        }