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 Pur.Entity.configureEntity; using CoreFS.CA06; using Pur.Entity; using Core.Mes.Client.Comm.Tool; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using System.Collections; using Pur.require_plan; using Pur.Pop_upWindow; using Infragistics.Win; using com.hnshituo.pur.vo; using com.hnshituo.bpm.req.vo; using Bpm; using Infragistics.Win.UltraWinEditors; using System.Text.RegularExpressions; namespace Pur.pur_plan { public partial class frmPurPlanExamineNew : FrmPmsBase { public frmPurPlanExamineNew() { InitializeComponent(); this.IsLoadUserView = true; GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0],new string[]{"CHK"}); ultraGrid2.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False; ultraGrid4.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False; ultraGrid4.DisplayLayout.Bands[1].Override.AllowUpdate = DefaultableBoolean.False; } private void frmPurPlanExamine_Shown(object sender, EventArgs e) { this.ToolBarItemEnable(this, "Query", true); this.ToolBarItemEnable(this, "Examine", true); this.ToolBarItemEnable(this, "show_Information", true); } private void frmPurPlanExamineNew_Load(object sender, EventArgs e) { //年份默认查询 DataTable dt = new DataTable(); dt.Columns.Add("YEAR", Type.GetType("System.Int32")); for (int i = 2015; i <= 2060; i++) dt.Rows.Add(new object[] { i }); txt_year.DataSource = dt; txt_year.ValueMember = "YEAR"; txt_year.DisplayMember = "YEAR"; txt_year.Value = DateTime.Now.Year; //明细默认查询 txt_Status11.SelectedIndex = 1; } //菜单按钮事件 public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": getSumAuditPlanM_s(); break; case "show_Information": Process(); break; case "Exit": Exit(); break; case "ExamineSubmit": ExamineSubmit(); break; case "Export": GridHelper.ulGridToExcel(this.ultraGrid4, "当月报表"); break; } } /// /// 查询采购计划主表 /// /// public void get_PUR_PLAN_M() { try { this.Cursor = Cursors.WaitCursor; dataTable1.Clear(); dataTable2.Clear(); dataSet4.Clear(); EntityPurPlanM entity = new EntityPurPlanM(); entity.BpmUserId = UserInfo.GetUserID(); entity.ValidDataPurviewIds = this.ValidDataPurviewIds; if (ultraGrid6.ActiveRow == null) { return; } entity.MrPeriodEnd = Convert.ToDateTime(ultraGrid6.ActiveRow.Cells["mrperiodend"].Value); entity.BpmProcDefKey = BpmFlowConstants.PROCDEF_PUR_PLAN_AUDIT; entity.Validflag = "1"; DataTable dt = new DataTable(); if (txt_Status11.SelectedIndex == -1) { MessageUtil.ShowTips("请选择数据范围进行查询"); } if (txt_Status11.Value.ToString().Trim() == "wait") { dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "find_audit_status", new object[] { entity }); } else if (txt_Status11.Value.ToString().Trim() == "did") { dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "find_audited_status", new object[] { entity }); } else { dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "getPurPlanM", new object[] { entity }); } foreach (DataRow row in dt.Rows) { row["MRPERIODEND"] = Convert.ToDateTime(row["MRPERIODEND"]).ToString("yyyy/MM"); } GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true); GridHelper.RefreshAndAutoSize(ultraGrid1); //查询采购行信息 DataTable dt3 = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "getPurPlanDByMonth", new object[] { entity }); if (dt3.Rows.Count > 0) { //查询汇总头信息 DataTable dt2 = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "getPurPlanMByMonth", new object[] { entity }); if (dt2 != null && dt2.Rows.Count > 0) { //将汇总头信息按下列排序 DataTable dt_Copy = dt2.Clone(); dt_Copy.PrimaryKey = new DataColumn[] { dt_Copy.Columns["arcMidName"] }; for (int i = 0; i < dt2.Rows.Count; i++) { switch (dt2.Rows[i]["arcMidName"].ToString()) { case "钢铁料": dt_Copy.ImportRow(dt2.Rows[i]); break; case "铁合金": dt_Copy.ImportRow(dt2.Rows[i]); break; case "电极": dt_Copy.ImportRow(dt2.Rows[i]); break; case "添加剂": dt_Copy.ImportRow(dt2.Rows[i]); break; case "矿石燃料": dt_Copy.ImportRow(dt2.Rows[i]); break; case "耐火材料": dt_Copy.ImportRow(dt2.Rows[i]); break; case "辅助材料": dt_Copy.ImportRow(dt2.Rows[i]); break; } } for (int i = 0; i < dt2.Rows.Count; i++) { if (dt2.Rows[i]["arcMidName"].ToString().Trim() != "") { if (!dt_Copy.Rows.Contains(dt2.Rows[i]["arcMidName"].ToString())) { dt_Copy.ImportRow(dt2.Rows[i]); } } } dt2 = dt_Copy.Copy(); dt2.PrimaryKey = null; } dt2.Columns.Add("qtyPreInv", Type.GetType("System.String")); dt2.Columns.Add("qtyPreInvAmt", Type.GetType("System.String")); dt2.Columns.Add("qtyEndInv", Type.GetType("System.String")); dt2.Columns.Add("qtyEndInvAmt", Type.GetType("System.String")); DataTable dt3set = dt3.Copy(); //去掉重复物料 for (int j = dt3set.Rows.Count - 1; j >= 0; j--) { String strItemUnique = dt3set.Rows[j]["itemUnique"].ToString().Trim(); DataRow[] rowss = dt3.Select("itemUnique='" + strItemUnique + "'"); if (rowss.Count() >= 2) { dt3set.Rows.RemoveAt(j); } } foreach (DataRow rows in dt2.Rows) { String strArcCode = rows["arcMidCode"].ToString().Trim(); DataRow[] rowdd = dt3set.Select("arcMidCode='" + strArcCode + "'"); double DbqtyPreInv = 0; double DbqtyPreInvAmt = 0; double DbqtyEndInv = 0; double DbqtyEndInvAmt = 0; foreach (DataRow roww in rowdd) { DbqtyPreInv = DbqtyPreInv + Convert.ToDouble(roww["qtyPreInv"]); DbqtyPreInvAmt = DbqtyPreInvAmt + Convert.ToDouble(roww["qtyPreInvAmt"]); DbqtyEndInv = DbqtyEndInv + Convert.ToDouble(roww["qtyEndInv"]); DbqtyEndInvAmt = DbqtyEndInvAmt + Convert.ToDouble(roww["qtyEndInvAmt"]); } rows["qtyPreInv"] = DbqtyPreInv; rows["qtyPreInvAmt"] = DbqtyPreInvAmt; rows["qtyEndInv"] = DbqtyEndInv; rows["qtyEndInvAmt"] = DbqtyEndInvAmt; } GridHelper.CopyDataToDatatable(ref dt2, ref dataTable9, true); GridHelper.CopyDataToDatatable(ref dt3, ref dataTable6, true); GridHelper.RefreshAndAutoSize(ultraGrid4); //查询需求行子行信息 //DataTable dt_requires = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "getSumAuditRequirePlanD", new object[] { PurPlanMEntity }); //GridHelper.CopyDataToDatatable(ref dt_requires, ref dataTable8, true); } } catch (Exception ex) { MessageUtil.ShowTips("数据处理失败:"+ex.Message); } finally { this.Cursor = Cursors.Default; } } /// /// 查询采购计划详表 /// /// public void get_PUR_PLAN_D(EntityPurPlanD PurPlanDEntity) { DataTable dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "getPlanD", new object[] { PurPlanDEntity, 0, 0 }); GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//绑定采购计划行表 //DataTable dt_require = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "getRequireByPlanD_ids", new object[] { ultraGrid1.ActiveRow.Cells["MRID"].Value.ToString() }); ////删除父表中没有的行 //for (int i = 0; i < dt_require.Rows.Count; ) //{ // if (!dataTable2.Rows.Contains(new object[] { dt_require.Rows[i]["BUYERDEPTCODE"].ToString(), dt_require.Rows[i]["ITEMUNIQUE"].ToString() })) // { // dt_require.Rows.RemoveAt(i); // } // else { i++; } //} //GridHelper.CopyDataToDatatable(ref dt_require, ref dataTable3, true);//绑定采购计划行子表 } /// /// 激活采购计划主表行(未审批) /// /// /// private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { //dataTable3.Rows.Clear(); dataTable2.Clear(); message.Clear(); EntityPurPlanD PurPlanDEntity = new EntityPurPlanD(); if (ultraGrid1.ActiveRow == null) { return; } String strMrId= ultraGrid1.ActiveRow.Cells["MRID"].Value.ToString().Trim(); PurPlanDEntity.MrId = strMrId; if (PurPlanDEntity.MrId == null || PurPlanDEntity.MrId == "") { return; } PurPlanDEntity.Validflag = "1"; get_PUR_PLAN_D(PurPlanDEntity);//查询采购计划详表 getOrderReview(strMrId); } /// /// 查询评审意见 /// /// private void getOrderReview(string strMrid) { DataTable dt11 = this.execute("com.hnshituo.pur.order.service.OrderMService", "getReviewMsg", new object[] { strMrid }); GridHelper.CopyDataToDatatable(dt11, dataTable7, true); GridHelper.RefreshAndAutoSize(ultraGrid3); } /// /// 流程详情查看 /// private void Process() { UltraGridRow uge = ultraGrid1.ActiveRow; if (uge == null) { MessageUtil.ShowWarning("请选择一条审批记录"); return; } string mrId = uge.Cells["MRId"].Value.ToString(); ProcInstDetail detail = new ProcInstDetail(BpmFlowConstants.PROCDEF_PUR_PLAN_AUDIT, mrId); detail.ShowDialog(); } /// /// 查询所有计划月份的采购计划汇总信息 /// private void getSumAuditPlanM_s() { try { this.Cursor = Cursors.WaitCursor; EntityPurPlanM entity = new EntityPurPlanM(); entity.BpmUserId = UserInfo.GetUserID(); entity.ValidDataPurviewIds = this.ValidDataPurviewIds; if (txt_year.SelectedIndex != -1) { entity.DeleteName = txt_year.Value.ToString(); } DataTable dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "getSumAuditPlanM_s", new object[] { entity }); foreach (DataRow row in dt.Rows) { row["MRPERIODEND"] = Convert.ToDateTime(row["MRPERIODEND"]).ToString("yyyy/MM"); double bBUDGETAMT = 0; double.TryParse(row["BUDGETAMT"].ToString(), out bBUDGETAMT); row["BUDGETAMT"] = Math.Round(bBUDGETAMT * 1.13, 2);//统计含税金额 } GridHelper.CopyDataToDatatable(ref dt, ref dataTable5, true); ultraGrid6.UpdateData(); foreach (UltraGridRow ugr in ultraGrid6.Rows) { if (Convert.ToDouble(ugr.Cells["validflag"].Value) > 0)//还有未审批 { ugr.Appearance.ForeColor = Color.Red; } else//已审批 { ugr.Appearance.ForeColor = Color.Black; } } } catch (Exception ex) { MessageUtil.ShowTips("加载数据失败:"+ex.Message); } finally { this.Cursor = Cursors.Default; } GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid6, new UltraGridColumn[] { }); } /// /// 设置UltraComboEditor中的中文和非中文统一高度。 /// /// public static void SetComboItemHeight(UltraComboEditor cmb) { foreach (ValueListItem item in cmb.Items) { if (item.DisplayText != null) { if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+")) { item.Appearance.FontData.SizeInPoints = 9.0F; } else { item.Appearance.FontData.SizeInPoints = 10.5F; } } } } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { //dataTable3.Clear(); //dataTable2.Rows.Clear();//清空采购计划行 //if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) //{ // this.ToolBarItemEnable(this, "Query", true); // this.ToolBarItemEnable(this, "Examine", true); // this.ToolBarItemEnable(this, "show_Information", true); // if (ultraGrid1.ActiveRow == null) // { // return; // } // UltraGridRow uge = ultraGrid1.ActiveRow; // String YY = uge.Cells["mrId"].Value.ToString(); // EntityPurPlanD RqPM = new EntityPurPlanD(); // RqPM.MrId = YY; // RqPM.Validflag = "1"; // get_PUR_PLAN_D(RqPM);//查询采购计划详表 //} //if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) //{ // this.ToolBarItemEnable(this, "Query", true); // this.ToolBarItemEnable(this, "Examine", false); // this.ToolBarItemEnable(this, "show_Information", true); // if (ultraGrid3.ActiveRow == null) // { // return; // } // UltraGridRow uge = ultraGrid3.ActiveRow; // String YY = uge.Cells["mrId"].Value.ToString(); // EntityPurPlanD RqPM = new EntityPurPlanD(); // RqPM.MrId = YY; // RqPM.Validflag = "1"; // get_PUR_PLAN_D(RqPM);//查询采购计划详表 //} } /// /// 退回 /// private void Exit() { this.Close(); } /// /// 提报 /// private void ExamineSubmit() { CoreResult rt = new CoreResult(); //当月报表模式 if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { frmExamineShow Fex = new frmExamineShow(); Fex.ShowDialog(); ReqCompleteTask req = new ReqCompleteTask(); req.OperatorUserId = UserInfo.GetUserID(); EntityPurPlanM entity = new EntityPurPlanM(); entity.BpmUserId = UserInfo.GetUserID(); entity.ValidDataPurviewIds = this.ValidDataPurviewIds; entity.MrPeriodEnd = Convert.ToDateTime(ultraGrid6.ActiveRow.Cells["mrperiodend"].Value); entity.BpmProcDefKey = BpmFlowConstants.PROCDEF_PUR_PLAN_AUDIT; entity.Validflag = "1"; if (Fex.Status == "2")//通过 { req.AuditData = true; req.AuditMessage = Fex.ExamineMessage; rt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "doAudit_all", new object[] { req, entity }); if (rt.Resultcode == 0) { MessageUtil.ShowTips("操作成功"); getSumAuditPlanM_s(); } else { MessageUtil.ShowTips("操作失败," + rt.Resultmsg); return; } } else if (Fex.Status == "1") { req.AuditData = false; req.AuditMessage = Fex.ExamineMessage; rt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "doAudit_all", new object[] { req, entity }); if (rt.Resultcode == 0) { MessageUtil.ShowTips("操作成功"); getSumAuditPlanM_s(); } else { MessageUtil.ShowTips("操作失败"); return; } } } else if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) { ultraGrid1.UpdateData(); ArrayList list = new ArrayList(); foreach (UltraGridRow row in ultraGrid1.Rows) { if (Convert.ToBoolean(row.GetCellValue("CHK")) == true) { EntityPurPlanM pm = new EntityPurPlanM(); pm.MrId = row.GetCellValue("MRID").ToString().Trim(); pm.ReqOrgId = row.GetCellValue("BpmTaskId").ToString().Trim(); pm.DeleteUserid = UserInfo.GetUserID();//审批人ID list.Add(pm); } } if (list.Count <= 0) { MessageUtil.ShowTips("请选择需要审批的计划!"); return; } //UltraGridRow uge = ultraGrid1.ActiveRow; // ArrayList al = setUserPlan(); frmExamineShowNew frm = new frmExamineShowNew(list, this.ob,"pur"); frm.ShowDialog(); if (frm.tips == "1") { getSumAuditPlanM_s(); } } else { MessageUtil.ShowTips("未知参数"); } } /// /// 选择计划月,查询相应的月份数据 /// /// /// private void ultraGrid6_AfterRowActivate(object sender, EventArgs e) { get_PUR_PLAN_M(); } //控制选择CHK private void txt_Status_ValueChanged(object sender, EventArgs e) { get_PUR_PLAN_M(); foreach(UltraGridRow row in ultraGrid1.Rows) { row.Cells["CHK"].Value=false; } if (txt_Status11.SelectedIndex == 1)//待审批 { ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = false; } else { ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = true; } } private void ultraTabControl1_SelectedTabChanged_1(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { this.ToolBarItemEnable(this, "show_Information", false); } else { this.ToolBarItemEnable(this, "show_Information", true); } } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["status"].Value.ToString().StartsWith("审批不通过")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } } }