private void btnAddCustom_Click(object sender, EventArgs e) { // add custom menu if (string.IsNullOrEmpty(txtCustomName.Text) || string.IsNullOrEmpty(txtPrice.Text)) { MessageBox.Show("Custom Menu and Price are required fields"); return; } OrderDetail orderDetail = new OrderDetail(); orderDetail.OrderID = _currentOrderId; orderDetail.MenuCardID = 1124; //dummy if (cboMenuQuantity.SelectedItem != null) { orderDetail.Quantity = Convert.ToInt32(cboMenuQuantity.SelectedItem); } else { orderDetail.Quantity = 0; } orderDetail.Remarks = string.Empty; orderDetail.CustomMenuName = txtCustomName.Text; orderDetail.CustomMenuPrice = Convert.ToDecimal(txtPrice.Text); ctx.OrderDetails.InsertOnSubmit(orderDetail); ctx.SubmitChanges(); ItemRowUserControl row = new ItemRowUserControl(); row.Name = "1"; row.ItemTitle = txtCustomName.Text; row.Price = Convert.ToDecimal(txtPrice.Text); row.SubTotal = orderDetail.Quantity * row.Price; row.Quantity = orderDetail.Quantity.ToString(); decimal currentTotal = 0; if (lbTotal.Text.Trim().Length > 2) { currentTotal = Convert.ToDecimal(lbTotal.Text.Replace("Rp.", "")); } decimal totalAll = currentTotal + row.SubTotal; row.OrderDetailSelected = orderDetail; row.DeleteItemHandler += new EventHandler <SelectedItemEventArgs>(row_DeleteItemHandler); row.RecalculateTotalHandler += new EventHandler <EventArgs>(row_RecalculateTotalHandler); panelRightContent.Controls.Add(row); row.Top = 2 + (panelRightContent.Controls.Count - 1) * 64; row.Left = 5; lbTotal.Text = "Rp. " + totalAll.ToString("N0"); }
private void Recalculate() { decimal totalAll = 0; foreach (var item in panelRightContent.Controls) { ItemRowUserControl row = (ItemRowUserControl)item; totalAll = totalAll + row.SubTotal; } lbTotal.Text = "Rp. " + totalAll.ToString("N0"); }
private void OrderDetailPopulate(int orderId) { POSDataContext db = new POSDataContext(); panelRightContent.Controls.Clear(); int index = 0; var details = from a in db.OrderDetails where a.OrderID == orderId select a; decimal totalAll = 0; foreach (var detail in details) { ItemRowUserControl row = new ItemRowUserControl(); row.Name = detail.MenuCardID.ToString(); if (!string.IsNullOrEmpty(detail.CustomMenuName)) { row.ItemTitle = detail.CustomMenuName; row.SubTotal = detail.CustomMenuPrice * detail.Quantity; } else { row.SubTotal = detail.MenuCard.Price * detail.Quantity; row.ItemTitle = detail.MenuCard.MenuName; } if (detail.CustomMenuPrice > 0) { row.Price = detail.CustomMenuPrice; } else { row.Price = detail.MenuCard.Price; } totalAll = totalAll + (row.SubTotal); row.OrderDetailSelected = detail; row.Quantity = detail.Quantity.ToString(); row.DeleteItemHandler += new EventHandler <SelectedItemEventArgs>(row_DeleteItemHandler); row.RecalculateTotalHandler += new EventHandler <EventArgs>(row_RecalculateTotalHandler); panelRightContent.Controls.Add(row); row.Top = 2 + index * 64; row.Left = 5; index++; } lbTotal.Text = "Rp. " + totalAll.ToString("N0"); }
private void LabelControl_MouseClick(object sender, MouseEventArgs e) { POSDataContext posDb = new POSDataContext(); MenuCard menu = Helper.GetMenuCard(((MenuCard)((Label)sender).Tag).id); if (menu.Stock.HasValue) { if (menu.Stock.Value <= 0) { MessageBox.Show("Stok Habis!!!"); return; } } else { MessageBox.Show("Stok Habis!!!"); return; } if (!panelRightContent.Controls.ContainsKey(menu.id.ToString())) { OrderDetail orderDetail = new OrderDetail(); orderDetail.OrderID = _currentOrderId; orderDetail.MenuCardID = menu.id; orderDetail.Quantity = 1; orderDetail.Remarks = string.Empty; orderDetail.CustomMenuName = string.Empty; orderDetail.CustomMenuPrice = 0; posDb.OrderDetails.InsertOnSubmit(orderDetail); posDb.SubmitChanges(); ItemRowUserControl row = new ItemRowUserControl(); row.Name = menu.id.ToString(); row.ItemTitle = menu.MenuName; row.Price = menu.Price; row.SubTotal = menu.Price; row.Quantity = "1"; decimal currentTotal = 0; if (lbTotal.Text.Trim().Length > 2) { currentTotal = Convert.ToDecimal(lbTotal.Text.Replace("Rp.", "")); } decimal totalAll = currentTotal + row.SubTotal; row.OrderDetailSelected = orderDetail; //row.OrderDetailId = orderDetail.OrderDetailID; row.DeleteItemHandler += new EventHandler <SelectedItemEventArgs>(row_DeleteItemHandler); row.RecalculateTotalHandler += new EventHandler <EventArgs>(row_RecalculateTotalHandler); panelRightContent.Controls.Add(row); row.Top = 2 + (panelRightContent.Controls.Count - 1) * 64; row.Left = 5; lbTotal.Text = "Rp. " + totalAll.ToString("N0"); } else { var item = from a in posDb.OrderDetails where a.MenuCardID == menu.id && a.OrderID == _currentOrderId select a; if (item.Count() > 0) { var orderDetail = item.ToArray()[0]; orderDetail.Quantity = orderDetail.Quantity + 1; posDb.SubmitChanges(); ((ItemRowUserControl)panelRightContent.Controls[menu.id.ToString()]).Quantity = orderDetail.Quantity.ToString(); ((ItemRowUserControl)panelRightContent.Controls[menu.id.ToString()]).OrderDetailSelected = orderDetail; } } var stock = menu.Stock.HasValue ? (menu.Stock.Value - 1) : 0; UpdateMenuCard(menu.id, stock); }