Esempio n. 1
0
        public void RefreshListView()
        {
            listView1.Items.Clear();
            try
            {
                using (var db = new SunwayCafeContext())
                {
                    var query = db.Accounts.ToList();

                    foreach (var staffList in query)
                    {
                        ListViewItem staff = new ListViewItem(staffList.Id.ToString());
                        staff.SubItems.Add(staffList.GivenName);
                        staff.SubItems.Add(staffList.FamilyName);
                        staff.SubItems.Add(staffList.Role);
                        staff.SubItems.Add(staffList.Gender);
                        staff.SubItems.Add(staffList.Contact.ToString());
                        staff.SubItems.Add(staffList.Email);

                        listView1.Items.Add(staff);
                    }
                }
                listView1.Items[0].Selected = true;
                listView1.Select();
            }
            catch (InvalidCastException ice)
            {
                if (ice == null)
                {
                    MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Esempio n. 2
0
        public void RefreshListView()
        {
            listView1.Items.Clear();
            try
            {
                using (var db = new SunwayCafeContext())
                {
                    var query = db.Stocks.ToList();

                    foreach (var stocklist in query)
                    {
                        ListViewItem stock = new ListViewItem(stocklist.Id.ToString());
                        stock.SubItems.Add(stocklist.Name);
                        stock.SubItems.Add(stocklist.Type);
                        stock.SubItems.Add(stocklist.Qty);
                        stock.SubItems.Add(stocklist.Unit);
                        stock.SubItems.Add(stocklist.CriticalLevel);

                        listView1.Items.Add(stock);
                    }
                }
                listView1.Items[0].Selected = true;
                listView1.Select();
            }
            catch (InvalidCastException ice)
            {
                if (ice == null)
                {
                    MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Esempio n. 3
0
        private void delete_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Are you sure?", "Confirmation", MessageBoxButtons.YesNo);

            if (dialogResult == DialogResult.Yes)
            {
                try
                {
                    using (var db = new SunwayCafeContext())
                    {
                        ListViewItem item     = listView1.SelectedItems[0];
                        var          id       = int.Parse(item.Text);
                        var          selected = db.Stocks.Where(acc => acc.Id == id).FirstOrDefault();
                        db.Stocks.Remove(selected);
                        db.SaveChanges();
                    }
                }
                catch (InvalidCastException ice)
                {
                    if (ice == null)
                    {
                        MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                RefreshListView();
            }
            else if (dialogResult == DialogResult.No)
            {
            }
        }
Esempio n. 4
0
        public void loadData()
        {
            OrderOptions.selectItemName = null;
            foreach (Control control in flowLayoutPanel1.Controls)
            {
                flowLayoutPanel1.Controls.Remove(control);
                control.Dispose();
            }
            flowLayoutPanel1.Controls.Clear();

            using (var db = new SunwayCafeContext())
            {
                var            query = db.Items.ToList();
                OrderOptions[] order = new OrderOptions[query.Count];

                foreach (var itemList in query)
                {
                    order[i] = new OrderOptions(this);
                    order[i].Name_details = itemList.Name;
                    if (itemList.ImageURL != null)
                    {
                        order[i].displayImage = ConvertBinaryToImage(itemList.ImageURL);
                    }
                    order[i].Price       = itemList.SellingPrice;
                    order[i].CostPrice   = itemList.CostPrice;
                    order[i].WasClicked += OrderGrid_WasClicked;
                    flowLayoutPanel1.Controls.Add(order[i]);
                    i++;
                }
                i = 0;
            }
        }
Esempio n. 5
0
        private void update_Click_1(object sender, EventArgs e)
        {
            var itemName = OrderOptions.selectItemName;

            if (OrderOptions.selectItemName != null)
            {
                using (var db = new SunwayCafeContext())
                {
                    var query = db.Items.Where(d => d.Name == itemName).FirstOrDefault();
                    if (query != null)
                    {
                        CreateItem update = new CreateItem(query, this);
                        update.Show();
                    }
                    else
                    {
                        MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Please select an item");
            }
        }
Esempio n. 6
0
 private void MetroSetButton1_Click(object sender, EventArgs e)
 {
     using (var db = new SunwayCafeContext())
     {
         var id    = int.Parse(orderID.Text);
         var query = db.OrderedItems.Where(x => x.OrderId == id).Select(x => x.Order).FirstOrDefault();
         query.Status         = "Closed";
         query.DateTimeClosed = Global.ConvToDateTimeString(DateTime.Now);
         db.SaveChanges();
     }
     kitchenPage.RefreshKitchenOrder();
 }
Esempio n. 7
0
        private void delete_Click_1(object sender, EventArgs e)
        {
            if (OrderOptions.selectItemName != null)
            {
                DialogResult dialogResult = MessageBox.Show("Are you sure?", "Confirmation", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    using (var db = new SunwayCafeContext())
                    {
                        var            query = db.Items.ToList();
                        OrderOptions[] order = new OrderOptions[query.Count];
                        Item           delItem;

                        foreach (Control c in flowLayoutPanel1.Controls)
                        {
                            if (((OrderOptions)c).IsSelected == true)
                            {
                                foreach (var itemList in query)
                                {
                                    foundControl = c;
                                    break;
                                }
                            }
                        }


                        if (foundControl != null)
                        {
                            foreach (var itemList in query)
                            {
                                if (OrderOptions.selectItemName == itemList.Name)
                                {
                                    MessageBox.Show(itemList.Name + " is deleted from database. Reload the page");
                                    delItem = db.Items.Where(d => d.Name == OrderOptions.selectItemName).First();
                                    db.Items.Remove(delItem);
                                    db.SaveChanges();
                                }
                            }
                        }
                    }
                }
                else if (dialogResult == DialogResult.No)
                {
                }
            }
            else
            {
                MessageBox.Show("Please select an item");
            }
        }
Esempio n. 8
0
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            OrderOptions.selectItemName = null;
            foreach (Control control in flowLayoutPanel1.Controls)
            {
                flowLayoutPanel1.Controls.Remove(control);
                control.Dispose();
            }
            flowLayoutPanel1.Controls.Clear();


            string search = textBox1.Text.Trim();

            // Search items in our Jobs ListView, remove those that do not match search
            if (search != String.Empty)
            {
                using (var db = new SunwayCafeContext())
                {
                    // got two ToLower() is because need to allow upper case and lower case both acceptable by the search function
                    var query = from d in db.Items
                                where d.Name.ToLower().StartsWith(search.ToLower())
                                select d;
                    OrderOptions[] order = new OrderOptions[query.Count()];

                    foreach (var itemList in query)
                    {
                        order[i]              = new OrderOptions(this);
                        order[i].ID           = itemList.Id;
                        order[i].Name_details = itemList.Name;
                        if (itemList.ImageURL != null)
                        {
                            order[i].displayImage = ConvertBinaryToImage(itemList.ImageURL);
                        }
                        order[i].WasClicked += OrderGrid_WasClicked;
                        order[i].Price       = itemList.SellingPrice;
                        order[i].CostPrice   = itemList.CostPrice;

                        flowLayoutPanel1.Controls.Add(order[i]);
                        i++;
                    }
                    i = 0;
                }
            }
            else
            {
                loadData();
            }
        }
Esempio n. 9
0
        public void RefreshKitchenOrder()
        {
            //foreach (Control control in flowLayoutPanel1.Controls)
            //{
            //    if (this.InvokeRequired)
            //    {
            //        Invoke(new MethodInvoker(() =>
            //        {
            //            flowLayoutPanel1.Controls.Clear();
            //            control.Dispose();
            //        }));
            //    }
            //    else
            //    {
            //        flowLayoutPanel1.Controls.Remove(control);
            //        control.Dispose();
            //    }

            //}
            if (this.InvokeRequired)
            {
                Invoke(new MethodInvoker(() => flowLayoutPanel1.Controls.Clear()));
            }
            else
            {
                flowLayoutPanel1.Controls.Clear();
            }

            using (var db = new SunwayCafeContext())
            {
                //Get orders with "Processing" status and populate in flowlayout
                var orders = db.OrderedItems.Where(x => x.Order.Status == "Processing").Select(it => new { it.OrderId, it.Qty, it.Item }).GroupBy(x => x.OrderId).ToList();
                foreach (var order in orders)
                {
                    var kitchenOrder = new KitchenOrder(order, this);
                    if (this.InvokeRequired)
                    {
                        Invoke(new MethodInvoker(() => flowLayoutPanel1.Controls.Add(kitchenOrder)));
                    }
                    else
                    {
                        flowLayoutPanel1.Controls.Add(kitchenOrder);
                    }
                }
            }
        }
Esempio n. 10
0
 private void exitBtn_Click(object sender, EventArgs e)
 {
     using (var db = new SunwayCafeContext())
     {
         var order = db.Orders.Where(x => x.Status == "Processing").FirstOrDefault();
         if (order == null)
         {
             var form = new BusinessReportPage();
             this.Hide();
             form.Show();
         }
         else
         {
             MessageBox.Show("Unable to close application. There is some orders still being processed. Please check Kitchen Page.", "Outstanding Orders", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
 }
Esempio n. 11
0
        private void signInBtn_Click(object sender, EventArgs e)
        {
            try
            {
                using (var db = new SunwayCafeContext())
                {
                    var query = db.Accounts.Where(acc => acc.Username == username.Text && acc.Password == password.Text).FirstOrDefault();
                    if (query != null)
                    {
                        if (query.Role == "Admin")
                        {
                            Global.user = new Admin(query);
                        }
                        else
                        {
                            Global.user = new SalesStaff(query);
                        }
                        MainPage form1 = new MainPage();
                        form1.Show();

                        this.Hide();
                    }
                    else
                    {
                        failure++;
                        if (failure == 5)
                        {
                            MessageBox.Show("Terminating program due to 5 consecutive invalid credentials. ", "Auto Close", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Invalid Username or Password", "Invalid Credential", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
            catch (InvalidCastException ice)
            {
                if (ice == null)
                {
                    MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Esempio n. 12
0
        private void edit_Click(object sender, EventArgs e)
        {
            var id = int.Parse(listView1.SelectedItems[0].SubItems[0].Text);

            using (var db = new SunwayCafeContext())
            {
                var acc = db.Accounts.Where(x => x.Id == id).FirstOrDefault();
                if (acc != null)
                {
                    EditProfilePage editProfile = new EditProfilePage(acc, this);
                    editProfile.Show();
                }
                else
                {
                    MessageBox.Show("Unable to find account in database. Please contact administrator.");
                }
            }
        }
Esempio n. 13
0
 public SignInPage()
 {
     InitializeComponent();
     password.UseSystemPasswordChar = true;
     try
     {
         using (var db = new SunwayCafeContext())
         {
             db.Accounts.ToList();
         }
     }
     catch (InvalidCastException ice)
     {
         if (ice == null)
         {
             MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
Esempio n. 14
0
        private void update_Click(object sender, EventArgs e)
        {
            var id = int.Parse(listView1.SelectedItems[0].SubItems[0].Text);

            using (var db = new SunwayCafeContext())
            {
                var stock = db.Stocks.Where(x => x.Id == id).FirstOrDefault();
                if (stock != null)
                {
                    StockCreate sc = new StockCreate(stock, this);
                    sc.Show();
                }
                else
                {
                    MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            RefreshListView();
        }
        public BusinessReportPage()
        {
            InitializeComponent();

            using (var db = new SunwayCafeContext())
            {
                var orders = db.OrderedItems.Where(x => x.Order.Status == "Closed")
                             .GroupBy(x => x.ItemId)
                             .Select(x => new BusinessReport()
                {
                    Name             = x.FirstOrDefault().Item.Name,
                    Qty              = x.Sum(y => y.Qty),
                    UnitCostPrice    = x.FirstOrDefault().Item.CostPrice,
                    UnitSellingPrice = x.FirstOrDefault().Item.SellingPrice,
                }).ToList();

                var tcp = orders.Sum(x => x.TotalCostPrice);
                var tsp = orders.Sum(x => x.TotalSellingPrice);



                var param = new ReportParameter[]
                {
                    new ReportParameter("Date", Global.ConvToDateTimeString(DateTime.Now)),
                    new ReportParameter("TCP", $"{tcp:0.00}"),
                    new ReportParameter("TSP", $"{tsp:0.00}"),
                    new ReportParameter("TOrder", $"{db.Orders.Where(x => x.Status == "Closed").Count()}"),
                    new ReportParameter("TSST", $"{tsp * 0.06M:0.00}"),
                    new ReportParameter("TSC", $"{tsp * 0.10M:0.00}"),
                    new ReportParameter("TRevenue", $"{tsp - tcp:0.00}"),
                };

                //create a dummy data set
                var ds = new ReportDataSource("BusinessReport", orders.OrderBy(x => x.Name));
                reportViewer1.LocalReport.SetParameters(param);
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(ds);
                reportViewer1.RefreshReport();
            }
        }
Esempio n. 16
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            Global.ClearErrors(errorProvider1, textBoxs);
            var success = true;

            if (!decimal.TryParse(priceBox.Text.Trim(), out decimal priceVal))
            {
                errorProvider1.SetError(priceBox, "Numbers only.");
                priceBox.BorderColor = Color.Red;
                success = false;
            }

            if (!decimal.TryParse(costPriceBox.Text.Trim(), out decimal costVal))
            {
                errorProvider1.SetError(costPriceBox, "Numbers only.");
                costPriceBox.BorderColor = Color.Red;
                success = false;
            }

            if (String.IsNullOrEmpty(textBox2.Text.Trim()))
            {
                errorProvider1.SetError(textBox2, "The Name field is required.");
                textBox2.BorderColor = Color.Red;
                success = false;
            }

            var msg = string.Empty;

            using (SunwayCafeContext db = new SunwayCafeContext())
            {
                if (success)
                {
                    if (button1.Text == "Create")
                    {
                        Item item = new Item()
                        {
                            Name         = textBox2.Text.Trim(),
                            ImageURL     = Global.ConvertImageToBinary(pictureBox.Image),
                            SellingPrice = priceVal,
                            CostPrice    = costVal,
                            Type         = Food.Checked ? Food.Text : Drinks.Text
                        };
                        db.Items.Add(item);
                        msg = "Item Created";
                    }
                    else
                    {
                        if (OrderOptions.selectItemName != null)
                        {
                            var item = db.Items.Where(d => d.Name == OrderOptions.selectItemName).First();
                            item.Name = textBox2.Text.Trim();
                            if (pictureBox.Image != OrderOptions.selectedItemImage)
                            {
                                item.ImageURL = Global.ConvertImageToBinary(pictureBox.Image);
                            }
                            item.SellingPrice = priceVal;
                            item.CostPrice    = costVal;
                            item.Type         = Food.Checked ? Food.Text : Drinks.Text;
                            msg = "Item Updated";
                        }
                    }

                    db.SaveChanges();
                    MessageBox.Show(msg);
                    itemPageRef.loadData();
                    this.Close();
                }
            }
        }
Esempio n. 17
0
        private void editProfile_Click(object sender, EventArgs e)
        {
            Global.ClearErrors(errorProvider1, textBoxs);
            var account = new Account()
            {
                Username   = username.Text,
                Password   = password.Text,
                Role       = role.Text,
                FamilyName = familyName.Text,
                GivenName  = givenName.Text,
                Gender     = gender.Text,
                Contact    = contact.Text,
                Email      = email.Text,
            };

            List <List <string> > err;

            if (Global.IsValid <Account>(account, out err))
            {
                using (var db = new SunwayCafeContext())
                {
                    if (editProfile.Text == "Add Staff")
                    {
                        db.Accounts.Add(account);
                    }
                    else
                    {
                        var query = db.Accounts.Where(acc => acc.Id == Id).FirstOrDefault();

                        query.Username   = account.Username;
                        query.Password   = account.Password;
                        query.Role       = account.Role;
                        query.FamilyName = account.FamilyName;
                        query.GivenName  = account.GivenName;
                        query.Gender     = account.Gender;
                        query.Contact    = account.Contact;
                        query.Email      = account.Email;
                    }
                    db.SaveChanges();

                    if (accountPageRef == null)
                    {
                        var query = db.Accounts.Where(acc => acc.Id == Id).FirstOrDefault();
                        Global.user.Details = query;
                        profilePageRef.RefreshPage();
                    }
                    else
                    {
                        accountPageRef.RefreshListView();
                    }
                }

                this.Close();
            }
            else
            {
                foreach (var er in err)
                {
                    errorProvider1.SetError(textBoxs[er[0]], er[1]);
                    textBoxs[er[0]].BorderColor = Color.Red;
                }
            }
        }
Esempio n. 18
0
        private void Pay_Click_1(object sender, EventArgs e)
        {
            if (dataGridView1.Rows.Count - 1 <= 0)
            {
                MessageBox.Show("Zero item detected. Please order at least one item.", "Empty Order", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                decimal py;
                if (decimal.TryParse(payment.Text, out py))
                {
                    if (py < decimal.Parse(lbltotal.Text))
                    {
                        MessageBox.Show("Payment must be higher or equal to total.", "Insufficient Payment", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        var order = new Order()
                        {
                            NetPrice        = decimal.Parse(lbltotal.Text) / 1.16M,
                            TotalPrice      = decimal.Parse(lbltotal.Text),
                            Status          = "Processing",
                            DateTimeCreated = Global.ConvToDateTimeString(DateTime.Now),
                        };

                        using (var db = new SunwayCafeContext())
                        {
                            var lst = new List <OrderedItem>();
                            //Add all item object from datagrid using id
                            for (int i = 0; i < DataGridView1.Rows.Count - 1; i++)
                            {
                                var id   = Convert.ToInt32((dataGridView1.Rows[i].Cells[0].Value));
                                var item = db.Items.Where(x => x.Id == id).FirstOrDefault();
                                if (item == null)
                                {
                                    MessageBox.Show("Unable to retrieve item from database", "System Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                else
                                {
                                    lst.Add(new OrderedItem()
                                    {
                                        Order = order,
                                        Item  = item,
                                        Qty   = Convert.ToInt32((dataGridView1.Rows[i].Cells["Quantity1"].Value))
                                    });
                                }
                            }

                            order.OrderedItems = lst;
                            db.Orders.Add(order);
                            db.SaveChanges();
                        }

                        var receiptItems = new List <ReceiptItem>();
                        foreach (var item in order.OrderedItems)
                        {
                            receiptItems.Add(new ReceiptItem()
                            {
                                Qty = item.Qty, Name = item.Item.Name, UnitPrice = item.Item.SellingPrice
                            });
                        }


                        var reportPage = new ReceiptPage(new Receipt()
                        {
                            Subtotal     = order.NetPrice,
                            ReceiptItems = receiptItems,
                            Date         = order.DateTimeCreated,
                            OrderType    = radioButton1.Checked ? radioButton1.Text : radioButton2.Text,
                            Payment      = py
                        });

                        dataGridView1.Rows.Clear();
                        lbltotal.Text = "0.00";
                        payment.Text  = "0.00";

                        reportPage.Show();
                    }
                }
                else
                {
                    MessageBox.Show("Please enter number only", "Invalid Value", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
Esempio n. 19
0
        private void button1_Click(object sender, EventArgs e)
        {
            Global.ClearErrors(errorProvider1, textBoxs);
            string stockType = string.Empty;
            string stockUnit = string.Empty;

            //Type RadioBUtton
            if (ingredient.Checked == true)
            {
                stockType = ingredient.Text;
            }
            else if (spice.Checked == true)
            {
                stockType = spice.Text;
            }
            else if (others.Checked == true)
            {
                stockType = others.Text;
            }

            //Unit RadioButton
            if (gram.Checked == true)
            {
                stockUnit = gram.Text;
            }
            else if (miliLiter.Checked == true)
            {
                stockUnit = miliLiter.Text;
            }
            else if (piece.Checked == true)
            {
                stockUnit = piece.Text;
            }

            var stock = new Stock()
            {
                Name          = name.Text,
                Type          = stockType,
                Qty           = quantity.Text,
                Unit          = stockUnit,
                CriticalLevel = criticalLevel.Text,
            };

            List <List <string> > err;

            if (Global.IsValid <Stock>(stock, out err))
            {
                using (var db = new SunwayCafeContext())
                {
                    if (button1.Text == "Update")
                    {
                        var query = db.Stocks.Where(acc => acc.Id == Id).FirstOrDefault();

                        query.Name          = stock.Name;
                        query.Type          = stock.Type;
                        query.Qty           = stock.Qty;
                        query.Unit          = stock.Unit;
                        query.CriticalLevel = stock.CriticalLevel;
                    }
                    else
                    {
                        db.Stocks.Add(stock);
                    }

                    db.SaveChanges();
                }
                stockPageRef.RefreshListView();
                this.Close();
            }
            else
            {
                foreach (var er in err)
                {
                    errorProvider1.SetError(textBoxs[er[0]], er[1]);
                    textBoxs[er[0]].BorderColor = Color.Red;
                }
            }
        }