using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using com.hnshituo.pur.vo; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using CoreFS.SA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using Pur.configure; using Pur.Entity; using Pur.Entity.configureEntity; using Pur.Entity.require_planEntiy; using Pur.Pop_upWindow; namespace Pur.require_plan { public partial class frmBenefitPlan : FrmPmsBase { //是否刷新 private string tips = "0"; //调整单位ID private string cg_itemUomId = ""; public string Tips { get { return tips; } set { tips = value; } } string basecode_pop = "";//物料分类编码 public frmBenefitPlan() { InitializeComponent(); } public frmBenefitPlan(OpeBase OB) { this.ob = OB; InitializeComponent(); } private void frmBenefitPlan_Load(object sender, EventArgs e) { ultraExpandableGroupBox1.Expanded = false; GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "CHK","qtyPur","refuseReason"); GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], "CHK"); GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[0], ""); GridHelper.SetExcludeColumnsActive(ultraGrid4.DisplayLayout.Bands[0], ""); txt_Status.SelectedIndex = 3; txt_UrgencyType.SelectedIndex = 0; Ck_Ctime.Checked = false; Ck_ptime.Checked = false; txtMrPeriodStart.Enabled = false; txtMrPeriodEnd.Enabled = false; txtAuditedEnd.Enabled = false; txtAuditedStart.Enabled = false; txtMrPeriodStart.Value = DateTime.Now.AddMonths(-1).ToString(); txtMrPeriodEnd.Value = DateTime.Now.AddHours(23).ToString(); ck_Mtime.Checked = true; cop_planMouthStart.Value = DateTime.Now.AddMonths(-2); cop_planMouthEnd.Value = DateTime.Now < DateTime.Parse(DateTime.Now.ToString("yyyy/MM/26")) ? DateTime.Now: DateTime.Now.AddMonths(1); String strYear = DateTime.Now.Year + ""; String strMouth = DateTime.Now.Month + ""; String strStart = strYear + "-" + strMouth + "-" + "20 00:00:00"; String strEnd = strYear + "-" + strMouth + "-" + "26 00:00:00"; txtAuditedStart.Value = Convert.ToDateTime(strStart); txtAuditedEnd.Value = Convert.ToDateTime(strEnd); ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[0]; GetPUR_REQUIRE_PLAND(); } #region toolbar工具栏 public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query"://刷新数据 GetPUR_REQUIRE_PLAND(); break; case "doChange":// 生成新采购计划 ChangePUR_REQUIRE_PLAND(); break; case "doAdd"://添加到采购计划 addPUR_REQUIRE_PLAND(); break; case "doReceive"://接收 ReceivePUR_REQUIRE_PLAND(); break; case "cancelReceive"://取消接收 CancelPUR_REQUIRE_PLAND(); break; case "doReject"://退回 RejectPUR_REQUIRE_PLAND(); break; case "cancelBenefit"://取消利计划 cancelBenefit(); break; case "doClose": // 关闭 this.Close(); break; } } /// /// 添加到新的采购计划 /// private void addPUR_REQUIRE_PLAND() { ultraGrid2.UpdateData(); IQueryable checkRows = ultraGrid2.Rows.AsQueryable().Where("CHK = 'True' "); if (checkRows.Count() == 0) { Core.Mes.Client.Comm.Tool.MessageUtil.ShowWarning("未勾需求信息!"); return; } ArrayList list = new ArrayList(); foreach (UltraGridRow uRows in checkRows) { RequirePlanD ReqPD = new RequirePlanD(); ReqPD.MrLineId = uRows.Cells["id"].Value.ToString(); list.Add(ReqPD.MrLineId); } frmPopAddReceive FPRD = new frmPopAddReceive(this.ob, list); FPRD.ShowDialog(); if (FPRD.tips == "1") { tips = "1"; GetPUR_REQUIRE_PLAND(); return; } } /// /// 调整 /// private void ChangePUR_REQUIRE_PLAND() { ultraGrid2.UpdateData(); IQueryable checkRows = ultraGrid2.Rows.AsQueryable().Where("CHK = 'True' "); if (checkRows.Count() == 0) { Core.Mes.Client.Comm.Tool.MessageUtil.ShowWarning("未勾需求信息!"); return; } ArrayList list = new ArrayList(); foreach (UltraGridRow uRows in checkRows) { RequirePlanD ReqPD = new RequirePlanD(); ReqPD.MrLineId = uRows.Cells["id"].Value.ToString(); list.Add(ReqPD.MrLineId); } FrmPurRePlanChangeNew FPRD = new FrmPurRePlanChangeNew(this.ob, list); FPRD.ShowDialog(); if (FPRD.Tips == "1") { tips = "1"; GetPUR_REQUIRE_PLAND(); return; } } /// /// 接收需求计划行 /// private void ReceivePUR_REQUIRE_PLAND() { try { ultraGrid1.UpdateData(); IQueryable checkRows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True" && a.GetValue("qtyPur") != "" && double.Parse(a.GetValue("qtyPur")) > 0); //IQueryable checkRows = ultraGrid1.Rows.AsQueryable().Where("CHK = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowWarning("未勾需求计划行信息或未输入有效的核准量!"); return; } ArrayList list = new ArrayList(); foreach (UltraGridRow uRows in checkRows) { RequirePlanD ReqPD = new RequirePlanD(); ReqPD.MrLineId = uRows.Cells["mrLineId"].Value.ToString(); ReqPD.QtyPur = Convert.ToDouble(uRows.Cells["qtyPur"].Value); ReqPD.Qty = Convert.ToDouble(uRows.Cells["qty"].Value); String strReason = uRows.GetCellValue("refuseReason").ToString().Trim(); if (ReqPD.Qty > ReqPD.QtyPur) { if (String.IsNullOrEmpty(strReason)) { MessageUtil.ShowTips("若您部分核准物料:" + uRows.GetCellValue("itemName") + "的需求量,需填写减量的【处理意见】"); comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId); return; } ReqPD.RefuseReason = "【减量】" + strReason; } else if (ReqPD.Qty == ReqPD.QtyPur) { ReqPD.RefuseReason = strReason; } else { MessageUtil.ShowTips("物料:" + uRows.GetCellValue("itemName") + "的核准的需求量不能大于需求量"); comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId); return; } ReqPD.ItemUomId = uRows.Cells["itemUomId"].Value.ToString(); ReqPD.ItemUnique = uRows.Cells["itemUnique"].Value.ToString(); if(string.IsNullOrEmpty(ReqPD.ItemUomId)) { MessageUtil.ShowTips("未获取物料:" + uRows.GetCellValue("itemName") + "采购单位编码"); comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId); return; } if (string.IsNullOrEmpty(ReqPD.ItemUnique)) { MessageUtil.ShowTips("未获取物料:" + uRows.GetCellValue("itemName") + "采购单位编码"); comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId); return; } ReqPD.CreateUserid = UserInfo.GetUserID(); ReqPD.CreateTime = DateTime.Now; ReqPD.CreateName = UserInfo.GetUserName(); list.Add(ReqPD); } if (MessageUtil.ShowYesNoAndQuestion("确定接收?") == DialogResult.No) { return; } CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "doReceive", new object[] { list, "1" }); if (re.Resultcode == 0) { MessageUtil.ShowTips("接收成功"); GetPUR_REQUIRE_PLAND(); return; } else { MessageUtil.ShowTips("操作失败:" + re.Resultmsg); return; } } catch (Exception ex) { MessageUtil.ShowTips("操作失败:" + ex); } } /// /// 取消利计划 /// private void cancelBenefit() { try { if (ultraGrid4.ActiveRow == null) { MessageUtil.ShowTips("请选择撤销利计划的拆分需求计划行!"); return; } UltraGridRow rowP = ultraGrid4.ActiveRow; String strMrLineId = rowP.GetCellValue("mrlineid").ToString().Trim(); String strItemUnique = rowP.GetCellValue("itemUnique").ToString().Trim(); string strId = rowP.GetCellValue("id").ToString().Trim(); if (testStatus(strMrLineId, 3) == false) { return; } ArrayList list = new ArrayList(); //减少接收表数据 //插入接收表数据 //更新需求计划行行状态 RequireReceive rr = new RequireReceive(); rr.Id = rowP.GetCellValue("id").ToString().Trim(); rr.MrLineId = strMrLineId; rr.PurLineId = rowP.GetCellValue("mrLineId").ToString().Trim(); //rr.Qty = Convert.ToDouble(uRows.GetCellValue("QTYLJHTemp")); rr.CreateUserid = UserInfo.GetUserID(); rr.CreateTime = DateTime.Now; rr.CreateName = UserInfo.GetUserName(); list.Add(rr); if (MessageUtil.ShowYesNoAndQuestion("确定对需求计划行:" + strMrLineId + "进行撤销利计划操作?") != DialogResult.Yes) { return; } CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "doBenefit", new object[] { list, "2" }); if (re.Resultcode == 0) { MessageUtil.ShowTips("撤销成功!"); } else { MessageUtil.ShowTips("操作失败:" + re.Resultmsg + "!"); return; } } catch (Exception ex) { MessageUtil.ShowTips("操作失败:" + ex.Message + "!"); } } /// /// 取消接收 /// private void CancelPUR_REQUIRE_PLAND() { try { ultraGrid2.UpdateData(); IQueryable checkRows = ultraGrid2.Rows.AsQueryable().Where("CHK = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowWarning("未勾选需取消接收的需求计划行!"); return; } ArrayList list = new ArrayList(); foreach (UltraGridRow uRows in checkRows) { RequirePlanD ReqPD = new RequirePlanD(); ReqPD.MrLineId = uRows.Cells["mrlineId"].Value.ToString(); if (testStatus(ReqPD.MrLineId, 1) == false) { return; } //ReqPD.FlagGeneratedPurPlan = "1";//原则上只允许状态为1/2的才能转3 ReqPD.CreateUserid = UserInfo.GetUserID(); ReqPD.CreateTime = DateTime.Now; ReqPD.CreateName = UserInfo.GetUserName(); list.Add(ReqPD); } if (MessageUtil.ShowYesNoAndQuestion("确定取消接收?") == DialogResult.No) { return; } CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "doReceive", new object[] { list, "2" }); if (re.Resultcode == 0) { MessageUtil.ShowTips("取消成功"); GetPUR_REQUIRE_PLAND(); return; } else { MessageUtil.ShowTips("操作失败:" + re.Resultmsg); return; } } catch (Exception ex) { MessageUtil.ShowTips("操作失败:" + ex.Message); } } /// /// 退回需求计划行 /// private void RejectPUR_REQUIRE_PLAND() { try { ultraGrid1.UpdateData(); IQueryable checkRows = ultraGrid1.Rows.AsQueryable().Where("CHK = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowWarning("未勾选需要接收的需求计划行!"); return; } ArrayList list = new ArrayList(); foreach (UltraGridRow uRows in checkRows) { RequirePlanD ReqPD = new RequirePlanD(); ReqPD.MrLineId = uRows.Cells["mrLineId"].Value.ToString(); ReqPD.FlagGeneratedPurPlan = "3";//原则上只允许状态为1/2的才能转3 String strReason = uRows.GetCellValue("refuseReason").ToString().Trim(); if (String.IsNullOrEmpty(strReason)) { MessageUtil.ShowTips("若您退回物料:" + uRows.GetCellValue("itemName") + "的需求,需填写您的【处理意见】"); comm.doActiveSelRow(ultraGrid1,"mrLineId", ReqPD.MrLineId); return; } ReqPD.RefuseReason = "【退回】"+strReason; list.Add(ReqPD); } frmRequireReturnPop frm1 = new frmRequireReturnPop(); frm1.ShowDialog(); if (frm1.tips!="1") { return; } if (String.IsNullOrEmpty(frm1.status)) { MessageUtil.ShowTips("请选择处理方式"); return; } foreach (RequirePlanD ReqPD1 in list) { ReqPD1.IsAllowReturn = frm1.status; if (frm1.status == "1") { ReqPD1.RefuseReason = "【允许修改返回】" + ReqPD1.RefuseReason; } } CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "doReceive", new object[] { list, "3" }); if (re.Resultcode == 0) { MessageUtil.ShowTips("退回成功"); GetPUR_REQUIRE_PLAND(); return; } else { MessageUtil.ShowTips("操作失败:" + re.Resultmsg); return; } } catch (Exception ex) { MessageUtil.ShowTips("操作失败:" + ex); } } /// /// 查询 /// private void GetPUR_REQUIRE_PLAND() { try { this.Cursor = Cursors.WaitCursor; string adm = CoreUserInfo.UserInfo.GetUserID(); Dictionary ReqPnew = getQueryCondition(adm); if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { dataSet1.Clear(); dataSet2.Clear(); //审批未接收源需求计划 ReqPnew.Add("statusCol", "1");//未接收 DataTable dt1 = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "get_RePDM", new object[] { ReqPnew }); foreach (DataRow row in dt1.Rows) { row["qtypur"] = row["qty"]; row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM"); } GridHelper.CopyDataToDatatable(dt1, dataTable1, true); GridHelper.RefreshAndAutoSize(ultraGrid1); //利计划计划 ReqPnew["rStatus"] = "1"; ReqPnew["lineSeq"] = "1";//非分拆开数据 DataTable dt2 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew }); foreach (DataRow row in dt2.Rows) { row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM"); } GridHelper.CopyDataToDatatable(dt2, dataTable4, true); //已处理数据 ReqPnew["rStatus"] = "2"; ReqPnew["lineSeq"] = "2";//分拆开数据 DataTable dt10 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew }); if (dt2.Rows.Count <= 0) { dt10.Clear(); } else { for (int j = dt10.Rows.Count - 1; j >= 0; j--) { dt10.Rows[j]["itemDescE"] = Convert.ToDateTime(dt10.Rows[j]["itemDescE"]).ToString("yyyy/MM"); String strMrLineId = dt10.Rows[j]["mrLineId"].ToString().Trim(); DataRow[] rowss = dt2.Select("mrLineId='" + strMrLineId + "'"); if (rowss.Count() <= 0) { dt10.Rows.RemoveAt(j); } } } GridHelper.CopyDataToDatatable(dt10, dataTable6, true); GridHelper.RefreshAndAutoSize(ultraGrid2); } else { dataSet3.Clear(); dataSet4.Clear(); //审批已接收源需求计划 ReqPnew["statusCol"] = "2";//已接收(2已接收 4已编制) DataTable dt7 = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "get_RePDM", new object[] { ReqPnew }); foreach (DataRow row in dt7.Rows) { row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM"); } GridHelper.CopyDataToDatatable(dt7, dataTable2, true); GridHelper.RefreshAndAutoSize(ultraGrid3); } } catch (Exception ex) { MessageUtil.ShowTips("加载数据失败:" + ex); } finally { this.Cursor = Cursors.Default; } } #endregion #region 界面函数 /// /// 校验状态 /// /// /// /// private bool testStatus(string mrlineId, int p2)//校验状态 { if (String.IsNullOrEmpty(mrlineId)) { MessageUtil.ShowTips("为获取到需求计划行号!"); return false; } if (p2 == 1) { RequireReceive rr = new RequireReceive(); rr.MrLineId = mrlineId; rr.Validflag = "1"; DataTable dt2 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "find", new object[] { rr,0,0}); if (dt2.Rows.Count == 0) { MessageUtil.ShowTips("需求计划行:" + mrlineId + "已退回或已删除!"); comm.doActiveSelRow(ultraGrid2, "mrlineId", mrlineId); return false; } if (dt2.Rows.Count > 1) { MessageUtil.ShowTips("需求计划行:" + mrlineId + "已利计划,请先撤销利计划再操作!"); comm.doActiveSelRow(ultraGrid2, "mrlineId", mrlineId); return false; } if (dt2.Rows[0]["status"].ToString().Trim() == "2") { MessageUtil.ShowTips("需求计划行:" + mrlineId + "已编制汇总,请先撤销编制汇总再操作!"); comm.doActiveSelRow(ultraGrid2, "mrlineId", mrlineId); return false; } } //是否可以利计划判断 else if (p2 == 2) { RequireReceive rr = new RequireReceive(); rr.MrLineId = mrlineId; rr.Purtype = "1";//编制类型 rr.Validflag = "1";//有效数据 List listR = this.execute>("com.hnshituo.pur.requireplan.service.RequireReceiveService", "find", new object[] { rr,0,0}); if (listR.Count() == 0) { MessageUtil.ShowTips("未发现接收需求计划行:" + mrlineId+"信息记录,可能已被删除或退回,或请刷新重新操作!"); return false; } else if (listR.Count() > 1) { MessageUtil.ShowTips("接收需求计划行:" + mrlineId + "数据异常,或请刷新重新操作!"); return false; } else { rr = listR[0]; if (rr.Status == "2") { MessageUtil.ShowTips("该接收需求计划行:" + mrlineId+"已编制汇总!"); return false; } if (rr.Qty <= 0) { MessageUtil.ShowTips("该接收需求计划行:" + mrlineId + "剩余最大可利计划量【"+rr.Qty+rr.ItemUom+"】!"); return false; } } } //是否可以利计划判断 else if (p2 == 3) { RequireReceive rr = new RequireReceive(); rr.MrLineId = mrlineId; rr.Purtype = "1";//编制类型 rr.Validflag = "1";//有效数据 List listR = this.execute>("com.hnshituo.pur.requireplan.service.RequireReceiveService", "find", new object[] { rr, 0, 0 }); if (listR.Count() == 0) { MessageUtil.ShowTips("未发现接收需求计划行:" + mrlineId + "信息记录,可能已被删除或退回,或请刷新重新操作!"); return false; } else if (listR.Count() > 1) { MessageUtil.ShowTips("接收需求计划行:" + mrlineId + "数据异常,或请刷新重新操作!"); return false; } else { rr = listR[0]; if (rr.Status == "2") { MessageUtil.ShowTips("该接收需求计划行:" + mrlineId + "已编制汇总!"); return false; } } } else { MessageUtil.ShowTips("未知验证参数!"); return false; } return true; } /// /// 获取查询条件 /// /// /// private Dictionary getQueryCondition(string adm) { Dictionary ReqPnew = new Dictionary(); if (Ck_Ctime.Checked) { if (txtMrPeriodStart.Text != "") { DateTime Start = Convert.ToDateTime(txtMrPeriodStart.Value); ReqPnew.Add("createTimeStart", Start); } if (txtMrPeriodEnd.Text != "") { DateTime End = Convert.ToDateTime(txtMrPeriodEnd.Value); ReqPnew.Add("createTimeEnd", End); } } if (Ck_ptime.Checked) { if (txtAuditedStart.Text != "") { DateTime Start1 = Convert.ToDateTime(txtAuditedStart.Value); ReqPnew.Add("auditedTimeStart", Start1); } if (txtAuditedEnd.Text != "") { DateTime End1 = Convert.ToDateTime(txtAuditedEnd.Value); ReqPnew.Add("auditedTimeEnd", End1); } } //计划时间 if (ck_Mtime.Checked == true) { if (cop_planMouthStart.Text != "") { DateTime Start1 = DateTime.Parse(Convert.ToDateTime(cop_planMouthStart.Value).ToString("yyyy/MM")); ReqPnew.Add("mrPeriodStart", Start1); } if (cop_planMouthEnd.Text != "") { DateTime End1 = DateTime.Parse(Convert.ToDateTime(cop_planMouthEnd.Value).ToString("yyyy/MM")); ReqPnew.Add("mrPeriodEnd", End1); } } ReqPnew.Add("mStatus", txt_Status.Value == null ? "" : txt_Status.Value.ToString().Trim()); ReqPnew.Add("urgencyType", txt_UrgencyType.Value == null ? "" : txt_UrgencyType.Value.ToString().Trim()); ReqPnew.Add("mrId", txt_MrId.Text.Trim()); ReqPnew.Add("itemCode", txt_ItemCode.Text.Trim()); ReqPnew.Add("itemName", txt_ItemName.Text.Trim()); ReqPnew.Add("baseCode", basecode_pop); ReqPnew.Add("buyerUnitDesc", adm); ReqPnew.Add("style", "1");//仅查有效数据 return ReqPnew; } #endregion #region 界面事件 private void Ck_Ctime_CheckedChanged(object sender, EventArgs e) { txtMrPeriodStart.Enabled = Ck_Ctime.Checked; txtMrPeriodEnd.Enabled = Ck_Ctime.Checked; } private void Ck_ptime_CheckedChanged(object sender, EventArgs e) { txtAuditedEnd.Enabled = Ck_ptime.Checked; txtAuditedStart.Enabled = Ck_ptime.Checked; } /// /// 物料大类弹窗 /// /// /// private void txt_itemClass_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)// 物料大类弹窗 { FrmMatClassPop_ups PopMat = new FrmMatClassPop_ups(this.ob); PopMat.ShowDialog(); if (PopMat.Basecode == null) return; txt_itemClass.Text = PopMat.Basename; basecode_pop = PopMat.Basecode; } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("qtyPur")) { object oldv = e.Cell.Row.Cells["qtyPur"].Value; ultraGrid1.UpdateData(); object newv = e.Cell.Row.Cells["qtyPur"].Value; double reqty = Convert.ToDouble(e.Cell.Row.Cells["qty"].Value); if (newv != DBNull.Value) { if (Convert.ToDouble(newv) > reqty) { e.Cell.Row.Cells["qtyPur"].Value = oldv; return; } } } } //查询筛选后待编制需求计划行 private void btn_queryDate_Click(object sender, EventArgs e) { dataSet2.Clear(); try { string adm = CoreUserInfo.UserInfo.GetUserID(); Dictionary ReqPnew = getQueryCondition(adm); ReqPnew["rStatus"] = "1"; ReqPnew["lineSeq"] = "1";//非分拆开数据 DataTable dt2 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew }); foreach (DataRow row in dt2.Rows) { row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM"); } ReqPnew["rStatus"] = "2"; ReqPnew["lineSeq"] = "2";//分拆开数据 DataTable dt10 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew }); if (dt2.Rows.Count <= 0) { dt10.Clear(); } else { for (int j = dt10.Rows.Count - 1; j >= 0; j--) { dt10.Rows[j]["itemDescE"] = Convert.ToDateTime(dt10.Rows[j]["itemDescE"]).ToString("yyyy/MM"); String strMrLineId = dt10.Rows[j]["mrLineId"].ToString().Trim(); DataRow[] rowss = dt2.Select("mrLineId='" + strMrLineId + "'"); if (rowss.Count() <= 0) { dt10.Rows.RemoveAt(j); } } } if (ck_isShowLi.Checked) { for (int j = dt2.Rows.Count - 1; j >= 0; j--) { if (dt10.Rows.Count > 0) { String strMrLineId = dt2.Rows[j]["mrLineId"].ToString().Trim(); foreach (DataRow rows in dt10.Rows) { if (rows["mrLineId"].ToString().Trim() == strMrLineId) { } else { dt2.Rows.RemoveAt(j); } } } else { dt2.Rows.RemoveAt(j); } } } GridHelper.CopyDataToDatatable(dt2, dataTable4, true); GridHelper.CopyDataToDatatable(dt10, dataTable6, true); } catch (Exception ex) { MessageUtil.ShowTips("加载数据失败:" + ex); } } //查询拆分需求计划行 private void ultraGrid3_ClickCell(object sender, ClickCellEventArgs e) { String strmrLineId = e.Cell.Row.GetCellValue("mrLineId").ToString().Trim(); if (String.IsNullOrEmpty(strmrLineId)) { return; } Dictionary ReqPnew = new Dictionary(); ReqPnew["mrLineId"] = strmrLineId; ReqPnew["style"] = "1";//有效数据 DataTable dt3 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew }); GridHelper.CopyDataToDatatable(dt3, dataTable3, true); GridHelper.RefreshAndAutoSize(ultraGrid4); } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (e.Tab.TabControl.SelectedTab.Key.Equals("0")) { //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; } //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.False; } //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.True; } //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.True; } //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; } this.ToolBarItemEnable(this, "doReceive", true); this.ToolBarItemEnable(this, "doReject", true); this.ToolBarItemEnable(this, "cancelReceive", true); this.ToolBarItemEnable(this, "doChange", true); this.ToolBarItemEnable(this, "cancelBenefit", false); } else { //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; } //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.True; } //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.False; } //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.False; } //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; } this.ToolBarItemEnable(this, "doReceive", false); this.ToolBarItemEnable(this, "doReject", false); this.ToolBarItemEnable(this, "cancelReceive", false); this.ToolBarItemEnable(this, "doChange", false); this.ToolBarItemEnable(this, "cancelBenefit", true); } } private void ck_Mtime_CheckedChanged(object sender, EventArgs e) { cop_planMouthStart.Enabled = ck_Mtime.Checked; cop_planMouthEnd.Enabled = ck_Mtime.Checked; } #endregion private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e) { if (ultraExpandableGroupBox1.Expanded) { //加载单位 String strItemCode = e.Cell.Row.GetCellValue("itemCode").ToString().Trim(); if (String.IsNullOrEmpty(strItemCode)) { return; } cg_itemName.Text = e.Cell.Row.GetCellValue("itemName").ToString().Trim(); cg_itemUom.Text = e.Cell.Row.GetCellValue("itemUom").ToString().Trim(); cg_Qty.Value = e.Cell.Row.GetCellValue("qty"); cg_weightUnit.Text = e.Cell.Row.GetCellValue("weightUnit").ToString().Trim(); cg_itemUomId = e.Cell.Row.GetCellValue("itemUomId").ToString().Trim(); cg_conf.Text = e.Cell.Row.GetCellValue("itemUomConefficient").ToString().Trim(); getMatUOM(strItemCode); cg_itemUom.Value = cg_itemUomId; } } // 获取单位转换 private void getMatUOM(String strItemCode) { if (!string.IsNullOrEmpty(strItemCode)) { PurMatUomsEntity MatUomsEntity = new PurMatUomsEntity(); MatUomsEntity.ItemCode = strItemCode; MatUomsEntity.Validflag = "1"; DataTable dt_matUOM = this.execute("com.hnshituo.pur.configure.service.MatUomsService", "find", new object[] { MatUomsEntity, 0, 0 }); cg_itemUom.DataSource = dt_matUOM; cg_itemUom.ValueMember = "itemUomId"; cg_itemUom.DisplayMember = "uomName"; } } //选择单位 private void cg_itemUom_ValueChanged(object sender, EventArgs e) { //获取改变之前的转化系数 if (cg_itemUom.SelectedIndex==-1) { return; } if (String.IsNullOrEmpty(cg_conf.Text.Trim())) { return; } double oldCon = Convert.ToDouble(cg_conf.Text); cg_itemUomId = cg_itemUom.Value.ToString().Trim(); //需改变数量 PurMatUomsEntity dt_matUOM = this.execute("com.hnshituo.pur.configure.service.MatUomsService", "findById", new object[] { cg_itemUomId }); if (dt_matUOM == null) { return; } double newCon = (double)dt_matUOM.ItemUomConefficient; double oldQtyPur = Convert.ToDouble(cg_Qty.Value); double newQtyPur = 0; if (oldCon != newCon) { newQtyPur = oldQtyPur * oldCon / newCon; cg_Qty.Value = newQtyPur; cg_conf.Text = newCon+""; } cg_weightUnit.Text = dt_matUOM.WeightUnit; cg_conf.Text = newCon + ""; } //写到行信息里面 private void btn_cg_Click(object sender, EventArgs e) { if (ultraGrid1.ActiveRow == null) { return; } UltraGridRow uge = ultraGrid1.ActiveRow; String strItemUomId = uge.GetCellValue("itemUomId").ToString().Trim(); if (String.IsNullOrEmpty(strItemUomId)) { MessageUtil.ShowTips("无法获取行单位ID"); return; } if (String.IsNullOrEmpty(cg_itemUomId)) { MessageUtil.ShowTips("请先选择采购单位"); cg_itemUom.Focus(); return; } if (cg_itemUomId == strItemUomId) { MessageUtil.ShowTips("未发现可调整项"); cg_itemUom.Focus(); return; } if (MessageUtil.ShowYesNoAndQuestion("确定调整该需求行物料:" + uge.GetCellValue("itemName")) != DialogResult.Yes) { return; } uge.Cells["itemUomId"].Value = cg_itemUomId;//记录新的单位换算ID uge.Cells["itemUnique"].Value = uge.GetCellValue("itemCode").ToString().Trim() + "@" + uge.GetCellValue("itemAttrId").ToString().Trim() + "@" + uge.GetCellValue("itemStandardsId").ToString().Trim() + "@" + cg_itemUomId; uge.Cells["qty"].Value = cg_Qty.Value; uge.Cells["weightUnit"].Value = cg_weightUnit.Text.Trim(); uge.Cells["itemUom"].Value = cg_itemUom.Text.Trim(); uge.Cells["itemUomConefficient"].Value = cg_conf.Text.Trim(); uge.Cells["refuseReason"].Value = "【调整】采购单位调整"; ultraGrid1.UpdateData(); MessageUtil.ShowTips("已修改"); //清空 cg_itemName.Clear(); cg_itemUom.SelectedIndex = -1; cg_itemUomId = ""; cg_weightUnit.Clear(); cg_conf.Clear(); } } }