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.StlMes.Client.YdmBase; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using System.Collections; using Core.StlMes.Client.PipeLeaveFactory.YdmObject; using Core.Mes.Client.Comm.Format; using Infragistics.Win; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PipeLeaveFactory.Tool; namespace Core.StlMes.Client.PipeLeaveFactory { public partial class frmPipeCarLeavePlan : FrmBase { /// /// 用户销售组织权限 /// private string[] _salgPermissions = null; private int index = -1; public frmPipeCarLeavePlan() { InitializeComponent(); this.IsLoadUserView = true; } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": DoQuery(); break; case "Save": DoSave(); break; case "Delete": DoDelete(); break; case "Down"://下发 DoDown(); break; case "Refresh": DoRefresh(); break; case "Export": if (ultraTabControl1.SelectedTab.Key.Equals("0")) { GridHelper.ulGridToExcel(ultraGrid1, "可发货资源信息"); } else { GridHelper.ulGridToExcel(ultraGrid2, "发货出厂计划信息"); } break; case "Close": this.Close(); break; } } string planno = ""; private void frmPipeCarLeavePlan_Load(object sender, EventArgs e) { _salgPermissions = BaseHelper.InitPermissions(this.ValidDataPurviewIds, this.ob ); BaseHelper.setOtherColumnReadOnly(ultraGrid3, new string[] { "CHC", "PLAN_COUNT" }); BaseHelper.InitCellPosition(ultraGrid1, new string[] { "DELVRY_QTY", "PLAN_NUM", "PAYDOWN_NUM", "PREP_WT", "BEEN_WT", "PAYDOWN_COUNT", "STORAGE_METER", "STORAGE_UNIT", "PLAN_COUNT", "SEND_COUNT", "PLANWEIGHT", "STORAGE_COUNT" }); BaseHelper.InitCellPosition(ultraGrid3, new string[] { "DELVRY_QTY", "PREP_WT", "BEEN_WT", "PAYDOWN_NUM", "PLAN_NUM", "PAYDOWNWEIGHT", "PLAN_COUNT", "NOTSEND_COUNT", "SEND_COUNT", "PLANWEIGHT", "STORAGE_METER", "STORAGE_UNIT", "STORAGE_COUNT" }); BaseHelper.setOtherColumnReadOnly(ultraGrid1, new string[] { "CHC" }); BaseHelper.setUltraGridColumnColor(ultraGrid3, new string[] { "PLAN_COUNT" }, Color.FromArgb(255, 255, 128)); BaseHelper.InitCellPosition(ultraGrid2, new string[] { "PLAN_WT", "PLAN_NUM"}); BaseHelper.InitCellPosition(ultraGrid4, new string[] { "PLAN_WT", "PLAN_NUM" }); ComboYear.Value = DateTime.Now.Year.ToString(); ComboMonth.Value = string.Format("{0:00}", DateTime.Now.Month); BaseHelper.InitMonth(ComMonth1); BaseHelper.InitYear(ComYear1); BaseHelper.InitMonth(ComboMonth); BaseHelper.InitYear(ComboYear); ComYear1.Value = DateTime.Now.Year.ToString(); ComMonth1.Value = string.Format("{0:00}", DateTime.Now.Month); ComboYear.Value = DateTime.Now.Year.ToString(); ComboMonth.Value = string.Format("{0:00}", DateTime.Now.Month); BaseHelper.InitOrderUnit(cmbCustomer, _salgPermissions, this.ob); BaseHelper.InitOrderUnit(ComRevice, _salgPermissions, this.ob); GetDateTime(); InitSenPlanStatus(); } /// /// 计划开始结束时间 /// private void GetDateTime() { //DateTime now = DateTime.Parse(DelvryTime.Value.ToString()); //DateTime d1 = new DateTime(now.Year, now.Month, 1); DateTime d1 = new DateTime(ComboYear.Value == null ? DateTime.Now.Year : Convert.ToInt32(ComboYear.Value.ToString()), ComboMonth.Value == null ? DateTime.Now.Month : Convert.ToInt32(ComboMonth.Value.ToString()), 1); DateTime d2 = d1.AddMonths(1).AddSeconds(-1); PlanStartTime.Value = d1.ToString("yyyy-MM-dd"); PlanEndTime.Value = d2.ToString("yyyy-MM-dd"); } //刷新 private void DoRefresh() { BaseHelper.InitOrderUnit(cmbCustomer, _salgPermissions, this.ob); BaseHelper.InitOrderUnit(ComRevice, _salgPermissions, this.ob); } private ArrayList QueryUnitCondtion() { ArrayList param = new ArrayList(); string starttime = "1900-01-01"; string endtime = "2999-01-01"; DateTime d1 = new DateTime(Convert.ToInt32(ComboYear.Value.ToString()), Convert.ToInt32(ComboMonth.Value.ToString()), 1); DateTime d2 = d1.AddMonths(1).AddSeconds(-1); string custnm = ""; if (chkCustomer.Checked) { custnm = cmbCustomer.Text.Trim(); } if (ChcDelivryTime.Checked) { starttime = d1.ToString("yyyy-MM-dd"); endtime = d2.ToString("yyyy-MM-dd"); } string orderNo = ""; if (ChcOrderNo.Checked) { orderNo = TxtOrderNo.Text.Trim(); } param.Add(custnm); param.Add(starttime); param.Add(endtime); param.Add(orderNo); return param; } private void QueryUnit() { ArrayList param = QueryUnitCondtion(); DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipeleavefactory.CorePipeLeaveFactory.queryOrderInfo", new object[] { param, this.ValidDataPurviewIds }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true); if (dt == null || dt.Rows.Count == 0) { GridHelper.ClearGridDataSourceData(ultraGrid3); } } private void QueryOrder(string custNo, string reciveNo, string salg, string deptId, string beginTime, string endTime,string orderNo) { ArrayList param = new ArrayList(); param.Add(custNo); param.Add(reciveNo); param.Add(salg); param.Add(deptId); param.Add(beginTime); param.Add(endTime); param.Add(orderNo); DataTable cdt = ServerHelper.GetData("com.steering.pss.ydm.pipeleavefactory.CorePipeLeaveFactory.queryChildOrderInfo", new object[] { param }, this.ob); GridHelper.CopyDataToDatatable(ref cdt, ref dataTable2, true); } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) { return; } string custNo = ugr.Cells["CUSTOMER_NO"].Text; string reciveNo = ugr.Cells["RECEIV_NO"].Text; string salg = ugr.Cells["SALE_ORG"].Text; string dept = ugr.Cells["CREATE_DEPT"].Text; string starttime = "1900-01-01"; string endtime = "2999-01-01"; DateTime d1 = new DateTime(Convert.ToInt32(ComboYear.Value.ToString()), Convert.ToInt32(ComboMonth.Value.ToString()), 1); DateTime d2 = d1.AddMonths(1).AddSeconds(-1); if (ChcDelivryTime.Checked) { starttime = d1.ToString("yyyy-MM-dd"); endtime = d2.ToString("yyyy-MM-dd"); } string ordeNo = ""; if (ChcOrderNo.Checked) { ordeNo=TxtOrderNo.Text.Trim(); } QueryOrder(custNo, reciveNo, salg, dept, starttime, endtime, ordeNo); } /// /// 查询 /// private void DoQuery() { if (ultraTabControl1.SelectedTab.Key.Equals("0")) { QueryUnit(); } else { QuerySendM(); } } private void QuerySendM() { ArrayList param = new ArrayList(); string planTime = ""; if (ChcPlanTime.Checked && ComYear1.Value != null && ComMonth1.Value != null) { planTime = ComYear1.Value.ToString() + ComMonth1.Value.ToString(); } string status = ""; if (ChcStatus.Checked && ComStatus.Value != null) { status = ComStatus.Value.ToString(); } string ordeNo = ""; if (ChcOrderNo1.Checked) { ordeNo = TxtOrderNo1.Text.Trim(); } string reciveNm = ""; if (ChcRevice.Checked) { reciveNm = ComRevice.Text.Trim(); } param.Add(planTime); param.Add(status); param.Add(ordeNo); param.Add(reciveNm); DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipeleavefactory.CorePipeLeaveFactory.querySendPlanM", new object[] { param, this.ValidDataPurviewIds }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true); if (dt == null || dt.Rows.Count == 0) { GridHelper.ClearGridDataSourceData(ultraGrid4); } } private void QuerySendC(string sendPlanNo) { DataTable dtc = ServerHelper.GetData("com.steering.pss.ydm.pipeleavefactory.CorePipeLeaveFactory.querySendPlanC", new string[] { sendPlanNo }, this.ob); GridHelper.CopyDataToDatatable(ref dtc, ref dataTable4, true); } /// /// 新增 /// private void DoSave() { ultraGrid3.UpdateData(); UltraGridRow ugrUnit = ultraGrid1.ActiveRow; IQueryable ugrOrders = ultraGrid3.Rows.AsQueryable().Where(" CHC = 'True'"); if (ugrUnit == null || ugrOrders.Count() == 0) { MessageUtil.ShowTips("请选择新增计划的合同!"); return; } double totalwt = 0; double totalnum = 0; double totallen = 0; ArrayList baseData = new ArrayList(); ArrayList childData = new ArrayList(); string _ordLnDlyPk = ""; foreach (UltraGridRow ugr in ugrOrders) { YdmZcSendplanCEntity comc = GetChildData(ugr); if (comc == null) { return; } if (comc.PlanNum != "") { totalnum += Convert.ToDouble(comc.PlanNum); } if (comc.PlanTotlLen != "") { totallen += Convert.ToDouble(comc.PlanTotlLen); } if (comc.PlanWt != "") { totalwt += Convert.ToDouble(comc.PlanWt); } _ordLnDlyPk = comc.OrdLnDlyPk.ToString(); childData.Add(JSONFormat.Format(comc)); } YdmZcSendplanMEntity ydm = GetBaseData(ugrUnit); if (ydm == null) { return; } ydm.SendPlanNo = planno; ydm.PlanWt = totalwt.ToString(); ydm.PlanNum = totalnum.ToString(); ydm.PlanTotlLen = totallen.ToString(); baseData.Add(JSONFormat.Format(ydm)); if (MessageBox.Show("是否保存新增计划?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (baseData.Count > 0 || childData.Count > 0) { CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.ydm.pipeleavefactory.CorePipeLeaveFactory"; ccp.MethodName = "saveYdmSendPlan"; ccp.ServerParams = new object[] { baseData, childData }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; MessageBox.Show("新增计划成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.None); string starttime = "1900-01-01"; string endtime = "2999-01-01"; DateTime d1 = new DateTime(Convert.ToInt32(ComboYear.Value.ToString()), Convert.ToInt32(ComboMonth.Value.ToString()), 1); DateTime d2 = d1.AddMonths(1).AddSeconds(-1); if (ChcDelivryTime.Checked) { starttime = d1.ToString("yyyy-MM-dd"); endtime = d2.ToString("yyyy-MM-dd"); } string ordeNo = ""; if (ChcOrderNo.Checked) { ordeNo = TxtOrderNo.Text.Trim(); } QueryOrder(ydm.CustomerNo, ydm.ReceivNo, ydm.SaleOrg, ydm.ManagementNo, starttime, endtime, ordeNo); foreach (UltraGridRow ugr in ultraGrid3.Rows) { if (ugr.Cells["ORD_LN_DLY_PK"].Text.Equals(_ordLnDlyPk)) { ugr.Activate(); } } } } /// /// 新增主记录数据 /// /// 父行 /// 返回值 private YdmZcSendplanMEntity GetBaseData(UltraGridRow ugr) { YdmZcSendplanMEntity com = new YdmZcSendplanMEntity(); com.SaleOrg = ugr.Cells["SALE_ORG"].Value.ToString(); com.SaleOrgDesc = ugr.Cells["SALE_ORG_DESC"].Value.ToString(); com.CustomerNo = ugr.Cells["CUSTOMER_NO"].Value.ToString(); com.CustomerNm = ugr.Cells["CUSTOMER_NM"].Value.ToString(); com.ReceivNo = ugr.Cells["RECEIV_NO"].Value.ToString(); com.ReceivNm = ugr.Cells["RECEIV_NM"].Value.ToString(); com.PlanStartTime = DateTime.Parse(PlanStartTime.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); com.PlanEndTime = DateTime.Parse(PlanEndTime.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); com.ManagementNo = ugr.Cells["CREATE_DEPT"].Value.ToString(); com.ManagementName = ugr.Cells["DEPARTNAME"].Value.ToString(); com.DepartmentDesc = ClsBaseInfo.GetDepartBySectionId(com.ManagementNo, ob); com.DepartmentCode = ClsBaseInfo.GetDepartIdBySectionId(com.ManagementNo, ob); if (Convert.ToDateTime(com.PlanStartTime) > Convert.ToDateTime(com.PlanEndTime)) { MessageUtil.ShowTips("计划结束时间不能早于计划开始时间!"); return null; } com.PlanYearMonth = ComboYear.Value.ToString() + ComboMonth.Value.ToString(); com.CreateName = this.UserInfo.GetUserName(); com.UpdateName = this.UserInfo.GetUserName(); return com; } /// /// 新增子记录数据 /// /// 父行 /// 返回值 private YdmZcSendplanCEntity GetChildData(UltraGridRow ugr) { #region 计划量 string planwt = ugr.Cells["PLAN_COUNT"].Value.ToString(); #endregion if (planwt == "") { MessageUtil.ShowWarning("请输入计划量!"); return null; } if (planwt == "0") { MessageUtil.ShowWarning("计划量不能零!"); ugr.Cells["CHC"].Value = false; return null; } YdmZcSendplanCEntity com = new YdmZcSendplanCEntity(); string sale = ugr.Cells["SALE_ORG"].Value.ToString(); string salecode = ""; switch (sale) { case "100101": salecode = "X"; break; case "100102": salecode = "M"; break; case "100103": salecode = "G"; break; default: break; } string Daytime = DateTime.Now.ToString("yyMM") + "00"; //com.SendPlanNo = salecode + "2" + "D" + Monthtime; com.OrderNo = ugr.Cells["ORDER_NO"].Value.ToString(); com.OrderSeq = ugr.Cells["ORDER_SEQ"].Value.ToString(); com.DeliveryNo = ugr.Cells["DELIVERY_NO"].Value.ToString(); //com.SendPlanNo = com.OrderNo + "," + salecode + "2" + "M" + Daytime + "," + com.OrderSeq + ""; com.SendPlanNo = salecode + "2" + "M" + Daytime; planno = com.SendPlanNo; com.Produccode = ugr.Cells["PRODUCCODE"].Value.ToString(); com.Producname = ugr.Cells["PRODUCNAME"].Value.ToString(); com.PrdCls = ugr.Cells["PRD_CLS"].Value.ToString(); com.Psc = ugr.Cells["PSC"].Value.ToString(); com.PscDesc = ugr.Cells["PSC_DESC"].Value.ToString(); com.SpecCode = ugr.Cells["SPEC_CODE"].Value.ToString(); com.SpecName = ugr.Cells["SPEC_NAME"].Value.ToString(); com.LenNo = ugr.Cells["LEN_NO"].Value.ToString(); com.LenDesc = ugr.Cells["LEN_DESC"].Value.ToString(); com.PlanWt = planwt; com.PlanNum = ""; com.PlanTotlLen = ""; com.CreateName = this.UserInfo.GetUserName(); com.UpdateName = this.UserInfo.GetUserName(); com.OrdPk = ugr.Cells["ORD_PK"].Value.ToString(); com.OrdLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString(); com.OrdLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString(); com.DelvryBdate = ugr.Cells["DELVRY_BDATE"].Value.ToString(); com.DelvryEdate = ugr.Cells["DELVRY_EDATE"].Value.ToString(); return com; } /// /// 作废 /// private void DoDelete() { ultraGrid2.UpdateData(); ArrayList param = new ArrayList(); IQueryable ugrs = ultraGrid2.Rows.AsQueryable().Where(" CHC = 'True'"); if (ugrs == null || ugrs.Count() == 0) { MessageUtil.ShowTips("请选择需要撤销的计划号!"); return; } string sendPlanNo = ""; foreach (UltraGridRow ugr in ugrs) { param.Add(ugr.Cells["SEND_PLAN_NO"].Text); sendPlanNo = ugr.Cells["SEND_PLAN_NO"].Text; } if (MessageBox.Show("是否撤销计划?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.ydm.pipeleavefactory.CorePipeLeaveFactory"; ccp.MethodName = "deltePlanSend"; ccp.ServerParams = new object[] { param, UserInfo.GetUserName() }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("撤销计划成功!")) { QuerySendM(); foreach (UltraGridRow ugr in ultraGrid2.Rows) { if (ugr.Cells["SEND_PLAN_NO"].Text.Equals(sendPlanNo)) { ugr.Activate(); } } } } } /// /// 下发 /// private void DoDown() { ultraGrid2.UpdateData(); ArrayList param = new ArrayList(); IQueryable ugrs = ultraGrid2.Rows.AsQueryable().Where(" CHC = 'True'"); if (ugrs == null || ugrs.Count() == 0) { MessageUtil.ShowTips("请选择需要下发的计划号!"); return; } string sendPlanNo = ""; foreach (UltraGridRow ugr in ugrs) { param.Add(ugr.Cells["SEND_PLAN_NO"].Text); sendPlanNo = ugr.Cells["SEND_PLAN_NO"].Text; } if (MessageBox.Show("是否下发计划?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.ydm.pipeleavefactory.CorePipeLeaveFactory"; ccp.MethodName = "doDown"; ccp.ServerParams = new object[] { param, UserInfo.GetUserName() }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("下发计划成功!")) { QuerySendM(); foreach (UltraGridRow ugr in ultraGrid2.Rows) { if (ugr.Cells["SEND_PLAN_NO"].Text.Equals(sendPlanNo)) { ugr.Activate(); } } } } } private void frmPipeStow_Shown(object sender, EventArgs e) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; toolMenu.Toolbars[0].Tools["Down"].InstanceProps.Visible = DefaultableBoolean.False; } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null) return; if (e.Tab.TabControl.SelectedTab.Key.Equals("0")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; toolMenu.Toolbars[0].Tools["Down"].InstanceProps.Visible = DefaultableBoolean.False; toolMenu.Toolbars[0].Tools["Save"].InstanceProps.Visible = DefaultableBoolean.True; } else { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True; toolMenu.Toolbars[0].Tools["Down"].InstanceProps.Visible = DefaultableBoolean.True; toolMenu.Toolbars[0].Tools["Save"].InstanceProps.Visible = DefaultableBoolean.False; } } /// /// 交货日期更改事件 /// /// /// private void DelvryTime_ValueChanged(object sender, EventArgs e) { GetDateTime(); } /// /// 初始化状态 /// private void InitSenPlanStatus() { DataTable dt = new DataTable(); dt.Columns.Add("CODE"); dt.Columns.Add("NAME"); DataRow dr0 = dt.NewRow(); dr0["CODE"] = "0"; dr0["NAME"] = "编辑"; dt.Rows.Add(dr0); DataRow dr1 = dt.NewRow(); dr1["CODE"] = "1"; dr1["NAME"] = "下发"; dt.Rows.Add(dr1); DataRow dr2 = dt.NewRow(); dr2["CODE"] = "2"; dr2["NAME"] = "执行"; dt.Rows.Add(dr2); DataRow dr3 = dt.NewRow(); dr3["CODE"] = "3"; dr3["NAME"] = "关闭"; dt.Rows.Add(dr3); ComStatus.DataSource = dt; ComStatus.DisplayMember = "NAME"; ComStatus.ValueMember = "CODE"; ComStatus.SelectedIndex = 0; } private void ultraGrid3_CellChange(object sender, CellEventArgs e) { if (e.Cell.Row.Cells["PLAN_COUNT"].Value == null) { e.Cell.Row.Cells["PLAN_COUNT"].Value = e.Cell.Row.Cells["PREP_WT"].Value.ToString(); return; } else { ultraGrid3.UpdateData(); string planCount = e.Cell.Row.Cells["PLAN_COUNT"].Value.ToString(); string prepWt = e.Cell.Row.Cells["PREP_WT"].Value.ToString(); if (!StringUtil.IsNumber(planCount)) { e.Cell.Row.Cells["PLAN_COUNT"].Value = e.Cell.Row.Cells["PREP_WT"].Value.ToString(); return; } if (Convert.ToDouble(planCount) > Convert.ToDouble(prepWt)) { e.Cell.Row.Cells["PLAN_COUNT"].Value = e.Cell.Row.Cells["PREP_WT"].Value.ToString(); return; } } } private void Chc_CheckedChanged(object sender, EventArgs e) { if (ChcPlanTime.Checked) { ComYear1.Enabled = true; ComMonth1.Enabled = true; } else { ComYear1.Enabled = false; ComMonth1.Enabled = false; } if (ChcRevice.Checked) { ComRevice.Enabled = true; } else { ComRevice.Enabled = false; } if (ChcStatus.Checked) { ComStatus.Enabled = true; } else { ComStatus.Enabled = false; } if (ChcOrderNo1.Checked) { TxtOrderNo1.Enabled = true; } else { TxtOrderNo1.Enabled = false; } if (ChcDelivryTime.Checked) { ComboYear.Enabled = true; ComboMonth.Enabled = true; } else { ComboYear.Enabled = false; ComboMonth.Enabled = false; } if (chkCustomer.Checked) { cmbCustomer.Enabled = true; } else { cmbCustomer.Enabled = false; } if (ChcOrderNo.Checked) { TxtOrderNo.Enabled = true; } else { TxtOrderNo.Enabled = false; } } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGrid2.ActiveRow; if (ugr == null) { return; } QuerySendC(ugr.Cells["SEND_PLAN_NO"].Text.Trim()); } } }