/******************************************************************************* * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:F_PM_0302.cs * 2.功能描述:新建标准、坯库计件 * 编辑履历: * 作者 日期 版本 修改内容 * 王鑫 2014/09/23 1.00 新建 *******************************************************************************/ using System; using System.Collections.Generic; using System.Data; using System.Windows.Forms; using Dongke.IBOSS.PRD.Basics.BaseControls; using Dongke.IBOSS.PRD.Basics.BaseResources; using Dongke.IBOSS.PRD.Client.CommonModule; using Dongke.IBOSS.PRD.Client.Controls.FormCommon; using Dongke.IBOSS.PRD.WCF.DataModels; using Dongke.IBOSS.PRD.WCF.Proxys; using Dongke.IBOSS.PRD.WCF.Proxys.PMModuleService; using Dongke.IBOSS.PRD.WCF.Proxys.SystemModuleService; using Dongke.IBOSS.PRD.Client.DataModels; namespace Dongke.IBOSS.PRD.Client.PMModule { public partial class F_PM_2402 : FormBase { #region 成员变量 // 数据源Table private DataTable _dataSourceTable = null; // 是否有商标 private int? _isLogo = null; // 是否有商标编码 private string _isLogoCode = ""; // 是否有商标名称 private string _isLogoName = ""; // 1.产成品交接是否限制同商标 private string _isEnable_S_PM_011 = "0"; // 2.产成品交接是否限制同型号 private string _isEnable_S_PM_012 = "0"; // 3.产成品交接是否限制每板装板数量(必须先启用限制同型号); private string _isEnable_S_PM_013 = "0"; // 最大限制数量 private int _maxPlateLimitNum = 0; // 产品型号 private string _goodsModel = string.Empty; // 商标ID private int? _logoID = null; // 商标ID private string _logoName = string.Empty; #endregion #region 属性 /// /// 绑定GridView数据源 /// public DataTable DataSourceTable { set { _dataSourceTable = value; } get { if (_dataSourceTable == null) { _dataSourceTable = new DataTable("dataSourceTable"); _dataSourceTable.Columns.Add("BarCode"); _dataSourceTable.Columns.Add("FinishedBarCode"); _dataSourceTable.Columns.Add("logoid"); _dataSourceTable.Columns.Add("logocode"); _dataSourceTable.Columns.Add("logoname"); _dataSourceTable.Columns.Add("goodscode"); _dataSourceTable.Columns.Add("UserID"); _dataSourceTable.Columns.Add("GroutingUserCode"); _dataSourceTable.Columns.Add("MouldCode"); _dataSourceTable.Columns.Add("GroutingDate", typeof(DateTime)); _dataSourceTable.Columns.Add("DeliverTime", typeof(DateTime)); _dataSourceTable.Columns.Add("GoodsModel"); _dataSourceTable.Columns.Add("PlateLimitNum"); _dataSourceTable.Columns.Add("OrderNo"); _dataSourceTable.Columns.Add("FHTime", typeof(DateTime)); _dataSourceTable.Columns.Add("FHUserCode"); return _dataSourceTable; } else { return _dataSourceTable; } } } #endregion #region 构造函数 public F_PM_2402() { InitializeComponent(); } #endregion #region 事件 /// /// 窗体关闭事件 /// /// /// private void btnClose_Click(object sender, EventArgs e) { this.Close(); } /// /// 窗体关闭事件 /// /// /// private void tsbtnClose_Click(object sender, EventArgs e) { this.Close(); } /// /// 条形码按键事件 /// /// /// private void txtBarcode_KeyPress(object sender, KeyPressEventArgs e) { try { if (this.txtBarcode.ReadOnly) { return; } if ((int)e.KeyChar == 13) // 按了回车键 { if (this.txtBarcode.Text.Trim() == string.Empty) { this.txtBarcode.Focus(); return; } DataRow[] drRows = this.DataSourceTable.Select("BarCode='" + this.txtBarcode.Text.Trim() + "' or FinishedBarCode='" + this.txtBarcode.Text.Trim() + "'"); if (drRows.Length == Constant.INT_IS_ZERO) { // 包装装板,产成品交接不限制 //if (this._maxPlateLimitNum > 0 && this.DataSourceTable.Rows.Count >= this._maxPlateLimitNum) //{ // MessageBox.Show("超过最大装板数量【" + this._maxPlateLimitNum + "】", // this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); // this.txtBarcode.Focus(); // this.txtBarcode.SelectAll(); // return; //} ServiceResultEntity resultEntity = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() => { return PMModuleProxy.Service.FinishedHandoverBarcode(this.txtBarcode.Text.Trim()); })); if (Convert.ToInt32(resultEntity.Result) > 0) { /* 包装装板,产成品交接不限制 if (this.DataSourceTable.Rows.Count == 0) { // 设置装板数量 if (this._isEnable_S_PM_013 == "1" && this._isEnable_S_PM_012 == "1") { this._maxPlateLimitNum = Convert.ToInt32(resultEntity.Data.Tables[0].Rows[0]["PlateLimitNum"]); } this._goodsModel = resultEntity.Data.Tables[0].Rows[0]["GoodsModel"].ToString(); this._logoID = Convert.ToInt32(resultEntity.Data.Tables[0].Rows[0]["logoid"]); this._logoName = resultEntity.Data.Tables[0].Rows[0]["logoName"].ToString(); } else { #region 启用限制同商标 if (this._isEnable_S_PM_011 == "1") { if (Convert.ToInt32(resultEntity.Data.Tables[0].Rows[0]["logoid"]) != this._logoID) { MessageBox.Show("此产品【" + resultEntity.Data.Tables[0].Rows[0]["BarCode"] + "】的商标【" + resultEntity.Data.Tables[0].Rows[0]["logoname"] + "】与此批次商标【" + this._logoName + "】不同,不能进行该操作。 ", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtBarcode.Focus(); this.txtBarcode.SelectAll(); return; } } #endregion #region 启用限制同型号 if (this._isEnable_S_PM_012 == "1") { if (resultEntity.Data.Tables[0].Rows[0]["GoodsModel"].ToString() != this._goodsModel) { MessageBox.Show("此产品【" + resultEntity.Data.Tables[0].Rows[0]["BarCode"] + "】的型号【" + resultEntity.Data.Tables[0].Rows[0]["GoodsModel"] + "】与此批次型号【" + this._goodsModel + "】不同,不能进行该操作。 ", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtBarcode.Focus(); this.txtBarcode.SelectAll(); return; } } #endregion } */ foreach (DataRow item in resultEntity.Data.Tables[0].Rows) { // 添加产到列表 DataRow dr = this.DataSourceTable.NewRow(); dr["BarCode"] = item["BarCode"].ToString(); dr["FinishedBarCode"] = item["FinishedBarCode"].ToString(); dr["goodscode"] = item["goodscode"].ToString(); dr["logoid"] = item["logoid"].ToString(); dr["logoname"] = item["logoname"].ToString(); dr["GroutingUserCode"] = item["GroutingUserCode"].ToString(); dr["MouldCode"] = item["MouldCode"].ToString(); dr["GroutingDate"] = item["GroutingDate"].ToString(); if (!string.IsNullOrEmpty(item["DeliverTime"].ToString())) { dr["DeliverTime"] = item["DeliverTime"].ToString(); } dr["OrderNo"] = this.cmbLogo.Text; dr["FHTime"] = DateTime.Now; dr["FHUserCode"] = LogInUserInfo.CurrentUser.CurrentUserEntity.UserCode; this.DataSourceTable.Rows.Add(dr); } this.dgvProduction.CurrentCell = null; this.dgvProduction.Rows[dgvProduction.RowCount - 1].Selected = true; this.dgvProduction.CurrentCell = this.dgvProduction.Rows[dgvProduction.RowCount - 1].Cells[0]; this.txtBarcode.Focus(); this.txtBarcode.SelectAll(); this.txtBarcode.Text = ""; this.btnSave.Visible = true; this.btnSave.Enabled = true; } else { if (resultEntity.OtherStatus >0) { S_CMN_020 frmscmn020 = new S_CMN_020(resultEntity.OtherStatus, resultEntity.Message); frmscmn020.ShowDialog(); } else { // 表示有错误 MessageBox.Show(string.Format(resultEntity.Message, this.txtBarcode.Text.Trim(), "产品条码"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } this.txtBarcode.Focus(); this.txtBarcode.SelectAll(); return; } } else { this.txtBarcode.Text = ""; } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 窗体加载事件 /// /// /// private void F_PM_2402_Load(object sender, EventArgs e) { try { this.dgvProduction.AutoGenerateColumns = false; this.dgvProduction.DataSource = DataSourceTable; // 加载权限 FormPermissionManager.FormPermissionControl(this.Name, this, Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData, Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData); // 加载订单数据源 DataSet dsResultLogo = (DataSet)DoAsync(new BaseAsyncMethod(() => { return PMModuleProxy.Service.GetOrderList(new OrderEntity()); })); if (dsResultLogo != null && dsResultLogo.Tables[0].Rows.Count > 0) { DataView dv = dsResultLogo.Tables[0].DefaultView; dv.RowFilter = "ValueFlag=1"; DataTable dtNew = dv.ToTable(); DataRow dr = dtNew.NewRow(); dr["OrderID"] = -1; dr["OrderNo"] = string.Empty; dtNew.Rows.InsertAt(dr, 0); this.cmbLogo.DataSource = dtNew; this.cmbLogo.ValueMember = "OrderID"; this.cmbLogo.DisplayMember = "OrderNo"; } // 包装装板,产成品交接不限制 //DataSet dsSystemData = (DataSet)DoAsync(new BaseAsyncMethod(GetSystemData)); //if (dsSystemData != null && dsSystemData.Tables[0].Rows.Count > 0) //{ // this._isEnable_S_PM_011 = dsSystemData.Tables[0].Select("SettingCode='S_PM_011'")[0]["SettingValue"].ToString(); // this._isEnable_S_PM_012 = dsSystemData.Tables[0].Select("SettingCode='S_PM_012'")[0]["SettingValue"].ToString(); // this._isEnable_S_PM_013 = dsSystemData.Tables[0].Select("SettingCode='S_PM_013'")[0]["SettingValue"].ToString(); //} this.btnSave.Enabled = false; } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 删除按钮事件 /// /// /// private void tsbtnDelete_Click(object sender, EventArgs e) { if (this.dgvProduction.CurrentCell != null) { this.DataSourceTable.Rows[this.dgvProduction.CurrentCell.RowIndex].Delete(); if (this.DataSourceTable.Rows.Count == 0) { // 最大限制数量 this._maxPlateLimitNum = 0; // 产品型号 this._goodsModel = string.Empty; // 商标ID this._logoID = null; // 商标ID this._logoName = string.Empty; this.btnSave.Visible = false; this.btnSave.Enabled = false; } } } /// /// 保存按钮事件 /// /// /// private void btnSave_Click(object sender, EventArgs e) { try { this.DataSourceTable.AcceptChanges(); //if (this.cmbLogo.SelectedValue.ToString() == "-1") //{ // MessageBox.Show("请选择生产订单", // this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); // this.cmbLogo.Focus(); // return; //} // 包装装板,产成品交接不限制 //if (this._maxPlateLimitNum > 0 && this._maxPlateLimitNum != this.DataSourceTable.Rows.Count) //{ // MessageBox.Show("未达到装板数量【" + this._maxPlateLimitNum + "】", // this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); // this.cmbLogo.Focus(); // return; //} int orderid = Convert.ToInt32(this.cmbLogo.SelectedValue); ServiceResultEntity entity = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() => { return PMModuleProxy.Service.SaveFinishedHandover(orderid, this.DataSourceTable); })); if (Convert.ToInt32(entity.Result) < 0) { MessageBox.Show(entity.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { // 提示信息 MessageBox.Show(string.Format(Messages.MSG_CMN_I001, "新增" + this.Text, "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); this.txtBarcode.Text = string.Empty; this.DataSourceTable.Rows.Clear(); this.cmbLogo.SelectedValue = -1; this.txtOrderNo.Text = string.Empty; this.btnSave.Visible = false; this.btnSave.Enabled = false; } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 自动适应列宽 /// /// /// private void tsbtnAdaptive_Click(object sender, EventArgs e) { this.dgvProduction.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } /// /// 窗体关闭时事件 /// /// /// private void F_PM_0302_FormClosing(object sender, FormClosingEventArgs e) { if (this.btnSave.Visible) { try { this.DataSourceTable.AcceptChanges(); if (this.DataSourceTable.Rows.Count > Constant.INT_IS_ZERO) { DialogResult result = MessageBox.Show(Messages.MSG_CMN_Q001, this.Text, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result == DialogResult.Yes) { // 保存数据 btnSave_Click(sender, e); } else if (result == DialogResult.Cancel) { e.Cancel = true; } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } } /// /// 生产订单号回车事件 /// /// /// private void txtUserCode_KeyPress(object sender, KeyPressEventArgs e) { try { if (this.txtOrderNo.ReadOnly) { return; } if ((int)e.KeyChar == 13) // 按了回车键 { DataTable dt = this.cmbLogo.DataSource as DataTable; if (dt != null && dt.Rows.Count > 0) { DataRow[] dr = dt.Select("OrderNo='" + this.txtOrderNo.Text.Trim() + "'"); if (dr.Length > 0) { this.cmbLogo.SelectedValue = Convert.ToInt32(dr[0]["OrderID"]); } else { this.cmbLogo.SelectedIndex = 0; } this.txtOrderNo.Text = string.Empty; } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } #endregion #region 私有方法 /// /// 获取系统参数 /// /// private object GetSystemData() { try { return SystemModuleProxy.Service.GetSystemData(); } catch (Exception ex) { throw ex; } } #endregion } }