using BO.BO.Bill;
|
|
using BO.Utils.BillRpc;
|
|
using BWP.WinFormControl;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace QualityAndOrder
|
|
{
|
|
partial class QualityOrderForm
|
|
{
|
|
List<SelectHurryList> hurryList;
|
|
Thread bt3SyncTask;
|
|
|
|
void Tab3Init()
|
|
{
|
|
orderGrid3.AutoGenerateColumns = false;
|
|
orderGrid3.DataSource = null;
|
|
|
|
AddKeyPadForTab3();
|
|
}
|
|
|
|
private void AddKeyPadForTab3()
|
|
{
|
|
for (var i = 1; i < 10; i++)
|
|
{
|
|
var btn = new Button() { Name = "_3" + i, Text = i.ToString(), Size = new Size(80, 60), TextAlign = ContentAlignment.MiddleCenter, Margin = new Padding { All = 10 }, Font = new Font("宋体", 15) };
|
|
btn.Click += (sender, e) =>
|
|
{
|
|
InputHurryNumber(btn.Text);
|
|
};
|
|
tab3KeyPanel.Controls.Add(btn);
|
|
}
|
|
var zero = new Button() { Name = "_30", Text = "0", Size = new Size(80, 60), TextAlign = ContentAlignment.MiddleCenter, Margin = new Padding { All = 10 }, Font = new Font("宋体", 15) };
|
|
zero.Click += (sender, e) =>
|
|
{
|
|
InputHurryNumber(zero.Text);
|
|
};
|
|
tab3KeyPanel.Controls.Add(zero);
|
|
var back = new Button() { Name = "_3back", Text = "←", Size = new Size(80, 60), TextAlign = ContentAlignment.MiddleCenter, Margin = new Padding { All = 10 }, Font = new Font("宋体", 15) };
|
|
back.Click += (sender, e) =>
|
|
{
|
|
InputHurryNumber(back.Text);
|
|
};
|
|
tab3KeyPanel.Controls.Add(back);
|
|
|
|
var clear = new Button() { Name = "_3clear", Text = "清空", Size = new Size(80, 60), TextAlign = ContentAlignment.MiddleCenter, Margin = new Padding { All = 10 }, Font = new Font("宋体", 15) };
|
|
clear.Click += (sender, e) =>
|
|
{
|
|
InputHurryNumber(clear.Text);
|
|
};
|
|
tab3KeyPanel.Controls.Add(clear);
|
|
|
|
}
|
|
|
|
void InputHurryNumber(string input)
|
|
{
|
|
if (lastHurry == null)
|
|
throw new Exception("请选择一条排宰明细");
|
|
lastHurry.HurryNumber = GetAfterNumber(lastHurry.HurryNumber, input) ?? 0;
|
|
orderGrid3.Refresh();
|
|
}
|
|
|
|
private void tab3SearchBtn_Click(object sender, EventArgs e)
|
|
{
|
|
if (bt3SyncTask == null || !bt3SyncTask.IsAlive)
|
|
{
|
|
bt3SyncTask = new Thread(Tb3SyncTask);
|
|
bt3SyncTask.Start();
|
|
tab3SearchBtn.BackColor = Color.FromArgb(15, 215, 107);
|
|
tab3SearchBtn.ForeColor = Color.White;
|
|
}
|
|
else
|
|
{
|
|
bt3SyncTask.Abort();
|
|
tab3SearchBtn.BackColor = Color.FromKnownColor(KnownColor.Control);
|
|
tab3SearchBtn.ForeColor = Color.FromKnownColor(KnownColor.ControlText);
|
|
}
|
|
}
|
|
|
|
void Tb3SyncTask()
|
|
{
|
|
while (true)
|
|
{
|
|
this.Invoke(new InvokeHandler(delegate()
|
|
{
|
|
BindOrderGrid3();
|
|
h_totalLbl.Text = hurryList.Sum(x => x.WeightNumber).ToString();
|
|
}));
|
|
Thread.Sleep(5000);
|
|
}
|
|
}
|
|
|
|
SelectHurryList lastHurry;
|
|
private void BindOrderGrid3()
|
|
{
|
|
hurryList = OrderDetailRpc.GetSelectHurryList(butcherDateInput.Date.Value);
|
|
if (lastHurry != null)
|
|
{
|
|
var t = hurryList.FirstOrDefault(x => x.WeightBill_ID == lastHurry.WeightBill_ID);
|
|
if (t != null)
|
|
t.HurryNumber = lastHurry.HurryNumber;
|
|
}
|
|
orderGrid3.DataSource = hurryList.OrderByDescending(x => x.B3WeighBill_ID).ToList();
|
|
|
|
foreach (DataGridViewRow row in orderGrid3.Rows)
|
|
{
|
|
if (lastHurry != null && lastHurry.WeightBill_ID == (long)row.Cells["H_WeightBill_ID"].Value)
|
|
{
|
|
lastHurry = row.DataBoundItem as SelectHurryList;
|
|
row.DefaultCellStyle.BackColor = orderGrid3.RowsDefaultCellStyle.SelectionBackColor;
|
|
}
|
|
}
|
|
InitScrollBar4();
|
|
orderGrid3.ClearSelection();
|
|
try
|
|
{
|
|
if (r4Roll != -1)
|
|
orderGrid3.FirstDisplayedScrollingRowIndex = r4Roll;
|
|
}
|
|
catch
|
|
{
|
|
r4Roll = -1;
|
|
}
|
|
orderGrid3.Refresh();
|
|
}
|
|
|
|
private void orderGrid3_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if (e.RowIndex == -1)
|
|
return;
|
|
if (e.ColumnIndex < orderGrid3.ColumnCount - 2)
|
|
return;
|
|
if (e.ColumnIndex == orderGrid3.ColumnCount - 2)//确定
|
|
{
|
|
if (lastHurry.HurryNumber == 0)
|
|
return;
|
|
if (lastHurry.HurryNumber > lastHurry.WeightNumber)
|
|
throw new Exception("急宰头数多余排宰头数");
|
|
bool hasError = false;
|
|
var record = OrderDetailRpc.InsertHurryRecord(lastHurry,out hasError);
|
|
record.TotalNumber = lastHurry.WeightNumber;
|
|
if (hasError)
|
|
UMessageBox.Show("排宰顺序出现多条记录,请手动修改", "注意");
|
|
lastHurry.HurryNumber = OrderDetailRpc.GetHurryRecordNumber(lastHurry.WeightBill_ID);
|
|
orderGrid3.Refresh();
|
|
HurryRecordPrint.Print(record);
|
|
UMessageBox.Show("打印成功");
|
|
}
|
|
else//查看
|
|
{
|
|
var view = new HurryRecordView(lastHurry.WeightBill_ID, lastHurry.WeightNumber);
|
|
if (view.ShowDialog() == DialogResult.OK)
|
|
{
|
|
lastHurry.HurryNumber -= view.Result;
|
|
orderGrid3.Refresh();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void orderGrid3_CellClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if (e.RowIndex == -1)
|
|
return;
|
|
var entity = orderGrid3.CurrentRow.DataBoundItem as SelectHurryList;
|
|
|
|
if (lastHurry != null)
|
|
{
|
|
foreach (DataGridViewRow row in orderGrid3.Rows)
|
|
{
|
|
if (lastHurry.WeightBill_ID == (long)row.Cells["H_WeightBill_ID"].Value)
|
|
{
|
|
row.DefaultCellStyle.BackColor = orderGrid3.RowsDefaultCellStyle.BackColor;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
lastHurry = entity;
|
|
if (e.ColumnIndex != orderGrid3.Columns.Count - 2)//非确定列
|
|
orderGrid3.Refresh();
|
|
}
|
|
|
|
int r4Roll = -1;
|
|
private void InitScrollBar4()
|
|
{
|
|
vScrollBar4.Maximum = (orderGrid3.RowCount - orderGrid3.DisplayedRowCount(false) + 30) * orderGrid3.RowTemplate.Height;
|
|
vScrollBar4.Minimum = 0;
|
|
vScrollBar4.SmallChange = orderGrid3.RowTemplate.Height;
|
|
vScrollBar4.LargeChange = orderGrid3.RowTemplate.Height * 30;
|
|
this.vScrollBar4.Scroll += (sender, e) =>
|
|
{
|
|
r4Roll = e.NewValue / orderGrid3.RowTemplate.Height;
|
|
orderGrid3.FirstDisplayedScrollingRowIndex = r4Roll;
|
|
};
|
|
}
|
|
}
|
|
}
|