using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Windows.Forms; using CoreFS.CA06; using Core.Mes.Client.Comm.Tool; using com.steering.pss.sale.orderchange.entity; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using System.Collections; using Core.Mes.Client.Comm.Format; using Core.StlMes.Client.SaleOrder.ReviewForm; using Core.StlMes.Client.SaleOrder.SaleOrderChange; namespace Core.StlMes.Client.SaleOrder { public partial class FormOrderChangeManage : FrmBase { public FormOrderChangeManage() { InitializeComponent(); this.IsLoadUserView = true; } public FormOrderChangeManage(OpeBase ob) { InitializeComponent(); this.IsLoadUserView = true; this.ob = ob; } Color color = new Color(); private void FormOrderChangeManage_Load(object sender, EventArgs e) { color = gdOrderLine.DisplayLayout.Override.RowSelectorAppearance.BackColor; if (CustomInfo == "3" || CustomInfo == "3-120504") //变更单管理界面 { cmbChangeStatus.Value = "L"; } else if (CustomInfo == "2" || CustomInfo == "2-120504") { cmbChangeStatus.Items.Remove(0); cmbChangeStatus.Items.Remove(2); cmbChangeStatus.Value = "W"; chkChangeStatus.Checked = true; } } private void ChkOrderNo_CheckedChanged(object sender, EventArgs e) { if (ChkOrderNo.Checked) { TxtOrderNo.ReadOnly = false; } else { TxtOrderNo.ReadOnly = true; } } private void gdOrderHead_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { EntityHelper.ShowGridCaption(e.Layout.Bands[0]); } private void gdOrderLine_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { EntityHelper.ShowGridCaption(e.Layout.Bands[0]); } private void gdOrderDlyLine_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { EntityHelper.ShowGridCaption(e.Layout.Bands[0]); } private void gdOrderDlyTrst_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { EntityHelper.ShowGridCaption(e.Layout.Bands[0]); } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (ultraTabOrder.ActiveTab.Key.Equals("tab1")) QueryOrderHead(); else QueryOrderApply(this.CustomInfo); break; case "Delete": DeleteApply(); break; case "Commit": CommitApply(); break; case "UnLock": UnLockLine(); break; case "Pass": PassOrderApply(); break; case "Back": ReviewBackApply(); break; case "Print": PrintChgeForm(); break; case "UpdateDly": UpdateDly(); break; case "Close": this.Close(); break; case "Export": exportData(); break; } } private void exportData() { GridHelper.ulGridToExcel(this.gdOrderApply, "变更单审批"); } private void QueryOrderHead() { string saleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid()); if (UserInfo.GetUserID() == "admin" && saleOrg == "NONE") { saleOrg = "100101"; } string orderNo = ""; if (ChkOrderNo.Checked) { orderNo = TxtOrderNo.Text.Trim(); } string[] arr = this.ValidDataPurviewIds; string supp = this.CustomInfo.Contains("120504") ? "120504" : ""; List list = EntityHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderHead", new object[] { saleOrg, orderNo, arr, supp }, this.ob); slmOrderHeadEntityBindingSource.DataSource = list; UltraGridColumn[] col = new UltraGridColumn[] { gdOrderHead.DisplayLayout.Bands[0].Columns["MEMO"], gdOrderHead.DisplayLayout.Bands[0].Columns["MNYASKDESC"] }; GridHelper.RefreshAndAutoSizeExceptColumns(gdOrderHead, col); if (list.Count <= 0) { slmOrderLineEntityBindingSource.Clear(); slmOrderLineDeliveryEntityBindingSource.Clear(); slmOrderDeliveryTransitEntityBindingSource.Clear(); } } private void QueryOrderLine(string ordPk, string orderNo) { List list = EntityHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderLine", new object[] { ordPk }, this.ob); slmOrderLineEntityBindingSource.DataSource = list; foreach (UltraGridRow row in gdOrderLine.Rows) { row.Cells["ORDERNO"].Value = orderNo; row.Cells["LockLine"].Value = "锁定"; row.Cells["ChangeLine"].Value = "变更合同行"; row.Cells["ChangeDlyLine"].Value = "变更交货行"; if (row.Cells["ISLOCK"].Value.ToString() == "1") { row.RowSelectorAppearance.BackColor = Color.Red; } } gdOrderLine.UpdateData(); } private void gdOrderHead_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = gdOrderHead.ActiveRow; if (ugr == null) { slmOrderLineEntityBindingSource.Clear(); slmOrderLineDeliveryEntityBindingSource.Clear(); slmOrderDeliveryTransitEntityBindingSource.Clear(); return; } string ordPk = ugr.Cells["ORDPK"].Value.ToString(); string orderNo = ugr.Cells["ORDERNO"].Value.ToString(); QueryOrderLine(ordPk, orderNo); } private void QueryOrderDlyLine(string ordPk, string ordLnPk) { List list = EntityHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderDlyLine", new object[] { ordPk, ordLnPk }, this.ob); slmOrderLineDeliveryEntityBindingSource.DataSource = list; GridHelper.RefreshAndAutoSize(gdOrderDlyLine); foreach (UltraGridRow row in gdOrderDlyLine.Rows) { if (row.Cells["ISLOCK"].Value.ToString() == "1") { row.RowSelectorAppearance.BackColor = Color.Yellow; } } } private void gdOrderLine_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = gdOrderLine.ActiveRow; if (ugr == null) { slmOrderLineDeliveryEntityBindingSource.Clear(); slmOrderDeliveryTransitEntityBindingSource.Clear(); return; } string ordPk = ugr.Cells["ORDPK"].Value.ToString(); string ordLnPk = ugr.Cells["ORDLNPK"].Value.ToString(); QueryOrderDlyLine(ordPk, ordLnPk); } private void gdOrderDlyLine_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = gdOrderDlyLine.ActiveRow; if (ugr == null) { slmOrderDeliveryTransitEntityBindingSource.Clear(); return; } string ordPk = ugr.Cells["ORDPK"].Value.ToString(); string ordLnPk = ugr.Cells["ORDLNPK"].Value.ToString(); string ordLnDlyPk = ugr.Cells["ORDLNDLYPK"].Value.ToString(); QueryOrderDlyLineTransit(ordPk, ordLnPk, ordLnDlyPk); } private void QueryOrderDlyLineTransit(string ordPk, string ordLnPk, string ordLnDlyPk) { List list = EntityHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderDlyLineTransit", new object[] { ordPk, ordLnPk, ordLnDlyPk }, this.ob); slmOrderDeliveryTransitEntityBindingSource.DataSource = list; GridHelper.RefreshAndAutoSize(gdOrderDlyTrst); } private void gdOrderLine_ClickCellButton(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("LockLine")) { // MessageUtil.ShowTips("LOCK"); //锁定 之前先判断合同行下的所有交货行是否有提报的,然后判断此行是否被锁定(生效 +不能重复锁定) string ordLnPk = e.Cell.Row.Cells["ORDLNPK"].Value.ToString(); //2015-10-31 新增 如果工艺评审中 不能锁定进行合同行的变更 //2016-01-31 交货行变更不影响工艺评审 /*DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.queryCraftDesign", new object[] { ordLnPk }, this.ob); if (dt != null && dt.Rows.Count > 0) { MessageUtil.ShowWarning("此合同行正在工艺评审中,不能发起变更,请等待工艺评审结束!"); return; }*/ List list = GetOrderLineLockStatus(ordLnPk); if (list != null && list.Count > 0) { SlmOrderLineEntityCh slm = list[0]; if (!StringUtil.IsNumber(slm.OrderLnStatus.ToString())) { MessageUtil.ShowWarning("合同行状态异常!"); return; } //合同行状态为:生效---》缴库完毕状态可以进行交货行变更 if (Convert.ToInt32(slm.OrderLnStatus.ToString()) < 12020301 || Convert.ToInt32(slm.OrderLnStatus.ToString()) > 12020602) { MessageUtil.ShowWarning("合同行处于的状态不允许变更,\n生效状态-->缴库完毕之间状态才可锁定!"); return; } if (slm.IsLock.ToString().Equals("1")) { MessageUtil.ShowWarning("该合同行已经锁定!"); return; } } else { MessageUtil.ShowWarning("找不到有效的合同行!"); return; } //判断材料表数据 提单 计划(锁定时不判断,再进行交货行变更操作时判断2016.12.23) //DataTable matDt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderMat", new object[] { ordLnPk }, this.ob); //List listMat = new List(); //if (matDt != null && matDt.Rows.Count > 0) //{ // foreach (DataRow dr in matDt.Rows) // { // listMat.Add(dr["MAT_STATUS"].ToString()); // } // if (listMat != null && listMat.Count > 0) // { // //if (listMat.Contains("80150303")) // //{ // // MessageUtil.ShowWarning("存在已经销售出厂的材料,不允许变更!"); // // return; // //} // //else // if (listMat.Contains("80150302")) // { // MessageUtil.ShowWarning("存在已编提单的材料,请撤销相应的提单!"); // return; // } // else // { // MessageUtil.ShowWarning("请先将您要变更的“生效状态”的交货行脱单!\n切记是 “生效状态”的交货行,切勿对错了交货行!"); // return; // } // } //} ////计划(锁定时不判断,再进行交货行变更操作时判断2016.12.23) //DataTable planDt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderPlan", new object[] { ordLnPk }, this.ob); //if (planDt != null && planDt.Rows.Count > 0) //{ // MessageUtil.ShowWarning("请先将您要变更的“生效状态”的交货行对应的发运计划关闭!\n切记是 “生效状态”的交货行,切勿对错了交货行!"); // return; //} if (MessageUtil.ShowYesNoAndQuestion("是否确定锁定此行?") == DialogResult.No) return; int count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.lockOrderLine", new object[] { ordLnPk, "1" }, this.ob); if (count > 0) { MessageUtil.ShowTips("合同行锁定成功!"); QueryOrderLine(e.Cell.Row.Cells["ORDPK"].Value.ToString(), e.Cell.Row.Cells["ORDERNO"].Value.ToString()); } } else if (e.Cell.Column.Key.Equals("ChangeLine")) { //MessageUtil.ShowTips("ChangeLine"); //暂时放弃 } else if (e.Cell.Column.Key.Equals("ChangeDlyLine")) { //所在合同行未被锁定或者状态不是生效 不能进行更改 string ordLnPk = e.Cell.Row.Cells["ORDLNPK"].Value.ToString(); DataTable dt2 = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.queryYdmZcBillM", new object[] { ordLnPk }, this.ob); if (dt2 != null && dt2.Rows.Count > 0) { MessageUtil.ShowWarning("所选合同行存在在途提单,不能进行修改,请先关闭在途提单!"); return; } DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.queryYdmSendPlan", new object[] { ordLnPk }, this.ob); if (dt1 != null && dt1.Rows.Count > 0) { MessageUtil.ShowWarning("所选合同行存在未执行完的出厂计划,不能进行修改,请先关闭出厂计划!"); return; } List list = GetOrderLineLockStatus(ordLnPk); if (list != null && list.Count > 0) { SlmOrderLineEntityCh slm = list[0]; if (!slm.IsLock.ToString().Equals("1")) // || !slm.OrderLnStatus.ToString().Equals("12020301") || !slm.OrderLnStatus.ToString().Equals("12020401") { if (!slm.IsLock.ToString().Equals("1")) { MessageUtil.ShowWarning("请先锁定合同行!"); return; } } if (!StringUtil.IsNumber(slm.OrderLnStatus.ToString())) { MessageUtil.ShowWarning("合同行状态异常!"); return; } if (Convert.ToInt32(slm.OrderLnStatus.ToString() == "" ? "0" : slm.OrderLnStatus.ToString()) < 12020301) { MessageUtil.ShowWarning("合同行状态尚未生效,无法发起交货行变更!"); return; } } else { MessageUtil.ShowWarning("找不到有效的合同行!"); return; } string errMsg = IsExistsApplyNoWithLineLock(ordLnPk, "交货行"); if (errMsg == "2") { MessageUtil.ShowWarning("当前合同行处于非‘交货行’类型的变更中,请处理!"); return; } else if (errMsg == "1") { MessageUtil.ShowWarning("当前合同行处于‘交货行’类型的变更中,请处理!"); return; } UltraGridRow ugr = gdOrderLine.ActiveRow; string ordPk = ugr.Cells["ORDPK"].Value.ToString(); string orderunit = ugr.Cells["ORDERUNIT"].Value.ToString(); string shrow = gdOrderDlyLine.ActiveRow.Cells["RECEIVNM"].Value.ToString(); string deliveryQty = "0"; DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryQty", new object[] { ugr.Cells["ORDLNPK"].Value.ToString() }, this.ob); if (dt != null && dt.Rows.Count > 0) { deliveryQty = dt.Rows[0][0].ToString(); } frmOrderDelivery fod = new frmOrderDelivery(this.ob); fod.OrderNo = ugr.Cells["ORDLNPK"].Value.ToString(); fod.NumWt = deliveryQty; fod.OrderUnit = orderunit; fod.LenUnit = ugr.Cells["LENUNIT"].Value.ToString(); fod.SaleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid()); fod.ShRow = shrow; fod.FromForm = "2"; fod.ManageNo = ordPk; fod.OrdNo = ugr.Cells["ORDERNO"].Value.ToString(); fod.OrdSeq = ugr.Cells["ORDERSEQ"].Value.ToString(); fod.Spec_code = ugr.Cells["SPECCODE"].Value.ToString(); fod.ShowDialog(); } } private void TxtOrderNo_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) QueryOrderHead(); } private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e) { EntityHelper.ShowGridCaption(e.Layout.Bands[0]); } /// /// 变更单查询 /// /// 哪个界面 private void QueryOrderApply(string form) { ArrayList parm = new ArrayList(); string orderNo = ""; string applyNo = ""; string chgeStatus = ""; string approvalNo = ""; if (chkApplyNo.Checked) applyNo = txtApplyNo.Text.Trim(); if (chkOrdNo.Checked) orderNo = txtOrdNo.Text.Trim(); if (chkApprovalNo.Checked) approvalNo = txtApplyNo.Text.Trim(); if (chkChangeStatus.Checked) chgeStatus = cmbChangeStatus.Value == null ? "" : cmbChangeStatus.Value.ToString(); string start = ""; string end = ""; if (chkPassTime.Checked) { start = startTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); end = endTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); } parm.Add(orderNo); parm.Add(applyNo); parm.Add(approvalNo); string userId = UserInfo.GetUserID(); if (userId != "admin" && userId != "88888888" && userId != "99999999" && userId != "yanghp") { parm.Add(UserInfo.GetDeptid()); parm.Add(UserInfo.GetUserName()); } parm.Add(chgeStatus); string[] arr = this.ValidDataPurviewIds; List list = EntityHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderApply", new object[] { parm, CustomInfo, arr, userId, start, end }, this.ob); chgeSlmApplyMEntityBindingSource.DataSource = list; //GridHelper.RefreshAndAutoSize(gdOrderApply); } private void DeleteApply() { gdOrderApply.UpdateData(); //gdOrderApply.ActiveRow; ArrayList list = new ArrayList(); int iCount = 0; foreach (UltraGridRow ugr in gdOrderApply.Rows) { if (ugr.Cells["CHK"].Value.ToString().ToUpper() == "TRUE") { iCount += 1; string status = GetApplyNoStatus(ugr.Cells["ORDERCHGENO"].Value.ToString()); if (status != "L") { MessageUtil.ShowWarning("您选择的变更单现在处于的状态无法删除!"); return; } //虽然打印了审批单 但是尚未提报的 可以删除 //if (ugr.Cells["APPROVALNO"].Value.ToString() != "") //{ // MessageUtil.ShowWarning("您选择的变更单已被打印等待审批,无法删除!"); // return; //} list.Add(ugr.Cells["ORDERCHGENO"].Value.ToString()); } } if (iCount == 0) { MessageUtil.ShowWarning("请选择您要删除的变更单!"); return; } if (MessageUtil.ShowYesNoAndQuestion("删除变更单将放弃变更,是否删除?") == DialogResult.No) return; int count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.deleteOrderApplyNo", new object[] { list, UserInfo.GetUserName() }, this.ob); if (count > 0) { MessageUtil.ShowWarning("删除成功!"); QueryOrderApply(this.CustomInfo); } } private void ultraTabOrder_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { try { if (toolMenu!=null) { if (e.Tab.Key.Equals("tab1")) { if (toolMenu.Toolbars[0].Tools.Exists("Delete")) this.toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; if (toolMenu.Toolbars[0].Tools.Exists("Commit")) this.toolMenu.Toolbars[0].Tools["Commit"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; if (toolMenu.Toolbars[0].Tools.Exists("UnLock")) this.toolMenu.Toolbars[0].Tools["UnLock"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; } else { if (toolMenu.Toolbars[0].Tools.Exists("Delete")) this.toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; if (toolMenu.Toolbars[0].Tools.Exists("Commit")) this.toolMenu.Toolbars[0].Tools["Commit"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; if (toolMenu.Toolbars[0].Tools.Exists("UnLock")) this.toolMenu.Toolbars[0].Tools["UnLock"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; } } } catch { } } /// /// 获取变更单的状态 /// /// /// private string GetApplyNoStatus(string applyNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.selectApplyNoStatus", new object[] { applyNo }, this.ob); if (dt != null && dt.Rows.Count > 0) return dt.Rows[0][0].ToString(); return ""; } /// /// 清除交货期那一套变更表内容 /// /// private void ClearDeliveryAndTransit(string ordLnPk) { ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.clearDeliveryAndTransit", new object[] { ordLnPk }, this.ob); } /// /// 提报变更单 /// private void CommitApply() { gdOrderApply.UpdateData(); int iCount = 0; ArrayList list = new ArrayList(); foreach (UltraGridRow ugr in gdOrderApply.Rows) { if (ugr.Cells["CHK"].Value.ToString().ToUpper() == "TRUE") { iCount += 1; string applyNo = ugr.Cells["ORDERCHGENO"].Value.ToString(); string status = GetApplyNoStatus(applyNo); if (status == "W") { MessageUtil.ShowWarning("您选择的变更单已经提报,不必重复提报!"); return; } else if (status == "S") { MessageUtil.ShowWarning("您选择的变更单已经通过,无法提报!"); return; } else if (status == "F") { MessageUtil.ShowWarning("您选择的变更单已经失败,无法提报!"); return; } list.Add(applyNo); } } if (iCount == 0) { MessageUtil.ShowWarning("请选择您要提报的变更单!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否提报选择的变更单?") == DialogResult.No) return; CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage"; ccp.MethodName = "commitApplyNo"; ccp.ServerParams = new object[] { list }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { if (ccp.ReturnObject != null && ccp.ReturnObject.ToString() == "AddFalse") { MessageUtil.ShowWarning("合同行的交货期不满足,请点击调整交货期进行调整!"); return; } else { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } } MessageUtil.ShowTips("变更单提报完成!"); QueryOrderApply(this.CustomInfo); } } private void FormOrderChangeManage_Shown(object sender, EventArgs e) { if (this.CustomInfo == "2" || CustomInfo == "3" || CustomInfo == "3-120504" || CustomInfo == "2-120504") { ultraTabOrder.Tabs["tab1"].Visible = false; } if (CustomInfo == "1" || CustomInfo == "1-120504") { ultraTabOrder.Tabs["tab2"].Visible = false; } if (ultraTabOrder.ActiveTab.Key.Equals("tab1")) { if (toolMenu.Toolbars[0].Tools.Exists("Delete")) this.toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; if (toolMenu.Toolbars[0].Tools.Exists("Commit")) this.toolMenu.Toolbars[0].Tools["Commit"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; } else { if (toolMenu.Toolbars[0].Tools.Exists("Delete")) this.toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; if (toolMenu.Toolbars[0].Tools.Exists("Commit")) this.toolMenu.Toolbars[0].Tools["Commit"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True; } } private void chkApplyNo_CheckedChanged(object sender, EventArgs e) { if (chkApplyNo.Checked) txtApplyNo.ReadOnly = false; else txtApplyNo.ReadOnly = true; } private void chkOrdNo_CheckedChanged(object sender, EventArgs e) { if (chkOrdNo.Checked) txtOrdNo.ReadOnly = false; else txtOrdNo.ReadOnly = true; } private void txtApplyNo_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) QueryOrderApply(this.CustomInfo); } private void txtOrdNo_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) QueryOrderApply(this.CustomInfo); } private void gdOrderLine_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["ISLOCK"].Value.ToString() == "1") e.Row.RowSelectorAppearance.BackColor = Color.Red; else e.Row.RowSelectorAppearance.BackColor = color; } /// /// 获取合同行锁定状态 /// /// /// private List GetOrderLineLockStatus(string ordLnPk) { List list = new List(); list = EntityHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderLineLockStatus", new object[] { ordLnPk }, this.ob); return list; } /// /// 审核通过变更单 /// private void PassOrderApply() { gdOrderApply.UpdateData(); //UltraGridRow ugr = gdOrderApply.ActiveRow; //if (ugr == null) //{ // MessageUtil.ShowWarning("请选择您要评审的变更单!"); // return; //} int iCount = 0; ArrayList list = new ArrayList(); foreach (UltraGridRow ugr in gdOrderApply.Rows) { if (ugr.Cells["CHK"].Value.ToString().ToUpper() == "TRUE") { iCount += 1; ChgeSlmApplyMEntityCh csm = (ChgeSlmApplyMEntityCh)ugr.ListObject; csm.Acceptor = UserInfo.GetUserName(); csm.AcpDepartmentCode = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob); csm.AcpDepartmentDesc = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob); csm.AcpUnitCode = UserInfo.GetDeptid(); csm.AcpUnitDesc = UserInfo.GetDepartment(); csm.UpdateName = UserInfo.GetUserName(); string status = GetOrderApplyStatus(csm.OrderChgeNo.ToString()); if (status == "S") { MessageUtil.ShowWarning("您选择的变更单已经通过!"); return; } else { if (status != "W") { MessageUtil.ShowWarning("您选择的变更单状态不是待审状态!"); return; } } list.Add(JSONFormat.Format(csm)); } } if (iCount == 0) { MessageUtil.ShowWarning("请选择您要审批通过的变跟单记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认审批通过") == DialogResult.No) return; //if (csm.ChgeType.ToString().Contains("交货行")) //交货期变更 //{ // int count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.passOrderDlyApply", new object[] { JSONFormat.Format(csm) }, this.ob); // if (count > 0) // { // MessageUtil.ShowTips("评审通过!"); // QueryOrderApply(this.CustomInfo); // } //} //else if (csm.ChgeType.ToString().Contains("合同行")) //{ CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage"; ccp.MethodName = "passOrderLineApply"; ccp.ServerParams = new object[] { list, UserInfo.GetUserName() }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } MessageUtil.ShowTips("评审通过!"); QueryOrderApply(this.CustomInfo); } } /// /// 获取变更单的状态 /// /// /// private string GetOrderApplyStatus(string applyNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.selectApplyNoStatus", new object[] { applyNo }, this.ob); if (dt != null && dt.Rows.Count > 0) return dt.Rows[0][0].ToString(); return ""; } /// /// 变更单审核不通过 /// private void ReviewBackApply() { gdOrderApply.UpdateData(); //UltraGridRow ugr = gdOrderApply.ActiveRow; //if (ugr == null) //{ // MessageUtil.ShowWarning("请选择您要评审的变更单!"); // return; //} int iCount = 0; ArrayList list = new ArrayList(); foreach (UltraGridRow ugr in gdOrderApply.Rows) { if (ugr.Cells["CHK"].Value.ToString().ToUpper() == "TRUE") { iCount += 1; ChgeSlmApplyMEntityCh csm = (ChgeSlmApplyMEntityCh)ugr.ListObject; csm.Acceptor = UserInfo.GetUserName(); csm.AcpDepartmentCode = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob); csm.AcpDepartmentDesc = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob); csm.AcpUnitCode = UserInfo.GetDeptid(); csm.AcpUnitDesc = UserInfo.GetDepartment(); csm.UpdateName = UserInfo.GetUserName(); string status = GetOrderApplyStatus(csm.OrderChgeNo.ToString()); if (status == "S") { MessageUtil.ShowWarning("您选择的变更单已经通过!"); return; } else { if (status != "W") { MessageUtil.ShowWarning("您选择的变更单状态不是待审状态!"); return; } } list.Add(JSONFormat.Format(csm)); } } if (iCount == 0) { MessageUtil.ShowWarning("请选择您要审批不通过的变更单记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认审批不通过") == DialogResult.No) return; CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage"; ccp.MethodName = "reviewBackOrderDlyApply"; ccp.ServerParams = new object[] { list, UserInfo.GetUserName() }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } MessageUtil.ShowTips("操作成功!"); QueryOrderApply(this.CustomInfo); } } /// /// 解锁-锁定的合同行 /// private void UnLockLine() { gdOrderLine.UpdateData(); UltraGridRow ugr = gdOrderLine.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择您要解锁的合同行!"); return; } string ordLnPk = ugr.Cells["ORDLNPK"].Value.ToString(); List list = GetOrderLineLockStatus(ordLnPk); if (list != null && list.Count > 0) { SlmOrderLineEntityCh slm = list[0]; if (slm.IsLock.ToString().Equals("0")) { MessageUtil.ShowWarning("该合同行并未锁定!"); return; } } else { MessageUtil.ShowWarning("找不到有效的合同行!"); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getExistsApplyNo", new object[] { ugr.Cells["ORDPK"].Value.ToString() }, this.ob); List line = new List(); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { line.Add(dt.Rows[i][0].ToString()); } } if (line.Contains("W") || line.Contains("L")) { MessageUtil.ShowWarning("当前合同下存在未处理的变更单,无法解锁!\n请到变更单管理界面处理该合同的变更单!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否解锁选定的合同行?") == DialogResult.No) return; int count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.lockOrderLine", new object[] { ordLnPk, "0" }, this.ob); if (count > 0) { MessageUtil.ShowTips("合同行解锁成功!"); QueryOrderLine(gdOrderHead.ActiveRow.Cells["ORDPK"].Value.ToString(), gdOrderHead.ActiveRow.Cells["ORDERNO"].Value.ToString()); } } /// /// 获取变更单对象(封锁、待审) /// /// /// public List GetSlmApplyEntity(string ordLnPk) { List list = new List(); list = EntityHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getSlmApplyEntity", new object[] { ordLnPk }, this.ob); return list; } /// /// 锁定的合同行是否存在变更单 /// /// /// /// public string IsExistsApplyNoWithLineLock(string ordLnPk, string appType) { string errMsg = ""; List list = GetSlmApplyEntity(ordLnPk); //“L" 和 "W" 状态 if (list != null && list.Count > 0) { ChgeSlmApplyMEntityCh csm = list[0]; if (csm.ApprovalNo.ToString() != "") { errMsg = "变更单已被打印等待审批,请等待此次变更结束!"; return errMsg; } if (csm.ChgeType.ToString().Contains(appType)) { errMsg = "1"; } else { errMsg = "2"; } return errMsg; } else { return errMsg; //不存在任何(待处理(L,W))变更单 } } private void chkChangeStatus_CheckedChanged(object sender, EventArgs e) { if (chkChangeStatus.Checked) { cmbChangeStatus.ReadOnly = false; } else { cmbChangeStatus.ReadOnly = true; } } private void gdOrderApply_AfterRowActivate(object sender, EventArgs e) { gdOrderApply.UpdateData(); UltraGridRow ugr = gdOrderApply.ActiveRow; if (ugr == null) return; for (int i = 0; i < ugr.Cells.Count; i++) { if (ugr.Cells[i].Column.Key.Equals("CHK")) ugr.Cells[i].Activation = Activation.AllowEdit; else ugr.Cells[i].Activation = Activation.ActivateOnly; } } private void PrintChgeForm() { gdOrderApply.UpdateData(); int iCount = 0; ArrayList list = new ArrayList(); List line = new List(); //合同号 List approval = new List(); //评审单号 List parm = new List(); foreach (UltraGridRow ugr in gdOrderApply.Rows) { if (ugr.Cells["CHK"].Value.ToString().ToUpper() == "TRUE") { iCount += 1; string applyNo = ugr.Cells["ORDERCHGENO"].Value.ToString(); string status = GetApplyNoStatus(applyNo); if (status != "W") { //MessageUtil.ShowWarning("您只能选择待审状态的变更单进行打印!"); //return; } if (!line.Contains(ugr.Cells["ORDERNO"].Value.ToString())) line.Add(ugr.Cells["ORDERNO"].Value.ToString()); if (!approval.Contains(ugr.Cells["APPROVALNO"].Value.ToString())) approval.Add(ugr.Cells["APPROVALNO"].Value.ToString()); parm.Add(ugr.Cells["ORDERCHGENO"].Value.ToString()); list.Add(applyNo); } } if (iCount == 0) { MessageUtil.ShowWarning("请选择您要打印的变更单!"); return; } if (line.Count != 1) { MessageUtil.ShowWarning("您选择的记录中合同号不完全一样,不能打印!"); return; } if (approval.Count != 1) { MessageUtil.ShowWarning("您选择的记录中评审单号不完全一样(不同批次),不能打印!"); return; } string saleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid()); string prefix = ""; if (saleOrg == "100101") { prefix = "XS"; } else if (saleOrg == "100102") { prefix = "IE"; } else if (saleOrg == "100103") { prefix = "GM"; } CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage"; ccp.MethodName = "printGenerateApprovalNo"; ccp.ServerParams = new object[] { list, prefix }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } } else { return; } string paramer = ""; for (int i = 0; i < parm.Count; i++) { if (paramer == "") paramer = parm[i]; else paramer = paramer + "','" + parm[i]; } string strUrl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepOrderChge.cpt&__bypagesize__=false" + "&chgeno=" + paramer; FrmOrderRepExcel fBug = new FrmOrderRepExcel(ob, strUrl); fBug.AutoSize = true; fBug.Text = "变更单打印"; fBug.Size = new Size(768, 768); fBug.Show(); QueryOrderApply(this.CustomInfo); } private void chkApprovalNo_CheckedChanged(object sender, EventArgs e) { if (chkApprovalNo.Checked) txtApprovalNo.ReadOnly = false; else txtApprovalNo.ReadOnly = true; } private void UpdateDly() { string[] arr = this.ValidDataPurviewIds; FrmOrderDeliveryAdjust fod = new FrmOrderDeliveryAdjust(ob, arr); fod.WindowState = FormWindowState.Maximized; fod.ShowDialog(); } } }