using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CoreFS.CA03; using CoreFS.CA04; using CoreFS.CA06; using System.Collections; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using System.IO; using System.Xml; using Core.Mes.Client.Comm.Format; using Infragistics.Win.UltraWinEditors; using Core.Mes.Client.Comm; using Core.StlMes.Client.SaleOrder.Dialog; namespace Core.StlMes.Client.SaleOrder { public partial class frmOrderDelivery : FrmBase { public frmOrderDelivery() { InitializeComponent(); ExceptionHelper.RegistException(); } /// /// 重写基类load事件,屏蔽平台过滤功能。 /// /// protected override void OnLoad(EventArgs e) { base.OnLoad(e); cmbUnit.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; } public frmOrderDelivery(OpeBase ob) { InitializeComponent(); ExceptionHelper.RegistException(); this.ob = ob; } /// /// Top事件。 /// /// /// private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "doQuery": doQuery(); break; case "Query": doQuery(); break; case "doAdd": doAdd(); break; case "doUpdate": if (ultraGMain.Rows.Count <= 0) { MessageUtil.ShowWarning("请选择一条记录,然后再进行操作!"); return; } doUpdate(); break; case "doDelete": if (ultraGMain.Rows.Count <= 0) { MessageUtil.ShowWarning("请选择一条记录,然后再进行操作!"); return; } doDelete(); break; case "doOk": doOk(); break; case "GenerateCh": GenerateChangeTable(); break; default: break; } } #region 用于合同变更请求 FormOrderChangeManage bool isDelete = false; //是否删除 bool isAdd = false; //是否新增 bool isUpdate = false; //是否更新 string chanVal = ""; //变更明细 private string maxOrdLnDlyPk; //合同行下最大的交货行PK值 在Load时获取数据库 Dictionary dic = new Dictionary(); //发生变化的行号 +变换内容 #endregion /// /// 委托方法 /// /// public delegate void GetOrderDeliveryHander(DataSet ds); public event GetOrderDeliveryHander GetOrderDelivery; /// /// 确认 /// private void doOk() { if (FromForm != "4") { //合同状态 string ordLnStateMsg = ValidState(); if (ordLnStateMsg != "") { MessageUtil.ShowWarning(ordLnStateMsg); return; } } //检验是否维护指定地点。 if (CheckStation() == false) return; if (this.FromForm == "1") { if (ultraGMain.Rows.Count <= 0) { MessageUtil.ShowWarning("必须保留至少一行交货行!"); return; } } if (this.OrdType.Equals("120102")) //现货合同 只允许一个交货行 { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.queryDeliveyCount", new object[] { this.OrderNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { if (Convert.ToInt32(dt.Rows[0][0]) > 1) { MessageUtil.ShowWarning("现货合同的每个合同行下只允许存在一个交货行!"); return; } } } string err = CheckDlyTransit(); if (err != "") { MessageUtil.ShowWarning(err); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认?") == DialogResult.No) { return; } if (ultraGMain.Rows.Count <= 0) { GetOrderDelivery(this.dataSet1); this.Close(); return; } if ((this.FromForm == "0" || FromForm == "4") && validSumWt()) { GetOrderDelivery(this.dataSet1); this.Close(); } if (this.FromForm.Equals("1") && validSumWt()) { this.dlyDt = dataTable1; DialogResult = DialogResult.OK; this.Close(); } if (this.FromForm == "3" && validSumWt()) { this.Close(); } } //MANAG_NO,ORDER_NO,ORDER_SEQ,ORDER_UNIT private string dlyTime = DateTime.Now.ToShortDateString(); public string DlyTime { get { return dlyTime; } set { if (value != null && value != "") dlyTime = value; } } private string fromForm = "0"; /// /// 0来自于‘合同信息维护’界面的请求。,1 来自'交货期评审提报'界面的交货期修改按钮弹出。 2来自于 合同变更 请求修改交货行信息。 3来自合同行变更调整交货期 /// 4.临时修改交货地点 /// public string FromForm { get { return fromForm; } set { fromForm = value; } } private DataTable dlyDt = new DataTable(); public DataTable DlyDt { get { return dlyDt; } set { dlyDt = value; } } string saleOrg = ""; public string SaleOrg { get { return saleOrg; } set { saleOrg = value; } } /// /// 管理卡号 /// private string manageNo = ""; public string ManageNo { get { return manageNo; } set { manageNo = value; } } /// /// 交货量 /// private string numWt = ""; public string NumWt { get { return numWt; } set { numWt = value; } } /// /// 估算总量 /// private string numTag = ""; public string NumTag { get { return numTag; } set { numTag = value; } } /// /// 合同ORD_LN_PK值 /// private string orderNo = ""; /// /// 合同ORD_LN_PK值 /// public string OrderNo { get { return orderNo; } set { orderNo = value; } } //----------------------暂时在合同变更处使用=-=-------------------------- /// /// 合同号 ORDER_NO /// private string ordNo; public string OrdNo { get { return ordNo; } set { ordNo = value; } } /// /// 合同行号 /// private string ordSeq; /// /// 合同行号 /// public string OrdSeq { get { return ordSeq; } set { ordSeq = value; } } //------------------------------------------------------------------------------------ /// /// 合同行号 /// private string orderSeq = ""; public string OrderSeq { get { return orderSeq; } set { orderSeq = value; } } /// /// 单位 /// private string orderUnit = ""; public string OrderUnit { get { return orderUnit; } set { orderUnit = value; } } /// /// 存储新增时的交货信息编号,用于传递给运输线路界面。 /// private string deliveryNo = ""; public string DeliveryNo { get { return deliveryNo; } set { deliveryNo = value; } } /// /// 产品规格代码 /// private string spec_code = ""; public string Spec_code { get { return spec_code; } set { spec_code = value; } } /// /// 保总长 /// private double order_line_lne = 0; public double Order_line_lne { get { return order_line_lne; } set { order_line_lne = value; } } /// /// 收货单位 /// private string shRow = ""; public string ShRow { get { return shRow; } set { shRow = value; } } /// /// DataSet,如果有数据,则需要将数据查询出来。 /// private DataSet orderSet; public DataSet OrderSet { get { return orderSet; } set { orderSet = value; } } /// /// 交货地点 /// private string dlyAddress; /// /// 交货地点 /// public string DlyAddress { get { return dlyAddress; } set { dlyAddress = value; } } private string lenUnit; /// /// 长度单位/保总长单位 /// public string LenUnit { get { return lenUnit; } set { lenUnit = value; } } /// /// 合同类型 /// private string ordType = "A"; /// /// 合同类型 /// public string OrdType { get { return ordType; } set { ordType = value; } } /// /// 接箍单各重量 /// private double jg_weight = 0; /// /// 接箍单各重量 /// public double Jg_weight { get { return jg_weight; } set { jg_weight = value; } } /// /// 品种代码 /// private string produc_code = ""; /// /// 品种代码 /// public string Produc_code { get { return produc_code; } set { produc_code = value; } } /// /// 验证重量 /// /// private bool validWt() { if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt)) { MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } decimal JHwt = 0; foreach (UltraGridRow urow in ultraGMain.Rows) { if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1") { JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value); } } if ((Convert.ToDecimal(JHwt) + Convert.ToDecimal(uNCount.Value)) > Convert.ToDecimal(numWt)) { MessageBox.Show("请确认是否超出交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } return true; } /// /// 修改验证重量 /// /// private bool validUpWt() { if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt)) { MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } decimal JHwt = 0; decimal IndexWt = Convert.ToDecimal(ultraGMain.ActiveRow.Cells[5].Value); // ? //int Gswt = 0; foreach (UltraGridRow urow in ultraGMain.Rows) { if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1") { JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value); } } decimal sumWtx = (JHwt - IndexWt) + Convert.ToDecimal(uNCount.Value); if (sumWtx > Convert.ToDecimal(numWt)) { MessageBox.Show("请确认是否超出交货总量" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } return true; } /// /// 合同交货行的交货总量必须等于合同行的订货量 /// /// private bool validSumWt() { if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt)) { MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } decimal JHwt = 0; //int Gswt = 0; foreach (UltraGridRow urow in ultraGMain.Rows) { if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1") { JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value); } } decimal sumWtx = (JHwt - Convert.ToDecimal(numWt)); if (sumWtx < 0) { MessageBox.Show("请确认是否满足交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (sumWtx > 0) { MessageBox.Show("请确认是否超出交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } return true; } /// /// 合同交货行的交货总量刷新功能 /// /// private decimal validLoadSumWt() { decimal JHwt = 0; foreach (UltraGridRow urow in ultraGMain.Rows) { if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1") { JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value); } } decimal sumWtx = (JHwt - Convert.ToDecimal(numWt)); if (sumWtx < 0) { sumWtx = -sumWtx; } return sumWtx; } /// /// 修改 /// private bool doUpdate() { //交货期变更不验证重量--存在修改合同订单量情况 if (this.FromForm != "2") { if (!validUpWt()) { return false; } } //确定是否有选中项。 if (ultraGMain.ActiveRow == null) { MessageBox.Show("请选择需要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (this.FromForm != "2" && this.FromForm != "4") { //合同状态 string ordLnStateMsg = ValidState(); if (ordLnStateMsg != "") { MessageUtil.ShowWarning(ordLnStateMsg); return false; } } if (FromForm != "4") { if (Convert.ToDateTime(uDTDeliveryEnd.Value) < DateTime.Now) { MessageUtil.ShowWarning("最迟交货期日期[" + Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString() + "]不合理!"); return false; } } //验证交货时间差 //只有一行时 不用验证时间差。 if (ultraGMain.Rows.Count >= 2) { //if (!this.delEnd()) //{ // return false; //} } //无效数据不允许修改。 //验证非空项 if (ValidInput()) { //直接修改交货信息。 ArrayList parms = new ArrayList(); //交货结束日期,改为最迟交货日期 parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToString("yyyy-MM-dd")); //两次交货日期之间必须大于31天 //交货量 parms.Add(uNCount.Value.ToString()); //计量单位(从主界面接收的参数) parms.Add(OrderUnit); //估算重量(留空) parms.Add(uNEstimate.Value.ToString()); //保总长 parms.Add(uNLen.Value.ToString()); //收货单位编码 parms.Add(cmbUnit.Value == null ? "" : cmbUnit.Value.ToString()); //收获单位名称 parms.Add(cmbUnit.Text); ////交货地点DELVRY_ADDR parms.Add(cmbDeliveryAddress.Text); //是否代办,如果非代办,则没有运输方案、总运费。 parms.Add(ckbTpcoAgency.Checked ? "1" : "0"); //地点,允许为空。 parms.Add(utxtAddress.Text.Trim()); //运输方案。长沙-北京 方案1. parms.Add(""); //总运费 parms.Add(transitMny); parms.Add(UserInfo.GetUserName()); parms.Add(cmbFactoryType.Value == null ? "" : cmbFactoryType.Value.ToString()); parms.Add(chkExtra.Checked ? "1" : "0"); string deliveryNo = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString(); string seq = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString(); //管理卡号 parms.Add(ManageNo); //合同号 parms.Add(OrderNo); //合同行号 parms.Add(seq); string name = UserInfo.GetUserName(); if (this.FromForm == "2") { //来自于合同变更时 请求修改交货行信息 FormOrderChangeManage foc = new FormOrderChangeManage(this.ob); if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2") { MessageUtil.ShowWarning("此合同行已存在非交货行变更的变更单,不能修改!"); return false; } string chanStatus = GetExistsApplyNo(this.OrderNo); if (chanStatus != "W" && chanStatus != "S" && chanStatus != "F") { DeleteApplyNo(this.OrderNo); } else { if (chanStatus == "W") { MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能修改!"); return false; } } if (MessageUtil.ShowYesNoAndQuestion("是否确认修改数据!") == DialogResult.No) return false; string ordLnDlyPk = ""; string chmaxOrdLnDlyPk = GetMaxOrdLnPk(); if (seq == maxOrdLnDlyPk) //变更修改行PK等于合同最大 { if (maxOrdLnDlyPk == chmaxOrdLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxOrdLnDlyPk) < 0) { ordLnDlyPk = chmaxOrdLnDlyPk; } else { ordLnDlyPk = maxOrdLnDlyPk; } } else if (string.Compare(seq, maxOrdLnDlyPk) < 0) //变更修改行PK小于合同最大 { if (maxOrdLnDlyPk == chmaxOrdLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxOrdLnDlyPk) < 0) { ordLnDlyPk = chmaxOrdLnDlyPk; } else { ordLnDlyPk = maxOrdLnDlyPk; } } else //变更修改行PK大于合同最大 { ordLnDlyPk = ""; } CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage"; ccp.MethodName = "doUpdateOrderDlyLine"; ccp.ServerParams = new object[] { parms, ordLnDlyPk, this.OrderNo }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp == null) return false; else { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return false; } } //修改信息头 UltraGridRow ugr = ultraGMain.ActiveRow; if (ugr.Cells["DELVRY_EDATE"].Value.ToString() != Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString()) chanVal = "交货日期:" + ugr.Cells["DELVRY_EDATE"].Value.ToString() + " 修改为 " + Convert.ToDateTime(uDTDeliveryEnd.Value).ToString("yyyy-MM-dd")+ "\r\n"; if (ugr.Cells["RECEIV_NO"].Value.ToString() != cmbUnit.Value.ToString()) chanVal = chanVal + "收货单位:" + ugr.Cells["RECEIV_NM"].Value.ToString() + " 修改为 " + cmbUnit.Text + "\r\n"; if (ugr.Cells["DELVRY_QTY"].Value.ToString() != uNCount.Value.ToString()) chanVal = chanVal + "交货量:" + ugr.Cells["DELVRY_QTY"].Value.ToString() + " 修改为 " + uNCount.Value.ToString() + "\r\n"; if (ugr.Cells["DELVRY_ADDR"].Value.ToString() != cmbDeliveryAddress.Text.Trim()) chanVal = chanVal + "交货地点:" + ugr.Cells["DELVRY_ADDR"].Value.ToString() + " 修改为 " + cmbDeliveryAddress.Text.Trim() + "\r\n"; if (ugr.Cells["RECEIV_ADDR"].Value.ToString() != utxtAddress.Text.Trim()) chanVal = chanVal + "指定地址:" + ugr.Cells["RECEIV_ADDR"].Value.ToString() + " 修改为 " + utxtAddress.Text.Trim() + "\r\n"; if (ugr.Cells["TRANSIT_TYP_NM"].Value.ToString() != cmbFactoryType.Text) chanVal = chanVal + "出厂类型:" + ugr.Cells["TRANSIT_TYP_NM"].Value.ToString() + " 修改为 " + cmbFactoryType.Text.Trim() + "\r\n"; if (ugr.Cells["AGENCY_FL"].Value.ToString().ToUpper() != ckbTpcoAgency.Checked.ToString().ToUpper()) { string tpco = ""; string tpco1 = ""; if (ugr.Cells["AGENCY_FL"].Value.ToString().ToUpper() == "TRUE") tpco = "有"; else tpco = "无"; if (ckbTpcoAgency.Checked) tpco1 = "有"; else tpco1 = "无"; chanVal = chanVal + "TPCO代办:" + tpco + " 修改为 " + tpco1 + "\r\n"; } if (chanVal == "") isUpdate = false; else { isUpdate = true; chanVal = "交货行 " + deliveryNo + "\r\n" + chanVal; } if (dic.ContainsKey(deliveryNo)) { if (chanVal != "") { chanVal = dic[deliveryNo] + chanVal; dic[deliveryNo] = chanVal; } } else { dic.Add(deliveryNo, chanVal); } MessageUtil.ShowTips("修改成功!"); //刷新数据源 doQuery(); foreach (UltraGridRow urow in ultraGMain.Rows) { if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo)) { urow.Activate(); break; } } uNCount.Value = validLoadSumWt(); GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] }); return true; } else { if (MessageUtil.ShowYesNoAndQuestion("是否确认修改数据!") == DialogResult.No) return false; CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "doUpdate"; ccp.ServerParams = new object[] { parms, name, this.ManageNo, this.FromForm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp == null) return false; else { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return false; } } MessageUtil.ShowTips("修改成功!"); //刷新数据源 doQuery(); //新增子表记录,运输线路。 //addOrderDeliveryTransit(deliveryNo); Infragistics.Win.UltraWinGrid.UltraGridRow urow = null; for (int i = 0; i < ultraGMain.Rows.Count; i++) { urow = ultraGMain.Rows[i]; if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo)) { urow.Activate(); break; } } uNCount.Value = validLoadSumWt(); GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] }); return true; } } else { return false; } } /// /// 单击编辑区控件时,执行的修改。 /// private bool doUpdateDelivery() { //确定是否有选中项。 if (ultraGMain.ActiveRow == null) { MessageBox.Show("请选择需要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } //无效数据不允许修改。 //验证非空项 if (ValidInput()) { //直接修改交货信息。 ArrayList parms = new ArrayList(); //交货结束日期,改为最迟交货日期 parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString()); //两次交货日期之间必须大于31天 //交货量 parms.Add(uNCount.Value.ToString()); //计量单位(从主界面接收的参数) parms.Add(OrderUnit); //估算重量(留空) parms.Add(uNEstimate.Value.ToString()); //保总长 parms.Add(uNLen.Value.ToString()); //收货单位编码 parms.Add(cmbUnit.Value.ToString()); //收获单位名称 parms.Add(cmbUnit.Text); ////交货地点DELVRY_ADDR parms.Add(cmbDeliveryAddress.Text); //是否代办 parms.Add(1); //地点,允许为空。 parms.Add(utxtAddress.Text.Trim()); //运输方案。长沙-北京 方案1. parms.Add(""); //总运费 parms.Add(transitMny); parms.Add(UserInfo.GetUserName()); string deliveryNo = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString(); //管理卡号 parms.Add(ManageNo); //合同号 parms.Add(OrderNo); //合同行号 parms.Add(OrderSeq); ////交货信息编号 //parms.Add(deliveryNo); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "doUpdate"; ccp.ServerParams = new object[] { parms }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return false; //刷新数据源 doQuery(); //新增子表记录,运输线路。 //addOrderDeliveryTransit(deliveryNo); Infragistics.Win.UltraWinGrid.UltraGridRow urow = null; for (int i = 0; i < ultraGMain.Rows.Count; i++) { urow = ultraGMain.Rows[i]; if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo)) { urow.Activate(); break; } } GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] }); return true; } else { return false; } } /// /// 获取重量 /// /// private double validIntSumWt() { double JHwt = 0; foreach (UltraGridRow urow in ultraGMain.Rows) { if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("")) { JHwt += Convert.ToDouble(urow.Cells["DELVRY_QTY"].Value); } } double sumWtx = (Convert.ToDouble(numWt) - JHwt); return sumWtx; } /// /// 删除 /// private void doDelete() { if (ultraGMain.ActiveRow == null) { MessageBox.Show("请选择需要删除的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdLnLikuState", new object[] { ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString() }, ob); if (dt.Rows.Count > 0) { MessageUtil.ShowWarning("交货行存在利库信息,不能进行删除操作!"); return; } if (this.FromForm != "2") { //合同状态 string ordLnStateMsg = ValidState(); if (ordLnStateMsg != "") { MessageUtil.ShowWarning(ordLnStateMsg); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除数据?") == DialogResult.No) { return; } if (this.FromForm == "2") { FormOrderChangeManage foc = new FormOrderChangeManage(this.ob); if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2") { MessageUtil.ShowWarning("此合同行已存非交货行类型的变更,不能删除!"); return; } string chanStatus = GetExistsApplyNo(this.OrderNo); if (chanStatus != "W" && chanStatus != "S") { DeleteApplyNo(this.OrderNo); } else { if (chanStatus == "W") { MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能删除!"); return; } } } UltraGridRow row = ultraGMain.ActiveRow; string deliveryNo = row.Cells["ORD_LN_DLY_PK"].Value.ToString(); string dlyNo = row.Cells["DELIVERY_NO"].Value.ToString(); DataRow[] dr = dataTable1.Select("ORD_LN_DLY_PK = '" + deliveryNo + "'", ""); //获取当前选中行的管理卡号、合同头号、合同行号、交货信息编号,删除该编号对应的全部运输线路信息。 clearTransit(deliveryNo); //删除当前交货信息。 deleteDelivery(deliveryNo); if (this.FromForm == "0" || this.FromForm == "1" || this.FromForm == "3") { doQuery(); } else { if (dic.ContainsKey(dlyNo)) { isUpdate = false; } isDelete = true; dataTable1.Rows.Remove(dr[0]); ultraGMain.UpdateData(); deliveryTransitTpcoSrc.Clear(); deliveryTransitUserSrc.Clear(); chanVal = "删除交货行 " + dlyNo; if (dic.ContainsKey(dlyNo)) { chanVal = dic[dlyNo] + chanVal; dic[dlyNo] = chanVal; } else { dic.Add(dlyNo, chanVal); } SetpanelDlyChangeValue(); } uNCount.Value = validLoadSumWt(); } /// /// 删除当前选中交货信息行 /// /// private void deleteDelivery(string deliveryNo) { ArrayList parms = new ArrayList(); parms.Add(deliveryNo); CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "deleteDelivery"; ccp.ServerParams = new object[] { parms, UserInfo.GetUserName(), this.ManageNo, this.FromForm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp == null) return; else { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } MessageUtil.ShowTips("删除成功!"); } } /// /// 删除全部线路 /// private void clearTransit(string deliveryNo) { ArrayList parms = new ArrayList(); parms.Add(deliveryNo); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "clearTransit"; ccp.ServerParams = new object[] { parms, this.FromForm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; } /// /// 新增交货信息 /// private bool doAddDelivery() { if (ValidInput()) { //验证交货时间差 if (!this.delEnd()) { return false; } //两次交货日期必须大于31天。 //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。 //存储新增时的交货信息编码,用于传递给运输线路信息界面。 DeliveryNo = autoCode(); //直接新增交货信息。 ArrayList parms = new ArrayList(); //管理卡号 parms.Add(ManageNo); //合同号 parms.Add(OrderNo); parms.Add(OrderNo); //合同行号 parms.Add(OrderNo); //交货信息编号 parms.Add(deliveryNo); //交货结束日期,改为最迟交货日期 parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString()); //两次交货日期之间必须大于31天。 //交货量 parms.Add(uNCount.Value); //计量单位(从主界面接收的参数) parms.Add(OrderUnit); //估算重量(留空) parms.Add(uNEstimate.Value.ToString()); //保总长 parms.Add(uNLen.Value); //收货单位编码 parms.Add(cmbUnit.Value); //收获单位名称 parms.Add(cmbUnit.Text); ////交货地点DELVRY_ADDR parms.Add(cmbDeliveryAddress.Text); //代办=false。 //运输线路信息=“” //吨运费=“” //是一条全新的记录,如果有运输线路信息,那么,你在点击运输线路信息按钮时,会自动新增以及更新运费等信息。 //是否代办 parms.Add(0); //地点,允许为空。 parms.Add(utxtAddress.Text.Trim()); //运输方案。长沙-北京 方案1. parms.Add(""); //总运费 parms.Add(transitMny); parms.Add(UserInfo.GetUserName()); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "doAdd"; ccp.ServerParams = new object[] { parms }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return false; //刷新数据源 doQuery(); Infragistics.Win.UltraWinGrid.UltraGridRow urow = null; for (int i = 0; i < ultraGMain.Rows.Count; i++) { urow = ultraGMain.Rows[i]; if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo)) { urow.Activate(); break; } } GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] }); return true; } else { return false; } } /// /// 获取交货信息最新日期。 /// /// private string GetDelEnd() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetDelEnd", new Object[] { OrderNo }, this.ob); if (dt.Rows.Count > 0) { return dt.Rows[0][0].ToString(); } else { return ""; } } /// /// 往DataSet数据集中新增一条记录。 /// private void doAdd() { if (this.FromForm != "2") { //合同状态 string ordLnStateMsg = ValidState(); if (ordLnStateMsg != "") { MessageUtil.ShowWarning(ordLnStateMsg); return; } } //交货期变更暂时不验证重量 if (this.FromForm != "2") { if (!validWt()) { return; } } if (ValidInput()) { //两次交货日期必须大于31天。 //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。 //验证交货时间差 if (ultraGMain.Rows.Count >= 1) { //if (!this.delEnd()) //{ // return; //} } if (Convert.ToDateTime(uDTDeliveryEnd.Value) < DateTime.Now) { MessageUtil.ShowWarning("最迟交货期日期[" + Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString() + "]不合理!"); return; } //存储新增时的交货信息编码,用于传递给运输线路信息界面。 DeliveryNo = autoCode(); //直接新增交货信息。 ArrayList parms = new ArrayList(); //管理卡号 parms.Add(ManageNo); //合同行号 parms.Add(OrderNo); if (this.FromForm == "2") { string chmaxLnDlyPk = GetMaxOrdLnPk(); if (maxOrdLnDlyPk == chmaxLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxLnDlyPk) < 0) { parms.Add(chmaxLnDlyPk); parms.Add(OrderNo); parms.Add(OrderNo); parms.Add(chmaxLnDlyPk); parms.Add(OrderNo); parms.Add(OrderNo); parms.Add(OrderNo); parms.Add(OrderNo); // parms.Add(chmaxLnDlyPk); } else { parms.Add(maxOrdLnDlyPk); parms.Add(OrderNo); parms.Add(OrderNo); parms.Add(maxOrdLnDlyPk); parms.Add(OrderNo); parms.Add(OrderNo); parms.Add(OrderNo); parms.Add(OrderNo); //parms.Add(maxOrdLnDlyPk); } } else { parms.Add(OrderNo); parms.Add(OrderNo); parms.Add(OrderNo); //parms.Add(OrderNo); } //交货信息编号 //交货结束日期,改为最迟交货日期 parms.Add(uDTDeliveryEnd.DateTime.ToString("yyyy-MM-dd")); //两次交货日期之间必须大于31天。 //交货量 parms.Add(uNCount.Value.ToString()); //计量单位(从主界面接收的参数) parms.Add(OrderUnit); //估算重量(留空) parms.Add(uNEstimate.Value.ToString()); //保总长 parms.Add(uNLen.Value.ToString()); //收货单位编码 parms.Add(cmbUnit.Value.ToString()); //收获单位名称 parms.Add(cmbUnit.Text); ////交货地点DELVRY_ADDR parms.Add(cmbDeliveryAddress.Text); //只执行简单新增操作。 //代办=false。 //运输线路信息=“” //吨运费=“” //是一条全新的记录,如果有运输线路信息,那么,你在点击运输线路信息按钮时,会自动新增以及更新运费等信息。 parms.Add(ckbTpcoAgency.Checked ? "1" : "0"); //地点,允许为空。 parms.Add(utxtAddress.Text.Trim()); //运输方案。长沙-北京 方案1. parms.Add(""); //总运费 parms.Add(""); parms.Add(UserInfo.GetUserName()); parms.Add(cmbFactoryType.Value == null ? "" : cmbFactoryType.Value.ToString()); parms.Add(chkExtra.Checked ? "1" : "0"); parms.Add(chkAdd.Checked ? "1" : "0"); if (this.OrdType.Equals("120102")) //现货合同 只允许一个交货行 { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.queryDeliveyCount", new object[] { this.OrderNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { if (Convert.ToInt32(dt.Rows[0][0]) > 1) { MessageUtil.ShowWarning("现货合同的每个合同行下只允许存在一个交货行!"); return; } } } if (MessageUtil.ShowYesNoAndQuestion("是否确认新增数据!") == DialogResult.No) return; if (this.FromForm == "2") { FormOrderChangeManage foc = new FormOrderChangeManage(this.ob); if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2") { MessageUtil.ShowWarning("此合同行已存在非交货行类型的变更,不能新增!"); return; } string chanStatus = GetExistsApplyNo(this.OrderNo); if (chanStatus != "W" && chanStatus != "S" && chanStatus != "F") { DeleteApplyNo(this.OrderNo); } else { if (chanStatus == "W") { MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能新增!"); return; } } } string name = UserInfo.GetUserName(); string dept = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob); dept = dept + "-" + UserInfo.GetDepartment(); try { ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.doAdd", new object[] { parms, name, dept, this.ManageNo, this.FromForm }, ob); } catch (MESException e) { MessageUtil.ShowTips(e.ExceptionInfo); return; } MessageUtil.ShowTips("新增成功!"); if (this.FromForm == "2") { chanVal = "新增交货行 " + DeliveryNo + " 交货量 " + uNCount.Value.ToString() + OrderUnit + " 收货单位 " + cmbUnit.Text; if (dic.ContainsKey(DeliveryNo)) { chanVal = dic[DeliveryNo] + "\r\n" + chanVal; dic[DeliveryNo] = chanVal; } else { dic.Add(DeliveryNo, chanVal); } isAdd = true; } //刷新数据源 doQuery(); Infragistics.Win.UltraWinGrid.UltraGridRow urow = null; for (int i = 0; i < ultraGMain.Rows.Count; i++) { urow = ultraGMain.Rows[i]; if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo)) { urow.Activate(); break; } } uNCount.Value = validLoadSumWt(); GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] }); } } DataTable dtLine = new DataTable(); /// /// 线路明细总数据源,DataTable2 /// DataTable saveLine = new DataTable(); /// /// 交货信息总数据源,DataTable1 /// DataTable orderDelivery = new DataTable(); /// /// 新增运输线路 /// private void addOrderDeliveryTransit(string deliveryNo) { if (dtLine.Rows.Count > 0) { ArrayList paramS = new ArrayList(); foreach (DataRow row in dtLine.Rows) { ArrayList parms = new ArrayList(); parms.Add(ManageNo); parms.Add(OrderNo); parms.Add(OrderSeq); parms.Add(row["DELIVERY_NO"].ToString()); parms.Add(row["INDEX_SEQ"].ToString()); //代办标识 if (Convert.ToBoolean(row["AGENCY_FL"])) { parms.Add(1); } else { parms.Add(0); } parms.Add(row["LV_FACTY_TYP"].ToString()); parms.Add(row["TRANSIT_TYP"].ToString()); parms.Add(row["DESTINATION"].ToString()); parms.Add(row["STATION_NO"].ToString()); parms.Add(row["STATION_NM"].ToString()); parms.Add(row["SPCL_LN_NO"].ToString()); parms.Add(row["SPCL_LN_NM"].ToString()); parms.Add(row["PORT_NO"].ToString()); parms.Add(row["PORT_DESC"].ToString()); parms.Add(row["CARRIER_UNIT"].ToString()); parms.Add(row["RECEIVOR"].ToString()); parms.Add(row["TRANSIT_LN_MNY"].ToString()); parms.Add(1); parms.Add(UserInfo.GetUserName()); paramS.Add(parms); } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "addOrderDeliveryTransit"; ccp.ServerParams = new object[] { paramS }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; } } /// /// 最大交货编码 /// /// private string autoCode() { string maxStr = GetMaxDeliveryNo(); if ("".Equals(maxStr)) { return "001"; } else { int i = Convert.ToInt32(maxStr); i++; string str = i.ToString(); str = str.PadLeft(3, '0'); return str; } } /// /// 获取当前合同行号下最大编号 /// /// private string GetMaxDeliveryNo() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetMaxDeliveryNo", new Object[] { this.OrderNo, fromForm }, this.ob); return dt.Rows[0][0].ToString(); } /// /// 查询(刷新数据) /// private void doQuery() { if (this.fromForm == "2") { try { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderDelivery", new object[] { this.ManageNo, this.OrderNo }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); GridHelper.RefreshAndAutoSize(ultraGMain); } catch (MESException e) { MessageUtil.ShowWarning(e.ExceptionInfo); } SetpanelDlyChangeValue(); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.doQuery", new Object[] { OrderNo }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); foreach (UltraGridRow row in ultraGMain.Rows) { if ("1".Equals(row.Cells["AGENCY_FL"].Value)) { row.Cells["AGENCY_FL"].Value = true; } else { row.Cells["AGENCY_FL"].Value = false; } } //列自适应 GridHelper.RefreshAndAutoSize(ultraGMain); ultraGMain.UpdateData(); } } private void frmOrderDelivery_Load(object sender, EventArgs e) { ultraLabel18.Text = LenUnit; BindDw(); InitTransitUi(); //从主界面接收过来的单位参数。 cmbDw.Text = OrderUnit; //收货单位。 BindUnit(); //交货地点 BindAddress(); doQuery(); uNCount.Value = validIntSumWt(); uDTDeliveryEnd.Value = Convert.ToDateTime(this.DlyTime).ToString("yyyy-MM-dd"); if (this.FromForm == "2") //合同变更时 { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getMaxOrdLnDlyPk", new object[] { this.OrderNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { this.maxOrdLnDlyPk = dt.Rows[0][0].ToString(); } //2016.12.26 //if (NumWt == "0") //{ // chkAdd.Checked = true; // chkAdd.Enabled = false; //} } else { ultraGMain.DisplayLayout.Bands[0].Columns["RCMD_DELVRY_EDATE"].Hidden = true; ultraGMain.DisplayLayout.Bands[0].Columns["PRDCYC_MEET"].Hidden = true; panelDlyChange.Visible = false; } //临时口子 if (FromForm == "4") { // 合同管理科 if (!"admin".Equals(UserInfo.GetUserName()) && !"002001042003005".Equals(UserInfo.GetDeptid())) { uDTDeliveryEnd.Enabled = false; uNCount.Enabled = false; } //cmbFactoryType.Enabled = false; this.ultraToolbarsManager1.Toolbars[0].Tools["doAdd"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; this.ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; } } /// /// 绑定单位 /// private void BindDw() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.base.CoreBuyerOrder.GetQueryBaseInfo", new Object[] { "1215" }, ob); cmbDw.DataSource = dt; cmbDw.DisplayMember = "BASENAME"; cmbDw.ValueMember = "BASECODE"; } /// /// 刷新DataTable1数据源。 /// private void BindOrderDelivery() { //依据管理卡号、合同号、合同行号,展示对应的信息。 DataView orderDv = new DataView(orderDelivery); orderDv.RowFilter = "MANAG_NO=" + ManageNo + " AND ORDER_NO=" + OrderNo + " AND ORDER_SEQ=" + OrderSeq; DataTable orderDt = orderDv.ToTable(); GridHelper.CopyDataToDatatable(ref orderDt, ref this.dataTable1, true); } private string ValidState() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdLnState", new object[] { OrderNo }, ob); if (dt.Rows.Count > 0) { string ordLnState = dt.Rows[0][0].ToString(); try { if (Convert.ToInt32(ordLnState) >= 12020301) { return "当前合同行已经生效或者提报,不能进行此操作!"; } } catch (Exception e) { return e.Message; } } return ""; } /// /// 验证非空项。 /// /// private bool ValidInput() { if (string.IsNullOrEmpty(uDTDeliveryEnd.Value.ToString())) { MessageBox.Show("请输入最迟交货日期!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); uDTDeliveryEnd.Focus(); return false; } if (string.IsNullOrEmpty(uNCount.Value.ToString())) { MessageBox.Show("请输入交货量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); uNCount.Focus(); return false; } //交货量、保总长必须大于0. if (Convert.ToDouble(uNCount.Value) <= 0) { MessageBox.Show("交货量必须大于0!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); uNCount.Focus(); return false; } if (string.IsNullOrEmpty(uNEstimate.Value.ToString())) { MessageBox.Show("请输入估算重量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); uNEstimate.Focus(); return false; } if (cmbUnit.Value == System.DBNull.Value || cmbUnit.Value == null) { MessageBox.Show("请输入收货单位!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); cmbUnit.Focus(); return false; } if (cmbUnit.IsItemInList(cmbUnit.Text) == false) { MessageUtil.ShowWarning("输入的收货单位不存在,请选择收货单位!"); cmbUnit.Focus(); return false; } if (cmbDeliveryAddress.Value == null || string.IsNullOrEmpty(cmbDeliveryAddress.Value.ToString())) { MessageBox.Show("请输入交货地点!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); cmbDeliveryAddress.Focus(); return false; } ////自提,则交货地址必填 if ("110603".Equals(cmbDeliveryAddress.Value.ToString())) { if ("".Equals(utxtAddress.Text)) { MessageBox.Show("请输入地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); utxtAddress.Focus(); return false; } } if ("110603".Equals(cmbDeliveryAddress.Value.ToString())) { if ("".Equals(utxtAddress.Text)) { MessageBox.Show("请输入地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); utxtAddress.Focus(); return false; } } if (cmbFactoryType.Value == null || cmbFactoryType.Value.ToString() == "") { MessageUtil.ShowWarning("请选择出厂类型!"); cmbFactoryType.Focus(); return false; } int validCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").Count(); if (ckbTpcoAgency.Checked == false) { if (validCnt > 0) { MessageUtil.ShowWarning("系统已存在Tpco代办(运输线路),不能取消Tpco代办!"); ckbTpcoAgency.Focus(); return false; } } return true; } /// /// 交货地点 /// private void BindAddress() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.BindAddress", new object[] { orderNo }, this.ob); cmbDeliveryAddress.DataSource = dt; cmbDeliveryAddress.DisplayMember = "BASENAME"; cmbDeliveryAddress.ValueMember = "BASECODE"; cmbDeliveryAddress.DataBind(); cmbDeliveryAddress.SelectedIndex = 0; if (this.DlyAddress == "") { cmbDeliveryAddress.SelectedIndex = 0; } else { cmbDeliveryAddress.Text = this.DlyAddress; } foreach(DataRow dr in dt.Rows){ if (dr["BASECODE"].ToString() == "110610") { cmbDeliveryAddress.Value = "110610"; } } if (saleOrg == "100102") { cmbDeliveryAddress.Text = "TPCO库房车板"; } } /// /// 绑定收货单位,需要传递参数,隶属于哪个销售组织,类型是收货单位还是最终用户。 /// private void BindUnit() { string custmUse = "100203"; DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.BindUnit", new Object[] { saleOrg, custmUse }, this.ob); //起始地数据源绑定 cmbUnit.DataSource = dt; cmbUnit.DisplayMember = "CUSTOMER_NM"; cmbUnit.ValueMember = "CUSTOMER_NO"; cmbUnit.DataBind(); cmbUnit.Text = shRow; } /// /// 指定地点,utxtAddress非只读。 /// /// /// private void cmbDeliveryAddress_ValueChanged(object sender, EventArgs e) { if (cmbDeliveryAddress.Value == null) return; if ("110603".Equals(cmbDeliveryAddress.Value.ToString())) { utxtAddress.ReadOnly = false; } else { utxtAddress.ReadOnly = true; utxtAddress.Text = ""; } if ("110601".Equals(cmbDeliveryAddress.Value.ToString())) { if (ckbTpcoAgency.Checked) { chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; chkExtra.Enabled = true; chkExtra.Checked = true; } else { chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False; chkExtra.Enabled = true; chkExtra.Checked = false; } } else { chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False; chkExtra.Enabled = false; chkExtra.Checked = false; } lblDeliveryType.Text = cmbDeliveryAddress.Text; } /// /// 总运费 /// private string transitMny = ""; /// /// 验证两次交货日期之前必须大于31天 /// private bool delEnd() { //两次交货日期必须大于31天。 //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。 string delEnd = GetDelEnd(); if (!"".Equals(delEnd)) { DateTime delEndDt = Convert.ToDateTime(delEnd); TimeSpan tSpan = uDTDeliveryEnd.DateTime - delEndDt; if (tSpan.Days < 31) { MessageBox.Show("两次交货日期之间必须大于31天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return false; } } return true; } /// /// 验证两次交货日期之前必须大于45天 /// private bool delUpEnd() { //两次交货日期必须大于45天。 //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。 DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetDelEnd", new Object[] { OrderNo }, this.ob); for (int i = 0; i < dt.Rows.Count; i++) { string delEnd = dt.Rows[i][0].ToString(); if (!"".Equals(delEnd)) { DateTime delEndDt = Convert.ToDateTime(delEnd); DateTime deletoDt = Convert.ToDateTime(dt.Rows[0][0].ToString()); TimeSpan tSpans = uDTDeliveryEnd.DateTime - deletoDt; //最迟交货期 TimeSpan tSpan = uDTDeliveryEnd.DateTime - delEndDt; if (i == 0 && tSpans.Days > 0) { continue; } if (tSpan.Days == 0) { continue; } if (tSpan.Days >= -31 && tSpan.Days <= 31) { MessageBox.Show("两次交货日期之前必须大于45天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return false; } if (tSpan.Days >= 0 && tSpan.Days <= 31) { MessageBox.Show("两次交货日期之前必须大于45天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return false; } } } return true; } /// /// 更新单击弹出运输线路窗体时,新增或修改交货信息行的吨运费和运输线路描述信息。 /// /// /// /// /// /// private void UpdateTransitMnyDesc(string ManageNo, string OrderNo, string OrderSeq, string deliveryNo, string transitMny, string transitDesc) { ArrayList parms = new ArrayList(); //总运费 parms.Add(transitMny); //运输方案。长沙-北京 方案1. parms.Add(transitDesc); if ("".Equals(transitDesc)) { parms.Add(0); } else { parms.Add(1); } //合同行号 parms.Add(OrderNo); //合同行号流水 parms.Add(OrderSeq); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "UpdateTransitMnyDesc"; ccp.ServerParams = new object[] { parms }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; //刷新数据源 doQuery(); Infragistics.Win.UltraWinGrid.UltraGridRow urow = null; for (int i = 0; i < ultraGMain.Rows.Count; i++) { urow = ultraGMain.Rows[i]; if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo)) { urow.Activate(); break; } } GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] }); } /// /// 主UltraGrid行点击触发事件。 /// /// /// private void ultraGMain_AfterRowActivate(object sender, EventArgs e) { UltraGridRow row = ultraGMain.ActiveRow; if (row == null) { return; } if (row.Cells["IS_ADD_CODE"].Value.ToString() == "1") { chkAdd.Checked = true; ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; if (FromForm != "4") { ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; } } else { chkAdd.Checked = false; if (numWt == "0") { ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; } else { ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; if (FromForm != "4") { ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; } } } //交货开始日期 //uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value; //交货结束日期,改为最迟交货日期 uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value); //交货量 uNCount.Value = row.Cells["DELVRY_QTY"].Value; //保总长 uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value; //收货单位编码 cmbUnit.Value = row.Cells["RECEIV_NO"].Value; if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString())) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob); if (dt.Rows.Count > 0) { utxtAddress.Text = dt.Rows[0][0].ToString(); } } //交货方式 //cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString(); //交货地点 cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString(); lblDeliveryType.Text = row.Cells["DELVRY_ADDR"].Value.ToString(); //地点,允许为空。 utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString(); lblAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString(); //交货编码 string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString(); //估算重量(留空) //uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString(); cmbFactoryType.Value = row.Cells["TRANSIT_TYP"].Value.ToString(); cmbDeliveryAddress_ValueChanged(null, null); ckbTpcoAgency.Checked = bool.Parse(row.Cells["AGENCY_FL"].Value.ToString()); if (row.Cells["EXTRA_FLAG"].Value.ToString() == "是") chkExtra.Checked = true; else chkExtra.Checked = false; //运输方案。长沙-北京 方案1. SlmOrderDeliveryTransitEntity deliveryTransit = new SlmOrderDeliveryTransitEntity(); deliveryTransit.OrdPk = row.GetValue("ORD_PK"); deliveryTransit.OrdLnPk = row.GetValue("ORD_LN_PK"); deliveryTransit.OrdLnDlyPk = row.GetValue("ORD_LN_DLY_PK"); QueryTransit(deliveryTransit); } private void uNCount_ValueChanged(object sender, EventArgs e) { //if ("米".Equals(cmbDw.Text.Trim())) //{ // uNLen.Value = Convert.ToInt32(uNCount.Value); //} //else if ("毫米".Equals(cmbDw.Text.Trim())) //{ // uNLen.Value = Convert.ToInt32(uNCount.Value); //} //else if ("英尺".Equals(cmbDw.Text.Trim())) //{ // uNLen.Value = (Convert.ToInt32(uNCount.Value)); //} //else //{ DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdQtyAndEnLen", new object[] { this.OrderNo }, this.ob); decimal qty = 0; decimal enLen = 0; if (dt != null && dt.Rows.Count > 0) { qty = Convert.ToDecimal(dt.Rows[0][0]); enLen = Convert.ToDecimal(dt.Rows[0][1].ToString() == "" ? "0" : dt.Rows[0][1]); } //uNLen.Value = Convert.ToInt32(uNCount.Value); if (enLen != 0) { uNLen.Value = (Convert.ToDecimal(uNCount.Value) * enLen) / qty; } //} double lenWgt = 0; OrderFunction.GetPrdctWgt(ref lenWgt, Convert.ToDouble(uNCount.Value), cmbDw.Text, spec_code, ob); if (this.Produc_code.Equals("S000012")) { uNEstimate.Value = Convert.ToDouble(uNCount.Value) * this.Jg_weight; } else { uNEstimate.Value = Math.Round(lenWgt, 3); } } private void cmbUnit_ValueChanged(object sender, EventArgs e) { //if (cmbUnit.Value!=null && !string.IsNullOrEmpty(cmbUnit.Value.ToString())) //{ // DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob); // if (dt.Rows.Count > 0) // { // utxtAddress.Text = dt.Rows[0][0].ToString(); // } //} } private void cmbUnit_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { FrmOrderCustomer spec = new FrmOrderCustomer(ob); spec.SaleOrg = saleOrg; spec.GetOrderCustomers += new FrmOrderCustomer.GetOrderCustomer(spec_GetOrderCustomers); spec.ShowDialog(); } void spec_GetOrderCustomers(string specName, UltraGridRow retunSpecRow) { BindUnit(); cmbUnit.Value = specName; } private void ultraGMain_DoubleClick(object sender, EventArgs e) { UltraGridRow row = ultraGMain.ActiveRow; if (row == null) return; //交货开始日期 //uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value; //交货结束日期,改为最迟交货日期 uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value); //交货量 uNCount.Value = row.Cells["DELVRY_QTY"].Value; //保总长 uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value; //收货单位编码 cmbUnit.Value = row.Cells["RECEIV_NO"].Value; if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString())) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob); if (dt.Rows.Count > 0) { utxtAddress.Text = dt.Rows[0][0].ToString(); } } //交货方式 //cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString(); //交货地点 cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString(); //地点,允许为空。 utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString(); //交货编码 string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString(); //估算重量(留空) uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString(); } private void ultraGMain_ClickCell(object sender, ClickCellEventArgs e) { UltraGridRow row = ultraGMain.ActiveRow; if (row == null) return; //交货开始日期 //uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value; //交货结束日期,改为最迟交货日期 if (row.Cells["DELVRY_EDATE"].Value != null) uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value); //交货量 uNCount.Value = row.Cells["DELVRY_QTY"].Value; //保总长 uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value; //收货单位编码 cmbUnit.Value = row.Cells["RECEIV_NO"].Value; if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString())) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob); if (dt.Rows.Count > 0) { utxtAddress.Text = dt.Rows[0][0].ToString(); } } //交货方式 //cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString(); //交货地点 cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString(); //地点,允许为空。 utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString(); //交货编码 string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString(); //估算重量(留空) //uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString(); } private UltraComboEditor cmbCydw = new UltraComboEditor(); private UltraComboEditor cmbWater = new UltraComboEditor(); private UltraComboEditor cmbCollege = new UltraComboEditor(); private UltraComboEditor cmbStationName = new UltraComboEditor(); private UltraComboEditor cmbYsfs = new UltraComboEditor(); private void InitTransitUi() { cmbCydw.Visible = false; this.Controls.Add(cmbCydw); cmbWater.Visible = false; this.Controls.Add(cmbWater); cmbCollege.Visible = false; this.Controls.Add(cmbCollege); cmbStationName.Visible = false; this.Controls.Add(cmbStationName); cmbYsfs.Visible = false; this.Controls.Add(cmbYsfs); ultraGrid2.DisplayLayout.Bands[0].Columns["CarrierUnit"].EditorComponent = cmbCydw; ultraGrid2.DisplayLayout.Bands[0].Columns["CarrierUnit"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid2.DisplayLayout.Bands[0].Columns["PortNo"].EditorComponent = cmbWater; ultraGrid2.DisplayLayout.Bands[0].Columns["PortNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid2.DisplayLayout.Bands[0].Columns["SpclLnNo"].EditorComponent = cmbCollege;//SPCL_LN_NM ultraGrid2.DisplayLayout.Bands[0].Columns["SpclLnNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid2.DisplayLayout.Bands[0].Columns["StationNo"].EditorComponent = cmbStationName; ultraGrid2.DisplayLayout.Bands[0].Columns["StationNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid2.DisplayLayout.Bands[0].Columns["TransitTyp"].EditorComponent = cmbYsfs; ultraGrid2.DisplayLayout.Bands[0].Columns["TransitTyp"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid3.DisplayLayout.Bands[0].Columns["CarrierUnit"].EditorComponent = cmbCydw; ultraGrid3.DisplayLayout.Bands[0].Columns["CarrierUnit"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid3.DisplayLayout.Bands[0].Columns["PortNo"].EditorComponent = cmbWater; ultraGrid3.DisplayLayout.Bands[0].Columns["PortNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid3.DisplayLayout.Bands[0].Columns["SpclLnNo"].EditorComponent = cmbCollege;//SPCL_LN_NM ultraGrid3.DisplayLayout.Bands[0].Columns["SpclLnNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid3.DisplayLayout.Bands[0].Columns["StationNo"].EditorComponent = cmbStationName; ultraGrid3.DisplayLayout.Bands[0].Columns["StationNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid3.DisplayLayout.Bands[0].Columns["TransitTyp"].EditorComponent = cmbYsfs; ultraGrid3.DisplayLayout.Bands[0].Columns["TransitTyp"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; bindCydw(); bindCmbWater(); bindCmbCollege(); bindCmbStation(); bindYsfs(); bindFactoryType(); EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[0]); ultraGrid2.DisplayLayout.Bands[0].Columns["AgencyFl2"].Header.Caption = "客户代办"; EntityHelper.ShowGridCaption(ultraGrid3.DisplayLayout.Bands[0]); ultraGrid3.DisplayLayout.Bands[0].Columns["AgencyFl2"].Header.Caption = " TPCO代办"; } /// /// 承运单位 /// private void bindCydw() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetCydw", null, this.ob); //起始地数据源绑定 cmbCydw.DataSource = dt; cmbCydw.DisplayMember = "BASENAME"; cmbCydw.ValueMember = "BASECODE"; ClsBaseInfo.SetComboItemHeight(cmbCydw); } /// /// 港口、码头 /// private void bindCmbWater() { //港口码头 DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetPort", null, this.ob); ComboBoxHelper.FillUlcmItemsAddEmpty(cmbWater, dt); cmbWater.SelectedIndex = 0; ClsBaseInfo.SetComboItemHeight(cmbWater); } /// /// 专用线 /// private void bindCmbCollege() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetSpclNo", null, this.ob); ComboBoxHelper.FillUlcmItemsAddEmpty(cmbCollege, dt); cmbCollege.SelectedIndex = 0; ClsBaseInfo.SetComboItemHeight(cmbCollege); } /// /// 铁路到站 /// private void bindCmbStation() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.base.CoreSpeclLine.GetStation", null, this.ob); ComboBoxHelper.FillUlcmItemsAddEmpty(cmbStationName, dt); cmbStationName.SelectedIndex = 0; ClsBaseInfo.SetComboItemHeight(cmbStationName); } /// /// 运输方式 /// private void bindYsfs() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetYsfs", null, this.ob); cmbYsfs.DataSource = dt; cmbYsfs.DisplayMember = "BASENAME"; cmbYsfs.ValueMember = "BASECODE"; cmbYsfs.SelectedIndex = 0; ClsBaseInfo.SetComboItemHeight(cmbYsfs); } private void bindFactoryType() { DataTable dt = ClsBaseInfo.GetComBaseInfo("1105", ob); dt.DefaultView.RowFilter = "BASECODE IN ('110501', '110502')"; cmbFactoryType.DataSource = dt; cmbFactoryType.DisplayMember = "BASENAME"; cmbFactoryType.ValueMember = "BASECODE"; if (cmbFactoryType.Items.Count > 0) { cmbFactoryType.SelectedIndex = 0; } ClsBaseInfo.SetComboItemHeight(cmbFactoryType); } private void ultraToolbarsManager2_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "保存": SaveTranSit(); break; case "删除": DeleteTransit(); break; } } private void SaveTranSit() { ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); if (ultraGMain.ActiveRow == null) return; UltraGridRow[] rows = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'").ToArray(); UltraGridRow[] rows2 = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").ToArray(); if (rows.Length == 0 && rows2.Length == 0) { MessageUtil.ShowWarning("请选择一条运输线路!"); return; } UltraGridRow[] userValidRows = ultraGrid2.Rows.AsQueryable().Where("Validflag = '1'").ToArray(); UltraGridRow[] tpcoValidRows = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").ToArray(); int userValidCnt = userValidRows.Length; int tpcoValidCnt = tpcoValidRows.Length; if (ckbTpcoAgency.Checked == true) { if ((tpcoValidCnt + rows2.Length) == 0) { MessageUtil.ShowWarning("请至少维护一条两票制运输线路!"); return; } } if (CheckStation() == false) return; string transitType = ultraGMain.ActiveRow.GetValue("TRANSIT_TYP"); if ((userValidCnt + rows.Length) > 0) { if (userValidCnt > 0) { SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)userValidRows[0].ListObject; if (deliveryTransit.TransitTyp.ToString() != transitType) { MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!"); userValidRows[0].Activate(); return; } } else { SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)rows[0].ListObject; if (deliveryTransit.TransitTyp.ToString() != transitType) { MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!"); rows[0].Activate(); return; } } } else if ((tpcoValidCnt + rows2.Length) > 0) { if (tpcoValidCnt > 0) { SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)tpcoValidRows[0].ListObject; if (deliveryTransit.TransitTyp.ToString() != transitType) { MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!"); tpcoValidRows[0].Activate(); return; } } else { SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)rows2[0].ListObject; if (deliveryTransit.TransitTyp.ToString() != transitType) { MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!"); rows2[0].Activate(); return; } } } if (ultraGMain.GetActiveRowValue("AGENCY_FL") == "0" && rows2.Length > 0) { MessageUtil.ShowWarning("当前交货行未勾选Tpco代办,不能新增两票制运输线路!"); return; } ArrayList list = new ArrayList(); foreach (UltraGridRow row in rows) { SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject); bool result = CheckTransit(deliveryTransit, row, 2); if (result == false) return; string strJSON = JSONFormat.Format(deliveryTransit); list.Add(strJSON); } ArrayList list2 = new ArrayList(); foreach (UltraGridRow row in rows2) { SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject); bool result = CheckTransit(deliveryTransit, row, 1); if (result == false) return; string strJSON = JSONFormat.Format(deliveryTransit); list2.Add(strJSON); } if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == DialogResult.No) return; ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.setDeliveryTransit", new object[] { list, list2, this.FromForm }, ob); MessageUtil.ShowTips("保存成功!"); if (this.FromForm == "2") { string seq = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString(); if (list.Count > 0) { if (dic.ContainsKey(seq)) { chanVal = dic[seq] + "\n保存了买方运输线路"; dic[seq] = chanVal; } else { dic.Add(seq, chanVal); } } if (list2.Count > 0) { if (dic.ContainsKey(seq)) { chanVal = dic[seq] + "\n保存了TPCO代办运输线路"; dic[seq] = chanVal; } else { dic.Add(seq, chanVal); } } } SlmOrderDeliveryTransitEntity deliveryTransit2 = new SlmOrderDeliveryTransitEntity(); deliveryTransit2.OrdPk = ultraGMain.ActiveRow.GetValue("ORD_PK"); deliveryTransit2.OrdLnPk = ultraGMain.ActiveRow.GetValue("ORD_LN_PK"); deliveryTransit2.OrdLnDlyPk = ultraGMain.ActiveRow.GetValue("ORD_LN_DLY_PK"); QueryTransit(deliveryTransit2); } private bool CheckStation() { if (utxtAddress.ReadOnly == false) { int userValidAdrCnt = ultraGrid2.Rows.AsQueryable().Where("Validflag = '1'").Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count(); int userChkAdrCnt = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'") .Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count(); int tpcoValidAdrCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'") .Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count(); int tpcoChkAdrCnt = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'") .Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count(); if ((userValidAdrCnt + userChkAdrCnt + tpcoValidAdrCnt + tpcoChkAdrCnt) == 0) { MessageUtil.ShowWarning("请维护一条目的地为[" + utxtAddress.Text.Trim() + "]的运输线路!"); return false; } } return true; } private bool CheckTransit(SlmOrderDeliveryTransitEntity deliveryTransit, UltraGridRow row, int tansitType) { UltraGridRow delivertyRow = ultraGMain.ActiveRow; deliveryTransit.CreateName = UserInfo.GetUserName(); deliveryTransit.UpdateName = UserInfo.GetUserName(); deliveryTransit.DeleteName = UserInfo.GetUserName(); deliveryTransit.OrdPk = delivertyRow.GetValue("ORD_PK"); deliveryTransit.OrdLnPk = delivertyRow.GetValue("ORD_LN_PK"); deliveryTransit.OrdLnDlyPk = delivertyRow.GetValue("ORD_LN_DLY_PK"); if (deliveryTransit.TransitTyp.ToString() == "") { MessageUtil.ShowWarning("请选择运输方式!"); row.SetCellActive("TransitTyp"); return false; } switch (deliveryTransit.TransitTyp.ToString()) { case "110501": if (deliveryTransit.Destination.ToString() == "") { MessageUtil.ShowWarning("请输入目的地!"); row.SetCellActive("Destination"); return false; } break; case "110502": if (deliveryTransit.StationNo.ToString() == "") { MessageUtil.ShowWarning("请选择到站!"); row.SetCellActive("StationNo"); return false; } break; case "110503": if (deliveryTransit.PortNo.ToString() == "") { MessageUtil.ShowWarning("请选择港口/码头!"); row.SetCellActive("PortNo"); return false; } break; case "110504": if (deliveryTransit.Destination.ToString() == "") { MessageUtil.ShowWarning("请输入目的地!"); row.SetCellActive("Destination"); return false; } //if (deliveryTransit.SpclLnNo.ToString() == "") //{ // MessageUtil.ShowWarning("请选择专用线!");火车 // row.SetCellActive("SpclLnNo"); // return false; //} break; } if (tansitType == 1) { deliveryTransit.AgencyFl = deliveryTransit.AgencyFl2 == true ? "1" : "0"; } else { deliveryTransit.AgencyFl = deliveryTransit.AgencyFl2 == true ? "2" : "0"; } return true; } private void DeleteTransit() { ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); if (ultraGMain.ActiveRow == null) return; UltraGridRow[] rows = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'").ToArray(); UltraGridRow[] rows2 = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").ToArray(); if (rows.Length == 0 && rows2.Length == 0) { MessageUtil.ShowWarning("请选择一条运输线路!"); return; } ArrayList list = new ArrayList(); foreach (UltraGridRow row in rows) { SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject); deliveryTransit.DeleteName = UserInfo.GetUserName(); string strJSON = JSONFormat.Format(deliveryTransit); list.Add(strJSON); } ArrayList list2 = new ArrayList(); foreach (UltraGridRow row in rows2) { SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject); deliveryTransit.DeleteName = UserInfo.GetUserName(); string strJSON = JSONFormat.Format(deliveryTransit); list2.Add(strJSON); } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.No) return; ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.deleteDeliveryTransit", new object[] { list, list2, this.FromForm }, ob); MessageUtil.ShowTips("删除成功!"); if (this.FromForm == "2") { string seq = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString(); if (list.Count > 0) { if (dic.ContainsKey(seq)) { chanVal = dic[seq] + "\n删除了买方运输线路"; dic[seq] = chanVal; } else { dic.Add(seq, chanVal); } } if (list2.Count > 0) { if (dic.ContainsKey(seq)) { chanVal = dic[seq] + "\n删除了TPCO代办运输线路"; dic[seq] = chanVal; } else { dic.Add(seq, chanVal); } } } SlmOrderDeliveryTransitEntity deliveryTransit2 = new SlmOrderDeliveryTransitEntity(); deliveryTransit2.OrdPk = ultraGMain.ActiveRow.GetValue("ORD_PK"); deliveryTransit2.OrdLnPk = ultraGMain.ActiveRow.GetValue("ORD_LN_PK"); deliveryTransit2.OrdLnDlyPk = ultraGMain.ActiveRow.GetValue("ORD_LN_DLY_PK"); QueryTransit(deliveryTransit2); } private void QueryTransit(SlmOrderDeliveryTransitEntity deliveryTransit) { if (this.fromForm == "2") //合同变更流程 在CoreOrderChangeManage文件中 { deliveryTransit.AgencyFl = "2"; string strJSON = JSONFormat.Format(deliveryTransit); List listSource = EntityHelper.GetData( "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryTransit", new object[] { strJSON }, ob); deliveryTransitTpcoSrc.DataSource = listSource; deliveryTransit.AgencyFl = "1"; strJSON = JSONFormat.Format(deliveryTransit); List listSource2 = EntityHelper.GetData( "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryTransit", new object[] { strJSON }, ob); deliveryTransitUserSrc.DataSource = listSource2; foreach (UltraGridRow row in ultraGrid2.Rows) { ControlGrid2Edit(row); SetColor(row); } foreach (UltraGridRow row in ultraGrid3.Rows) { ControlGrid3Edit(row); SetColor(row); } } else { deliveryTransit.AgencyFl = "2"; string strJSON = JSONFormat.Format(deliveryTransit); List listSource = EntityHelper.GetData( "com.steering.pss.sale.order.CoreOrderDelivery.getDeliveryTransit", new object[] { strJSON }, ob); deliveryTransitTpcoSrc.DataSource = listSource; deliveryTransit.AgencyFl = "1"; strJSON = JSONFormat.Format(deliveryTransit); List listSource2 = EntityHelper.GetData( "com.steering.pss.sale.order.CoreOrderDelivery.getDeliveryTransit", new object[] { strJSON }, ob); deliveryTransitUserSrc.DataSource = listSource2; foreach (UltraGridRow row in ultraGrid2.Rows) { ControlGrid2Edit(row); SetColor(row); } foreach (UltraGridRow row in ultraGrid3.Rows) { ControlGrid3Edit(row); SetColor(row); } } } private void ControlGrid2Edit(UltraGridRow row) { if (row.GetValue("Chk") == "True") { foreach (UltraGridCell cell in row.Cells) { cell.Activation = Activation.AllowEdit; } } else { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "Chk") continue; cell.Activation = Activation.ActivateOnly; } } } private void ControlGrid3Edit(UltraGridRow row) { if (row.GetValue("Chk") == "True") { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "AgencyFl2") continue; cell.Activation = Activation.AllowEdit; } } else { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "Chk") continue; cell.Activation = Activation.ActivateOnly; } } } private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e) { SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Row.ListObject; deliveryTransit.TransitTyp = ultraGMain.ActiveRow.GetValue("TRANSIT_TYP"); ControlGrid2Edit(e.Row); } private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e) { //ultraGrid3.UpdateData(); //SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Row.ListObject; ControlGrid3Edit(e.Row); } private void ControlGridEditByTransitTyp(UltraGridCell cell) { UltraGridRow row = cell.Row; if (row.GetValue("Chk") == "False") return; switch (row.GetValue("TransitTyp")) { case "110501": row.Cells["Destination"].Activation = Activation.AllowEdit; row.Cells["StationNo"].Activation = Activation.ActivateOnly;//到站 row.Cells["PortNo"].Activation = Activation.ActivateOnly;//码头 row.Cells["SpclLnNo"].Activation = Activation.ActivateOnly;//专线 row.Cells["StationNo"].Value = ""; //row.Cells["PortNo"].Value = ""; //row.Cells["SpclLnNo"].Value = ""; break; case "110502": row.Cells["Destination"].Activation = Activation.AllowEdit; row.Cells["StationNo"].Activation = Activation.AllowEdit; row.Cells["PortNo"].Activation = Activation.ActivateOnly; row.Cells["SpclLnNo"].Activation = Activation.AllowEdit; //row.Cells["Destination"].Value = ""; row.Cells["PortNo"].Value = ""; //row.Cells["SpclLnNo"].Value = ""; break; case "110503": row.Cells["Destination"].Activation = Activation.AllowEdit; row.Cells["StationNo"].Activation = Activation.ActivateOnly; row.Cells["PortNo"].Activation = Activation.AllowEdit; row.Cells["SpclLnNo"].Activation = Activation.ActivateOnly; //row.Cells["Destination"].Value = ""; row.Cells["StationNo"].Value = ""; //row.Cells["SpclLnNo"].Value = ""; break; case "110504": row.Cells["Destination"].Activation = Activation.AllowEdit; row.Cells["StationNo"].Activation = Activation.ActivateOnly; row.Cells["PortNo"].Activation = Activation.ActivateOnly; row.Cells["SpclLnNo"].Activation = Activation.AllowEdit; //row.Cells["Destination"].Value = ""; //row.Cells["StationNo"].Value = ""; row.Cells["PortNo"].Value = ""; break; } } private void SetColor(UltraGridRow row) { switch (row.GetValue("TransitTyp")) { case "110501": row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128); row.Cells["StationNo"].Appearance.BackColor = Color.White; row.Cells["PortNo"].Appearance.BackColor = Color.White; row.Cells["SpclLnNo"].Appearance.BackColor = Color.White; break; case "110502": row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128); row.Cells["StationNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128); row.Cells["PortNo"].Appearance.BackColor = Color.White; row.Cells["SpclLnNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128); break; case "110503": row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128); row.Cells["StationNo"].Appearance.BackColor = Color.White; row.Cells["PortNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128); row.Cells["SpclLnNo"].Appearance.BackColor = Color.White; break; case "110504": row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128); row.Cells["StationNo"].Appearance.BackColor = Color.White; row.Cells["PortNo"].Appearance.BackColor = Color.White; row.Cells["SpclLnNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128); break; } } private void ultraGrid2_CellChange(object sender, CellEventArgs e) { ultraGrid2.UpdateData(); ControlGrid2Edit(e.Cell.Row); ControlGridEditByTransitTyp(e.Cell); SetColor(e.Cell.Row); ultraGrid2.UpdateData(); } private void ultraGrid3_CellChange(object sender, CellEventArgs e) { ultraGrid3.UpdateData(); SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Cell.Row.ListObject; deliveryTransit.AgencyFl2 = true; ControlGrid3Edit(e.Cell.Row); ControlGridEditByTransitTyp(e.Cell); SetColor(e.Cell.Row); ultraGrid3.UpdateData(); } private void ultraGrid2_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e) { if (ultraGMain.ActiveRow == null) { e.Cancel = true; MessageUtil.ShowWarning("请先维护交货行!"); } else { //-----------------2015-11-18-----------------------新增发货运输控制------------------ string ordDlyLnPk = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString(); SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(ordDlyLnPk); if (sol == null) { e.Cancel = true; MessageUtil.ShowWarning("您选择的交货行已不存在!"); return; } // 这里之所以比较中文 当初数据库没有存代码(只能将错就错) if (sol.DelvryAddr.ToString() == "指定地点") { } else { e.Cancel = true; MessageUtil.ShowWarning("交货地点不是指定地点,不能维护一票制运输路线!"); } } } private void ultraGrid3_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e) { if (ultraGMain.ActiveRow == null) { e.Cancel = true; MessageUtil.ShowWarning("请先维护交货行!"); } else { string ordDlyLnPk = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString(); SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(ordDlyLnPk); if (sol == null) { e.Cancel = true; MessageUtil.ShowWarning("您选择的交货行已不存在!"); return; } if (sol.AgencyFl.ToString().Equals("1")) { if (sol.DelvryAddr.ToString() != "指定地点" && sol.DelvryAddr.ToString() != "TPCO库房" && sol.DelvryAddr.ToString() != "TPCO库房车板") { e.Cancel = true; MessageUtil.ShowWarning("交货地点只有指定地点、TPCO库房、TPCO库房车板才可以维护二票制运输路线!"); } } else { e.Cancel = true; MessageUtil.ShowWarning("您选择的交货行不是TPCO代办,不能新增两票制运输线路!"); return; } } } private void ckbTpcoAgency_BeforeCheckStateChanged(object sender, CancelEventArgs e) { //int validCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").Count(); //int chkCnt = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").Count(); //if (ckbTpcoAgency.Checked == true) //{ // if (chkCnt > 0) // { // e.Cancel = true; // MessageUtil.ShowWarning("已选择Tpco代办(运输线路),不能取消Tpco代办!"); // } // else if (validCnt > 0) // { // e.Cancel = true; // MessageUtil.ShowWarning("系统已存在Tpco代办(运输线路),不能取消Tpco代办!"); // } //} } /// /// 窗体关闭 /// /// /// private void frmOrderDelivery_FormClosing(object sender, FormClosingEventArgs e) { string err = CheckDlyTransit(); if (err != "") { MessageUtil.ShowWarning(err); e.Cancel = true; return; } if (e.CloseReason == CloseReason.UserClosing) { if (this.FromForm == "1") { if (ultraGMain.Rows.Count <= 0) { MessageUtil.ShowWarning("必须保留至少一行交货行!"); e.Cancel = true; } } string errMsg = validSumWtNew(); if (isAffect == true) errMsg = ""; if (errMsg != "") { if (MessageBox.Show(errMsg + "\n是否要退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) { e.Cancel = true; } else { if (this.FromForm == "2") { if (isAdd == true || isDelete == true || isUpdate == true) { if (MessageBox.Show("检测到您做出了修改,若不生成变更单,将放弃修改,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) e.Cancel = true; else DeleteDlyChangeTable(); } } e.Cancel = false; } } else { if (this.FromForm == "2") { if (isAdd == true || isDelete == true || isUpdate == true) { if (MessageBox.Show("检测到您做出了修改,若不生成变更单,将放弃修改,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) e.Cancel = true; else DeleteDlyChangeTable(); } } e.Cancel = false; } } } private String validSumWtNew() { //if (Convert.ToDouble(uNCount.Value) > Convert.ToDouble(numWt)) //{ // return "交货量不允许大于:" + numWt; //} decimal JHwt = 0; foreach (UltraGridRow urow in ultraGMain.Rows) { if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1") { JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value); } } decimal sumWtx = (JHwt - Convert.ToDecimal(numWt)); if (sumWtx < 0) { return "交货总量不满足:" + numWt; } if (sumWtx > 0) { return "交货总量超过:" + numWt; } return ""; } private void frmOrderDelivery_Shown(object sender, EventArgs e) { if (this.fromForm == "2") { ultraToolbarsManager1.Toolbars[0].Tools["doOk"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; //确认 } else { ultraToolbarsManager1.Toolbars[0].Tools["GenerateCh"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; //生成变更单 } } private void SetpanelDlyChangeValue() { labOrdQty.Text = this.NumWt; decimal dty = ultraGMain.Rows.AsQueryable().Where(a => a.Cells["IS_ADD_CODE"].Value.ToString() != "1").Sum(a => Convert.ToDecimal(a.Cells["DELVRY_QTY"].Value)); decimal oty = Convert.ToDecimal(this.NumWt == "" ? "0" : this.NumWt); labDlyQty.Text = dty.ToString(); if (dty < oty) { labTips.Text = "总交货量小于合同订单量"; labTips.Appearance.BackColor = Color.Red; } else if (dty == oty) { labTips.Text = "总交货量等于合同订单量"; labTips.Appearance.BackColor = Color.FromArgb(255, 255, 128); } else { labTips.Text = "总交货量大于合同订单量"; labTips.Appearance.BackColor = Color.Red; } } //---------------------this.FromForm==2 来自合同变更管理的请求--------------------------------- bool isAffect = false; //是否影响合同的订单量 private void GenerateChangeTable() { if (isUpdate == false && isAdd == false && isDelete == false) { MessageUtil.ShowWarning("没有做出任何改变或者变更单已生成!"); return; } string err = CheckDlyTransit(); if (err != "") { MessageUtil.ShowWarning(err); return; } string errMsg = validSumWtNew(); if (errMsg != "") { if (MessageUtil.ShowYesNoAndQuestion(errMsg + " 这将会影响合同行的订单量!\n您是否需要改变合同行的订单量?") == DialogResult.No) return; } //是否满足交货期 不满足者不给生成变更单 if (ultraGMain.Rows.Count <= 0) { MessageUtil.ShowWarning("交货量将影响订单量,订单量不能为0!"); return; } isAffect = true; chanVal = ""; foreach (var item in dic) { chanVal = chanVal + item.Value.ToString() + "\r\n"; } MessageBox.Show(chanVal, "变更内容", MessageBoxButtons.OK, MessageBoxIcon.Information); CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage"; ccp.MethodName = "castWell"; ccp.ServerParams = new object[] { this.OrderNo }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) //直接报错 { MessageBox.Show(ccp.ReturnInfo + "交货期不满足,不能生成变更单!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); doQuery(); return; } } //查询状态表是否满足 DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryPrdcycleMeet", new object[] { this.OrderNo }, this.ob); List list = new List(); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { list.Add(dt.Rows[i][0].ToString()); } if (!list.Contains("W") && !list.Contains("F") && !list.Contains("") && list.Contains("S")) { //不做处理 生成变更单 } else { MessageUtil.ShowWarning("交货期不满足,不能生成变更单!"); doQuery(); return; } } else { MessageUtil.ShowWarning("交货期不满足,不能生成变更单!"); doQuery(); return; } dlgReviewMemo dlg = new dlgReviewMemo(); dlg.ReviewFlag = 3; dlg.ReviewSatus = "合同变更说明"; dlg.ShowDialog(); if (dlg.DialogResult != DialogResult.OK) return; string reviewMemo = dlg.ReviewMemo; ChgeSlmApplyMEntity csm = new ChgeSlmApplyMEntity(); csm.OrdPk = this.ManageNo; csm.OrdLnPk = this.OrderNo; csm.OrderNo = this.OrdNo; csm.OrderSeq = this.OrdSeq; csm.ChgeRsn = reviewMemo; csm.ChgeType = "交货行变更"; csm.UnitCode = UserInfo.GetDeptid(); csm.UnitDesc = UserInfo.GetDepartment(); csm.DepartmentCode = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob); csm.DepartmentDesc = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob); csm.Chger = UserInfo.GetUserName(); csm.ChgeVal = chanVal; csm.CreateName = UserInfo.GetUserName(); string json = JSONFormat.Format(csm); try { int count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.generateSlmApply", new object[] { json }, this.ob); if (count > 0) { MessageUtil.ShowTips("变更单生成成功!"); isAdd = false; isUpdate = false; isDelete = false; this.Close(); } } catch (MESException e) { MessageUtil.ShowWarning(e.ExceptionInfo); return; } } private void DeleteDlyChangeTable() { foreach (UltraGridRow row in ultraGMain.Rows) { string deliveryNo = row.Cells["ORD_LN_DLY_PK"].Value.ToString(); clearTransit(deliveryNo); DeleteDly(deliveryNo); } } private void DeleteDesignMscSts(string ordLnDlyPk) { CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "deleteDesignMscSts"; ccp.ServerParams = new object[] { ordLnDlyPk }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp == null) return; else { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } } } private void DeleteDly(string deliveryNo) { ArrayList parms = new ArrayList(); parms.Add(deliveryNo); CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery"; ccp.MethodName = "deleteDelivery"; ccp.ServerParams = new object[] { parms, UserInfo.GetUserName(), this.ManageNo, this.FromForm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp == null) return; else { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } //MessageUtil.ShowTips("删除成功!"); } } /// /// 获取变更表下合同行的最大交货行PK值 /// /// private string GetMaxOrdLnPk() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getMaxOrdLnDlyPkCh", new object[] { this.OrderNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { return dt.Rows[0][0].ToString(); } return ""; } /// /// 是否存在指定合同行的交货期变更单并取得其状态 /// /// /// private string GetExistsApplyNo(string ordLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getExistsApplyNo", new object[] { ordLnPk }, this.ob); if (dt != null && dt.Rows.Count > 0) { return dt.Rows[0][0].ToString(); } return ""; } /// /// 删除已存在的变更单 /// /// /// private int DeleteApplyNo(string ordLnPk) { int count = 0; count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.deleteApplyNo", new object[] { ordLnPk }, this.ob); return count; } private void ckbTpcoAgency_CheckedChanged(object sender, EventArgs e) { if (ckbTpcoAgency.Checked) { if (cmbDeliveryAddress.Value != null && cmbDeliveryAddress.Value.ToString() == "110601") { chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; chkExtra.Enabled = true; chkExtra.Checked = true; } } else { if (cmbDeliveryAddress.Value != null && cmbDeliveryAddress.Value.ToString() == "110601") { chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; chkExtra.Enabled = true; } else { chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False; chkExtra.Enabled = false; chkExtra.Checked = false; } } } private void utxtAddress_ValueChanged(object sender, EventArgs e) { lblAddress.Text = utxtAddress.Text; } /// /// 获取交货行实体类 /// /// 交货行PK值 /// private SlmOrderLineDeliveryEntity GetOrderDlyLine(string ordDlyLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrderDlyLine", new object[] { ordDlyLnPk, this.FromForm }, this.ob); if (dt != null && dt.Rows.Count > 0) { SlmOrderLineDeliveryEntity sol = new SlmOrderLineDeliveryEntity(); sol.OrdPk = dt.Rows[0]["ORD_PK"].ToString(); sol.OrdLnPk = dt.Rows[0]["ORD_LN_PK"].ToString(); sol.OrdLnDlyPk = dt.Rows[0]["ORD_LN_DLY_PK"].ToString(); sol.DeliveryNo = dt.Rows[0]["DELIVERY_NO"].ToString(); sol.DelvryQty = dt.Rows[0]["DELVRY_QTY"].ToString(); sol.OrderUnit = dt.Rows[0]["ORDER_UNIT"].ToString(); sol.WgtEstmt = dt.Rows[0]["WGT_ESTMT"].ToString(); sol.EnsuTotlLen = dt.Rows[0]["ENSU_TOTL_LEN"].ToString(); sol.ReceivNo = dt.Rows[0]["RECEIV_NO"].ToString(); sol.ReceivNm = dt.Rows[0]["RECEIV_NM"].ToString(); sol.DelvryAddr = dt.Rows[0]["DELVRY_ADDR"].ToString(); sol.AgencyFl = dt.Rows[0]["AGENCY_FL"].ToString(); sol.ReceivAddr = dt.Rows[0]["RECEIV_ADDR"].ToString(); sol.TransitTyp = dt.Rows[0]["TRANSIT_TYP"].ToString(); sol.ExtraFlag = dt.Rows[0]["EXTRA_FLAG"].ToString(); return sol; } else { return null; } } /// /// 获取交货行的运输线路 /// /// /// private List GetOrderDlyTransit(string ordDlyLnPk) { List list = new List(); DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrderDlyLineTransit", new object[] { ordDlyLnPk, this.FromForm }, this.ob); foreach (DataRow dr in dt.Rows) { if (!list.Contains(dr["AGENCY_FL"].ToString())) { list.Add(dr["AGENCY_FL"].ToString()); } } return list; } /// /// 验证交货行的运输路线的合理性 /// /// private string CheckDlyTransit() { ultraGMain.UpdateData(); string errMsg = ""; foreach (UltraGridRow uRow in ultraGMain.Rows) { SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(uRow.Cells["ORD_LN_DLY_PK"].Value.ToString()); if (sol == null) { errMsg = "您确认的数据中存在无效数据,请刷新数据确保数据无误!"; return errMsg; } List list = GetOrderDlyTransit(sol.OrdLnDlyPk.ToString()); if (sol.DelvryAddr.ToString() == "TPCO库房" || sol.DelvryAddr.ToString() == "TPCO库房车板") { if (sol.AgencyFl.ToString() == "1") { if (!list.Contains("1")) { errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且勾选了TPCO代办的必须维护两票制运输路线!"; return errMsg; } } } else if (sol.DelvryAddr.ToString() == "指定地点") { if (sol.AgencyFl.ToString() == "1") { if (!list.Contains("0") && !list.Contains("2") && !list.Contains("1")) { errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且勾选了TPCO代办的必须同时维护一票制运输路线和两票制运输路线!"; return errMsg; } } else { if (!list.Contains("0") && !list.Contains("2")) { errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且无TPCO代办的必须维护一票制运输路线"; return errMsg; } } } } return errMsg; } } }