925 lines
28 KiB
C#
925 lines
28 KiB
C#
using System;
|
||
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.Text;
|
||
using System.Windows.Forms;
|
||
using Microsoft.Tools.ServiceModel;
|
||
using DeiNiu.Wms.CE.Util;
|
||
|
||
|
||
namespace DeiNiu.Wms.CE
|
||
{
|
||
public partial class StockReceive : basicForm
|
||
{
|
||
|
||
string preInOrder,goodsId ,owner= "";
|
||
DataTable dtPreIn,dtBulks;
|
||
decimal bigCount, maxReceiveCnt ,maxValidCnt= 0;
|
||
int expiringDays =0;
|
||
bool canReceive, canValid;
|
||
decimal packCount = 0, bulkCount = 0;
|
||
public StockReceive()
|
||
{
|
||
InitializeComponent();
|
||
//client = new WmsOutPickRequestClient(WcfHelp.getBasicBinding(), WcfHelp.getEndpoint("WmsOutPickRequestService"));
|
||
}
|
||
|
||
|
||
|
||
private void StockReceive_Load(object sender, EventArgs e)
|
||
{
|
||
initialData();
|
||
|
||
}
|
||
void setDebug()
|
||
{
|
||
//#if Debug
|
||
// textPreInNo.Text = "PREIN2021072600000510";
|
||
// this.txtValidGdBarcod.Text = "0000100001";
|
||
// this.txtReceiveGdBarcod.Text = "0000100001";
|
||
// #endif
|
||
}
|
||
void initialData()
|
||
{
|
||
canReceive = WmsConstants.auths.Contains(WmsConstants.PERMISSION_RECEIVE);
|
||
canValid = WmsConstants.auths.Contains(WmsConstants.PERMISSION_VALID);
|
||
btnReceive.Enabled = canReceive;
|
||
btnValid.Enabled = canValid;
|
||
|
||
dtPreIn = null;
|
||
initialFirstTabData();
|
||
initialSecondTabData();
|
||
initialThirdTabData();
|
||
initialFourthTabData();
|
||
textPreInNo.Focus();
|
||
//tb1.SelectedIndex = 1;
|
||
dtpValidTo.Value = dtpProduct.Value.AddDays(expiringDays);
|
||
setDebug();
|
||
|
||
}
|
||
|
||
|
||
void initialFirstTabData()
|
||
{
|
||
|
||
textPreInNo.Focus();
|
||
|
||
lbvender.Text = lbVeNo.Text = lbPhone.Text = "";
|
||
|
||
}
|
||
|
||
void initialSecondTabData()
|
||
{
|
||
|
||
|
||
goodsId = "";
|
||
lbPackcnt2.Text = txtReceiveGdBarcod.Text = lbGoodsName1.Text = lbPackcnt.Text = lbUnit.Text = lbArriveNum.Text = lbNotReceived.Text = txtWendu.Text =
|
||
txtReceivePkgNum.Text = txtBulkCnt.Text = "";
|
||
chkZhitong.Checked = false;
|
||
chkNoQc.Checked = false;
|
||
btnReceive.Enabled = false;
|
||
rdReceive.Checked = true;
|
||
rdRefuse.Checked = false;
|
||
txtReceiveGdBarcod.Focus();
|
||
setDebug();
|
||
}
|
||
void initialThirdTabData()
|
||
{
|
||
packCount = bulkCount = 0;
|
||
btnValid.Enabled = false;
|
||
goodsId = "";
|
||
|
||
txtValidGdBarcod.Text= lbExpiryDays.Text = lbGoodsName2.Text = txtBatchBoxCnt.Text =
|
||
lbToValidCnt.Text = txtBatch.Text = txtSeedsNum.Text = lbSeedsCnt.Text = "";
|
||
rdValidPass.Checked = true;
|
||
rdValidFaild.Checked = false;
|
||
txtValidGdBarcod.SelectAll();
|
||
txtValidGdBarcod.Focus();
|
||
chkDouble.Checked = false;
|
||
setDebug();
|
||
|
||
}
|
||
void initialFourthTabData()
|
||
{
|
||
// btnInPlate.Enabled = false;
|
||
// txtPlateId.Focus();
|
||
// txtSkuId.Text = txtPlateId.Text = "";
|
||
dgResult.DataSource = null;
|
||
|
||
}
|
||
|
||
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 if(tb1.SelectedIndex == 1)
|
||
{
|
||
txtReceiveGdBarcod.Focus();
|
||
}
|
||
else if (tb1.SelectedIndex == 2)
|
||
{
|
||
txtShelfNo.Focus();
|
||
}
|
||
else if (tb1.SelectedIndex == 3)
|
||
{
|
||
queryValidResult();
|
||
}
|
||
}
|
||
|
||
void queryValidResult()
|
||
{
|
||
if (dtPreIn != null && !String.IsNullOrEmpty(preInOrder))
|
||
{
|
||
DataTable dt;
|
||
try
|
||
{
|
||
bool canSeePartsTasks = WmsConstants.auths.Contains(WmsConstants.SPECIAL_ALL_PARTION_TASKS);
|
||
dt = client.getPreValidResult(preInOrder, "", LoginInfo.UserId, LoginInfo.Token,canSeePartsTasks);
|
||
dgResult.DataSource = dt;
|
||
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
||
|
||
showErrorMsg(er, "发生错误");
|
||
return;
|
||
}
|
||
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
||
|
||
dgResult.TableStyles.Clear();
|
||
DataGridTableStyle ts = new DataGridTableStyle();
|
||
ts.MappingName = dt.TableName;
|
||
dgResult.TableStyles.Add(ts);
|
||
|
||
ts.GridColumnStyles[0].Width = 65;
|
||
ts.GridColumnStyles[1].Width = 85;
|
||
ts.GridColumnStyles[2].Width = 35;
|
||
ts.GridColumnStyles[3].Width = 35;
|
||
ts.GridColumnStyles[4].Width = 0;
|
||
ts.GridColumnStyles[5].Width = 0;
|
||
ts.GridColumnStyles[6].Width = 60;
|
||
ts.GridColumnStyles[7].Width = 0;
|
||
ts.GridColumnStyles[8].Width = 0;
|
||
}
|
||
}
|
||
private void dg1_CurrentCellChanged(object sender, EventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void bindPreIn(string preInNo)
|
||
{
|
||
|
||
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
||
initialData();
|
||
try
|
||
{
|
||
dtPreIn = client.getPreInDetail(preInNo,LoginInfo.UserId,LoginInfo.Token);
|
||
dg1.DataSource = dtPreIn;
|
||
if (dtPreIn.Rows.Count > 0)
|
||
{
|
||
lbvender.Text = dtPreIn.Rows[0]["供应商名称"].ToString();
|
||
lbVeNo.Text = dtPreIn.Rows[0]["车牌"].ToString();
|
||
lbPhone.Text = dtPreIn.Rows[0]["电话"].ToString();
|
||
}
|
||
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
||
// MessageBox.Show("发生错误:" +getExceptionMsg( er));
|
||
showErrorMsg(er, "发生错误");
|
||
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 = 55;
|
||
ts.GridColumnStyles[1].Width = 35;
|
||
ts.GridColumnStyles[2].Width = 35;
|
||
ts.GridColumnStyles[3].Width = 35;
|
||
ts.GridColumnStyles[4].Width = 35;
|
||
/*ts.GridColumnStyles[5].Width = 0;
|
||
ts.GridColumnStyles[6].Width = 0;
|
||
ts.GridColumnStyles[9].Width = 80;
|
||
ts.GridColumnStyles[11].Width =70;
|
||
* */
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
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);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
bool isPreInOrderOkay()
|
||
{
|
||
if (dtPreIn != null)
|
||
{
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
MessageBox.Show("请输入预到单");
|
||
tb1.SelectedIndex = 0;
|
||
initialFirstTabData();
|
||
return false;
|
||
}
|
||
|
||
}
|
||
|
||
private void textGdbarcode_KeyUp(object sender, KeyEventArgs e)
|
||
{
|
||
string goodBarcod = txtReceiveGdBarcod.Text;
|
||
|
||
if (e.KeyCode == Keys.Enter)
|
||
{
|
||
if (!isPreInOrderOkay())
|
||
{
|
||
return;
|
||
}
|
||
|
||
if (string.IsNullOrEmpty(goodBarcod))
|
||
{
|
||
// MessageBox.Show("请选择运单");
|
||
txtReceiveGdBarcod.Focus();
|
||
return;
|
||
}
|
||
getDataByGoodsBarcode(goodBarcod);
|
||
|
||
|
||
|
||
}
|
||
}
|
||
|
||
void getDataByGoodsBarcode(string goodsBarcod)
|
||
{
|
||
if (String.IsNullOrEmpty(preInOrder))
|
||
{
|
||
MessageBox.Show("请输入预到号码");
|
||
tb1.SelectedIndex = 0;
|
||
return;
|
||
}
|
||
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
||
DataTable dtPreDetail = client.getReceiveDetailByBarcode(preInOrder,goodsBarcod);
|
||
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();
|
||
packQty = dtPreDetail.Rows[0]["bigCount"].ToString();
|
||
lbGoodsName1.Text = lbGoodsName2.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]["newArriveCount"].ToString();
|
||
lbNotReceived.Text = dtPreDetail.Rows[0]["newCount4Receive"].ToString();
|
||
lbToValidCnt.Text = dtPreDetail.Rows[0]["newCount4Valid"].ToString();
|
||
lbExpiryDays.Text = dtPreDetail.Rows[0]["expiryDays"].ToString();
|
||
chkDouble.Checked = dtPreDetail.Rows[0]["isDouChk"].ToString()=="Y";
|
||
owner = dtPreDetail.Rows[0]["entid"].ToString();
|
||
lbOwner.Text = dtPreDetail.Rows[0]["ORGNAME"].ToString();
|
||
|
||
if (dtPreDetail.Rows[0]["orderType"].ToString() == "1")
|
||
{
|
||
dtpProduct.Visible = false;
|
||
dtpValidTo.Visible = false;
|
||
|
||
|
||
txtBatch.Text = dtPreDetail.Rows[0]["batch"].ToString();
|
||
this.txtPrdDate.Text = dtPreDetail.Rows[0]["productDate"].ToString();
|
||
this.txtValidDate.Text = dtPreDetail.Rows[0]["validDate"].ToString();
|
||
txtValidDate.ReadOnly = true;
|
||
txtPrdDate.ReadOnly = true;
|
||
|
||
|
||
}
|
||
|
||
txtBatch.ReadOnly = !dtpProduct.Visible;
|
||
txtPrdDate.Visible = !dtpProduct.Visible;
|
||
txtValidDate.Visible = !dtpValidTo.Visible;
|
||
txtSeedsNum.ReadOnly = txtBatch.ReadOnly;
|
||
btnSeeds.Enabled = !txtBatch.ReadOnly;
|
||
try
|
||
{
|
||
chkNoQc.Checked = Convert.ToInt16(isQc) == 0;
|
||
chkZhitong.Checked = Convert.ToInt16(isZhitong) != 0;
|
||
expiringDays = Convert.ToInt16(lbExpiryDays.Text);
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
|
||
}
|
||
try
|
||
{
|
||
|
||
bigCount = Convert.ToDecimal(packQty);
|
||
maxReceiveCnt = Convert.ToDecimal(lbNotReceived.Text);
|
||
maxValidCnt = Convert.ToDecimal(lbToValidCnt.Text);
|
||
|
||
|
||
if (this.tb1.SelectedIndex == 1)
|
||
{
|
||
btnReceive.Enabled = maxReceiveCnt > 0;
|
||
decimal bulkCnt = maxReceiveCnt % bigCount;
|
||
decimal boxCnt =( maxReceiveCnt - bulkCnt) / bigCount;
|
||
|
||
txtReceivePkgNum.Text = boxCnt + "";
|
||
txtBulkCnt.Text = bulkCnt + "";
|
||
}
|
||
else
|
||
{
|
||
btnValid.Enabled = maxValidCnt > 0;
|
||
decimal bulkCnt = maxValidCnt % bigCount;
|
||
decimal boxCnt = (maxValidCnt - bulkCnt) / bigCount;
|
||
|
||
txtBatchBoxCnt.Text = boxCnt + "";
|
||
txtBachCnt.Text = bulkCnt + "";
|
||
|
||
}
|
||
|
||
|
||
lbPackcnt2.Text= lbPackcnt.Text = bigCount + "";
|
||
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
bigCount = 1;
|
||
}
|
||
}
|
||
|
||
decimal getReceiveCount()
|
||
{
|
||
string pkcnt = txtReceivePkgNum.Text.Trim();
|
||
string bulkcnt = txtBulkCnt.Text.Trim();
|
||
|
||
|
||
if (String.IsNullOrEmpty(pkcnt) && String.IsNullOrEmpty(bulkcnt))
|
||
{
|
||
MessageBox.Show("请输入收货数量");
|
||
txtReceivePkgNum.Focus();
|
||
return 0;
|
||
}
|
||
|
||
try
|
||
{
|
||
|
||
if (!String.IsNullOrEmpty(pkcnt))
|
||
{
|
||
packCount = Convert.ToDecimal(pkcnt);
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
MessageBox.Show("请输入收货数量");
|
||
txtReceivePkgNum.SelectAll();
|
||
txtReceivePkgNum.Focus();
|
||
return 0;
|
||
}
|
||
try
|
||
{
|
||
|
||
if (!String.IsNullOrEmpty(bulkcnt))
|
||
{
|
||
bulkCount = Convert.ToDecimal(bulkcnt);
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
MessageBox.Show("请输入收货数量");
|
||
txtBulkCnt.SelectAll();
|
||
txtBulkCnt.Focus();
|
||
return 0;
|
||
}
|
||
|
||
|
||
decimal count = packCount * bigCount + bulkCount;
|
||
|
||
if (count == 0)
|
||
{
|
||
MessageBox.Show("请输入收货数量");
|
||
txtReceivePkgNum.Focus();
|
||
return 0;
|
||
}
|
||
|
||
|
||
|
||
return count;
|
||
}
|
||
private void btnReceive_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
string tmp = txtWendu.Text.Trim();
|
||
|
||
decimal temperature = -100;
|
||
|
||
try
|
||
{
|
||
|
||
if (!String.IsNullOrEmpty(tmp))
|
||
{
|
||
temperature = Convert.ToDecimal(tmp);
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
MessageBox.Show("请输入温度");
|
||
txtWendu.SelectAll();
|
||
txtWendu.Focus();
|
||
return;
|
||
}
|
||
|
||
decimal count = getReceiveCount();
|
||
|
||
if (count > maxReceiveCnt)
|
||
{
|
||
MessageBox.Show("超过最大应收数量:" + maxReceiveCnt);
|
||
txtReceivePkgNum.SelectAll();
|
||
txtReceivePkgNum.Focus();
|
||
return;
|
||
}
|
||
|
||
if (count <= 0) { return; }
|
||
try
|
||
{
|
||
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
||
|
||
|
||
decimal arriveCnt = Convert.ToDecimal(lbArriveNum.Text);
|
||
int intype = rdReceive.Checked?0:1;//pass
|
||
bool rt = client.receiveDetail(preInOrder, goodsId, arriveCnt, count, intype, "", temperature, chkZhitong.Checked, 0, LoginInfo.UserId, LoginInfo.Token);
|
||
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
||
if (rt)
|
||
{
|
||
MessageBox.Show("收货成功!");
|
||
initialSecondTabData();
|
||
|
||
if (chkValid.Checked)
|
||
{
|
||
tb1.SelectedIndex = 2;//验收
|
||
|
||
txtValidGdBarcod.Text = txtReceiveGdBarcod.Text;
|
||
lbGoodsName2.Text = lbGoodsName1.Text;
|
||
|
||
|
||
}
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
//MessageBox.Show("收货失败!");
|
||
showErrorMsg(er, "收货失败");
|
||
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 (!isPreInOrderOkay())
|
||
{
|
||
return;
|
||
}
|
||
|
||
|
||
if (string.IsNullOrEmpty(goodBarcod))
|
||
{
|
||
// MessageBox.Show("请选择运单");
|
||
txtValidGdBarcod.Focus();
|
||
return;
|
||
}
|
||
getDataByGoodsBarcode(goodBarcod);
|
||
|
||
dtpValidTo.Value = dtpProduct.Value.AddDays(expiringDays);
|
||
|
||
// txtBatchBoxCnt.Text = maxValidCnt+"";
|
||
|
||
// txtBatchBoxCnt.Focus();
|
||
|
||
}
|
||
}
|
||
|
||
private void btnSeeds_Click(object sender, EventArgs e)
|
||
{
|
||
decimal batchCnt = getValidCount();;
|
||
if(batchCnt<=0){
|
||
return;
|
||
}
|
||
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
||
decimal seedsNum = client.getValidSeedsCnt(goodsId,batchCnt );
|
||
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
||
lbSeedsCnt.Text = seedsNum + "";
|
||
txtSeedsNum.Text = seedsNum+"";
|
||
|
||
}
|
||
|
||
decimal getValidCount()
|
||
{
|
||
string batchBoxCnt = txtBatchBoxCnt.Text.Trim();
|
||
|
||
string batchCnt = txtBachCnt.Text.Trim();
|
||
|
||
|
||
decimal packCount=0, bulkCount=0 ;
|
||
|
||
if (String.IsNullOrEmpty(batchBoxCnt) && String.IsNullOrEmpty(batchCnt))
|
||
{
|
||
MessageBox.Show("请输入验收数量");
|
||
txtBatchBoxCnt.Focus();
|
||
return 0;
|
||
}
|
||
|
||
try
|
||
{
|
||
|
||
if (!String.IsNullOrEmpty(batchBoxCnt))
|
||
{
|
||
packCount = Convert.ToDecimal(batchBoxCnt);
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
|
||
MessageBox.Show("请输入验收数量");
|
||
txtBatchBoxCnt.Focus();
|
||
return 0;
|
||
}
|
||
|
||
try
|
||
{
|
||
|
||
if (!String.IsNullOrEmpty(batchCnt))
|
||
{
|
||
bulkCount = Convert.ToDecimal(batchCnt);
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
MessageBox.Show("请输入验收数量");
|
||
txtBachCnt.Focus();
|
||
return 0;
|
||
}
|
||
|
||
|
||
|
||
decimal count = packCount * bigCount + bulkCount;
|
||
|
||
if (count == 0)
|
||
{
|
||
MessageBox.Show("请输入验收数量");
|
||
txtReceivePkgNum.Focus();
|
||
return 0;
|
||
}
|
||
|
||
|
||
|
||
return count;
|
||
}
|
||
|
||
|
||
private void btnValid_Click(object sender, EventArgs e)
|
||
{
|
||
// chkDouble.Checked = true;
|
||
|
||
if (chkDouble.Checked)
|
||
{
|
||
validLogin vl = new validLogin();
|
||
vl.setRole(WmsConstants.PERMISSION_VALID);
|
||
vl.ShowDialog();
|
||
}
|
||
|
||
if (chkDouble.Checked)
|
||
{
|
||
if (WmsConstants.SECOND_VALID_ER ==LoginInfo.UserId || WmsConstants.SECOND_VALID_ER <= 0)
|
||
{
|
||
MessageBox.Show("非法的第二验收人,验收失败");
|
||
return;
|
||
}
|
||
|
||
|
||
}
|
||
|
||
if (txtSeedsNum.ReadOnly)
|
||
{
|
||
txtSeedsNum.Text = txtBatchBoxCnt.Text;
|
||
}
|
||
|
||
string batch = txtBatch.Text.Trim();
|
||
|
||
string flowNo ="";
|
||
string seedsCnt = txtSeedsNum.Text.Trim();
|
||
|
||
decimal seedsCount = -100;
|
||
decimal count = getValidCount();
|
||
|
||
|
||
if (count <= 0 )
|
||
{
|
||
return;
|
||
}
|
||
|
||
if (count > maxValidCnt)
|
||
{
|
||
getDataByGoodsBarcode(this.txtValidGdBarcod.Text.Trim());//refresh data from svr.
|
||
if (count > maxValidCnt)
|
||
{
|
||
return;
|
||
}
|
||
|
||
}
|
||
|
||
try
|
||
{
|
||
|
||
|
||
if (!String.IsNullOrEmpty(seedsCnt))
|
||
{
|
||
seedsCount = Convert.ToDecimal(seedsCnt);
|
||
}
|
||
if (seedsCount <= 0 || seedsCount > count)
|
||
{
|
||
if(!txtSeedsNum.ReadOnly)
|
||
throw new Exception();
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
if (packCount > 0)
|
||
{
|
||
MessageBox.Show("请输入正确抽样数量");
|
||
txtSeedsNum.Focus();
|
||
return;
|
||
}
|
||
}
|
||
|
||
try
|
||
{
|
||
flowNo = txtShelfNo.Text.Trim(); ;
|
||
|
||
if (String.IsNullOrEmpty(flowNo ) )
|
||
{
|
||
throw new Exception();
|
||
}
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
MessageBox.Show("请输入正确上架流水号");
|
||
txtShelfNo.SelectAll();
|
||
txtShelfNo.Focus();
|
||
return;
|
||
}
|
||
|
||
|
||
|
||
DateTime dtProd = dtpProduct.Value;
|
||
DateTime dtValidTo = dtpValidTo.Value;
|
||
if (dtProd.Equals(dtValidTo))
|
||
{
|
||
dtpValidTo.Value = dtpProduct.Value.AddDays(expiringDays);
|
||
dtValidTo = dtpValidTo.Value;
|
||
}
|
||
|
||
/*
|
||
if (dtProd.AddDays(expiringDays) != dtValidTo)
|
||
{
|
||
DialogResult dr = MessageBox.Show("警告:日期输入和商品保质期天数不匹配! 是否继续?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
|
||
if (dr == DialogResult.No)
|
||
{
|
||
return;
|
||
}
|
||
}*/
|
||
|
||
if (DateTime.Now.AddDays(expiringDays/3) > dtValidTo)
|
||
{
|
||
DialogResult dr= MessageBox.Show("警告:商品剩余保质期已不足1/3,是否继续?","警告",MessageBoxButtons.YesNo,MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1);
|
||
|
||
if (dr == DialogResult.No)
|
||
{
|
||
return;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
if (dtProd > dtValidTo || dtProd > DateTime.Now)
|
||
{
|
||
MessageBox.Show("日期输入错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
|
||
return;
|
||
}
|
||
|
||
|
||
string prdDate =dtpProduct.Visible? dtProd.ToShortDateString():txtPrdDate.Text;
|
||
string valDate = dtpValidTo.Visible ? dtValidTo.ToShortDateString() :this.txtValidDate.Text;
|
||
seedsCount = dtpProduct.Visible ? seedsCount : count;
|
||
if (String.IsNullOrEmpty( batch))
|
||
{
|
||
batch = prdDate;
|
||
}
|
||
|
||
string[] skuKeys = { "生产日期", "到期日期", "厂家批次" ,"货主"};
|
||
string[] skuValues = { prdDate, valDate, batch, owner };
|
||
try
|
||
{
|
||
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
|
||
|
||
bool issueLocations = true; //按流水号入库,并分配货位
|
||
enumValidInResult result =(enumValidInResult) client.validIn(preInOrder, flowNo, goodsId, count, seedsCount, skuKeys, skuValues,
|
||
rdValidPass.Checked, issueLocations,WmsConstants.SECOND_VALID_ER , LoginInfo.UserId, LoginInfo.Token);
|
||
|
||
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
||
|
||
if (result == enumValidInResult.成功)
|
||
{
|
||
MessageBox.Show("验收成功");
|
||
|
||
initialThirdTabData();
|
||
//TODO: print sku info for into plate operation
|
||
|
||
}
|
||
else
|
||
{
|
||
MessageBox.Show("验收失败: " + result.ToString());
|
||
}
|
||
|
||
}
|
||
catch (Exception er)
|
||
{
|
||
Cursor.Current = System.Windows.Forms.Cursors.Default;
|
||
showErrorMsg(er, "验收失败");
|
||
|
||
}
|
||
|
||
WmsConstants.SECOND_VALID_ER = 0;
|
||
|
||
}
|
||
|
||
private void txtSkuId_KeyUp(object sender, KeyEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void rdValidFaild_Click(object sender, EventArgs e)
|
||
{
|
||
rdValidPass.Checked = !rdValidFaild.Checked;
|
||
}
|
||
|
||
private void rdValidPass_Click(object sender, EventArgs e)
|
||
{
|
||
rdValidFaild.Checked = !rdValidPass.Checked;
|
||
}
|
||
|
||
private void dtpProduct_ValueChanged(object sender, EventArgs e)
|
||
{
|
||
dtpValidTo.Value = dtpProduct.Value.AddDays(expiringDays);
|
||
}
|
||
|
||
private void rdReceive_Click(object sender, EventArgs e)
|
||
{
|
||
rdRefuse.Checked = !rdReceive.Checked;
|
||
}
|
||
|
||
private void rdRefuse_Click(object sender, EventArgs e)
|
||
{
|
||
rdReceive.Checked = !rdRefuse.Checked;
|
||
}
|
||
|
||
private void txtShelfNo_KeyUp(object sender, KeyEventArgs e)
|
||
{
|
||
if (e.KeyCode == Keys.Enter)
|
||
{
|
||
if (!isPreInOrderOkay())
|
||
{
|
||
return;
|
||
}
|
||
txtValidGdBarcod.SelectAll();
|
||
txtValidGdBarcod.Focus();
|
||
}
|
||
}
|
||
|
||
private void textPreInNo_GotFocus(object sender, EventArgs e)
|
||
{
|
||
textPreInNo.SelectAll();
|
||
}
|
||
|
||
private void txtReceiveGdBarcod_GotFocus(object sender, EventArgs e)
|
||
{
|
||
txtReceiveGdBarcod.SelectAll();
|
||
}
|
||
|
||
private void txtShelfNo_GotFocus(object sender, EventArgs e)
|
||
{
|
||
txtShelfNo.SelectAll();
|
||
}
|
||
|
||
private void txtValidGdBarcod_GotFocus(object sender, EventArgs e)
|
||
{
|
||
txtValidGdBarcod.SelectAll();
|
||
}
|
||
|
||
|
||
|
||
}
|
||
} |