public Inlogscherm(ref Bestellingssysteem systeem)
        {
            InitializeComponent();

            this.systeem = systeem;

            //(Re)set members
            code = string.Empty;
            codeIndex = 0;

            //Maak dit form vaste grootte (niet resizable) en centreer deze op het beeldscherm
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.StartPosition = FormStartPosition.CenterScreen;

            this.Size = new Size(600, 800);

            //Creeer nieuwe bigcheckboxes. (Custom control)
            CodeControls = new BigCheckbox[4];
            for (int i = 0; i < CodeControls.Length; i++)
            {
                //Maak nieuwe bigcheckbox aan
                CodeControls[i] = new BigCheckbox(80);
                //Zet de bigcheckbox als 'niet werkende'. Zorgt ervoor dat deze niet aanklikbaar is.
                CodeControls[i].Enabled = false;
                CodeControls[i].Margin = new Padding(6);
                CodeControls[i].ForeColor = Color.DarkGray;
                CodeControls[i].BackColor = Color.Transparent;
                CodeControls[i].Font = new Font(CodeControls[i].Font.FontFamily, CodeControls[i].Size.Width - 24, FontStyle.Regular);
                //Voeg de bigcheckbox toe aan de flowpanel
                this.flwCode.Controls.Add(CodeControls[i]);
            }

            this.BackgroundImage = new Bitmap(Applicatie.Properties.Resources.MayaMaya_logo_large, this.Size);
            this.lblInloggen.BackColor = Color.Transparent;
        }
        public OpenstaandeBestellingen(ref Bestellingssysteem systeem)
        {
            InitializeComponent();
            this.systeem = systeem;

            // standaard gedrag, positie en grootte
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.StartPosition = FormStartPosition.CenterScreen;
            this.Size = new Size(600, 800);

            this.btnAanpassen.Image = new Bitmap(Applicatie.Properties.Resources.edit, systeem.IconSize);
            this.btnAanpassen.ImageAlign = ContentAlignment.MiddleLeft;

            this.btnVerwijderen.Image = new Bitmap(Applicatie.Properties.Resources.cross, systeem.IconSize);
            this.btnVerwijderen.ImageAlign = ContentAlignment.MiddleLeft;

            this.afrondenBtn.Image = new Bitmap(Applicatie.Properties.Resources.pay, new Size(32, 32));
            this.afrondenBtn.ImageAlign = ContentAlignment.MiddleLeft;

            IEnumerable<CheckBox> boxes = this.groupBox1.Controls.OfType<CheckBox>();
            foreach (CheckBox c in boxes)
            {
                BigImageCheckbox check = new BigImageCheckbox(Applicatie.Properties.Resources.tafel, 82, c.Text);
                check.Name = "chk_tafel" + check.Text;
                check.Location = c.Location;
                check.CheckedChanged += BigcheckBox_Checked;
                this.groupBox1.Controls.Add(check);                                       //Comment to see previous checkboxes
                c.Hide();                                                                 //Comment to see previous checkboxes
            }
            this.alleTafelsCh.CheckedChanged -= alleTafelsCh_CheckedChanged_1;              //Comment to see previous checkboxes
            this.alleTafelsCh.CheckedChanged += TafelSelecteren;                            //Comment to see previous checkboxes

            this.zichtbareBestellingen = new List<Bestelling>();
        }
 public VoorraadManagement(ref Bestellingssysteem systeem)
 {
     InitializeComponent();
     this.systeem = systeem;
     lstVoorraad.Columns[0].Width = lstVoorraad.Width - 120;
     lstVoorraad.Columns[1].Width = lstVoorraad.Width - lstVoorraad.Columns[0].Width - SystemInformation.VerticalScrollBarWidth - 10;
     VulListView();
 }
        public NieuwProduct(ref Bestellingssysteem systeem)
        {
            InitializeComponent();
            this.systeem = systeem;
            this.FormBorderStyle = FormBorderStyle.None;
            this.ShowInTaskbar = false;

            cmbCategorie.DataSource = Enum.GetValues(typeof(Productcategorie));
        }
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Bestellingssysteem systeem = new Bestellingssysteem();
            Database.Systeem = systeem;

            Application.Run(new Inlogscherm(ref systeem));
        }
        public MenukaartManagement(ref Bestellingssysteem systeem)
        {
            InitializeComponent();
            this.systeem = systeem;

            //Maak dit form vaste grootte (niet resizable) en centreer deze op het beeldscherm
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.StartPosition = FormStartPosition.CenterScreen;

            this.Size = new Size(600, 800);

            GetProducten(Menukaart.Lunch);
        }
        public AanpassenProduct(ref Bestellingssysteem systeem, Product product)
        {
            InitializeComponent();
            this.systeem = systeem;
            this.product = product;
            this.FormBorderStyle = FormBorderStyle.None;
            this.ShowInTaskbar = false;

            cmbCategorie.DataSource = Enum.GetValues(typeof(Productcategorie));

            //Vul product info in
            txtNaam.Text = product.Naam;
            cmbCategorie.SelectedItem = product.Categorie;
            txtPrijs.Text = product.Prijs.ToString("0.00");
            txtVoorraad.Text = product.AantalInVoorraad.ToString();
        }
        public AanpassenBestelling(ref Bestellingssysteem systeem, Bestelling bestelling, Form sender)
        {
            InitializeComponent();
            this.systeem = systeem;
            this.bestelling = bestelling;
            this.FormBorderStyle = FormBorderStyle.None;
            this.ShowInTaskbar = false;

            cmbStatus.Items.Add(Bestellingstatus.Gereed);
            cmbStatus.Items.Add(Bestellingstatus.Openstaand);
            cmbStatus.Items.Add(Bestellingstatus.Geserveerd);
            cmbStatus.Items.Add(Bestellingstatus.Afgerond);
            cmbStatus.SelectedItem = bestelling.Status;

            this.overlay = new Plexiglass(sender);

            lblTafel.Text = String.Format("Tafel: {0}", bestelling.Tafel.Nummer.ToString());
            VulList();
        }
        public HoofdmenuBediening(ref Bestellingssysteem systeem)
        {
            InitializeComponent();

            this.systeem = systeem;

            //Maak dit form vaste grootte (niet resizable) en centreer deze op het beeldscherm
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.StartPosition = FormStartPosition.CenterScreen;

            //Toon ingelogde medewerker
            this.lblMedewerker.Text = string.Format("Ingelogd: {0} {1}", this.systeem.Medewerker.Naam, this.systeem.Medewerker.Achternaam);
            this.lblMedewerker.BackColor = Color.Transparent;
            this.lblInloggen.BackColor = Color.Transparent;
            this.BackgroundImage = new Bitmap(Applicatie.Properties.Resources.MayaMaya_logo_large);
            

            this.Size = new Size(600, 800);
        }
        public TafelOverzicht(Form sender, ref Bestellingssysteem systeem)
        {
            InitializeComponent();
            this.systeem = systeem;

            this.StartPosition = FormStartPosition.CenterScreen;
            this.lblTitel.Focus();
            this.overlay = new Plexiglass(sender);

            systeem.UpdateTafelStatus();

            foreach (Control c in this.Controls)
            {
                if (c.GetType() == typeof(Button))
                {
                    Tafel tafel = systeem.Tafels.Find(t => t.Nummer.ToString() == c.Text);
                    c.BackgroundImage = this.systeem.GetTafelImage(tafel.Nummer, c.Size);
                }
            }
        }
        public OpenstaandeBestellingAfronden(ref Bestellingssysteem systeem, List<Bestelling> bestellingenVanTafel)
        {
            InitializeComponent();
            this.systeem = systeem;
            this.bestellingenVanTafel = bestellingenVanTafel;

            //Maak dit form vaste grootte (niet resizable) en centreer deze op het beeldscherm
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.StartPosition = FormStartPosition.CenterScreen;
            this.Size = new Size(600, 800);

            cmbBetaalwijze.SelectedIndex = 0;

            lblTafel.Text = String.Format("Rekening van tafel: {0}", bestellingenVanTafel[0].Tafel.Nummer.ToString());

            //Formatting van kolommen
            this.lstRekening.Columns[0].Width = this.lstRekening.Width - 160;
            this.lstRekening.Columns[1].Width = 60;
            this.lstRekening.Columns[1].TextAlign = HorizontalAlignment.Center;
            this.lstRekening.Columns[2].Width = this.lstRekening.Width - this.lstRekening.Columns[1].Width - this.lstRekening.Columns[0].Width - SystemInformation.VerticalScrollBarWidth;
            RekeningAanmaken();
        }
        public OpenstaandeBestellingenBarKeuken(ref Bestellingssysteem systeem)
        {
            InitializeComponent();
            this.systeem = systeem;

            lblMedewerker.Text = string.Format("Ingelogd: {0} {1}", this.systeem.Medewerker.Naam, this.systeem.Medewerker.Achternaam);
            lblTypeMedewerker.Text = string.Format("{0}", this.systeem.Medewerker.Type.ToString());

            //Formatting omdat dit scherm fullscreen is, moet alles dynamisch geplaatst worden
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.StartPosition = FormStartPosition.CenterScreen;
            WindowState = FormWindowState.Maximized;
            lstBarKeuken.Width = Screen.FromControl(this).Bounds.Width - 22;
            lstBarKeuken.Columns[3].Width = 100;
            lstBarKeuken.Columns[1].Width = Screen.FromControl(this).Bounds.Width - lstBarKeuken.Columns[0].Width - lstBarKeuken.Columns[2].Width - lstBarKeuken.Columns[3].Width - lstBarKeuken.Columns[4].Width - SystemInformation.VerticalScrollBarWidth - 22;
            btnLogUit.Location = new Point((Screen.FromControl(this).Bounds.Width - btnLogUit.Width - 22), this.btnLogUit.Location.Y);
            btnGereed.Location = new Point((Screen.FromControl(this).Bounds.Width - btnGereed.Width - 22), this.btnGereed.Location.Y);
            btnGereed.Location = new Point(((Screen.FromControl(this).Bounds.Right / 2) - btnGereed.Width), btnGereed.Location.Y);
            btnOpenstaand.Location = new Point((btnGereed.Location.X + btnOpenstaand.Width + 20), btnOpenstaand.Location.Y);

            //Alle bestellingen ophalen
            VulOverzicht();
        }
        public NieuweBestellingen(ref Bestellingssysteem systeem)
        {
            InitializeComponent();

            this.systeem = systeem;

            //Maak dit form vaste grootte (niet resizable) en centreer deze op het beeldscherm
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.StartPosition = FormStartPosition.CenterScreen;

            this.Size = new Size(600, 800);

            //Zet het font op een Monospace font (elke letter heeft dezelfde breedte) om beter vorm te geven in de treeview en listview
            this.treeViewProducten.Font = new Font(FontFamily.GenericMonospace, 18, FontStyle.Bold);
            this.lstViewBestelling.Font = new Font(FontFamily.GenericMonospace, 12, FontStyle.Regular);

            this.numAantal.Font = new Font(this.numAantal.Font.FontFamily, 18, FontStyle.Regular);

            //Bepaald de maximale breedte van de text
            charWidth = (int)Math.Floor(this.treeViewProducten.Width / this.treeViewProducten.Font.Size);
            //Registreer dubbelklik event
            this.treeViewProducten.NodeMouseDoubleClick += treeViewProducten_NodeMouseDoubleClick;

            this.lblTafel.BackgroundImage = new Bitmap(Applicatie.Properties.Resources.tafel, this.lblTafel.Size);
            this.lblTafel.TextAlign = ContentAlignment.MiddleCenter;
            this.lblTafel.Font = new Font(this.lblTafel.Font.FontFamily, 18, FontStyle.Regular);
            this.lblTafel.Text = "";

            //Kolom breedte van bestellingoverzicht
            this.lstViewBestelling.Columns[0].Width = this.lstViewBestelling.Size.Width / 3;
            this.lstViewBestelling.Columns[2].Width = this.lstViewBestelling.Size.Width / 6;
            this.lstViewBestelling.Columns[1].Width = this.lstViewBestelling.Size.Width 
                                                        - this.lstViewBestelling.Columns[0].Width
                                                        - this.lstViewBestelling.Columns[2].Width
                                                        - this.lstViewBestelling.Margin.Left
                                                        - this.lstViewBestelling.Margin.Right
                                                        - SystemInformation.VerticalScrollBarWidth;
            this.lstViewBestelling.FullRowSelect = true;
            this.lstViewBestelling.MultiSelect = false;

            this.btnKlaar.Image = new Bitmap(Applicatie.Properties.Resources.arrow, systeem.IconSize);
            this.btnKlaar.ImageAlign = ContentAlignment.MiddleLeft;

            this.btnRemove.Text = "";
            this.btnRemove.BackgroundImage = new Bitmap(Applicatie.Properties.Resources.cross, this.btnRemove.Size);
            this.btnRemove.BackgroundImageLayout = ImageLayout.Center;

            this.btnCommentaar.Text = "";
            this.btnCommentaar.BackgroundImage = new Bitmap(Applicatie.Properties.Resources.edit, this.btnRemove.Size);
            this.btnCommentaar.BackgroundImageLayout = ImageLayout.Center;

            this.Show();

            //Overlay, hieroverheen moet nog een tafeloverzicht komen
            TafelOverzicht tafelSelect = new TafelOverzicht(this, ref systeem);
            tafelSelect.ShowDialog();
            this.systeem.NieuweBestelling(tafelSelect.TafelResult, systeem.Medewerker);

            //Zet de tafel label aan de hand van de status en nummer van de geselecteerde tafel
            this.lblTafel.Text = systeem.HuidigeBestelling.Tafel.Nummer.ToString();
            this.lblTafel.BackgroundImage = systeem.GetTafelImage(this.systeem.HuidigeBestelling.Tafel.Nummer, this.lblTafel.Size);

            producten = Database.GetProducten();
            FilterTreeProducten(Menukaart.Lunch);
        }