558 lines
16 KiB
C#
558 lines
16 KiB
C#
using System;
|
|
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
|
|
namespace DeiNiu.Wms.CE
|
|
{
|
|
public partial class StockReceive : basicForm
|
|
{
|
|
|
|
string preInOrder,goodsId = "";
|
|
DataTable dtPreIn,dtBulks;
|
|
decimal bigCount, maxReceiveCnt ,maxValidCnt= 0;
|
|
public StockReceive()
|
|
{
|
|
InitializeComponent();
|
|
//client = new WmsOutPickRequestClient(WcfHelp.getBasicBinding(), WcfHelp.getEndpoint("WmsOutPickRequestService"));
|
|
}
|
|
|
|
|
|
|
|
private void StockReceive_Load(object sender, EventArgs e)
|
|
{
|
|
initialData();
|
|
}
|
|
|
|
void initialData()
|
|
{
|
|
|
|
initialFirstTabData();
|
|
initialSecondTabData();
|
|
initialThirdTabData();
|
|
initialFourthTabData();
|
|
textPreInNo.Focus();
|
|
//tb1.SelectedIndex = 1;
|
|
}
|
|
|
|
|
|
void initialFirstTabData()
|
|
{
|
|
|
|
textPreInNo.Focus();
|
|
|
|
lbvender.Text = lbVeNo.Text = lbPhone.Text = "";
|
|
|
|
}
|
|
|
|
void initialSecondTabData()
|
|
{
|
|
txtReceiveGdBarcod.Focus();
|
|
|
|
lbGoodsName1.Text = lbPackcnt.Text = lbUnit.Text = lbArriveNum.Text = lbNotReceived.Text = txtWendu.Text =
|
|
txtReceivePkgNum.Text = txtBulkCnt.Text = "";
|
|
chkZhitong.Checked = false;
|
|
chkNoQc.Checked = false;
|
|
|
|
}
|
|
void initialThirdTabData()
|
|
{
|
|
txtValidGdBarcod.Focus();
|
|
lbGoodsName2.Text = txtBatchBoxCnt.Text = lbToValidCnt.Text = txtBatch.Text = txtSeedsNum.Text = lbSeedsCnt.Text = "";
|
|
|
|
}
|
|
void initialFourthTabData()
|
|
{
|
|
|
|
txtPlateId.Focus();
|
|
txtSkuId.Text = txtPlateId.Text = lbGoodsName3.Text = txtPackCnt.Text = txtBulkCnt2.Text = "";
|
|
|
|
}
|
|
|
|
private void dg1_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
if (dg1.DataSource == null || dg1.CurrentRowIndex < 0)
|
|
{
|
|
return;
|
|
}
|
|
preInOrder = dg1[dg1.CurrentRowIndex, 0].ToString();
|
|
showTranPickRequests();
|
|
}
|
|
|
|
|
|
void showTranPickRequests()
|
|
{
|
|
|
|
|
|
|
|
if (dg1.DataSource == null)
|
|
{
|
|
return;
|
|
}
|
|
if (dg1.CurrentRowIndex < 0)
|
|
{
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(preInOrder))
|
|
{
|
|
return;
|
|
}
|
|
|
|
lbGoodsName1.Text = preInOrder;
|
|
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
|
|
|
try
|
|
{
|
|
dtBulks = client.getTransRequestsDetail(preInOrder,0);
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
MessageBox.Show("发生错误:" + er.Message);
|
|
|
|
return;
|
|
}
|
|
|
|
|
|
bindBg2(dtBulks);
|
|
|
|
tb1.SelectedIndex = 1;
|
|
|
|
txtReceiveGdBarcod.Focus();
|
|
|
|
lbGoodsName1.Text = dtBulks.Rows.Count> 0 ? preInOrder :"";
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tb1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
if (tb1.SelectedIndex == 0)
|
|
{
|
|
bindBg1();
|
|
textPreInNo.Focus();
|
|
}
|
|
else
|
|
{
|
|
txtReceiveGdBarcod.Focus();
|
|
}
|
|
}
|
|
|
|
private void dg1_CurrentCellChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void bindPreIn(string preInNo)
|
|
{
|
|
|
|
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
|
|
|
try
|
|
{
|
|
dtPreIn = client.getPreInDetail(preInNo,LoginInfo.Account,LoginInfo.Password);
|
|
dg1.DataSource = dtPreIn;
|
|
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
MessageBox.Show("发生错误:" + er.Message);
|
|
|
|
return;
|
|
}
|
|
|
|
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
|
|
dg1.TableStyles.Clear();
|
|
DataGridTableStyle ts = new DataGridTableStyle();
|
|
ts.MappingName = dtPreIn.TableName;
|
|
dg1.TableStyles.Add(ts);
|
|
// [商品名称] ,[商品编码] ,[供应商],[主条码] ,[供应商名称] ,[预到号码] ,[直通商品] ,[上架数量] ,[预到数量] ,[验收数量] ,[温度],[车牌] ,[运单] ,[电话]
|
|
ts.GridColumnStyles[0].Width = 100;
|
|
ts.GridColumnStyles[1].Width = 30;
|
|
ts.GridColumnStyles[2].Width = 30;
|
|
ts.GridColumnStyles[3].Width = 0;
|
|
ts.GridColumnStyles[4].Width = 0;
|
|
ts.GridColumnStyles[5].Width = 0;
|
|
ts.GridColumnStyles[6].Width = 0;
|
|
ts.GridColumnStyles[9].Width = 80;
|
|
ts.GridColumnStyles[11].Width =70;
|
|
}
|
|
|
|
private void bindBg2(DataTable dt)
|
|
{
|
|
|
|
|
|
dg2.DataSource = dt;
|
|
dg2.TableStyles.Clear();
|
|
DataGridTableStyle dgts = new DataGridTableStyle();
|
|
dgts.MappingName = dt.TableName; // 必须用 ds.TableName, dt.TableSpace 不行!!!!
|
|
dg2.TableStyles.Add(dgts);
|
|
// [id],[分拣单],[整箱] ,[拼箱] ,[拼袋] ,[体积] ,[重量] ,[客户] ,[客户地址] ,[状态]
|
|
dgts.GridColumnStyles[0].Width = 0;
|
|
dgts.GridColumnStyles[1].Width = 100;
|
|
dgts.GridColumnStyles[2].Width = 30;
|
|
dgts.GridColumnStyles[3].Width = 30;
|
|
dgts.GridColumnStyles[4].Width = 30;
|
|
dgts.GridColumnStyles[5].Width = 35;//[体积]
|
|
dgts.GridColumnStyles[6].Width = 35;
|
|
dgts.GridColumnStyles[7].Width = 120;
|
|
dgts.GridColumnStyles[8].Width = 180;
|
|
|
|
|
|
|
|
// dg2.TableStyles[0].GridColumnStyles["pickOrderNo"].Width = 0;
|
|
// dg2.TableStyles[0].GridColumnStyles["state"].Width = 0;
|
|
// dg2.TableStyles[0].GridColumnStyles["状态"].Width = 70;
|
|
|
|
|
|
txtReceiveGdBarcod.Focus();
|
|
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
bindBg1();
|
|
}
|
|
|
|
private void textPreInNo_KeyUp(object sender, KeyEventArgs e)
|
|
{
|
|
preInOrder = textPreInNo.Text;
|
|
|
|
|
|
if (string.IsNullOrEmpty(preInOrder))
|
|
{
|
|
textPreInNo.Focus();
|
|
return;
|
|
}
|
|
|
|
if (e.KeyCode == Keys.Enter || e.KeyCode ==Keys.Space)
|
|
{
|
|
|
|
bindPreIn(preInOrder);
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void textGdbarcode_KeyUp(object sender, KeyEventArgs e)
|
|
{
|
|
string goodBarcod = txtReceiveGdBarcod.Text;
|
|
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
if (string.IsNullOrEmpty(goodBarcod))
|
|
{
|
|
// MessageBox.Show("请选择运单");
|
|
txtReceiveGdBarcod.Focus();
|
|
return;
|
|
}
|
|
getDataByGoodsBarcode(goodBarcod);
|
|
|
|
txtReceivePkgNum.Focus();
|
|
|
|
}
|
|
}
|
|
|
|
void getDataByGoodsBarcode(string goodsBarcod)
|
|
{
|
|
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
|
DataTable dtPreDetail = client.getReceiveDetailByBarcode(goodBarcod);
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
if (dtPreDetail.Rows.Count == 0)
|
|
{
|
|
MessageBox.Show("没找到数据");
|
|
initialSecondTabData();
|
|
txtReceiveGdBarcod.SelectAll();
|
|
txtReceiveGdBarcod.Focus();
|
|
|
|
return;
|
|
}
|
|
string packQty = dtPreDetail.Rows[0]["packingQty"].ToString();
|
|
lbGoodsName1.Text = lbGoodsName2.Text = lbGoodsName3.Text = dtPreDetail.Rows[0]["goodsName"].ToString();
|
|
|
|
goodsId = dtPreDetail.Rows[0]["goodsId"].ToString();
|
|
string isQc = dtPreDetail.Rows[0]["isQc"].ToString();
|
|
string isZhitong = dtPreDetail.Rows[0]["isZhitong"].ToString();
|
|
lbUnit.Text = dtPreDetail.Rows[0]["unit"].ToString();
|
|
lbArriveNum.Text = dtPreDetail.Rows[0]["newReceiveCount"].ToString();
|
|
lbNotReceived.Text = dtPreDetail.Rows[0]["newCount4Receive"].ToString();
|
|
lbToValidCnt.Text = dtPreDetail.Rows[0]["newCount4Valid"].ToString();
|
|
|
|
try
|
|
{
|
|
chkNoQc.Checked = Convert.ToInt16(isQc) != 0;
|
|
chkZhitong.Checked = Convert.ToInt16(isZhitong) != 0;
|
|
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
|
|
}
|
|
try
|
|
{
|
|
|
|
bigCount = Convert.ToDecimal(packQty);
|
|
maxReceiveCnt = Convert.ToDecimal(lbNotReceived.Text);
|
|
maxValidCnt = Convert.ToDecimal(lbToValidCnt.Text);
|
|
txtReceivePkgNum.Text = maxReceiveCnt / bigCount;
|
|
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
bigCount = 1;
|
|
}
|
|
}
|
|
|
|
private void btnReceive_Click(object sender, EventArgs e)
|
|
{
|
|
string pkcnt = txtReceivePkgNum.Text.Trim();
|
|
string tmp = txtWendu.Text.Trim();
|
|
string bulkcnt = txtBulkCnt.Text.Trim();
|
|
decimal packCount, bulkCount, temperature = -100;
|
|
|
|
if (String.IsNullOrEmpty(pkcnt) && String.IsNullOrEmpty(bulkcnt))
|
|
{
|
|
MessageBox.Show("请输入收货数量");
|
|
txtReceivePkgNum.Focus();
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
|
|
if (!String.IsNullOrEmpty(pkcnt))
|
|
{
|
|
packCount = Convert.ToDecimal(pkcnt);
|
|
}
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
|
|
}
|
|
try
|
|
{
|
|
|
|
if (!String.IsNullOrEmpty(bulkcnt))
|
|
{
|
|
bulkCount = Convert.ToDecimal(bulkcnt);
|
|
}
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
|
|
}
|
|
|
|
try
|
|
{
|
|
|
|
if (!String.IsNullOrEmpty(bulkcnt))
|
|
{
|
|
temperature = String.IsNullOrEmpty(txtWendu.Text.Trim()) ? 0 : Convert.ToDecimal(txtWendu.Text);
|
|
}
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
|
|
}
|
|
decimal count = packCount * bigCount + bulkCount;
|
|
|
|
if (count == 0)
|
|
{
|
|
MessageBox.Show("请输入收货数量");
|
|
txtReceivePkgNum.Focus();
|
|
return;
|
|
}
|
|
|
|
|
|
if (count > maxReceiveCnt)
|
|
{
|
|
MessageBox.Show("超过最大应收数量:" + maxReceiveCnt);
|
|
txtReceivePkgNum.SelectAll();
|
|
txtReceivePkgNum.Focus();
|
|
}
|
|
|
|
try
|
|
{
|
|
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
|
|
|
|
|
decimal arriveCnt = Convert.ToDecimal(lbArriveNum.Text);
|
|
int intype = 0;//pass
|
|
bool rt= client.receiveDetail(preInOrder, goodsId, arriveCnt, count, 0, "", temperature, chkZhitong.Checked, 0);
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
if (rt)
|
|
{
|
|
MessageBox.Show("收货成功!");
|
|
if (chkValid.Checked)
|
|
{
|
|
tb1.SelectedIndex = 2;//验收
|
|
|
|
txtValidGdBarcod.Text = txtReceiveGdBarcod.Text;
|
|
lbGoodsName2.Text = lbGoodsName1.Text;
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
MessageBox.Show("收货失败!");
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
}
|
|
|
|
}
|
|
|
|
private void txtValidGdBarcod_KeyUp(object sender, KeyEventArgs e)
|
|
{
|
|
string goodBarcod = txtValidGdBarcod.Text;
|
|
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
if (string.IsNullOrEmpty(goodBarcod))
|
|
{
|
|
// MessageBox.Show("请选择运单");
|
|
txtValidGdBarcod.Focus();
|
|
return;
|
|
}
|
|
getDataByGoodsBarcode(goodBarcod);
|
|
|
|
txtBatchBoxCnt.Text = maxValidCnt;
|
|
|
|
txtBatchBoxCnt.Focus();
|
|
|
|
}
|
|
}
|
|
|
|
private void btnSeeds_Click(object sender, EventArgs e)
|
|
{
|
|
decimal batchCnt = 0;
|
|
try{
|
|
batchCnt = Convert.ToDecimal(txtBatchCnt.Text.Trim());
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
MessageBox.Show("批次数量错误!");
|
|
txtBatchCnt.Focus();
|
|
return;
|
|
}
|
|
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
|
decimal seedsNum = client.getValidSeedsCnt(batchCount, goodsId);
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
lbSeedsCnt.Text = seedsNum + "";
|
|
txtSeedsNum.Text = seedsNum+"";
|
|
|
|
}
|
|
|
|
private void btnValid_Click(object sender, EventArgs e)
|
|
{
|
|
string batchBoxCnt = txtBatchBoxCnt.Text.Trim();
|
|
string batch = txtBatch.Text.Trim();
|
|
string batchCnt = txtBachCnt.Text.Trim();
|
|
string seedsCnt = txtSeedsNum.Text.Trim();
|
|
DateTime dtProd = dtpProduct.Value;
|
|
DateTime dtValidTo = dtpValidTo.Value;
|
|
decimal packCount, bulkCount, seedsCount = -100;
|
|
|
|
if (String.IsNullOrEmpty(batchBoxCnt) && String.IsNullOrEmpty(batchCnt))
|
|
{
|
|
MessageBox.Show("请输入收货数量");
|
|
txtBatchBoxCnt.Focus();
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
|
|
if (!String.IsNullOrEmpty(batchBoxCnt))
|
|
{
|
|
packCount = Convert.ToDecimal(batchBoxCnt);
|
|
}
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
|
|
MessageBox.Show("请输入正确收货数量");
|
|
txtBatchBoxCnt.Focus(); return;
|
|
}
|
|
|
|
try
|
|
{
|
|
|
|
if (!String.IsNullOrEmpty(batchCnt))
|
|
{
|
|
bulkCount = Convert.ToDecimal(batchCnt);
|
|
}
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
MessageBox.Show("请输入正确收货数量");
|
|
txtBachCnt.Focus();
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
|
|
if (!String.IsNullOrEmpty(seedsCnt))
|
|
{
|
|
seedsCount = Convert.ToDecimal(seedsCnt);
|
|
}
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
MessageBox.Show("请输入正确收货数量");
|
|
txtSeedsNum.Focus();
|
|
return;
|
|
}
|
|
|
|
|
|
decimal count = packCount * bigCount + bulkCount;
|
|
|
|
if (count == 0)
|
|
{
|
|
MessageBox.Show("请输入收货数量");
|
|
txtReceivePkgNum.Focus();
|
|
return;
|
|
}
|
|
|
|
|
|
if (count > maxReceiveCnt)
|
|
{
|
|
MessageBox.Show("超过最大应收数量:" + maxReceiveCnt);
|
|
txtReceivePkgNum.SelectAll();
|
|
txtReceivePkgNum.Focus();
|
|
}
|
|
|
|
try
|
|
{
|
|
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
|
|
|
|
|
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
|
|
}
|
|
catch (Exception er)
|
|
{
|
|
MessageBox.Show("验收失败");
|
|
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
|
return;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
} |