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.CA06; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using Core.StlMes.Client.Qcm; using Core.Mes.Client.Comm.Format; using System.Collections; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.SaleOrder.Dialog; namespace Core.StlMes.Client.SaleOrder { public partial class frmOrderMpsUpdate : FrmBase { public frmOrderMpsUpdate() { InitializeComponent(); this.IsLoadUserView = true; } private string[] dataArr = null; protected override void OnLoad(EventArgs e) { base.OnLoad(e); } /// /// 来自于哪个界面 1交货期评审提报 2 交货期评审 3 合同行变更时的交货期 /// private string statusFrom = ""; // private void frmOrderDeliveryReview_Load(object sender, EventArgs e) { uchkDate.Checked = true; //默认查询当前日期-1月——当前日期数据。 udtEnd.DateTime = DateTime.Now; udtStart.DateTime = DateTime.Now.AddMonths(-1); if ("REPORT".Equals(this.CustomInfo)) //交货期评审提报 { statusFrom = "1"; } } /// /// 重写基类toolBar方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "doQuery": doQuery(); break; case "doClose": this.Close(); break; case "InPutMpsNo": InPutMpsNo(); break; case "Save": Save(); break; case "AddMps": AddMps(); break; } } /// /// 维护MPS编号 /// private void InPutMpsNo() { UltraGridRow ugr = ultraGHead.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择一个需要维护MPS编号的合同!"); return; } string ordPk = ugr.Cells["ORD_PK"].Value.ToString(); //判断选择的合同是否需要维护MPS编号 DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getMpsFlag", new object[] { ordPk }, this.ob); if (dt != null && dt.Rows.Count > 0) { if (!dt.Rows[0][0].ToString().Contains("1")) { MessageUtil.ShowWarning("您选择的合同不需要维护MPS编号!"); return; } } else { MessageUtil.ShowWarning("您选择的合同合同行出现异常!"); return; } FrmInPutMpsNo pmn = new FrmInPutMpsNo(this.ob, ordPk); pmn.ShowDialog(); doQuery(); foreach (UltraGridRow uRow in ultraGHead.Rows) { if (uRow.Cells["ORD_PK"].Value.ToString() == ordPk) { uRow.Activate(); break; } } } /// /// 查询出技术评审通过的合同头信息。 /// private void doQuery() { string orderNo = utxtOrderNo.Text.Trim(); string orderStart = "1000-01-01 00:00:01"; string orderEnd = "9999-12-31 23:59:59"; TimeSpan ts = udtEnd.DateTime.Subtract(udtStart.DateTime); if (ts.TotalDays < 0) { MessageBox.Show("创建开始日期必须小于创建结束日期。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (uchkDate.Checked) { orderStart = udtStart.DateTime.ToString("yyyy-MM-dd") + " 00:00:01"; orderEnd = udtEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59"; } string[] arr = this.ValidDataPurviewIds; DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.doQueryMpsUpdate", new Object[] { orderNo, orderStart, orderEnd, arr }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.orderHeadDt, true); if (dt.Rows.Count > 0) { //列自适应 GridHelper.RefreshAndAutoSizeExceptRows(ultraGHead, new UltraGridColumn[] { }); ultraGHead.UpdateData(); } else { slm_order_line.Rows.Clear(); } } private void bindSlmOrderLine(string orderPk) { if (ultraGHead.ActiveRow == null) { MessageBox.Show("请先选择合同头信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } this.slm_order_line.Clear(); DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.GetOrderLineForMpsUpdate", new Object[] { orderPk, statusFrom }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.slm_order_line, true); GridHelper.SetExcludeColumnsActive(ultraGridOrderLine.DisplayLayout.Bands[0], "MPS_NO_INPUT"); //列自适应 UltraGridColumn[] col = new UltraGridColumn[] { ultraGridOrderLine.DisplayLayout.Bands[0].Columns["LEN_DESC"], ultraGridOrderLine.DisplayLayout.Bands[0].Columns["STD_NAME"] , ultraGridOrderLine.DisplayLayout.Bands[0].Columns["PSC_DESC"] }; GridHelper.RefreshAndAutoSizeExceptColumns(ultraGridOrderLine, col); ultraGridOrderLine.UpdateData(); } /// /// 带出合同行信息和交货行信息。 /// /// /// private void ultraGHead_AfterRowActivate(object sender, EventArgs e) { if (ultraGHead.ActiveRow != null) { string orderPk = ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString(); bindSlmOrderLine(orderPk); } } private void uchkOrderNo_CheckedChanged(object sender, EventArgs e) { utxtOrderNo.ReadOnly = !uchkOrderNo.Checked; } /// /// 创建日期是否有效 /// /// /// private void uchkDate_CheckedChanged(object sender, EventArgs e) { if (uchkDate.Checked) { udtStart.ReadOnly = false; udtEnd.ReadOnly = false; } else { udtStart.ReadOnly = true; udtEnd.ReadOnly = true; } } /// /// cellChange事件 /// /// /// private void ultraGridOrderLine_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("DELVRY_EDATE")) return; ultraGridOrderLine.UpdateData(); if (e.Cell.Column.Key.Equals("CHK")) { if (Convert.ToBoolean(e.Cell.Value)) { for (int i = 0; i < e.Cell.Row.Cells.Count; i++) { e.Cell.Row.Cells[i].Activation = Activation.AllowEdit; } } else { for (int i = 0; i < e.Cell.Row.Cells.Count; i++) { if (e.Cell.Row.Cells[i].Column.Key.Equals("CHK")) { e.Cell.Row.Cells[i].Activation = Activation.AllowEdit; } else e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly; } } } } private string deliveryInsertPk = ""; private int deliveryInsertSeq = 0; private void utxtOrderNo_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) doQuery(); } private void AddMps() { ultraGridOrderLine.UpdateData(); UltraGridRow ugr = ultraGridOrderLine.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择一行合同行!"); return; } FrmStableMps fsm = new FrmStableMps(this.ob); fsm.OrdLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString(); fsm.WindowState = FormWindowState.Maximized; fsm.ShowDialog(); } /// /// 保存 /// private void Save() { ultraGridOrderLine.UpdateData(); ArrayList parm = new ArrayList(); foreach (UltraGridRow ugr in ultraGridOrderLine.Rows) { string inputMpsNo = ugr.Cells["MPS_NO_INPUT"].Value.ToString(); string mpsFile = ugr.Cells["MPS_FILE"].Value.ToString(); if (inputMpsNo == "") { MessageUtil.ShowWarning("请输入确认后的MPS编号!"); ugr.Activate(); return; } if (mpsFile == "") { MessageUtil.ShowWarning("请上传MPS文本文件!"); ugr.Activate(); return; } string ordLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString(); ArrayList list = new ArrayList(); list.Add(inputMpsNo); //list.Add(mpsFile); list.Add(ordLnPk); parm.Add(list); } if (MessageUtil.ShowYesNoAndQuestion("是否确定保存输入的MPS编号") == DialogResult.No) return; int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreInPutMpsNo.saveMpsLine", new object[] { parm }, this.ob); if (count > 0) { MessageUtil.ShowTips("确认后的MPS编号保存成功!"); //this.Close(); } } /// /// GRID按钮 /// /// /// private void MpsFile_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { if (e.Button.Key.Equals("upload")) // 上传 { UltraGridRow row = ultraGridOrderLine.ActiveRow; if (row == null) return; string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString(); if ("".Equals(ordLnPk)) return; Core.Mes.Client.Comm.Server.FileHelper.Delete("Mps/" + ordLnPk); string reStr = FlileUpload("Mps/" + ordLnPk); if (reStr == "F") { MessageUtil.ShowWarning("上传失败,尝试重新上传!"); return; } else if (reStr == "N") { return; } row.Cells["MPS_FILE"].Value = reStr; row.Cells["MPS_NO_FILE"].Value = "最近上传的MPS文本 " + reStr; if (updateOrderLineMps(reStr, ordLnPk)) { MessageUtil.ShowTips("上传成功!"); } else { MessageUtil.ShowWarning("上传失败,尝试重新上传!"); } } else if (e.Button.Key.Equals("view")) //预览 { UltraGridRow row = ultraGridOrderLine.ActiveRow; if (row == null) return; string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString(); string filePath = "Mps/" + ordLnPk; //引用的地址 string dbFilePath = ""; bool isNull = false; DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreInPutMpsNo.selectMpsAddr", new object[] { ordLnPk }, this.ob); if (dt != null && dt.Rows.Count > 0) { dbFilePath = dt.Rows[0][0].ToString(); } else { isNull = true; } //引用地址存在 优先显示引用地址的文件 string fpath = filePath; if (dbFilePath != filePath && isNull == false) fpath = dbFilePath; dlgOrderAskDown down = new dlgOrderAskDown(this.ob, fpath); down.ShowDialog(); if (down.CtrlFileDown1.List.Count == 0) { if (dbFilePath == filePath) updateOrderLineMps("", ordLnPk); row.Cells["MPS_FILE"].Value = ""; row.Cells["MPS_NO_FILE"].Value = "无MPS文件"; } } } private bool updateOrderLineMps(string mpsFile, string ordLnPk) { //更新合同行地址文件信息 int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreInPutMpsNo.updateMpsLine", new object[] { mpsFile, ordLnPk }, this.ob); if (count > 0) { return true; } else { return false; } } public static string FlileUpload(string sFileName) { List list = new List(); FileBean bean = new FileBean(); OpenFileDialog file = new OpenFileDialog(); file.Multiselect = false; // file.Multiselect = true 改为 file.Multiselect = false DialogResult drStat; drStat = file.ShowDialog(); string fileList = ""; if (drStat == DialogResult.OK) { foreach (string fileName in file.FileNames) { bean = new FileBean(); string filena = System.IO.Path.GetFileName(fileName); bean.setFileName(filena); bean.setPathName(sFileName); bean.setFile(FileHelper.FileToArray(fileName)); list.Add(bean); fileList = filena; } bool isSuccess = false; isSuccess = Core.Mes.Client.Comm.Server.FileHelper.Upload(list); if (isSuccess) { return fileList; } else { return "F"; } } else return "N"; //未选择文件 } private void stableMps_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { if (e.Button.Key.Equals("select")) { ultraGridOrderLine.UpdateData(); UltraGridRow ugr = ultraGridOrderLine.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择一行合同行!"); return; } FrmStableMps fsm = new FrmStableMps(this.ob); fsm.OrdLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString(); fsm.WindowState = FormWindowState.Maximized; fsm.WdType = "2"; fsm.frmClosedRefresh += fsm_frmClosedRefresh; fsm.ShowDialog(); } } void fsm_frmClosedRefresh() { bindSlmOrderLine(ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString()); } } }