120 lines
3.9 KiB
C#
120 lines
3.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using Tanshu.Accounts.Entities;
|
|
using Tanshu.Accounts.Helpers;
|
|
using System.Diagnostics;
|
|
using Tanshu.Accounts.Repository;
|
|
|
|
namespace Tanshu.Accounts.PointOfSale
|
|
{
|
|
public partial class ReorderTableForm : Form
|
|
{
|
|
private readonly IList<FoodTable> _tableList;
|
|
public ReorderTableForm()
|
|
{
|
|
InitializeComponent();
|
|
_tableList = FoodTableBI.List(null);
|
|
Selection = null;
|
|
}
|
|
private void button_MouseDown(object sender, MouseEventArgs e)
|
|
{
|
|
if (e.Button == MouseButtons.Left && e.Clicks == 1)
|
|
{
|
|
var button = (Button)sender;
|
|
button.DoDragDrop(button, DragDropEffects.Move);
|
|
}
|
|
}
|
|
|
|
private void flpTables_DragEnter(object sender, DragEventArgs e)
|
|
{
|
|
e.Effect = DragDropEffects.All;
|
|
}
|
|
private void flpTables_DragDrop(object sender, DragEventArgs e)
|
|
{
|
|
Button button = (Button)e.Data.GetData(typeof(Button));
|
|
Point p = flpTables.PointToClient(new Point(e.X, e.Y));
|
|
var item = flpTables.GetChildAtPoint(p);
|
|
int index = flpTables.Controls.GetChildIndex(item, false);
|
|
flpTables.Controls.SetChildIndex(button, index);
|
|
flpTables.Invalidate();
|
|
|
|
var foodTable = (FoodTable)button.Tag;
|
|
var listIndex = _tableList.IndexOf(foodTable);
|
|
var newIndex = _tableList.IndexOf((FoodTable)((Button)item).Tag);
|
|
_tableList.Remove(foodTable);
|
|
_tableList.Insert(index - 1, foodTable);
|
|
|
|
|
|
}
|
|
public FoodTable Selection { get; private set; }
|
|
|
|
private void ReorderTableForm_Load(object sender, EventArgs e)
|
|
{
|
|
GenerateTables(new Point(75, 75));
|
|
}
|
|
private void tableButton_Click(object sender, EventArgs e)
|
|
{
|
|
var button = sender as Button;
|
|
if (button == null)
|
|
return;
|
|
var item = button.Tag as FoodTable;
|
|
Selection = item;
|
|
using (var frm = new TableForm(item.FoodTableID))
|
|
{
|
|
frm.ShowDialog();
|
|
}
|
|
}
|
|
private void GenerateTables(Point size)
|
|
{
|
|
var saveButton = new Button()
|
|
{
|
|
Name = "saveButton",
|
|
Text = "Save",
|
|
Width = size.X,
|
|
Height = size.Y,
|
|
};
|
|
saveButton.Click += saveButton_Click;
|
|
flpTables.Controls.Add(saveButton);
|
|
for (int i = 0; i < _tableList.Count; i++)
|
|
{
|
|
var item = _tableList[i];
|
|
var control = new Button()
|
|
{
|
|
Name = string.Format("g{0}", i),
|
|
Text = item.Name,
|
|
Width = size.X,
|
|
Height = size.Y,
|
|
Tag = item,
|
|
BackColor = item.IsActive ? Color.Green : Color.Red
|
|
};
|
|
control.MouseDown += button_MouseDown;
|
|
control.Click += tableButton_Click;
|
|
flpTables.Controls.Add(control);
|
|
}
|
|
var addButton = new Button()
|
|
{
|
|
Name = "addButton",
|
|
Text = "Add Table",
|
|
Width = size.X,
|
|
Height = size.Y,
|
|
};
|
|
addButton.Click += addButton_Click;
|
|
flpTables.Controls.Add(addButton);
|
|
}
|
|
private void addButton_Click(object sender, EventArgs e)
|
|
{
|
|
using (var frm = new TableForm())
|
|
{
|
|
frm.ShowDialog();
|
|
}
|
|
}
|
|
private void saveButton_Click(object sender, EventArgs e)
|
|
{
|
|
FoodTableBI.UpdateSortOrder(_tableList);
|
|
MessageBox.Show("Order Updated");
|
|
}
|
|
}
|
|
}
|