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); } } }
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); } } }
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) { } }
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; } }
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"); } }
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(); }
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"); } }
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(); } }
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); } } } }
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); } } }
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); } } }
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."); } } }
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); } } }
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(); } }
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(); } } }
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; } } }
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); } } }
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; } } }