using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Core.Mes.Client.Comm.Server; using CoreFS.CA06; using Core.Mes.Client.Comm.Tool; using Infragistics.Win.UltraWinGrid; namespace Core.StlMes.Client.SaleOrder.Control { public partial class CtrlLinePurchase : UserControl { public CtrlLinePurchase() { InitializeComponent(); } private OpeBase _ob; /// /// 长度 /// private DataRow dRow = null; private string _saleOrg; private SlmOrderLineNewEntity one; /// /// 交货信息或者加工备注标志 /// private int dlyFlag = 1; /// /// 交货信息或者加工备注标志 默认1 表示贸易合同 2表示加工备注 /// public int DlyFlag { get { return dlyFlag; } set { dlyFlag = value; } } /// /// 刷新委托 /// public delegate void MyRefresh(); /// /// 此控件的刷新事件 /// public event MyRefresh OnMyRefresh; /// /// 设置下拉框的属性 需要在调用此控件的界面的OnLoad事件中调用 /// public void LoadSetting() { cmbStdName.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; cmbProName.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; cmbSteel.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; cmbModel.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; cmbStdStyle.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; cmbSpec.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; } /// /// 初始化控件 /// /// public void Init(OpeBase ob, string saleOrg) { OrderFunction.InitComboEditor(cmbStdName, "com.steering.pss.sale.order.CoreOrderManager.queryStdName", "STD_CODE", ob, true); OrderFunction.InitComboEditor(cmbProName, "com.steering.pss.sale.order.CoreOrderManager.queryProName", "PRODUCCODE", ob, true); OrderFunction.InitComboEditor(cmbSteel, "com.steering.pss.sale.order.CoreOrderManager.querySteel", "STEELCODE", ob, true); OrderFunction.InitComboEditor(cmbModel, "com.steering.pss.sale.order.CoreOrderManager.queryModel", "MODEL_CODE", ob, true); OrderFunction.InitComboEditor(cmbStdStyle, "com.steering.pss.sale.order.CoreOrderManager.queryStdStyle", "STD_STYLE", ob, true); OrderFunction.InitComboEditor(cmbSpec, "com.steering.pss.sale.order.CoreOrderManager.querySpec", "SPEC_CODE", ob, true); SetDlyType(ob); this._ob = ob; _saleOrg = saleOrg; } /// /// 设置交货量差 /// private void SetDlyType(OpeBase ob) { DataTable isx = ServerHelper.GetData("com.steering.pss.sale.base.CoreBuyerOrder.GetQueryBaseInfo", new Object[] { "1216" }, ob); cmbDlyType.DataSource = isx; cmbDlyType.DisplayMember = "BASENAME"; cmbDlyType.ValueMember = "BASECODE"; cmbDlyType.Text = "%"; cmbDlyType.Enabled = false; ClsBaseInfo.SetComboItemHeight(cmbDlyType); cmbUnit.DataSource = null; isx = ServerHelper.GetData("com.steering.pss.sale.base.CoreBuyerOrder.GetQueryBaseInfo", new Object[] { "1215" }, ob); cmbUnit.DataSource = isx; cmbUnit.DisplayMember = "BASENAME"; cmbUnit.ValueMember = "BASECODE"; cmbUnit.Text = "吨"; } /// /// 获取控件的值 /// /// public SlmOrderLineNewEntity GetControlValue() { if (cmbStdName.SelectedItem == null) { MessageUtil.ShowWarning("请选择标准名称!"); return null; } if (cmbProName.SelectedItem == null) { MessageUtil.ShowWarning("请选择品名!"); return null; } if (cmbSteel.SelectedItem == null) { MessageUtil.ShowWarning("请选择钢级!"); return null; } if (cmbModel.SelectedItem == null) { MessageUtil.ShowWarning("请选择扣型!"); return null; } /* if (cmbStdStyle.SelectedItem == null) { MessageUtil.ShowWarning("请选择标准类别!"); return null; }*/ if (cmbSpec.SelectedItem == null) { MessageUtil.ShowWarning("请选择产品规格!"); return null; } if (txtLength.Text.Trim() == "") { MessageUtil.ShowWarning("请维护长度信息!"); return null; } if (numQty.Text.Trim() == "") { MessageUtil.ShowWarning("请输入订货量!"); return null; } if (cmbUnit.SelectedItem == null) { MessageUtil.ShowWarning("请选择订货单位!"); return null; } SlmOrderLineNewEntity sol = new SlmOrderLineNewEntity(); sol.Produccode = cmbProName.Value.ToString(); sol.Producname = cmbProName.Text.Trim(); sol.StdCode = cmbStdName.Value.ToString(); sol.StdName = cmbStdName.Text.Trim(); sol.Steelcode = cmbSteel.Value.ToString(); sol.Steelname = cmbSteel.Text.Trim(); sol.ModelCode = cmbModel.Value.ToString(); sol.ModelDesc = cmbModel.Text.Trim(); sol.SpecCode = cmbSpec.Value.ToString(); sol.SpecName = cmbSpec.Text.Trim(); sol.StdStyle = cmbStdStyle.Value.ToString2(); sol.StdStyleDesc = cmbStdStyle.Text.Trim(); DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.querySpecInfo", new object[] { sol.SpecCode }, this._ob); if (dt != null && dt.Rows.Count > 0) { sol.Dimater = Convert.ToDecimal(dt.Rows[0]["DIMATER"].ToString()); sol.Height = Convert.ToDecimal(dt.Rows[0]["HEIGHT"].ToString()); } else { MessageUtil.ShowWarning("您选择的规格已被作废!"); return null; } if (dRow == null) { sol.LenNo = one.LenNo; sol.LenDesc = one.LenDesc; sol.LenUnit = one.LenUnit; sol.LenMin = one.LenMin; sol.LenMax = one.LenMax; sol.ShrtLenRato = one.ShrtLenRato; sol.Shortest = one.Shortest; sol.LongLenRato = one.LongLenRato; sol.Longest = one.Longest; sol.ShrtStove = one.ShrtStove; sol.AvgLenMin = one.AvgLenMin; sol.DifrncLenMax = one.DifrncLenMax; sol.EndlenSpecstd = one.EndlenSpecstd; sol.SiglLen = one.SiglLen; } else { sol.LenNo = dRow["LEN_NO"].ToString(); sol.LenDesc = dRow["LEN_DESC"].ToString(); sol.LenUnit = dRow["LEN_UNIT"].ToString(); sol.LenMin = Convert.ToDecimal(dRow["LEN_MIN"].ToString()); sol.LenMax = Convert.ToDecimal(dRow["LEN_MAX"].ToString()); if (dRow["SHRT_LEN_RATO"].ToString() != "") { sol.ShrtLenRato = Convert.ToDecimal(dRow["SHRT_LEN_RATO"].ToString()); } else { sol.ShrtLenRato = null; } if (dRow["SHORTEST"].ToString() != "") { sol.Shortest = Convert.ToDecimal(dRow["SHORTEST"].ToString()); } else { sol.Shortest = null; } if (dRow["LONG_LEN_RATO"].ToString() != "") { sol.LongLenRato = Convert.ToDecimal(dRow["LONG_LEN_RATO"].ToString()); } else { sol.LongLenRato = null; } if (dRow["LONGEST"].ToString() != "") { sol.Longest = Convert.ToDecimal(dRow["LONGEST"].ToString()); } else { sol.Longest = null; } sol.ShrtStove = dRow["SHRT_STOVE"].ToString(); if (dRow["AVG_LEN_MIN"].ToString() != "") { sol.AvgLenMin = Convert.ToDecimal(dRow["AVG_LEN_MIN"].ToString()); } else { sol.AvgLenMin = null; } if (dRow["DIFRNC_LEN_MAX"].ToString() != "") { sol.DifrncLenMax = Convert.ToDecimal(dRow["DIFRNC_LEN_MAX"].ToString()); } else { sol.DifrncLenMax = null; } if (dRow["ENDLEN_SPECSTD"].ToString() != "") { sol.EndlenSpecstd = Convert.ToDecimal(dRow["ENDLEN_SPECSTD"].ToString()); } else { sol.EndlenSpecstd = null; } if (dRow["SIGL_LEN"].ToString() != "") { sol.SiglLen = Convert.ToDecimal(dRow["SIGL_LEN"].ToString()); } else { sol.SiglLen = null; } } sol.OrderUnit = cmbUnit.Text.Trim(); sol.OrderQty = Convert.ToDecimal(numQty.Value); sol.DelvryRangeTpe = cmbDlyType.Text.Trim(); sol.DelvryRangeMin = Convert.ToDecimal(numDMin.Value); sol.DelvryRangeMax = Convert.ToDecimal(numDMax.Value); sol.FinalUser = txtFinallyUser.Text.Trim() == "" ? "N/A" : txtFinallyUser.Tag.ToString(); sol.FinalUserDesc = txtFinallyUser.Text.Trim() == "" ? "N/A" : txtFinallyUser.Text.Trim(); sol.Psc = "N/A"; sol.PscDesc = "N/A"; sol.OrderSpecCode = "N/A"; sol.OrderSpecDesc = "N/A"; if (dlyFlag == 1) { sol.OrderAddDesc = ""; } else if (dlyFlag == 2) { sol.OrderAddDesc = txtDlyInfo.Text.Trim(); } return sol; } /// /// 长度按钮点击 /// /// /// private void txtLength_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { frmOrderLen len = new frmOrderLen(_ob); len.LenNo = ""; len.GetOrderLen += new frmOrderLen.GetOrderLenHander(len_GetOrderLen); len.ShowDialog(); } void len_GetOrderLen(DataRow lenRow) { dRow = lenRow; txtLength.Text = lenRow["LEN_DESC"].ToString(); } /// /// 最终用户点击 /// /// /// private void txtFinallyUser_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { FrmOrderBuyer buyer = new FrmOrderBuyer(_ob, _saleOrg, "100204"); buyer.GetOrderBuyer += new FrmOrderBuyer.GetOrderBuyerHander(buyer_GetOrderBuyer); buyer.ShowDialog(); } void buyer_GetOrderBuyer(UltraGridRow ugr) { if (ugr != null) { txtFinallyUser.Tag = ugr.Cells["CUSTOMER_NO"].Value.ToString(); txtFinallyUser.Text = ugr.Cells["CUSTOMER_NM"].Value.ToString(); } else { txtFinallyUser.Tag = ""; txtFinallyUser.Text = ""; } } /// /// 设置控件的值 /// /// public void SetControlValue(SlmOrderLineNewEntity sol) { if (sol == null) return; one = sol; cmbStdName.Text = sol.StdName; cmbProName.Text = sol.Producname; cmbSteel.Text = sol.Steelname; cmbModel.Text = sol.ModelDesc; cmbStdStyle.Text = sol.StdStyleDesc; cmbSpec.Text = sol.SpecName; txtLength.Text = sol.LenDesc; numQty.Value = sol.OrderQty; cmbUnit.Text = sol.OrderUnit; numDMin.Value = sol.DelvryRangeMin; numDMax.Value = sol.DelvryRangeMax; cmbDlyType.Text = sol.DelvryRangeTpe; txtFinallyUser.Text = sol.FinalUserDesc; txtFinallyUser.Tag = sol.FinalUser; if (dlyFlag == 1) { txtDlyInfo.Text = sol.DelvryDesc; } else if (dlyFlag == 2) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.getPurLineAddDesc", new object[] { one.OrdLnPk }, this._ob); if (dt != null && dt.Rows.Count > 0) { txtDlyInfo.Text = dt.Rows[0][0].ToString2(); } else { txtDlyInfo.Text = ""; } } } /// /// 清空控件的值 /// public void ClearControlValue() { cmbStdName.Text = ""; cmbProName.Text = ""; cmbSteel.Text = ""; cmbModel.Text = ""; cmbStdStyle.Text = ""; cmbSpec.Text = ""; txtLength.Text = ""; numQty.Value = ""; cmbUnit.Text = ""; numDMin.Value = ""; numDMax.Value = ""; cmbDlyType.Text = ""; txtFinallyUser.Text = ""; txtFinallyUser.Tag = ""; txtDlyInfo.Text = ""; } /// /// 交货行弹窗 /// /// /// private void txtDlyInfo_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { if (e.Button.Key.Equals("normal")) { if (one == null || one.OrdLnPk == "") { MessageUtil.ShowWarning("请选择一行合同行或者新增一行合同行!"); return; } frmOrderDelivery delivery = new frmOrderDelivery(_ob); delivery.ManageNo = one.OrdPk; delivery.OrderNo = one.OrdLnPk; delivery.OrderSeq = one.OrderSeq; delivery.SaleOrg = _saleOrg; delivery.ShRow = one.FinalUserDesc; delivery.NumWt = one.OrderQty.ToString(); delivery.DlyTime = ""; delivery.DlyAddress = ""; delivery.LenUnit = one.LenUnit; //根据估算重量公式计算 delivery.NumTag = Convert.ToString(OrderFunction.GetPrdctWgtNew(Convert.ToDecimal(one.OrderQty), one.OrderUnit, one.SpecCode, _ob)); //单位 delivery.OrderUnit = one.OrderUnit; //DataSet,也许有记录,也许为空。 delivery.OrderSet = null; //产品规格代码 numTag delivery.Spec_code = one.SpecCode; //保总长 delivery.Order_line_lne = 0; delivery.GetOrderDelivery += new frmOrderDelivery.GetOrderDeliveryHander(delivery_GetOrderDelivery); delivery.ShowDialog(); } else if (e.Button.Key.Equals("update")) //修改加工备注(用于合同在后面流程中 发现加工备注不符合要求) 实现合同流程与加工备注确认分离 { if (one.OrdLnPk == "") { MessageUtil.ShowWarning("请选择一行合同行或者新增一行合同行!"); return; } if (txtDlyInfo.Text.Trim() == "") { MessageUtil.ShowWarning("请输入加工备注!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认修改该合同行的加工备注?") == DialogResult.No) return; CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.CoreOrderManager"; ccp.MethodName = "updateOrderAddDesc"; ccp.ServerParams = new object[] { txtDlyInfo.Text.Trim(), one.OrdLnPk, one.OrdPk }; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } MessageUtil.ShowTips("加工备注修改成功!"); OnMyRefresh(); } } } void delivery_GetOrderDelivery(DataSet ds) { string txtDly = ""; for (int i = 0; i < ds.Tables.Count; i++) { if (ds.Tables[i].TableName.Equals("Main")) { for (int k = 0; k < ds.Tables[i].Rows.Count; k++) { string ordLnDlyPk = ds.Tables[i].Rows[k]["ORD_LN_DLY_PK"].ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getOrderDlyTransit", new object[] { ordLnDlyPk }, this._ob); string trasLine = ""; for (int n = 0; n < dt.Rows.Count; n++) { string agency = dt.Rows[n]["AGENCY_FL"].ToString(); if (agency == "0" || agency == "2") //买方线路 { if (agency == "0") trasLine += " 买方线路:"; else { trasLine += " 买方线路(买方代办):"; } if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "") trasLine = trasLine + "运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString(); if (dt.Rows[n]["DESTINATION"].ToString() != "") trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString(); if (dt.Rows[n]["STATION_NO"].ToString() != "") trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString(); if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "") trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString(); if (dt.Rows[n]["PORT_NO"].ToString() != "") trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString(); if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "") trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString(); if (dt.Rows[n]["RECEIVOR"].ToString() != "") trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString(); } else { trasLine += " TPCO代办线路:"; if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "") trasLine = trasLine + " 运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString(); if (dt.Rows[n]["DESTINATION"].ToString() != "") trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString(); if (dt.Rows[n]["STATION_NO"].ToString() != "") trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString(); if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "") trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString(); if (dt.Rows[n]["PORT_NO"].ToString() != "") trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString(); if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "") trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString(); if (dt.Rows[n]["RECEIVOR"].ToString() != "") trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString(); } trasLine = trasLine + ";"; } txtDly += "交货量:" + ds.Tables[i].Rows[k]["DELVRY_QTY"].ToString() + ";交货日期:" + ds.Tables[i].Rows[k]["DELVRY_EDATE"].ToString() + ";收货单位:" + ds.Tables[i].Rows[k]["RECEIV_NM"].ToString() + ";交货地点:" + ds.Tables[i].Rows[k]["DELVRY_ADDR"].ToString() + trasLine + "\r\n"; txtDlyInfo.Text = txtDly; } } } string ordLnPk = one.OrdLnPk; int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderInfoUpdate.updateOrderLineDesc", new object[] { ordLnPk, txtDlyInfo.Text }, this._ob); //if (count <= 0) //{ // MessageUtil.ShowWarning("确认失败,请尝试重新确认!"); // return; //} OnMyRefresh(); } } }