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 ; //debug
namespace DeiNiu.wms.win
{
public partial class GoodsInForm : 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 dtInvalid ;
DataTable dtInStockDetail , dtInDetail ;
private int selectedRowIndex = - 1 ;
private WmsInRequest selectedRequest ;
private bool isShowingInRequest = true ;
public GoodsInForm ( )
{
InitializeComponent ( ) ;
btnPrintCode . Enabled = false ;
btnPrintReport . Enabled = false ;
initialControls ( ) ;
initailErpData ( ) ;
// loadData();
}
#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 . comboState . Properties . TextEditStyle = TextEditStyles . DisableTextEditor ;
Dictionary < int , string > dic = Utils . Util . convertEnumToDic ( typeof ( enumInStockOrderStatus ) ) ;
dic . Remove ( ( int ) enumInStockOrderStatus . 待 收 货 ) ;
dic . Remove ( ( int ) enumInStockOrderStatus . 已 拒 收 ) ;
dic . Remove ( ( int ) enumInStockOrderStatus . 待 验 收 ) ;
initialComboBoxs ( comboState , dic , false ) ;
}
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 ) ;
//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 ) ;
2023-09-04 22:41:19 +08:00
GridColumn myCol1 = new GridColumn ( ) { Caption = "入库单号" , Visible = true , FieldName = WmsInRequest . fields . preInOrder . ToString ( ) } ;
2023-05-23 16:13:17 +08:00
GridColumn myCol2 = new GridColumn ( ) { Caption = "订单类别" , Visible = true , FieldName = WmsInRequest . fields . orderTypeName . ToString ( ) } ;
GridColumn myCol3 = new GridColumn ( ) { Caption = "供货商" , Visible = true , FieldName = WmsInRequest . fields . vender . ToString ( ) } ;
GridColumn myCol4 = new GridColumn ( ) { Caption = "货主" , Visible = true , FieldName = WmsInRequest . fields . owner . ToString ( ) } ;
GridColumn myCol5 = new GridColumn ( ) { Caption = "备注" , Visible = true , FieldName = WmsInRequest . fields . description . ToString ( ) } ;
GridColumn myCol6 = new GridColumn ( ) { Caption = "发货日期" , Visible = true , FieldName = WmsInRequest . fields . orderDate . ToString ( ) } ;
gridView . Columns . Add ( myCol1 ) ;
gridView . Columns . Add ( myCol6 ) ;
// this.gridView1.Columns.Add(myCol2);
gridView . Columns . Add ( myCol3 ) ;
// this.gridView1.Columns.Add(myCol4);
gridView . Columns . Add ( myCol5 ) ;
//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 , true , 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 = WmsGoods . fields . goodsId . ToString ( ) } ;
GridColumn myCol2 = new GridColumn ( ) { Caption = "商品名称" , Visible = true , FieldName = WmsGoods . exfields . goodsName . ToString ( ) } ;
GridColumn myCol3 = new GridColumn ( ) { Caption = "厂家" , Visible = true , FieldName = WmsGoods . exfields . manufacturer . ToString ( ) } ;
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 = WmsInRequestDetail . fields . validCount . 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 = WmsInRequestDetail . fields . state . ToString ( ) } ;
GridColumn myCol18 = new GridColumn ( ) { Caption = "说明" , Visible = true , FieldName = WmsInRequestDetail . fields . description . ToString ( ) } ;
GridColumn myCol19 = new GridColumn ( ) { Caption = "货位" , Visible = true , FieldName = WmsOutPickLable . fields . locationId . ToString ( ) } ;
GridColumn myCol20 = new GridColumn ( ) { Caption = "入库数量" , Visible = true , FieldName = WmsOutPickLable . fields . count . ToString ( ) } ;
GridColumn myCol21 = new GridColumn ( ) { Caption = "上架数量" , Visible = true , FieldName = WmsInUpPort . fields . count . 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 myCol27 = new GridColumn ( ) { Caption = "入库类型" , Visible = true , FieldName = "whType" } ;
GridColumn myCol271 = new GridColumn ( ) { Caption = "库区" , Visible = true , FieldName = "partionName" } ;
GridColumn myCol130 = new GridColumn ( ) { Caption = "skuId" , Visible = true , FieldName = "skuId" } ;
GridColumn myCol131 = new GridColumn ( ) { Caption = "sku" , Visible = true , FieldName = "skuCode" } ;
GridColumn myCol132 = new GridColumn ( ) { Caption = "货主" , Visible = true , FieldName = "ownerName" } ;
GridColumn myCol133 = new GridColumn ( ) { Caption = "预到号码" , Visible = true , FieldName = WmsInRequestDetail . fields . preInOrder . ToString ( ) } ;
gridview . Columns . Add ( myCol2 ) ;
if ( gridview = = gridView2 )
{
gridview . Columns . Add ( myCol130 ) ;
gridview . Columns . Add ( myCol132 ) ;
gridview . Columns . Add ( myCol133 ) ;
gridview . Columns . Add ( myCol17 ) ;
gridview . Columns . Add ( myCol14 ) ;
gridview . Columns . Add ( myCol13 ) ;
gridview . Columns . Add ( myCol27 ) ;
gridview . Columns . Add ( myCol271 ) ;
gridview . Columns . Add ( myCol23 ) ;
gridview . Columns . Add ( myCol131 ) ;
gridview . Columns . Add ( myCol5 ) ;
// 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 ) ;
gridview . Columns . Add ( myCol18 ) ;
}
else if ( gridview = = gridView3 )
{
gridview . Columns . Add ( myCol130 ) ;
gridview . Columns . Add ( myCol132 ) ;
gridview . Columns . Add ( myCol14 ) ;
gridview . Columns . Add ( myCol19 ) ;
gridview . Columns . Add ( myCol20 ) ;
gridview . Columns . Add ( myCol24 ) ;
gridview . Columns . Add ( myCol21 ) ;
gridview . Columns . Add ( myCol15 ) ;
gridview . Columns . Add ( myCol16 ) ;
gridview . Columns . Add ( myCol22 ) ;
gridview . Columns . Add ( myCol25 ) ;
gridview . Columns . Add ( myCol26 ) ;
}
//to show bottom scroll bar
gridview . OptionsView . ColumnAutoWidth = false ;
gridview . BestFitColumns ( ) ;
// gridView2.Focus();
}
#endregion
private void initialRequestOrders ( )
{
showWaitForm ( ) ;
try {
inClient . getInRequests ( ) ;
}
//catch (DeiNiuTimeOutException te)
//{
//
//}
catch ( Exception e ) {
showErrorMsg ( e . Message ) ;
}
finally {
closeClient ( ) ;
closeWaitForm ( ) ;
}
}
/// <summary>
/// loading data
/// </summary>
private int loadData ( )
{
initialRequestOrders ( ) ;
//this.gridviewGoodsType.DataSource = lgt.GetAllActiveData().Tables[0].DefaultView;
showWaitForm ( ) ;
lbVender . Text = "" ;
lbOrderNo . Text = "" ;
try
{
// this.splashScreenManager1.ShowWaitForm();
2023-09-04 22:41:19 +08:00
string query = ( this . txtOrderNo . Text . Trim ( ) . Length = = 0 ? "" : string . Format ( "{0} =#'{1}';" , WmsInRequest . fields . preInOrder . ToString ( ) , filtRiskChar ( txtOrderNo . Text . Trim ( ) ) ) ) ;
query = ! string . IsNullOrEmpty ( query ) ? query : ( this . txtOrderNo . Text . Trim ( ) . Length = = 0 ? "" : string . Format ( "{0} =#'{1}';" , WmsInRequest . fields . preInOrder . ToString ( ) , filtRiskChar ( txtOrderNo . Text . Trim ( ) ) ) )
2023-05-23 16:13:17 +08:00
+ ( this . txtVender . Text . Trim ( ) . Length = = 0 ? "" : string . Format ( "{0} like # '%{1}%';" , WmsInRequest . fields . vender . ToString ( ) , filtRiskChar ( txtVender . Text . Trim ( ) ) ) )
+ ( this . dateEditFrom . Text . Trim ( ) . Length = = 0 ? "" : string . Format ( "{0} >= # '{1}';" , WmsInRequest . fields . orderDate . ToString ( ) , dateEditFrom . DateTime ) )
+ ( this . dateEditTo . Text . Trim ( ) . Length = = 0 ? "" : string . Format ( "{0} <= # '{1}';" , WmsInRequest . fields . orderDate . ToString ( ) , dateEditTo . DateTime ) )
+ ( this . comboState . SelectedIndex < 0 ? "" : string . Format ( "{0} = #{1};" , WmsInRequest . fields . state . ToString ( ) , ( ( Colitem ) this . comboState . SelectedItem ) . key ) ) ;
// 、、 + (this.txtGoodName.Text.Trim().Length == 0 ? "" : string.Format("{0} like # '%{1}%';", WmsInRequest.exfields.goodName.ToString(), txtGoodName.Text))
bool isQueryNotChanged = lastQuery . Equals ( query ) ;
this . pager1 . PageCurrent = isQueryNotChanged ? this . pager1 . PageCurrent : 1 ; //根据查询条件的变化给pager赋值
int start = ( pager1 . PageSize * ( pager1 . PageCurrent - 1 ) + 1 ) ;
int end = ( pager1 . PageSize * pager1 . PageCurrent ) ;
lastQuery = query ;
DataSet ds = inClient . Query ( query , start , end ) ; // lgt.Query(query, start, end);
closeClient ( ) ;
dt = ds . Tables [ 0 ] ;
int cnt = Convert . ToInt32 ( ds . Tables [ 1 ] . Rows [ 0 ] [ 0 ] . ToString ( ) ) ;
//dt = lgt.Query(query, start, end); //string.IsNullOrEmpty(query) ? lgt.GetGoodType.getAllData(start, end) : lgt.g;
dt . PrimaryKey = new DataColumn [ ] { dt . Columns [ "ID" ] } ;
bool firstLoad = ! isQueryNotChanged | | this . gridControl1 . DataSource = = null ;
this . gridControl1 . DataSource = dt . DefaultView ;
initialDataGridColumns ( gridView1 ) ;
//update selected row index to the last updated one.
if ( selectedRequest ! = null )
{
selectedRowIndex = - 1 ;
DataRow dr = dt . Rows . Find ( selectedRequest . ID ) ;
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 ) ;
}
setCurrentRequestDetail ( ) ;
closeWaitForm ( ) ;
return cnt ;
}
catch ( Exception e )
{
showErrorMsg ( e , e . Message ) ;
}
closeWaitForm ( ) ;
return 0 ; // lgt.getRowCount(query);
// return lgt.GetGoodType.QueryCount();
}
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;
}
/// <summary>
/// 分页控件产生的事件
/// </summary>
private int pager_EventPaging ( DeiNiu . Controls . pager . EventPagingArg e )
{
selectedRowIndex = - 1 ; //reset currentRowIndex
return loadData ( ) ;
}
private void initialPagerControls ( )
{
pager1 . MaximumSize = new Size ( 0 , 20 ) ;
pager1 . EventPaging + = new DeiNiu . Controls . pager . EventPagingHandler ( pager_EventPaging ) ;
#region DataGridView与Pager控件绑定
this . pager1 . PageCurrent = 1 ; //当前页为第一页
pager1 . PageSize = Utils . WmsConstants . PAGER_SIZE ; //每页行数
this . pager1 . Bind ( ) ; //绑定
#endregion
}
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 ) ;
setCurrentRequestDetail ( ) ;
}
if ( isCheckedIn )
{
isCheckedIn = false ;
}
return ;
}
selectedRowIndex = gridView1 . FocusedRowHandle ;
// showErrorMsg("selection:"+ selectedRowIndex);
setCurrentRequestDetail ( ) ;
}
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 selectedInGoodsId = "" ;
string selectedSkuId = "" ;
string selectDetailId = "" ;
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 ;
}
if ( selectedInIndex < 0 | | selectedInIndex > = dtInDetail . Rows . Count )
{
return false ;
}
// DataRow currentRow = dt.Rows[selectedRowIndex];
DataRowView dr = ( DataRowView ) ( GetGridViewFilteredAndSortedData ( gridView2 ) [ selectedInIndex ] ) ;
selectedInGoodsId = dr [ "goodsId" ] . ToString ( ) ;
selectedSkuId = dr [ "skuId" ] . ToString ( ) ;
selectDetailId = dr [ "id" ] . ToString ( ) ; //detailId
return true ;
}
private void setCurrentInDetail ( )
{
if ( ! getCurrentInObject ( ) | | selectedInGoodsId = = null )
{
return ;
}
/// gridView1.FocusedRowHandle = selectedRowIndex;//
// gridView1.SelectRow(selectedRowIndex);
showWaitForm ( ) ;
try
{
this . gridControl3 . DataSource = dtInStockDetail . DefaultView ;
// dtInStockDetail.DefaultView.RowFilter = string.Format( "goodsId ='{0}' and skuid ='{1}'",selectedInGoodsId,selectedSkuId);
dtInStockDetail . DefaultView . RowFilter = string . Format ( "detailId ={0}" , selectDetailId ) ;
initialGridView2Columns ( gridView3 ) ;
gridView3 . Focus ( ) ;
}
catch ( Exception e )
{
showErrorMsg ( e . Message ) ;
}
closeWaitForm ( ) ;
}
private void btnDelete_Click ( object sender , EventArgs e )
{
}
protected void query ( )
{
pager1 . Bind ( ) ;
}
private void queryGoods ( )
{
showWaitForm ( ) ;
try
{
query ( ) ; // loadData();
}
catch ( Exception e )
{
showErrorMsg ( e . Message ) ;
}
finally
{
// WaitFormService.Close();
closeWaitForm ( ) ;
bbQuery . Enabled = true ;
}
}
private void bbQuery_ItemClick_1 ( object sender , ItemClickEventArgs e )
{
this . bbQuery . Enabled = false ;
queryGoods ( ) ;
}
private void updateObjects ( List < WmsGoods > goods )
{
showWaitForm ( ) ;
//WaitFormService.Show(this);
try
{
// lgt.update(goods);
//get updated data
query ( ) ;
}
catch ( Exception e )
{
showErrorMsg ( e . Message ) ;
}
finally
{
// WaitFormService.Close();
closeWaitForm ( ) ;
}
}
private bool getCurrentObject ( )
{
if ( selectedRowIndex < 0 | | selectedRowIndex > = dt . Rows . Count )
{
return false ;
}
// DataRow currentRow = dt.Rows[selectedRowIndex];
DataRowView dr = ( DataRowView ) ( GetGridViewFilteredAndSortedData ( gridView1 ) [ selectedRowIndex ] ) ;
selectedRequest = new WmsInRequest ( dr . Row ) ;
this . gridControl3 . DataSource = null ;
this . gridControl2 . DataSource = null ;
btnIn . Enabled = false ;
btnDel . Enabled = false ;
btnPrintCode . Enabled = false ;
btnPrintReport . Enabled = false ;
lbVender . Text = "" ;
lbOrderNo . Text = "" ;
return true ;
}
private void btnQuery_Click ( object sender , EventArgs e )
{
queryGoods ( ) ;
}
private void gridView1_SelectionChanged ( object sender , DevExpress . Data . SelectionChangedEventArgs e )
{
if ( gridView1 . FocusedRowHandle < 0 | | gridView1 . FocusedRowHandle = = selectedRowIndex )
{
return ;
}
selectedRowIndex = gridView1 . FocusedRowHandle ;
// showErrorMsg("selection:"+ selectedRowIndex);
setCurrentRequestDetail ( ) ;
}
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;
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 ) ;
this . gridView3 . IndicatorWidth = 40 ;
this . gridView3 . 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 . LostFocus + = new EventHandler ( gridview_LostFocus ) ;
gridView1 . GotFocus + = new EventHandler ( gridview_GotFocus ) ;
}
private void gridView2_CustomColumnDisplayText ( object sender , DevExpress . XtraGrid . Views . Base . CustomColumnDisplayTextEventArgs e )
{
if ( sender = = gridView2 )
{
if ( e . Column . FieldName = = "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
e . DisplayText = stockInLocationStatus [ display ] ;
}
catch
{
return ;
}
}
// e.DisplayText = stockInLocationStatus.ContainsKey(display) ? stockInLocationStatus[display] : display+"";
}
else if ( e . Column . FieldName = = "whType" )
{
if ( ! whType . 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 = whType [ display ] ;
}
catch
{
return ;
}
}
// e.DisplayText = stockInLocationStatus.ContainsKey(display) ? stockInLocationStatus[display] : display+"";
}
}
}
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 = = "state" & & 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 ;
}
else if ( b . Equals ( "已上架" ) )
{
e . Appearance . ForeColor = Color . White ;
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 ( "state" ) )
{
return ;
}
string state = currentView . GetDataRow ( e . RowHandle ) [ "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 ( sender = = this . gridView2 )
{
if ( state = = ( int ) enumInStockDetailStatus . 已 分 配 货 位 + ""
| | state = = ( int ) enumInStockDetailStatus . 上 架 完 成 + ""
| | state = = ( int ) enumInStockDetailStatus . 入 越 仓 收 货 区 + ""
)
{
rowStyle = isFocused ? passedFocus : passed ;
}
else if ( state = = ( int ) enumInStockDetailStatus . 出 现 错 误 + ""
| | state = = ( int ) enumInStockDetailStatus . 货 位 不 足 + ""
| | state = = ( int ) enumInStockDetailStatus . 日 期 错 误 + ""
)
{
rowStyle = isFocused ? alertFocus : alert ;
}
}
else
{
if (
state = = ( int ) enumInStockOrderStatus . 已 入 库 + ""
| | state = = ( int ) enumInStockOrderStatus . 已 上 架 + ""
)
{
rowStyle = isFocused ? passedFocus : passed ;
}
else if ( state = = ( int ) enumInStockOrderStatus . 待 上 架 + ""
| | state = = ( int ) enumInStockOrderStatus . 订 单 明 细 日 期 错 误 + ""
| | state = = ( int ) enumInStockOrderStatus . 货 位 不 足 + ""
)
{
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 setCurrentRequestDetail ( )
{
this . gridControl2 . DataSource = null ;
gridControl3 . DataSource = null ;
if ( ! getCurrentObject ( ) | | selectedRequest = = null )
{
return ;
}
/// gridView1.FocusedRowHandle = selectedRowIndex;//
// gridView1.SelectRow(selectedRowIndex);
showWaitForm ( ) ;
lbVender . Text = selectedRequest . vender ;
2023-09-04 22:41:19 +08:00
lbOrderNo . Text = selectedRequest . preInOrder ;
2023-05-23 16:13:17 +08:00
try
{
isShowingInRequest = true ;
2023-09-04 22:41:19 +08:00
dtInStockDetail = inClient . getRequestInStockDetail ( selectedRequest . preInOrder ) ;
2023-05-23 16:13:17 +08:00
closeClient ( ) ;
//selectedInIndex = -1;
2023-09-04 22:41:19 +08:00
dtInDetail = inClient . getRequestDetail ( selectedRequest . preInOrder ) ;
2023-05-23 16:13:17 +08:00
closeClient ( ) ;
this . gridControl2 . DataSource = dtInDetail ;
initialGridView2Columns ( gridView2 ) ;
selectedInIndex = gridView2 . FocusedRowHandle ;
setCurrentInDetail ( ) ;
// this.gridControl3.DataSource = null;
// initialGridView2Columns(gridView3);
//this.gridControl3.DataSource = dtIndetail.DefaultView;
//initialGridView2Columns(gridView3);
// gridView1.Focus();
// this.selectedInvalidIndex = -1;
/ *
DataView dv1 = dt1 . DefaultView ;
dv1 . RowFilter = "state is null or state <> " + ( int ) enumInStockDetailStatus . error ;
dv1 . Sort = "id" ;
// this.gridControl2.DataSource = dt1.Select("state <> " + enumInStockDetailStatus.error);
this . gridControl2 . DataSource = dv1 ;
initialGridView2Columns ( gridView2 ) ;
DataView dv2 = new DataView ( dt1 ) ;
dv2 . RowFilter = "state = " + ( int ) enumInStockDetailStatus . error ;
dv2 . Sort = "id" ;
this . gridControl3 . DataSource = dv2 ;
// this.gridControl3.DataSource = dt1.Select("state = " + enumInStockDetailStatus.error); ;
// initialGridView2Columns(gridView2);
initialGridView2Columns ( gridView3 ) ;
* * /
btnIn . Enabled = selectedRequest . state ! = ( int ) enumInStockOrderStatus . 已 入 库 ;
btnPrintCode . Enabled = ! btnIn . Enabled ;
btnPrintReport . Enabled = ! btnIn . Enabled ;
btnDel . Enabled = btnIn . Enabled ;
}
catch ( Exception e )
{
showErrorMsg ( e . Message ) ;
}
closeWaitForm ( ) ;
}
private void btnIn_Click ( object sender , EventArgs e )
{
showWaitForm ( ) ;
try
{
// lgt.requestInStock(selectedRequest.orderNo);
2023-09-04 22:41:19 +08:00
inClient . requestInStock ( selectedRequest . preInOrder ) ;
2023-05-23 16:13:17 +08:00
closeClient ( ) ;
if ( selectedRequest . orderType = = ( int ) enumInOrderType . 采 购 入 库 )
{
// reqportPrint.printStockIn(selectedRequest.orderNo);
}
isCheckedIn = true ;
query ( ) ;
}
catch ( Exception er )
{
setCurrentRequestDetail ( ) ;
showErrorMsg ( er . Message ) ;
}
closeWaitForm ( ) ;
}
private void btnPrint_Click ( object sender , EventArgs e )
{
try
{
2023-09-04 22:41:19 +08:00
reportPrint . printStockInCode ( selectedRequest . preInOrder ) ;
2023-05-23 16:13:17 +08:00
}
catch ( Exception er )
{
showErrorMsg ( er , er . Message ) ;
}
}
private void btnPrintReport_Click ( object sender , EventArgs e )
{
try
{
2023-09-04 22:41:19 +08:00
reportPrint . printStockInA4 ( selectedRequest . preInOrder ) ;
2023-05-23 16:13:17 +08:00
}
catch ( Exception er )
{
showErrorMsg ( er , er . Message ) ;
}
}
private void btnInStockAll_Click ( object sender , EventArgs e )
{
if ( ! checkPermission ( WmsConstants . SPECIAL_AUTHS_IN_BATCH_IN ) )
{
showErrorMsg ( "权限不足!" ) ;
return ;
}
showWaitForm ( ) ;
foreach ( DataRow dr in dt . Rows )
{
WmsInRequest wi = new WmsInRequest ( dr ) ;
try
{
//lgt.requestInStock(wi);
2023-09-04 22:41:19 +08:00
inClient . requestInStock ( wi . preInOrder ) ;
2023-05-23 16:13:17 +08:00
closeClient ( ) ;
}
catch ( Exception er )
{
showErrorMsg ( er . Message ) ;
}
}
query ( ) ;
}
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 . setCurrentRequestDetail ( ) ;
}
switchGridViewRowSelection ( gridView1 , true ) ;
}
else
{
switchGridViewRowSelection ( ( GridView ) sender , true ) ;
}
}
private void btnDel_Click ( object sender , EventArgs e )
{
2023-09-04 22:41:19 +08:00
DialogResult r = MessageBox . Show ( string . Format ( "确定要删除订单{0}吗 ?" , selectedRequest . preInOrder ) ,
2023-05-23 16:13:17 +08:00
"确认删除" , MessageBoxButtons . YesNo , MessageBoxIcon . Warning ) ;
if ( r = = DialogResult . No )
{
return ;
}
2023-09-04 22:41:19 +08:00
if ( inClient . deleteInRequest ( selectedRequest . preInOrder ) )
2023-05-23 16:13:17 +08:00
{
MessageBox . Show ( "删除成功。" ) ;
query ( ) ;
}
else
{
showErrorMsg ( "删除失败。" ) ;
}
closeClient ( ) ;
}
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 )
{
return ;
}
string barcode = this . textEditBarcode . Text . Trim ( ) ;
if ( string . IsNullOrEmpty ( barcode ) | | barcode . Length < 5 )
{
return ;
}
DataRow [ ] drs = this . dt . Select ( string . Format ( "orderNo ='{0}'" , barcode ) ) ; ;
if ( drs . Length > 0 )
{
// selectedValidatedItem = dtPickOrdersValidated.Rows.IndexOf(dr0);
this . selectedRowIndex = 0 ;
foreach ( DataRowView drv in GetGridViewFilteredAndSortedData ( gridView1 ) )
{
if ( drv [ "orderNo" ] . ToString ( ) . Trim ( ) . Equals ( barcode ) )
{
break ;
}
selectedRowIndex + + ;
}
if ( selectedRowIndex > = 0 & & dt . Rows . Count > selectedRowIndex )
{
this . gridView1 . FocusedRowHandle = selectedRowIndex ;
setCurrentRequestDetail ( ) ;
}
else
{
showErrorMsg ( string . Format ( "当前列表没定位到单号'{0}'" , barcode ) ) ;
}
}
else
{
showErrorMsg ( string . Format ( "当前列表没定位到单号'{0}'" , barcode ) ) ;
}
textEditBarcode . SelectAll ( ) ;
textEditBarcode . Focus ( ) ;
}
private void barBiSyncGoods_ItemClick ( object sender , ItemClickEventArgs e )
{
initailErpData ( ) ;
}
/// <summary>
/// 同步erp 信息
/// </summary>
private void initailErpData ( )
{
showWaitForm ( "正在同步商品信息" ) ;
try
{
goodClient . syncGoods ( ) ;
closeClient ( ) ;
closeWaitForm ( ) ;
}
catch ( Exception e )
{
closeClient ( ) ;
LogHelper . WriteLog ( this . GetType ( ) , e ) ;
// showErrorMsg(e.Message);
closeWaitForm ( ) ;
}
}
private void btnCache_Click ( object sender , EventArgs e )
{
}
private void simpleButton1_Click ( object sender , EventArgs e )
{
using ( scheduledServiceTest . ScheduledServiceClient client = new scheduledServiceTest . ScheduledServiceClient ( ) ) {
client . truncateDataForTestOnly ( ) ;
}
}
}
}