ldj/winform/入库/GoodsValidation.cs

1920 lines
69 KiB
C#
Raw Normal View History

2023-05-23 16:13:17 +08:00
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraBars;
using DevExpress.XtraGrid.Views.Base;
//using DeiNiu.wms.Logical;
using DeiNiu.wms.Data;
using DevExpress.XtraGrid.Columns;
using System.Threading;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors.DXErrorProvider;
using DeiNiu.wms.Data.Model;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DeiNiu.Utils;
using DeiNiu.wms.win.utils.print;
//using DeiNiu.wms.win.ServiceReferenceInRequest;
//using DeiNiu.wms.win.ServiceReferenceInRequestLocal;
using DeiNiu.wms.win.ServiceReferenceStockInRequest;
using DeiNiu.wms.win.portalService;
using DeiNiu.wms.win.ServiceReferenceLot;
using DevExpress.XtraLayout;//debug
namespace DeiNiu.wms.win
{
public partial class GoodsValidation : BasicRibbonForm
{
printIn reportPrint = new printIn() ;
// lWmsStock ls = new lWmsStock();
// lWmsInRequest lgt = new lWmsInRequest();
private string fieldName = WmsLocation.fields.locationId.ToString();
private string fieldGoodType = WmsLocation.fields.whGoodsType.ToString();
private string lastQuery = "";
private DataTable dt;
private DataTable dtship;
private decimal bigcount;
decimal seedsCount = 0;
bool isDoubleChk = false;
// DataTable dtIndetail;
private int selectedRowIndex = -1;
private Erp_purch currentRequest;
private bool isShowingInRequest = true;
Dictionary<string, string> isDoublChk = new Dictionary<string, string>();
DataSet dsVal;
public GoodsValidation()
{
InitializeComponent();
initialControls();
initailErpData();
// loadData();
setupSkuInput();
isDoublChk.Add("N", "否");
isDoublChk.Add("Y", "是");
}
#region initialControls
private void initialControls()
{
// setDatePiker(dateEditFrom, dateEditTo);
initialComboBoxes();
// initialPagerControls();
initialDataGrid();
initialQueryInput();
setValidationRule();
textEditBarcode.GotFocus += new EventHandler(textEditBarcode_GotFocus);
textEditBarcode.MouseUp += new MouseEventHandler(textEditBarcode_MouseUp);
}
private void initialComboBoxes()
{
this.comboType.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
comboType.SelectedIndex = 0;
//this.comboState.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
/*
* Dictionary<int, string> dic = Utils.Util.convertEnumToDic(typeof(enumInStockOrderStatus));
dic.Remove((int)enumInStockOrderStatus.);
dic.Remove((int)enumInStockOrderStatus.);
*/
/*
Dictionary<int, string> dic = new Dictionary<int, string>();
// dic.Add((int)enumInStockOrderStatus.待验收, enumInStockOrderStatus.待验收.ToString());
// initialComboBoxs(comboState, dic,true);
string[] result = new string[2]{"合格","不合格"};
initialComboBoxs(comValidResult, result);
dic = Utils.Util.convertEnumToDic(typeof(enumWhType));
dic.Remove((int)enumWhType.);
dic.Remove((int)enumWhType.);
initialComboBoxs(comValidResult, dic, false);
*/
Node[] nds = { };
DataRow[] drs = Park.getDictionary(true).Select("flag >0");
foreach (DataRow dr in drs)
{
int flag = Convert.ToInt32(dr["flag"].ToString());
int parentId = Convert.ToInt32(dr["id"].ToString());
string condition = string.Format("parentId ={0} and name not like '{1}%' and name not like '{2}%' and name not like '{3}%'",
parentId, "A0","J","X");
DataRow[] drss = Park.getDictionary(false).Select(condition);
switch (flag)
{
case 2001:
initialComboBoxs(this.comValidResult, drss,true,"系统推荐"); //缓存分区
break;
}
}
}
private void setValidationRule()
{
// dxValidationProvider.SetValidationRule(comWarehouse, ValidationRules.notEmptyValidationRule);
//txtGoodType.Properties.MaxLength = 40;
//txtGoodDesc.Properties.MaxLength = 250;
//textEdit1.Properties.MaxLength = txtGoodType.Properties.MaxLength;
}
private void initialQueryInput()
{
}
private void initialDataGridColumns(GridView gridView)
{
setupGridView(gridView, false, false);
//setupGridView(gridView2, false,false);
//setupGridView(gridView3, false,false);
// gridviewGoodsType.PopulateColumns();
gridView.Columns.Clear();
// gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]);
GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
myCol0.Visible = false;
gridView.Columns.Add(myCol0);
GridColumn myCol3 = new GridColumn() { Caption = "供货商", Visible = true, FieldName = "venderName" };
GridColumn myCol7 = new GridColumn() { Caption = "联系人", Visible = true, FieldName = "contact" };
GridColumn myCol8 = new GridColumn() { Caption = "到货单", Visible = true, FieldName = "preInOrderNo" };
gridView.Columns.Add(myCol8);
gridView.Columns.Add(myCol3);
gridView.Columns.Add(myCol7);
//to show bottom scroll bar
gridView.OptionsView.ColumnAutoWidth = false;
gridView.BestFitColumns();
// gridView.Focus();
//if (gridView1 == gridView)
//{
// this.gridView1.Focus(); ;
//}
// initialGridView2Columns();
// gridControl2.DataSource = null;
}
private void initialGridView2Columns(GridView gridview)
{
setupGridView(gridview, false, false, false);
gridview.FocusRectStyle = DrawFocusRectStyle.None;
// gridviewGoodsType.PopulateColumns();
gridview.Columns.Clear();
// gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]);
GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
myCol0.Visible = false;
gridview.Columns.Add(myCol0);
GridColumn myCol1 = new GridColumn() { Caption = "商品编码", Visible = true, FieldName = Erp_purch_d.fields.goods_id.ToString() };
GridColumn myCol2 = new GridColumn() { Caption = "商品名称", Visible = true, FieldName = "goodsName"};
GridColumn myCol3 = new GridColumn() { Caption = "厂家", Visible = true, FieldName ="manufacturer"};
GridColumn myCol4 = new GridColumn() { Caption = "规格", Visible = true, FieldName = WmsGoods.exfields.spec.ToString() };
GridColumn myCol5 = new GridColumn() { Caption = "单位", Visible = true, FieldName = WmsGoods.exfields.unit.ToString() };
GridColumn myCol6 = new GridColumn() { Caption = "大包装数量", Visible = true, FieldName = WmsGoods.exfields.bigCount.ToString() };
GridColumn myCol7 = new GridColumn() { Caption = "剂型", Visible = true, FieldName = WmsGoods.exfields.type.ToString() };
GridColumn myCol8 = new GridColumn() { Caption = "商品类型", Visible = true, FieldName = WmsGoods.exfields.goodsTypeName.ToString() };
// GridColumn myCol9 = new GridColumn() { Caption = "大零", Visible = true, FieldName = WmsGoods.fields.bulkMax.ToString() };
// GridColumn myCol10 = new GridColumn() { Caption = "小整", Visible = true, FieldName = WmsGoods.fields.batchMax1.ToString() };
// GridColumn myCol11 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsGoods.fields.batchMax2.ToString() };
GridColumn myCol12 = new GridColumn() { Caption = "国药准字", Visible = true, FieldName = WmsGoods.exfields.regeditCode.ToString() };
GridColumn myCol13 = new GridColumn() { Caption = "订单数量", Visible = true, FieldName = Erp_purch_d.fields.count.ToString() };
GridColumn myCol132 = new GridColumn() { Caption = "应收数量", Visible = true, FieldName = "count1" };
GridColumn myCol131 = new GridColumn() { Caption = "收货数量", Visible = true, FieldName = Erp_purch_d.fields.receiveCount.ToString() };
GridColumn myCol133 = new GridColumn() { Caption = "拒收数量", Visible = true, FieldName = Erp_purch_d.fields.rejectCount.ToString() };
GridColumn myCol134 = new GridColumn() { Caption = "到货数量", Visible = true, FieldName = Erp_purch_d.fields.arriveCount.ToString() };
GridColumn myCol135 = new GridColumn() { Caption = "验收数量", Visible = true, FieldName = Erp_purch_d.fields.validCount.ToString() };
GridColumn myCol136 = new GridColumn() { Caption = "抽样数量", Visible = true, FieldName = Erp_receiveValidDetail.fields.seeds_count.ToString() };
GridColumn myCol137 = new GridColumn() { Caption = "验收人1", Visible = true, FieldName = "validByName" };
GridColumn myCol138 = new GridColumn() { Caption = "验收人2", Visible = true, FieldName = "validByName1" };
GridColumn myCol139 = new GridColumn() { Caption = "验收数量", Visible = true, FieldName = Erp_receiveValidDetail.fields.valid_count.ToString() };
GridColumn myCol140 = new GridColumn() { Caption = "验收结果", Visible = true, FieldName = Erp_receiveValidDetail.fields.validResult.ToString() };
GridColumn myCol14 = new GridColumn() { Caption = "批号", Visible = true, FieldName = WmsInRequestDetail.fields.batch.ToString() };
// GridColumn myCol15 = new GridColumn() { Caption = "生产日期", Visible = true, FieldName = WmsInRequestDetail.fields.productDate.ToString() };
// GridColumn myCol16 = new GridColumn() { Caption = "有效期", Visible = true, FieldName = WmsInRequestDetail.fields.validDate.ToString() };
GridColumn myCol17 = new GridColumn() { Caption = "状态", Visible = true, FieldName = "wms_state" };
GridColumn myCol18 = new GridColumn() { Caption = "说明", Visible = true, FieldName = Erp_purch_d.fields.receiveRemark.ToString() };
GridColumn myCol181 = new GridColumn() { Caption = "说明", Visible = true, FieldName = "reason" };
GridColumn myCol19 = new GridColumn() { Caption = "双人验收", Visible = true, FieldName = "isDouChk" };
// GridColumn myCol20 = new GridColumn() { Caption = "入库数量", Visible = true, FieldName = WmsOutPickLable.fields.count.ToString() };
// GridColumn myCol21 = new GridColumn() { Caption = "上架数量", Visible = true, FieldName = WmsInUpPort.fields.upCount.ToString() };
// GridColumn myCol22 = new GridColumn() { Caption = "上架说明", Visible = true, FieldName = WmsInUpPort.fields.description.ToString() };
// GridColumn myCol23 = new GridColumn() { Caption = "ABC", Visible = true, FieldName = "goodsABC" };
// GridColumn myCol24 = new GridColumn() { Caption = "箱", Visible = true, FieldName = "box" };
// GridColumn myCol25 = new GridColumn() { Caption = "操作人", Visible = true, FieldName = "em_name" };
// GridColumn myCol26 = new GridColumn() { Caption = "操作时间", Visible = true, FieldName = "createtime" };
GridColumn myCol150 = new GridColumn() { Caption = "skuId", Visible = true, FieldName = "skuId" };
GridColumn myCol151 = new GridColumn() { Caption = "sku", Visible = true, FieldName = "skuCode" };
GridColumn myCol152 = new GridColumn() { Caption = "货主", Visible = true, FieldName = "ownerName" };
GridColumn myCol153 = new GridColumn() { Caption = "拼音", Visible = true, FieldName = "pinYin" };
gridview.Columns.Add(myCol2);
gridview.Columns.Add(myCol17);
// gridview.Columns.Add(myCol14);
// gridview.Columns.Add(myCol152);
if (gridview == gridView2)
{
gridview.Columns.Add(myCol13);
// gridview.Columns.Add(myCol132);
// gridview.Columns.Add(myCol134);
gridview.Columns.Add(myCol131);
gridview.Columns.Add(myCol135);
}
else
{
gridview.Columns.Add(myCol150);
gridview.Columns.Add(myCol151);
gridview.Columns.Add(myCol14);
gridview.Columns.Add(myCol139);
gridview.Columns.Add(myCol136);
gridview.Columns.Add(myCol140);
gridview.Columns.Add(myCol137);
gridview.Columns.Add(myCol138);
}
// gridview.Columns.Add(myCol133);
// gridview.Columns.Add(myCol23);
gridview.Columns.Add(myCol5);
gridview.Columns.Add(myCol19);
// gridview.Columns.Add(myCol14);
// gridview.Columns.Add(myCol13);
// gridview.Columns.Add(myCol5);
gridview.Columns.Add(myCol3);
// gridview.Columns.Add(myCol15);
// gridview.Columns.Add(myCol16);
gridview.Columns.Add(myCol3);
// gridview.Columns.Add(myCol8);
// gridview.Columns.Add(myCol9);
// gridview.Columns.Add(myCol10);
// gridview.Columns.Add(myCol11);
gridview.Columns.Add(myCol2);
gridview.Columns.Add(myCol6);
gridview.Columns.Add(myCol4);
gridview.Columns.Add(myCol7);
gridview.Columns.Add(myCol12);
gridview.Columns.Add(myCol1);
if (gridview == gridView2)
{
gridview.Columns.Add(myCol18);
}
else
{
gridview.Columns.Add(myCol181);
}
gridview.Columns.Add(myCol153);
//to show bottom scroll bar
gridview.OptionsView.ColumnAutoWidth = false;
gridview.BestFitColumns();
// gridView2.Focus();
}
#endregion
private void initialRequestOrders()
{
showWaitForm();
try{
//inClient.getInRequests();
// getInValidOrders();
}
//catch (DeiNiuTimeOutException te)
//{
//
//}
catch(Exception e){
showErrorMsg(e.Message);
}
finally{
closeWaitForm();
}
}
string currrentPreNo = "";
string currrentVenderPinyin = "";
void queryPre()
{
lbVender.Text =
lbPhone.Text =
lbContact.Text ="";
if (this.txtVender.Text.Trim().Length == 0)
{
return;
}
showWaitForm();
// currrentPreNo = txtOrderNo.Text.Trim();
currrentVenderPinyin = this.txtVender.Text.Trim();
try
{
// dt = inClient.getReceiveDetailByPreInOrder(this.txtOrderNo.Text.Trim());
dsVal = inClient.getPreInVenderDetailsWindows(currrentVenderPinyin,comboType.SelectedIndex);
dt = dsVal.Tables[0];
DataView dv = dt.DefaultView;
this.gridControl1.DataSource = dv;
this.initialDataGridColumns(gridView1);
//update selected row index to the last updated one.
bool firstLoad = this.gridControl1.DataSource == null;
//this.gridControl1.DataSource = dt.DefaultView;
// initialDataGridColumns(gridView1);
//update selected row index to the last updated one.
dt.PrimaryKey = new DataColumn[] { dt.Columns["preInOrderNo"] };
gridControl1.Visible = true;
if (currentRequest != null)
{
/* selectedRowIndex = -1;
DataRow dr = dt.Rows.Find(currentRequest.vender);
if (dr != null)
{
selectedRowIndex = dt.Rows.IndexOf(dr);
}
if (selectedRowIndex >= 0 && dt.Rows.Count > selectedRowIndex)
{
// gridView1.SelectRow(selectedRowIndex);
gridView1.FocusedRowHandle = selectedRowIndex;
// gridView1.MakeRowVisible(selectedRowIndex);
}
*/
//gridView1.FocusedRowHandle = selectedRowIndex;
}
else
// if (firstLoad)
{
selectedRowIndex = 0;
gridView1.FocusedRowHandle = 0;
gridView1.SelectRow(0);
}
selectedInIndex = 0;
setCurrentRequest4ValidateDetail();
closeWaitForm();
}
catch (Exception e)
{
showErrorMsg(e, e.Message);
}
closeWaitForm();
}
private void bindDetail()
{
}
private void setDataBack()
{
}
private bool validData()
{
bool isvalid = dxValidationProvider1.Validate();
// MessageBox.Show("goodtype is " + txtGoodType.Text +", is valid ? " + isvalid);
return isvalid;
//String gdtype = txtGoodType.Text.Trim();
//if (gdtype.Length == 0)
//{
// dxValidationProvider.Validate();
// return false;
//}
//return true;
}
bool isCheckedIn = false;
private void gridView1_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
{
if (gridView1.FocusedRowHandle < 0 || gridView1.FocusedRowHandle == selectedRowIndex || gridView1.FocusedRowHandle==0 && isCheckedIn)
{
isCheckedIn = gridView1.FocusedRowHandle > 0;
if (gridView1.IsGroupRow(e.RowHandle)) //set first row of group selected
{
selectedRowIndex = gridView1.GetChildRowHandle(e.RowHandle, 0);
setCurrentRequest4ValidateDetail();
}
if (isCheckedIn)
{
isCheckedIn = false;
}
return;
}
selectedRowIndex = gridView1.FocusedRowHandle;
// showErrorMsg("selection:"+ selectedRowIndex);
setCurrentRequest4ValidateDetail();
}
private void clearInputs()
{
}
private void gridView1_DataSourceChanged(object sender, EventArgs e)
{
if (selectedRowIndex >= 0 && dt.Rows.Count > selectedRowIndex)
{
gridView1.FocusedRowHandle = selectedRowIndex;
gridView1.MakeRowVisible(selectedRowIndex);
}
}
//to show in detail
int selectedInIndex =-1;
string selectedInGoodsName = "";
int selectedId = -1;
int selectedPurDetailId = -1;
Erp_purch_d currentDetail = null;
private void gridView2_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
{
if (!isShowingInRequest)
{
return;
}
if (gridView2.FocusedRowHandle < 0 || gridView2.FocusedRowHandle == selectedInIndex)
{
if (gridView2.IsGroupRow(e.RowHandle)) //set first row of group selected
{
selectedInIndex = gridView2.GetChildRowHandle(e.RowHandle, 0);
setCurrentInDetail();
}
return;
}
selectedInIndex = gridView2.FocusedRowHandle;
// showErrorMsg("selection:"+ selectedRowIndex);
setCurrentInDetail();
}
private void gridView2_DataSourceChanged(object sender, EventArgs e)
{
if (!isShowingInRequest)
{
return;
}
if (selectedInIndex >= 0)// && dtIndetail.Rows.Count > selectedInIndex)
{
gridView2.FocusedRowHandle = selectedInIndex;
gridView2.MakeRowVisible(selectedInIndex);
}
}
private bool getCurrentInObject()
{/*
if (!isShowingInRequest)
{
return false;
}
*/
clearDetail();
if (selectedInIndex < 0)// || selectedInIndex >= dtIndetail.Rows.Count)
{
return false;
}
// DataRow currentRow = dt.Rows[selectedRowIndex];
DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridView2)[selectedInIndex]);
if (string.IsNullOrEmpty(dr["goodsId"].ToString()))
{
throw new Exception("无相关商品信息");
}
currrentPreNo = dr["preInOrderNo"].ToString();
selectedInGoodsName = dr["goodsName"].ToString();
selectedId =Convert.ToInt32( dr["id"].ToString());
lbGoodType.Text = dr["type"].ToString();
lbManufacturer.Text = dr["manufacturer"].ToString();
lbUnit.Text = dr["unit"].ToString();
bigcount = Convert.ToDecimal(dr["bigCount"].ToString());
currentDetail = new Erp_purch_d(dr.Row);
// createSKUinputs(currentDetail.goods_id);
lbBox.Text = ((currentDetail.receiveCount - currentDetail.validCount) / bigcount ).ToString("f2");
isDoubleChk =! "0".Equals( dr["IsDouChk"].ToString().Trim());
lgDoulbeChk.Visibility = isDoubleChk ? DevExpress.XtraLayout.Utils.LayoutVisibility.Always
: DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
return true;
}
private void setCurrentInDetail()
{
try
{
if (!getCurrentInObject() || selectedInGoodsName == null)
{
return;
}
/// gridView1.FocusedRowHandle = selectedRowIndex;//
// gridView1.SelectRow(selectedRowIndex);
showWaitForm();
decimal avCnt = currentDetail.receiveCount - currentDetail.validCount;
lbGoodsName.Text = selectedInGoodsName;
lb4ValidateCount.Text = Convert.ToInt32(avCnt) + "";
this.txtBulkCnt.Text = Convert.ToInt32(avCnt % bigcount) + "";
textEditSeedsCount.Text = "0";
txtBatchCount.Text = Math.Floor(avCnt / bigcount) + "";// (currentDetail.receiveCount - currentDetail.validCount).ToString("f0");
btnValidateItem.Enabled = true;
txtBatch.Enabled = txtPrdDate.Enabled = txtValidDate.Enabled = comboType.SelectedIndex == 0;
txtBatch.Text =
txtPrdDate.Text =
txtValidDate.Text = "";
if (comboType.SelectedIndex == 1)
{
txtBatch.Text = currentDetail.batch;
txtPrdDate.Text =Util.getShortDateString( currentDetail.productDate);
txtValidDate.Text =Util.getShortDateString( currentDetail.validDate);
}
}
catch (Exception e)
{
showErrorMsg(e.Message);
}
closeWaitForm();
}
private void btnDelete_Click(object sender, EventArgs e)
{
}
private void bbQuery_ItemClick_1(object sender, ItemClickEventArgs e)
{
this.bbQuery.Enabled = false;
queryPre();
}
private bool getCurrentObject()
{
clearDetail();
if (selectedRowIndex <0 || selectedRowIndex >= dt.Rows.Count)
{
return false;
}
// DataRow currentRow = dt.Rows[selectedRowIndex];
DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridView1)[selectedRowIndex]);
currentRequest = new Erp_purch(dr.Row);
this.gridControl2.DataSource = null;
// btnIn.Enabled = false;
lbVender.Text = currentRequest.venderName;
lbPhone.Text = dr["phone"].ToString();
lbContact.Text = dr["contact"].ToString();
currrentPreNo = dr["preInOrderNo"].ToString();
return true;
}
void clearDetail()
{
selectedInGoodsName ="";
lbGoodType.Text = "";
lbManufacturer.Text = "";
txtBatchCount.Text = "";
txtBulkCnt.Text= lbBox.Text = this.textEditBarcode.Text = lbGoodsName.Text = textEditSeedsCount.Text =
this.lb4ValidateCount.Text = lbUnit.Text = "";
seedsCount = 0;
bigcount = 0;
isDoubleChk = false;
lgDoulbeChk.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
txtAccount.Text = "";
txtPasswd.Text = "";
btnValidateItem.Enabled = false;
txtBatch.Text =
txtPrdDate.Text =
txtValidDate.Text = "";
}
private void btnQuery_Click(object sender, EventArgs e)
{
queryPre();
}
private void gridView1_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
{
if (gridView1.FocusedRowHandle <0 || gridView1.FocusedRowHandle == selectedRowIndex)
{
return;
}
selectedRowIndex = gridView1.FocusedRowHandle;
// showErrorMsg("selection:"+ selectedRowIndex);
setCurrentRequest4ValidateDetail();
}
private void initialDataGrid()
{
gridView1.OptionsSelection.MultiSelect = true;//按shift / control 多选
this.gridView1.OptionsBehavior.AutoPopulateColumns = false;
this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.CellFocus;
this.gridView1.OptionsBehavior.Editable = false;
// this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
gridView1.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
this.gridView1.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView1_FocusedRowObjectChanged);
this.gridView1.DataSourceChanged += new System.EventHandler(this.gridView1_DataSourceChanged);
//show line number
this.gridView1.IndicatorWidth = 40;
this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
this.gridView2.IndicatorWidth = 40;
this.gridView2.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
gridView2.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
gridView2.CustomDrawCell += gridView_CustomDrawCell;
gridView2.RowCellStyle += gridView_RowCellStyle;
gridView1.RowCellStyle += gridView_RowCellStyle;
this.gridView2.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView2_FocusedRowObjectChanged);
gridView1.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
gridView1.CustomDrawCell += gridView_CustomDrawCell;
}
private void gridView2_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
{
// if (sender == gridView2)
{
if (e.Column.FieldName == "wms_state")
{
if (!stockInLocationStatus.ContainsValue(e.DisplayText))
{
int display = -100;
string disTxt = e.DisplayText;
try
{
2023-09-04 22:41:19 +08:00
display = Convert.ToInt32(e.DisplayText);
2023-05-23 16:13:17 +08:00
if (sender == gridView2)
{
e.DisplayText = this.enumReceiveDetailStatus[display];
}
else
{
e.DisplayText = this.inRequestStatus[display];
}
}
catch
{
return;
}
}
// e.DisplayText = stockInLocationStatus.ContainsKey(display) ? stockInLocationStatus[display] : display+"";
}
else if (e.Column.FieldName == "validResult")
{
if (!stockInLocationStatus.ContainsValue(e.DisplayText))
{
int display = -100;
string disTxt = e.DisplayText;
try
{
2023-09-04 22:41:19 +08:00
display = Convert.ToInt32(e.DisplayText);
2023-05-23 16:13:17 +08:00
e.DisplayText = this.whType[display];
}
catch
{
return;
}
}
}
else if (e.Column.FieldName == "IsDouChk")
{
if (!isDoublChk.ContainsValue(e.DisplayText))
{
string disTxt = e.DisplayText;
try
{
e.DisplayText = isDoublChk[disTxt];
}
catch
{
return;
}
}
}
else if (e.Column.FieldName == "orderBulkPickstate")
{
if (!pickStatus.ContainsValue(e.DisplayText))
{
string disTxt = e.DisplayText;
int display = -100;
try
{
2023-09-04 22:41:19 +08:00
display = Convert.ToInt32(e.DisplayText);
2023-05-23 16:13:17 +08:00
e.DisplayText = this.pickStatus[display];
}
catch
{
return;
}
}
}
}
}
void gridView_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
//var currentView = sender as GridView;
//if (currentView != null && e.RowHandle == currentView.FocusedRowHandle) return;
Rectangle r = e.Bounds;
if (e.Column.FieldName == "IsDouChk" && e.CellValue !=null)
{
string a = e.CellValue.ToString();
string b = e.DisplayText;
if (b.Equals("是"))
{
e.Appearance.ForeColor = Color.Red;
e.Appearance.DrawString(e.Cache, e.DisplayText, r);
e.Handled = true;
}
}
}
void gridView_RowCellStyle(object sender,DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
var currentView = sender as GridView;
if( currentView == null){return;}
if (!currentView.GetDataRow(e.RowHandle).Table.Columns.Contains("wms_state"))
{
return;
}
string state = currentView.GetDataRow(e.RowHandle)["wms_state"].ToString().Trim();
if (state == "0")
{
return;
}
bool isFocused = e.RowHandle == currentView.FocusedRowHandle;
DevExpress.Utils.AppearanceDefault rowStyle = null;
DevExpress.Utils.AppearanceDefault appBlueRed =
new DevExpress.Utils.AppearanceDefault (Color.White, Color.Red, Color.Empty, Color.Blue, System.Drawing.Drawing2D.LinearGradientMode.Horizontal);
DevExpress.Utils.AppearanceDefault appYB =
new DevExpress.Utils.AppearanceDefault(Color.White, Color.Red, Color.Green);
DevExpress.Utils.AppearanceDefault alertFocus = new DevExpress.Utils.AppearanceDefault(Color.White, Color.Red, Color.Green, Color.Yellow);
DevExpress.Utils.AppearanceDefault alert = new DevExpress.Utils.AppearanceDefault(Color.Red, Color.White );
DevExpress.Utils.AppearanceDefault passedFocus = new DevExpress.Utils.AppearanceDefault(Color.White, Color.Gray);
DevExpress.Utils.AppearanceDefault passed = new DevExpress.Utils.AppearanceDefault(Color.Gray, Color.White);
if (state == "3" )
{
rowStyle = isFocused ? passedFocus : passed;
}
else if (state == "1")
{
rowStyle = isFocused ? alertFocus : alert;
}
DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, rowStyle);
/*
if (sender == this.gridView2)
{
if (this.gridView2.GetDataRow(e.RowHandle)["state"].ToString().Trim() == "2")
{
DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alert);
}
}else if(sender == this.gridView1){
if ( state == "2")
{
if (currentView != null && e.RowHandle == currentView.FocusedRowHandle)
{
DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alertFocus);
}
else
{
DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alert);
}
}
else if (state == "1")
{
DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, passed);
}
}
*/
}
private void setCurrentRequest4ValidateDetail()
{
this.gridControl2.DataSource = null;
// this.gridControl3.DataSource = null;
if (!getCurrentObject() || currentRequest == null)
{
return;
}
/// gridView1.FocusedRowHandle = selectedRowIndex;//
// gridView1.SelectRow(selectedRowIndex);
try
{
isShowingInRequest = true;
// if( dsVal==null || dsVal.Tables.Count<2){
// return;
// }
DataView dv =inClient.getReceiveDetailByPreInOrder(currrentPreNo).DefaultView;
// DataView dv = dsVal.Tables[1].DefaultView;
// dv.RowFilter = string.Format("vender={0}", currentRequest.vender);
this.gridControl2.DataSource = dv;
initialGridView2Columns(gridView2);
selectedInIndex = gridView2.FocusedRowHandle;
setCurrentInDetail();
// setCurrentRequestValidatedDetail();
}
catch (Exception e)
{
showErrorMsg(e.Message);
}
}
private void btnIn_Click(object sender, EventArgs e)
{
/*
int lastSelectedIndex = 0;
showWaitForm();
try
{
// lgt.requestInStock(selectedRequest.orderNo);
decimal arriveNumber = Convert.ToDecimal(txtArrave.Text.ToString().Trim());
decimal number = Convert.ToDecimal(textEditReceiveNum.Text.ToString().Trim());
if (arriveNumber < number)
{
showErrorMsg("收货、拒收数量不能大于到货数量。");
return;
}
if (number + currentDetail.receiveCount > currentDetail.count)
{
showInfoMsg("数量超收。");
}
int receiveType =this.comboPdStatus.SelectedIndex ;
inClient.receiveDetail(selectedId,arriveNumber, number, receiveType, filtRiskChar(memPdRemark.Text.Trim()));
closeClient();
lastSelectedIndex = gridView2.FocusedRowHandle;
isCheckedIn = true;
// query();
}
catch (Exception er)
{
// setCurrentRequestDetail();
showErrorMsg(er.Message);
}
setCurrentRequest4ValidateDetail();
gridView2.FocusedRowHandle = lastSelectedIndex;
closeWaitForm();
*/
}
private void GoodsInForm_FormClosing(object sender, FormClosingEventArgs e)
{
//closeClient();
}
protected new void gridview_GotFocus(object sender, EventArgs e)
{
if (sender == gridView1)
{
//grid4Valid.ForeColor = Color.Blue;
// gridView4Valid.OptionsSelection.EnableAppearanceHideSelection = true;
if (!isShowingInRequest)
{
this.setCurrentRequest4ValidateDetail();
}
switchGridViewRowSelection(gridView1, true);
}
else
{
switchGridViewRowSelection((GridView)sender, true);
}
}
void textEditBarcode_MouseUp(object sender, MouseEventArgs e)
{
//如果鼠标左键操作并且标记存在,则执行全选
if (e.Button == MouseButtons.Left && textEditBarcode.Tag != null && (bool)textEditBarcode.Tag == true)
{
textEditBarcode.SelectAll();
}
//取消全选标记
textEditBarcode.Tag = false;
}
void textEditBarcode_GotFocus(object sender, EventArgs e)
{
textEditBarcode.Tag = true; //设置标记
textEditBarcode.SelectAll(); //注意1
}
private void txtQuery_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || dsVal==null || dsVal.Tables.Count<2)
{
return;
}
string barcode = this.textEditBarcode.Text.Trim();
DataView dv =this.dsVal.Tables[1] .DefaultView;
dv.RowFilter = "";
this.gridControl2.DataSource = dv;
if (string.IsNullOrEmpty(barcode))
{
return;
}
dv.RowFilter = string.Format("pinYin like '%{0}%'", barcode);
if (dv.Count == 0)
{
clearDetail();
return;
}
setCurrentInDetail();
}
private void barBiSyncGoods_ItemClick(object sender, ItemClickEventArgs e)
{
initailErpData();
}
/// <summary>
/// 同步erp 信息
/// </summary>
private void initailErpData()
{
showWaitForm("正在同步商品信息");
try
{
//同步商品信息
//lWmsGoods lg = new lWmsGoods();
//lg.getWmsGoods.syncGoods();
goodClient.syncGoods();
closeClient();
closeWaitForm();
}
catch (Exception e)
{
LogHelper.WriteLog(this.GetType(), e);
// showErrorMsg(e.Message);
closeWaitForm();
}
}
private bool isValidInput(StructsValideIn svi)
{
if (String.IsNullOrEmpty(svi.flowNo.Trim()))
{
// showErrorMsg("请输入验收托盘码");
// txtFlowNo.Focus();
svi.flowNo = currrentPreNo;
// return false;
}
if (svi.seeds_count <=0 )
{
showErrorMsg("请输入抽样数量");
textEditSeedsCount.Focus();
return false;
}
if (svi.seeds_count > svi.valid_count)
{
showErrorMsg("抽样数量不能大于验收数量");
textEditSeedsCount.Focus();
return false;
}
if (svi.valid_count <= 0 ||svi.valid_count > currentDetail.receiveCount - currentDetail.validCount)
{
showErrorMsg("请输入正确的验收数量");
txtBatchCount.Focus();
return false;
}
/*
if (String.IsNullOrEmpty(svi.batch))
{
showErrorMsg("请输入批号信息");
return false;
}
if (string.IsNullOrEmpty(svi.product_date))
{
showErrorMsg("请输入生产日期");
return false;
}
if (string.IsNullOrEmpty(svi.save_date))
{
showErrorMsg("请输入失效日期");
return false;
}
DateTime prdDate = DateTime.ParseExact(svi.product_date, WmsConstants.GOODS_VALID_DATE_FORMAT, System.Globalization.CultureInfo.CurrentCulture);
DateTime vldDate = DateTime.ParseExact(svi.save_date, WmsConstants.GOODS_VALID_DATE_FORMAT, System.Globalization.CultureInfo.CurrentCulture);
if (prdDate >= DateTime.Now)
{
showErrorMsg("生产日期错误");
//txtProductDate.Focus();
return false;
}
if (vldDate <= DateTime.Now)
{
showErrorMsg("产品过期");
// txtValidDate.Focus();
return false;
}
if (vldDate <= prdDate)
{
showErrorMsg("效期错误,请检查输入的效期、生产日期");
//txtValidDate.Focus();
return false;
}
*/
if (isDoubleChk )
{
if( string.IsNullOrEmpty(txtAccount.Text) || string.IsNullOrEmpty(txtPasswd.Text.Trim())){
showErrorMsg("重点商品,需要双人验收!");
this.txtAccount.Focus();
return false;
}
if (!checkPermission(WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK))
{
showErrorMsg(LoginInfo.Account + " 权限不足,需要特殊权限:" + WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK);
return false;
}
if ( checkPermission(svi.validAccount1, txtPasswd.Text, WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK)<=0)
{
showErrorMsg(svi.validAccount1 + " 权限不足,需要特殊权限:" + WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK);
return false;
}
}
return true;
}
private void btnValidateItem_Click(object sender, EventArgs e)
{
doValidation();
}
void doValidation()
{
try
{
showWaitForm();
StructsValideIn svi = new StructsValideIn();
svi.preInOrder = currrentPreNo;
svi.flowNo = currrentPreNo;
// svi.batch = txtBatch.Text;
svi.goods_id = currentDetail.goods_id;
// svi.product_date = txtProductDate.Text;
// svi.save_date = txtValidDate.Text;
2023-09-04 22:41:19 +08:00
decimal count = Convert.ToInt32(txtBatchCount.Text) * bigcount + Convert.ToInt32(this.txtBulkCnt.Text);
2023-05-23 16:13:17 +08:00
svi.seeds_count = Convert.ToDecimal(textEditSeedsCount.Text);
svi.valid_count = count;
svi.validby = LoginInfo.UserId;
svi.validAccount = LoginInfo.Account;
svi.validAccount1 = "";
// svi.validby1 = -1;
if (isDoubleChk)
{
svi.validby1 = validUser(svi.validAccount1, txtPasswd.Text);
svi.validAccount1 = filtRiskChar(txtAccount.Text);
// svi.validPasswd = Util.Encrypt(txtPasswd.Text);
}
svi.receive_order = currentDetail.pur_order;
svi.purch_d_id = currentDetail.ID;
svi.wms_state = (int)enumReceiveStockDetailStatus.;
if (string.IsNullOrEmpty(this.txtBatch.Text.Trim()))
{
showErrorMsg("请输入" + WmsConstants.SKU_RESEVRED_BATCH_ATTNAME);
txtBatch.Focus();
return;
}
if (string.IsNullOrEmpty(this.txtPrdDate.Text.Trim()))
{
showErrorMsg("请输入" + WmsConstants.SKU_RESEVRED_PRDDATE_ATTNAME);
txtPrdDate.Focus();
return;
}
if (string.IsNullOrEmpty(this.txtValidDate.Text.Trim()))
{
showErrorMsg("请输入" + WmsConstants.SKU_RESEVRED_EXPIREDATE_ATTNAME);
txtValidDate.Focus();
return;
}
skuValues.Clear();
skuValues.Add(WmsConstants.SKU_RESEVRED_BATCH_ATTNAME, this.txtBatch.Text.Trim());
skuValues.Add(WmsConstants.SKU_RESEVRED_PRDDATE_ATTNAME, this.txtPrdDate.Text.Trim());
skuValues.Add(WmsConstants.SKU_RESEVRED_EXPIREDATE_ATTNAME, this.txtValidDate.Text.Trim());
/*
if (!validSkus())
{
closeWaitForm();
return;
}
*/
svi.batch = "";
svi.product_date = "";
svi.save_date = "";
if (skuValues.ContainsKey(WmsConstants.SKU_RESEVRED_BATCH_ATTNAME))
svi.batch = skuValues[WmsConstants.SKU_RESEVRED_BATCH_ATTNAME];
if (skuValues.ContainsKey(WmsConstants.SKU_RESEVRED_PRDDATE_ATTNAME))
svi.product_date = skuValues[WmsConstants.SKU_RESEVRED_PRDDATE_ATTNAME];
if (skuValues.ContainsKey(WmsConstants.SKU_RESEVRED_EXPIREDATE_ATTNAME))
svi.save_date = skuValues[WmsConstants.SKU_RESEVRED_EXPIREDATE_ATTNAME];
if (skuValues.ContainsKey(WmsConstants.SKU_RESEVRED_ENTI_ATTNAME))
svi.entId = skuValues[WmsConstants.SKU_RESEVRED_ENTI_ATTNAME];
/*if (comValidResult.SelectedIndex == 0 && tbDest.SelectedTabPageIndex == 1)//越仓
{
svi.cachePartion = ((Node)this.combCache.SelectedItem).ID;
svi.validResult = (int)enumWhType.;
}*/
string[] skuKeys = { WmsConstants.SKU_RESEVRED_PRDDATE_ATTNAME, WmsConstants.SKU_RESEVRED_EXPIREDATE_ATTNAME, WmsConstants.SKU_RESEVRED_BATCH_ATTNAME };
string[] skuValuess = { svi.product_date, svi.save_date, svi.batch };
svi.validResult = (int)enumWhType.;
/*if (comValidResult.SelectedIndex == 0)
{
svi.validResult = (int)enumWhType.;
if (currentDetail.storeType == 1)//越仓
{
svi.zhitongPartion = currentDetail.zhitongPartion;
svi.validResult = (int)enumWhType.;
svi.whType = svi.validResult;
}
}
else
{
svi.validResult = (int)enumWhType.;
}
*/
if (!isValidInput(svi))
{
closeWaitForm();
return;
}
if (string.IsNullOrEmpty(svi.flowNo))
{
svi.flowNo = svi.preInOrder;
}
bool checkExp = !checkPermission(WmsConstants.SPECIAL_VALID_NEAR_EXPIRED);
int prefWarehouse = 0;
if (comValidResult.SelectedIndex > 0)
{
prefWarehouse = ((Node)comValidResult.SelectedItem).ID;
}
enumValidInResult result = inClient.validIn(svi.preInOrder, svi.flowNo, svi.goods_id,
2023-11-21 19:18:23 +08:00
svi.valid_count, svi.seeds_count, skuKeys, skuValuess, true, true,false, svi.validby1, prefWarehouse,checkExp);
2023-05-23 16:13:17 +08:00
if (result != enumValidInResult.)
{
throw new Exception(result.ToString());
}
clearDetail();
// this.queryPre();
// closeClient();
setCurrentRequest4ValidateDetail();// this.setCurrentInDetail();
closeWaitForm();
// query();
}
catch (Exception er)
{
closeClient();
closeWaitForm();
showErrorMsg(er.Message);
}
}
private void txtBatchCount_EditValueChanged(object sender, EventArgs e)
{
setSeedCnt();
}
void setSeedCnt()
{
try
{
if (string.IsNullOrEmpty(txtBatchCount.Text))
{
txtBatchCount.Text = "";
return;
}
decimal batchCount = Convert.ToDecimal(txtBatchCount.Text.Trim());
decimal bulkcnt = Convert.ToDecimal(this.txtBulkCnt.Text.Trim());
decimal boxcnt = batchCount;
decimal seedsStep = WmsConstants.GOODS_IN_VALID_SEEDS_BOXS_STEP;
decimal minStep = WmsConstants.GOODS_IN_VALID_SEEDS_BOXS_STEP_MIN; ;
decimal stepFactor = WmsConstants.GOODS_IN_VALID_SEEDS_BOXS_STEP_FACTOR; ;
if (batchCount +bulkcnt > currentDetail.receiveCount - currentDetail.validCount)
{
throw new Exception("验收数量不能大于可用数量");
}
if (boxcnt < seedsStep)
{
if (boxcnt > minStep)
{
seedsCount = minStep;
}
else
{
seedsCount = boxcnt;
}
}
else
{
seedsCount = minStep + Math.Ceiling((boxcnt - seedsStep) / seedsStep) * stepFactor;
}
seedsCount = seedsCount * bigcount + bulkcnt;
textEditSeedsCount.Text = seedsCount + "";
}
catch (Exception er)
{
showErrorMsg(er.Message);
txtBatchCount.Focus();
}
}
string getValidDate(string strDate,bool isLeft = true)
{
string[] invailidChars = { ".", "-", "/" };
foreach (string s in invailidChars)
{
if (WmsConstants.GOODS_VALID_DATE_FORMAT.IndexOf(s) == -1)
{
strDate = strDate.Replace(s, "");
}
}
if (strDate.Length < 6 || strDate.Length > 8 )
{
if (WmsConstants.IN_STOCK_CHECK_DATE)
{
return "";
}
}
if (isLeft)
{
strDate += strDate.Length == 6 ? "01" : "";
}
else
{
strDate += strDate.Length == 6 ? "28" : "";
}
return strDate;
}
//-----------create sku input controls
// List<LotAtt> ATTs = new List<LotAtt>();
Dictionary<LotAtt, BaseEdit> SKUs = new Dictionary<LotAtt, BaseEdit>();
int lastLotId =0;
private void createSKUinputs(string goodsId)
{
DataTable lotAtts =null;
try
{
showWaitForm();
DataTable dt= lotClient.getLotAtts(goodsId);
DataView dv = dt.DefaultView;
dv.Sort = "ID desc";
lotAtts = dv.ToTable("lot");
lotClient.Close();
closeWaitForm();
}
catch (Exception e)
{
closeWaitForm();
showErrorMsg(e, "出错了");
return;
}
List<LayoutControlItem> liSKU = new List<LayoutControlItem>();
int pjCount = lotAtts.Rows.Count;
if (pjCount == 0)
{
lastLotId = 0;
lcgSKUGroup.BeginUpdate();
lcgSKUGroup.Clear();
lcgSKUGroup.Items.Clear();
lcgSKUGroup.EndUpdate();
SKUs.Clear();
return;
}
2023-09-04 22:41:19 +08:00
int lotId = Convert.ToInt32( lotAtts.Rows[0]["lotId"].ToString());
2023-05-23 16:13:17 +08:00
if (lastLotId == lotId) //批次定义相同不需从新创建sku控件
{
foreach (LotAtt la in SKUs.Keys)
{
if (la.isList && la.listId > 0)
{
((ComboBoxEdit)SKUs[la]).SelectedIndex = 0;
}
else
{
((TextEdit)SKUs[la]).Text = "";
}
}
return;
}
lastLotId = lotId;
lcgSKUGroup.BeginUpdate();
lcgSKUGroup.Clear();
lcgSKUGroup.Items.Clear();
lcgSKUGroup.EndUpdate();
SKUs.Clear();
LayoutControlItem lastItem = null;
int i = 0;
foreach (DataRow dr in lotAtts.Rows)
{
BaseEdit be;
LotAtt la = new LotAtt(dr);
enumLotAttType enLt = (enumLotAttType)la.attType;
if (la.isList && la.listId >0)
{
be = new ComboBoxEdit();
initialSkuComs((ComboBoxEdit)be, la.listId);
}
else
{
be = new TextEdit();
switch (enLt)
{
case enumLotAttType.:
((TextEdit)be).Properties.Mask.EditMask = "n2";
((TextEdit)be).Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
break;
case enumLotAttType.:
break;
case enumLotAttType.:
// be = new DateEdit();
be.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 20F);
be.Properties.Appearance.Options.UseFont = true;
be.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
be.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
((TextEdit) be).Properties.Mask.AutoComplete = DevExpress.XtraEditors.Mask.AutoCompleteType.None;
((TextEdit)be).Properties.Mask.EditMask = "([123][0-9])?[0-9][0-9](0?[1-9]|1[012])([012]?[1-9]|[123]0|31)";
((TextEdit)be).Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;
// be.StyleController = this.layoutControl1;
be.TabIndex = 44;
break;
default:
break;
}
}
be.Name = "SKU" + la.ID;
be.TabIndex = 40 + (i * 8);
be.Properties.Appearance.Font = new System.Drawing.Font("微软雅黑", 16F);
if (!la.isOptional)
{
be.Properties.Appearance.ForeColor = Color.Red;
}
be.Properties.Appearance.Options.UseFont = true;
LayoutControlItem item = lcgSKUGroup.AddItem(la.attName, be) as LayoutControlItem;
item.MaxSize = new System.Drawing.Size(270, 44);
item.MinSize = new System.Drawing.Size(270, 44);
item.Name = "lci" + la.attName;
item.Padding = new DevExpress.XtraLayout.Utils.Padding(20, 2, 2, 2);
item.Size = new System.Drawing.Size(839, 44);
item.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
// this.layoutControlItem2.Text = "批次信息";
item.TextSize = new System.Drawing.Size(51, 14);
if (lastItem != null && i%4!=0)
{
item.Move(lastItem, DevExpress.XtraLayout.Utils.InsertType.Right);
}
lastItem = item;
SKUs.Add(la, be);
i++;
}
lcgSKUGroup.EndUpdate();
/*liSKU.Add(item);
DevExpress.XtraEditors.TextEdit txtSKU = new DevExpress.XtraEditors.TextEdit();
txtSKU.Anchor = System.Windows.Forms.AnchorStyles.None;
txtSKU.Location = new System.Drawing.Point(4, 30 + (i * 30));
txtSKU.Name = "txtSKU" + (SerialNum + (i * 8));
txtSKU.Properties.Appearance.Font = new System.Drawing.Font("微软雅黑", 10F);
txtSKU.Properties.Appearance.Options.UseFont = true;
txtSKU.Size = new System.Drawing.Size(129, 26);
txtSKU.TabIndex = 40 + (i * 8);
txtSKU.Text = textEdit18.Text.Trim();
tableLayoutPanel4.Controls.Add(txtSKU, 0, i + 2);
liSKU.Add(txtSKU);
}
for (int i = 0; i < liSKU.Count; i++)
{
StrSKU = StrSKU + ",{\"sku\":\"" + liSKU[i].Text + "\",\"CNNAME\":\"" + liCNNAME[i].Text + "\",\"ENNAME\":\"" + liENNAME[i].Text + "\",\"MATERIALQUANTITY\":\"" + liMATERIALQUANTITY[i].Text + "\",\"WEIGHT\":\"" + liWEIGHTS[i].Text + "\",\"PRICE\":\"" + liPRICE[i].Text + "\",\"CUSTOMCCODE\":\"" + liCUSTOMCCODE[i].Text + "\",\"PRODUCINGAREA\":\"" + liPRODUCINGAREA[i].Text + "\"}";
}
*/
}
void setupSkuInput()
{
txtPrdDate.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 20F);
txtPrdDate.Properties.Appearance.Options.UseFont = true;
txtPrdDate.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
txtPrdDate.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
((TextEdit)txtPrdDate).Properties.Mask.AutoComplete = DevExpress.XtraEditors.Mask.AutoCompleteType.None;
((TextEdit)txtPrdDate).Properties.Mask.EditMask = "([123][0-9])?[0-9][0-9](0?[1-9]|1[012])([012]?[1-9]|[123]0|31)";
((TextEdit)txtPrdDate).Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;
txtValidDate.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 20F);
txtValidDate.Properties.Appearance.Options.UseFont = true;
txtValidDate.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
txtValidDate.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
((TextEdit)txtValidDate).Properties.Mask.AutoComplete = DevExpress.XtraEditors.Mask.AutoCompleteType.None;
((TextEdit)txtValidDate).Properties.Mask.EditMask = "([123][0-9])?[0-9][0-9](0?[1-9]|1[012])([012]?[1-9]|[123]0|31)";
((TextEdit)txtValidDate).Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;
}
void initialSkuComs(ComboBoxEdit combo, int listId)
{
DataRow[] drs = Park.getDictionary().Select("flag = 7000");
foreach (DataRow dr in drs)
{
/*
* int flag = Convert.ToInt32(dr["flag"].ToString());
if (flag != 7000)
{
continue;
} */
int parentId = Convert.ToInt32(dr["id"].ToString());
DataRow[] drss = Park.getDictionary(false).Select("parentId =" + parentId +" and flag =" +listId);
foreach (DataRow dr1 in drss)
{
parentId = Convert.ToInt32(dr1["id"].ToString());
DataRow[] drsss = Park.getDictionary(false).Select("parentId =" + parentId );
initialComboBoxs( combo, drsss,true,"请选择" );
break;
}
break;
}
}
string skuCode = "";
Dictionary<string, string> skuValues = new Dictionary<string, string>();
private bool validSkus()
{
skuCode = "";
skuValues.Clear();
Dictionary<string, string> skuCodes = new Dictionary<string, string>();
bool isOptional = false;
foreach (LotAtt la in SKUs.Keys)
{
isOptional = la.isOptional;
if (la.isList && la.listId > 0)
{
ComboBoxEdit co = (ComboBoxEdit)SKUs[la];
if (co.SelectedIndex == 0)
{
if (!la.isOptional)
{
showErrorMsg("请选择" + la.attName);
co.Focus();
return false;
}
else
{
continue;
}
}
skuValues.Add(la.attName, ((Node)co.SelectedItem).ID + "");
skuCodes.Add(la.attName, co.Text);
}
else
{
TextEdit txt = (TextEdit)SKUs[la];
if (string.IsNullOrEmpty(txt.Text))
{
if (!la.isOptional)
{
showErrorMsg("请输入" + la.attName);
txt.Focus();
return false;
}
else
{
continue;
}
}
enumLotAttType enLt = (enumLotAttType)la.attType;
switch (enLt)
{
case enumLotAttType.:
skuValues.Add(la.attName, filtRiskChar(txt.Text));
break;
case enumLotAttType.:
skuValues.Add(la.attName, filtRiskChar(txt.Text));
break;
case enumLotAttType.:
DateTime date = DateTime.ParseExact(txt.Text, WmsConstants.GOODS_VALID_DATE_FORMAT, System.Globalization.CultureInfo.CurrentCulture);
// skuValues.Add(la.attName, date.ToString());
skuValues.Add(la.attName, txt.Text);
break;
default:
break;
}
skuCodes.Add(la.attName, filtRiskChar(txt.Text));
}
if (!isOptional)
{
skuCode += string.Format("{0}:{1};", la.attName, skuCodes[la.attName]);
}
}
skuCode = string.Format("{0}:{1};", "goodsId", currentDetail.goods_id) + skuCode;
return true;
}
private void btnCache_Click(object sender, EventArgs e)
{
doValidation();
}
private void txtOrderNo_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter)
{
return;
}
queryPre();
}
private void textEdit1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter)
{
return;
}
queryPre();
}
private void GoodsValidation_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Convert.ToChar("/r"))
{
this.SelectNextControl(this.ActiveControl, true, true, true, true);
//SendKeys.Send("{TAB}");//也可以使用这个代替SelectNextControl
}
}
private void GoodsValidation_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.SelectNextControl(this.ActiveControl, true, true, true, true);
}
//queryPre();
}
private void txtBatch_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || String.IsNullOrEmpty(txtBatch.Text.Trim()))
{
return;
}
txtPrdDate.Focus();
}
private void txtPrdDate_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter ||String.IsNullOrEmpty( txtPrdDate.Text.Trim()))
{
return;
}
txtValidDate.Focus();
}
private void txtValidDate_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || String.IsNullOrEmpty(txtValidDate.Text.Trim()))
{
return;
}
txtBatchCount.Focus();
}
private void txtBatchCount_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || String.IsNullOrEmpty(txtBatchCount.Text.Trim()))
{
return;
}
txtBulkCnt.Focus();
}
private void textEditSeedsCount_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || String.IsNullOrEmpty(textEditSeedsCount.Text.Trim()))
{
return;
}
comValidResult.Focus();
}
private void comValidResult_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter )
{
return;
}
btnValidateItem.Focus();
}
}
}