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 Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Pur.Entity; using Pur.Entity.pur_planEntity; using System.Collections; using Pur.configure; using Pur.Entity.configureEntity; using Pur.Pop_upWindow; using Infragistics.Win.UltraWinGrid; using com.hnshituo.pur.vo; using Infragistics.Win; using Pur.Entity.require_planEntiy; using Pur.require_plan; namespace Pur.pur_plan { public partial class FrmPopExamine : FrmPmsBase { string Q_strTASKID = ""; ArrayList alrem = null;//需求主表 ArrayList alReqD = null;//需求行表 ArrayList alReqR = null;//需求关系表 ArrayList alrpr = null;//需求接收表 Color QtabColor; #region 初始化事件 /// /// 构造函数 /// /// /// public FrmPopExamine(OpeBase ob, string strTASKID) { InitializeComponent(); this.ob = ob; Q_strTASKID = strTASKID; GetTaskM();//查询任务单主表 //GetTaskC();//查询任务单下的物料信息 GetSupp();//查询任务单下的供应商 getExamineMana();//获取供应商对物料报价 getExamineManaByMat(); } /// /// 初始化加载窗体事件 /// /// /// private void FrmPopExamine_Load(object sender, EventArgs e) { GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0]);//设置不可编辑 GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[1]);//不可以手动输入报价信息 //GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[1], "bidwinqty", "isbid", "bidwinwithtaxprice", "RESWITHTAXPRICE");//可以手动输入报价信息 GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[1]);//设置不可编辑 GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[0]);//设置不可编辑 //GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[0], "bidwinqty", "isbid", "bidwinwithtaxprice");//可以手动输入报价信息 bidprice //GridHelper.SetExcludeColumnsActive(ultraGrid8.DisplayLayout.Bands[0]);//不可手动输入报价信息 GridHelper.SetExcludeColumnsActive(ultraGrid8.DisplayLayout.Bands[0], "bidwinqty", "isbid", "bidwinwithtaxprice", "RESWITHTAXPRICE");//可手动输入报价信息 if (ultraGrid8.Rows.Count > 0) { ultraGrid8.Rows[0].Height = ultraGrid8.Rows[0].Height * 2; } //GridHelper.SetExcludeColumnsActive(ultraGrid9.DisplayLayout.Bands[0]);//不可手动输入报价信息 GridHelper.SetExcludeColumnsActive(ultraGrid9.DisplayLayout.Bands[0], "bidwinqty", "isbid", "bidwinwithtaxprice", "RESWITHTAXPRICE");//可手动输入报价信息 if (ultraGrid9.Rows.Count > 0) { ultraGrid9.Rows[0].Height = ultraGrid9.Rows[0].Height * 2; } Ck_showAll.Checked = false; //splitContainer3.SplitterDistance = splitContainer3.Width / 2; //splitContainer4.SplitterDistance = splitContainer4.Width * 1/3; //bsplitContainer3Width = splitContainer3.SplitterDistance;//设置初始容器左右距离 //bsplitContainer4Width = splitContainer4.SplitterDistance; } /// /// 按钮控件 /// /// /// private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key.ToString()) { case "RefreshRes": { GetTaskM();//查询任务单主表 getExamineMana(); getExamineManaByMat(); } break; case "conFirmation": { setPriceAll(); } break; case "OpChatFun": { OpChatFun(); } break; case "ESC": { this.Close(); } break; } } #endregion #region 获取任务单基本信息(物料、供应商、报价信息) /// /// 查询任务主表 /// public void GetTaskM() { //PurTaskMEntity M_PurTaskM = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "findById", new object[] { Q_strTASKID }); PurTaskMEntity M_PurTaskM = new PurTaskMEntity(); M_PurTaskM.TaskId = Q_strTASKID; DataTable dt = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "getTaskM", new object[] { M_PurTaskM }); if (dt != null && dt.Rows.Count > 0) { lb_taskId.Text = dt.Rows[0]["TaskId"].ToString();//M_PurTaskM.TaskId; lb_taskName.Text = dt.Rows[0]["taskName"].ToString();// M_PurTaskM.TaskName; lb_Status.Text = dt.Rows[0]["Status"].ToString();// //switch (M_PurTaskM.Status) //{ // case "1": // lb_Status.Text = "未竞标"; // break; // case "2": // lb_Status.Text = "报价中"; // break; // case "3": // lb_Status.Text = "待开标"; // break; // case "4": // lb_Status.Text = "评标中"; // break; // case "5": // lb_Status.Text = "待供应商确认"; // break; // case "6": // lb_Status.Text = "待供应部确认"; // break; // case "7": // lb_Status.Text = "初拟中标"; // break; // case "8": // lb_Status.Text = "已关闭"; // break; // case "9": // lb_Status.Text = "已生成采购纪要"; // break; // case "20": // lb_Status.Text = "审批通过"; // break; // case "21": // lb_Status.Text = "审批不通过"; // break; // case "19": // lb_Status.Text = "审批中"; // break; // case "18": // lb_Status.Text = "待提报"; // break; // case "17": // lb_Status.Text = "已废标"; // break; //} } } /// /// 查询物料 /// public void GetTaskC() { if (Q_strTASKID != "") { // 查询任务从表 PurTaskCEntity M_PurTaskC = new PurTaskCEntity(); M_PurTaskC.TaskId = Q_strTASKID; M_PurTaskC.Validflag = "1"; DataTable dt = this.execute("com.hnshituo.pur.purplan.service.TaskCService", "find", new object[] { M_PurTaskC, 0, 0 }); //将空属性的值置为"" for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["ITEMATTRID"] == null || dt.Rows[i]["ITEMATTRID"].ToString() == "") { dt.Rows[i]["ITEMATTRID"] = " "; } } GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//绑定物料分类表 } } /// /// 查询供应商 /// public void GetSupp() { if (Q_strTASKID != "") { // 查询供应商 PurTaskSuppsEntity M_PurTaskSupps = new PurTaskSuppsEntity(); M_PurTaskSupps.TaskId = Q_strTASKID; M_PurTaskSupps.Validflag = "1"; DataTable dt = this.execute("com.hnshituo.pur.purplan.service.TaskSuppsService", "find", new object[] { M_PurTaskSupps, 0, 0 }); GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true);//绑定供应商(查看供应商个数) GridHelper.CopyDataToDatatable(ref dt, ref dataTable9, true);//绑定供应商(按供应商招标) } } /// /// 查询物料和供应商报价(按供应商招标) /// private void getExamineMana() { DataTable dtItem = this.execute("com.hnshituo.pur.purplan.service.TaskCService", "getTaskItem", new object[] { Q_strTASKID });//任务单对应的物料信息 PurTaskOfferCEntity offerC = new PurTaskOfferCEntity(); offerC.TaskId = Q_strTASKID; if(!Ck_showAll.Checked) { offerC.Validflag = "1"; } DataTable dtSuppsRes = this.execute("com.hnshituo.pur.purplan.service.TaskOfferCService", "getSuppRes1", new object[] { offerC });//物料对应供应商报价信息 dataTable4.Rows.Clear(); GridHelper.CopyDataToDatatable(ref dtItem, ref dataTable1, true);//绑定物料分类表 //计算上一次采购金额 //comm.delChildsNotExisPar(ref dtSuppsRes,dtItem); GridHelper.CopyDataToDatatable(ref dtSuppsRes, ref dataTable4, true);//绑定供应商报价表 ultraGrid1.UpdateData(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { foreach (UltraGridRow ugr in ultraGrid1.Rows[i].ChildBands[0].Rows) { //将定标单价等于报价单价 if (ugr.Cells["bidwinwithtaxprice"].Value.ToString() == "") { ugr.Cells["bidwinwithtaxprice"].Value = ugr.Cells["reswithtaxprice"].Value; } if (ugr.Cells["bidwinqty"].Value.ToString() == "") { ugr.Cells["bidwinqty"].Value = ugr.Cells["resqty"].Value; } //ExceptionOp(ultraGrid1.Rows[i]); //初拟中标后只显示中标的供应商 if (lb_Status.Text == "初拟中标") { if (Boolean.Parse(ugr.Cells["isbid"].Value.ToString())) { ugr.Hidden = false; } else { ugr.Hidden = true; } } else { ugr.Cells["RESDELIVERDATE"].Value = System.DateTime.Now; } } } //comm.RefreshAndAutoSizeExceptColumns(ultraGrid1,"table2"); comm.RefreshAndAutoSizeExceptColumns(ultraGrid1); comm.RefreshAndAutoSizeExceptColumns(ultraGrid8); ultraGrid1.UpdateData(); } /// /// 查询物料和供应商报价(按物料招标) /// private void getExamineManaByMat() { PurTaskOfferCEntity offerC = new PurTaskOfferCEntity(); offerC.TaskId = Q_strTASKID; if (!Ck_showAll.Checked) { offerC.Validflag = "1"; } DataTable dtSuppsRes = this.execute("com.hnshituo.pur.purplan.service.TaskOfferCService", "getSuppResJionMat", new object[] { offerC });//物料对应供应商报价信息 GridHelper.CopyDataToDatatable(ref dtSuppsRes, ref dataTable5, true);//绑定供应商报价表 ultraGrid1.UpdateData(); for (int i = 0; i < ultraGrid5.Rows.Count; i++) { ultraGrid5.Rows[i].Cells["btnCheckAll"].Value = "全中标"; //报价数量 int resNum = 0; double resAtm = 0; foreach (UltraGridRow ugr in ultraGrid5.Rows[i].ChildBands[0].Rows) { //将定标单价等于报价单价 if (ugr.Cells["bidwinwithtaxprice"].Value.ToString() == "") { ugr.Cells["bidwinwithtaxprice"].Value = ugr.Cells["reswithtaxprice"].Value; } if (ugr.Cells["bidwinqty"].Value.ToString() == "") { ugr.Cells["bidwinqty"].Value = ugr.Cells["resqty"].Value; } if (ugr.Cells["RESWITHTAXPRICE"].Value.ToString() != "" && ugr.Cells["RESWITHTAXPRICE"].Value.ToString() != "0") {resNum++;} if (ugr.Cells["RESWITHTAXAMT"].Value.ToString().Trim() != "") { resAtm += double.Parse(ugr.Cells["RESWITHTAXAMT"].Value.ToString().Trim()); } //设置交期时间格式 ugr.Cells["ASKDELIVERDATE"].Column.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date; ugr.Cells["ASKDELIVERDATE"].Column.MaskInput = "yyyy/mm/dd"; //设置交期时间格式 ugr.Cells["RESDELIVERDATE"].Column.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date; ugr.Cells["RESDELIVERDATE"].Column.MaskInput = "yyyy/mm/dd"; //ExceptionOp(ultraGrid1.Rows[i]); //初拟中标后只显示中标的供应商 if (lb_Status.Text == "初拟中标") { if (Boolean.Parse(ugr.Cells["isbid"].Value.ToString())) { ugr.Hidden = false; } else { ugr.Hidden = true; } } else { ugr.Cells["RESDELIVERDATE"].Value = System.DateTime.Now; } } //显示供应商报价总数 ultraGrid5.Rows[i].Cells["ResQty"].Value = resNum.ToString() + "/" + ultraGrid5.Rows[i].ChildBands[0].Rows.Count.ToString(); ultraGrid5.Rows[i].Cells["ResAtm"].Value = resAtm; } //comm.RefreshAndAutoSizeExceptColumns(ultraGrid5, "table2"); comm.RefreshAndAutoSizeExceptColumns(ultraGrid5); comm.RefreshAndAutoSizeExceptColumns(ultraGrid9); ultraGrid5.UpdateData(); } #endregion #region 定标操作 /// /// 定标操作 /// private void setPriceAll() { string strTaskStatu=getTaskStatusNum(); if (strTaskStatu == "7") { MessageUtil.ShowTips("任务单已初拟中标,不能重复初拟中标"); return; } if (strTaskStatu != "6" && strTaskStatu != "4") { MessageUtil.ShowTips("任务单状态不为“待初拟中标”或“评标中”,不能初拟中标"); return; } ultraGrid1.UpdateData(); ArrayList al_TaskOfferC = new ArrayList(); ArrayList al_ppd = new ArrayList();//采购计划补充预采需求 ArrayList al_supp = new ArrayList(); ArrayList alTaskC = new ArrayList();//任务单行 //初始化供应商中标功能 for (int i = 0; i < dataTable3.Rows.Count; i++) { PurTaskSuppsEntity TaskSuppsEntity = new PurTaskSuppsEntity();//供应商是否中标 TaskSuppsEntity.Id = dataTable3.Rows[i]["ID"].ToString(); TaskSuppsEntity.IsBid = "0"; TaskSuppsEntity.UpdateName = UserInfo.GetUserName(); TaskSuppsEntity.UpdateUserid = UserInfo.GetUserID(); al_supp.Add(TaskSuppsEntity); } string strTips = "";//超标采购提示信息 alrem = new ArrayList();//需求主表 alReqD = new ArrayList();//需求行表 alReqR = new ArrayList();//需求关系表 alrpr = new ArrayList();//需求接收表 for (int i = 0; i < ultraGrid1.Rows.Count; i++) { double b_SumResQty = 0;//同一物料下的定标数量合计 for (int j = 0; j < ultraGrid1.Rows[i].ChildBands[0].Rows.Count; j++) { UltraGridRow ugr = ultraGrid1.Rows[i].ChildBands[0].Rows[j]; if (!Boolean.Parse(ugr.Cells["isbid"].Value.ToString())) { continue; } if (ugr.Hidden == true) { continue; } PurTaskOfferCEntity M_TaskOfferCEntity_al = new PurTaskOfferCEntity(); PurTaskCEntity mat_PurPlanD = this.execute("com.hnshituo.pur.purplan.service.TaskCService", "findById", new object[] { ugr.Cells["tasklineid"].Value.ToString() }); if (mat_PurPlanD != null) { M_TaskOfferCEntity_al = EntityHelper.CopyEntity(mat_PurPlanD); } M_TaskOfferCEntity_al.ItemCode = ugr.Cells["ITEMCODE"].Value.ToString();//物料编码 M_TaskOfferCEntity_al.ItemAttr = ugr.Cells["ITEMATTR"].Value.ToString();//物料属性 M_TaskOfferCEntity_al.ItemUom = ugr.Cells["ItemUom"].Value.ToString();//物料单位 M_TaskOfferCEntity_al.ItemUnique = ugr.Cells["ITEMUNIQUE"].Value.ToString();//物料唯一值 M_TaskOfferCEntity_al.SuppCode = ugr.Cells["SUPPCODE"].Value.ToString();//供应商代码 double bpickqty = 0; double.TryParse(ugr.Cells["qty"].Value.ToString(), out bpickqty); M_TaskOfferCEntity_al.Qty = bpickqty;//招标数量 M_TaskOfferCEntity_al.SuppName = ugr.Cells["SUPPNAME"].Value.ToString();//供应商代码 M_TaskOfferCEntity_al.TaskId = ugr.Cells["TASKID"].Value.ToString();//任务单Id M_TaskOfferCEntity_al.TaxRateName = ugr.Cells["TaxRateName"].Value.ToString();//税率 M_TaskOfferCEntity_al.Validflag = "1"; if (Boolean.Parse(ugr.Cells["isbid"].Value.ToString())) { M_TaskOfferCEntity_al.IsBid = "1";//中标 double ResQty1 = 0; double.TryParse(ugr.Cells["bidwinqty"].Value.ToString(), out ResQty1); M_TaskOfferCEntity_al.BidWinQty = ResQty1;//定标数量 b_SumResQty += ResQty1;//累加同一物料下的定标数量 if (ResQty1 <= 0) { MessageUtil.ShowTips(M_TaskOfferCEntity_al.SuppName + "对物料【" + M_TaskOfferCEntity_al.ItemName + "】的定标数量必须>0"); return; } double ResWithTaxPrice1 = 0; double.TryParse(ugr.Cells["bidwinwithtaxprice"].Value.ToString(), out ResWithTaxPrice1); if (ResWithTaxPrice1 <= 0) { MessageUtil.ShowTips(M_TaskOfferCEntity_al.SuppName + "对物料【" + M_TaskOfferCEntity_al.ItemName + "】的定标单价必须>0"); return; } M_TaskOfferCEntity_al.BidWinWithTaxPrice = Math.Round(ResWithTaxPrice1, 6);//定标含税单价 M_TaskOfferCEntity_al.BidWinWithoutTaxPrice = Math.Round(ResWithTaxPrice1 / 1.13, 6);//定标不含税单价 //-----------------------------------------------供应商中标 foreach (PurTaskSuppsEntity TaskSuppsEntity in al_supp) { if (TaskSuppsEntity.Id == ugr.Cells["ID"].Value.ToString()) { TaskSuppsEntity.IsBid = "1"; break; } } } else { M_TaskOfferCEntity_al.IsBid = "0"; } double ResWithTaxPrice = 0; double.TryParse(ugr.Cells["RESWITHTAXPRICE"].Value.ToString(), out ResWithTaxPrice); //M_TaskOfferCEntity_al.ResWithTaxPrice = Math.Round(ResWithTaxPrice, 6);//报价含税单价 //M_TaskOfferCEntity_al.ResWithoutTaxPrice = Math.Round(ResWithTaxPrice / 1.16, 6);//报价不含税单价 double ResQty = 0; double.TryParse(ugr.Cells["RESQTY"].Value.ToString(), out ResQty); //M_TaskOfferCEntity_al.ResQty = ResQty;//报价数量 double ResWithTaxAmt = 0; double.TryParse(ugr.Cells["RESWITHTAXAMT"].Value.ToString(), out ResWithTaxAmt); //M_TaskOfferCEntity_al.ResWithTaxAmt = Math.Round(ResWithTaxAmt, 2);//报价含税金额 //M_TaskOfferCEntity_al.ResWithoutTaxAmt = Math.Round(ResWithTaxAmt / 1.16, 2);//报价不含税金额 DateTime ResDeliverDate; DateTime.TryParse(ugr.Cells["RESDELIVERDATE"].Value.ToString(), out ResDeliverDate); //M_TaskOfferCEntity_al.ResDeliverDate = ResDeliverDate;//报价日期 //M_TaskOfferCEntity_al.ResRemark = ugr.Cells["RESREMARK"].Value.ToString();//报价备注 M_TaskOfferCEntity_al.CreateName = UserInfo.GetUserName(); M_TaskOfferCEntity_al.CreateUserid = UserInfo.GetUserID(); M_TaskOfferCEntity_al.UpdateName = UserInfo.GetUserName(); M_TaskOfferCEntity_al.UpdateUserid = UserInfo.GetUserID(); if (M_TaskOfferCEntity_al.IsBid=="1") { al_TaskOfferC.Add(M_TaskOfferCEntity_al); } } //判断物料是否超标采购 double b_BugPrice = 0;//任务单计划价 double b_PICKQTY = 0;//任务单采购量 double.TryParse(ultraGrid1.Rows[i].Cells["PICKQTY"].Value.ToString(), out b_PICKQTY); double b_PurPlanQty = 0;//采购计划量 double.TryParse(ultraGrid1.Rows[i].Cells["ITEMUOMCONEFFICIENT"].Value.ToString(), out b_PurPlanQty); double b_getPurTask_Qty = 0;//已生成任务单数量 double.TryParse(ultraGrid1.Rows[i].Cells["COMPANYCODE"].Value.ToString(), out b_getPurTask_Qty); double b_Has_Pur_Qty = b_PurPlanQty - b_getPurTask_Qty;//剩余采购量 double b_ManayQty=b_SumResQty - b_PICKQTY;//超标数量 //超标采购 if (b_PICKQTY < b_SumResQty) { strTips += "物料名称【" + ultraGrid1.Rows[i].Cells["ITEMNAME"].Value.ToString() + "】下的定标数量总和【" + b_SumResQty + "】>招标数量【" + b_PICKQTY + "】\n"; if (b_Has_Pur_Qty <= 0)//没有剩余采购量,补充需求 { //增加预采需求 setRequire(b_ManayQty, ultraGrid1.Rows[i].Cells["MRLINEID"].Value.ToString(), ultraGrid1.Rows[i].Cells["ASKDELIVERDATE"].Value.ToString()); } else//有剩余采购计划量 { if (b_ManayQty > b_Has_Pur_Qty)//剩下未生成任务单数量不足多招标的数量 { //PurTaskCEntity TcEntity = new PurTaskCEntity(); //TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString(); //TcEntity.PickQty = b_PICKQTY + b_Has_Pur_Qty; //TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice; //alTaskC.Add(TcEntity); //增加预采需求 setRequire(b_ManayQty - b_Has_Pur_Qty, ultraGrid1.Rows[i].Cells["MRLINEID"].Value.ToString(), ultraGrid1.Rows[i].Cells["ASKDELIVERDATE"].Value.ToString()); } else//直接增加任务单量 { //PurTaskCEntity TcEntity = new PurTaskCEntity(); //TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString(); //TcEntity.PickQty = b_PICKQTY + b_ManayQty; //TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice; //alTaskC.Add(TcEntity); } } //增加任务单量,任务单招标量等于预采量 PurTaskCEntity TcEntity = new PurTaskCEntity(); TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString(); TcEntity.PickQty = b_SumResQty; TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice; alTaskC.Add(TcEntity); } else if (b_PICKQTY > b_SumResQty)//减标采购 { //strTips += "物料名称【" + ultraGrid1.Rows[i].Cells["ITEMNAME"].Value.ToString() + "】下的定标数量总和【" + b_SumResQty + "】<招标数量【" + b_PICKQTY + "】\n"; //又用户确定是否减少任务单量 //if (ultraGrid1.Rows[i].Cells["combox"].Value.ToString() == "" && ultraGrid1.Rows[i].ChildBands[0].Rows.Count>0) //{ //MessageUtil.ShowTips("物料名称【" + ultraGrid1.Rows[i].Cells["ITEMNAME"].Value.ToString() + "】下的定标数量总和【" + b_SumResQty + "】<招标数量【" + b_PICKQTY + "】,请选择招标异常处理方式"); //return; //} //else //{ //if (ultraGrid1.Rows[i].Cells["combox"].Value.ToString() == "0")//减少采购量,下次继续招标 //{ PurTaskCEntity TcEntity = new PurTaskCEntity(); TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString(); TcEntity.PickQty = b_SumResQty; TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice; alTaskC.Add(TcEntity); //} //} } } //if (strTips != "") //{ if (strTips.Trim() == "") { strTips += "确定初拟中标?"; } else { strTips += "\n确定初拟中标?"; } if (MessageUtil.ShowYesNoAndQuestion(strTips).Equals(DialogResult.No)) { return; } else//补录预采需求 { if (al_TaskOfferC.Count > 0) { //if (alrem.Count > 0) //{ CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "setPriceAll_AddReq", new object[] { al_TaskOfferC, al_supp, alrem, alReqD, alReqR, alrpr, alTaskC }); if (crt.Resultcode != 0) { MessageUtil.ShowTips("初拟中标失败 " + crt.Resultmsg); return; } MessageUtil.ShowTips("初拟中标成功"); GetTaskM(); return;//结束方法 //} //else //{ //MessageUtil.ShowTips("未找到增加的预采需求"); //return; //} } } //} strTips = ""; //if (al_TaskOfferC.Count > 0) //{ //CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "setPriceAll", new object[] { al_TaskOfferC, al_supp }); //if (crt.Resultcode != 0) //{ //MessageUtil.ShowTips("初拟中标失败 " + crt.Resultmsg); //return; //} //MessageUtil.ShowTips("初拟中标成功"); //GetTaskM(); //this.Close(); //} } /// /// 新增补充预采需求 /// private void setRequire(double bQTYYC, string strPurLineId, string strASKDELIVERDATE) { //for (int i = 0; i < ultraGrid1.Rows.Count; i++) //{ RequirePlanM rem = new RequirePlanM(); RequirePlanD ReqD = new RequirePlanD(); ReqPurPlanR ReqR = new ReqPurPlanR(); RequireReceive rpr = new RequireReceive(); //double bQTYYC = 0;//预采量 //double.TryParse(ultraGrid1.Rows[i].Cells["QTYYC"].Value.ToString(), out bQTYYC); //生成需求单号 //string strYcMrId = this.execute("com.hnshituo.pur.utils.service.UtilsService", "genMrId", new object[] { 1 }); rem.CreateName = UserInfo.GetUserName(); rem.CreateUserid = UserInfo.GetUserID(); rem.CreateTime = DateTime.Now; rem.Status = "3"; //ReqM.ReqOrgId = txt_REQ_ORG_ID.Text; //ReqM.ReqOrgName = txt_REQORGNAME.Text; rem.MrPeriodEnd = Convert.ToDateTime(strASKDELIVERDATE).Date;//Convert.ToDateTime(ultraGrid1.ActiveRow.Cells["MRPERIODEND"].Value.ToString()).Date; //rem.MrPeriodStart = Convert.ToDateTime(txt_MRPERIODSTART.Text).Date; rem.UrgencyType = "1"; rem.ReqOrgName = UserInfo.GetDepartment();//申请者机构名称 rem.ReqOrgId = UserInfo.GetDeptid();//申请者机构ID rem.Validflag = "1"; rem.RequireType = "122103";//生产性物料预采,系统自动生成,RPA160700003-002 RPA160700003-001 //rem.MrId = strYcMrId; EntityPurPlanD ppd = new EntityPurPlanD(); ppd = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "findById", new object[] { strPurLineId });//添加操作 ReqD = EntityHelper.CopyEntity(ppd); //ReqD.MrLineId = strYcMrId + "-001"; //ReqD.MrId = strYcMrId; ReqD.Remark = "由超额定标补充需求计划行信息"; ReqD.BuyerDeptCode = ""; ReqD.BuyerDeptDesc = ""; ReqD.BuyerUnitCode = ""; ReqD.BuyerUnitDesc = ""; ReqD.Validflag = "1"; ReqD.FlagGeneratedPurPlan = "4"; ReqD.Qty = bQTYYC; ReqD.QtyPur = bQTYYC; ReqD.BudgetAmt = bQTYYC * (ReqD.BugPrice == null ? 0 : ReqD.BugPrice); ReqD.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); ReqD.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); ReqD.CreateTime = DateTime.Now; ReqD.FlagGeneratedPurPlan = "1"; //2016年2月28新增leitao ReqD.DeliveryLocationFlag = "0"; ReqD.DeliveryLocation = ""; ReqD.DeliveryLocationCode = ""; ReqD.AuditFlag = "1"; ReqD.AuditMsg = "默认审批通过"; //插入关系表 ReqR.PurLineId = ppd.MrLineId; ReqR.CreateTime = DateTime.Now; ReqR.RequireLineId = ReqD.MrLineId; ReqR.ID = ReqD.MrLineId + ppd.MrLineId; rpr = EntityHelper.CopyEntity(ReqD); rpr.PurLineId = ppd.MrLineId; rpr.Id = ReqD.MrLineId + ppd.MrLineId; rpr.Status = "2"; rpr.LastDeliveryDate = Convert.ToDateTime(strASKDELIVERDATE).Date; //ppd.AskDeliverDate; rpr.LjhTime = System.DateTime.Now; rpr.Purtype = "3"; rpr.OriQty = bQTYYC; rpr.OriQtyPur = bQTYYC; rpr.Qty = bQTYYC; rpr.QtyPur = bQTYYC; rpr.Remark = "由超额定标补充需求计划行信息"; alrem.Add(rem); alReqD.Add(ReqD); alReqR.Add(ReqR); alrpr.Add(rpr); //} //CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "submit", new object[] { alrem, alReqD, alReqR, alrpr, ppm });//添加操作 //return crt; } /// /// 新增补充预采需求(弃用) /// private CoreResult setRequireM(EntityPurPlanM ppm) { ArrayList alrem = new ArrayList(); ArrayList alReqD = new ArrayList(); ArrayList alReqR = new ArrayList(); ArrayList alrpr = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { RequirePlanM rem = new RequirePlanM(); RequirePlanD ReqD = new RequirePlanD(); ReqPurPlanR ReqR = new ReqPurPlanR(); RequireReceive rpr = new RequireReceive(); double bQTYYC = 0;//预采量 double.TryParse(ultraGrid1.Rows[i].Cells["QTYYC"].Value.ToString(), out bQTYYC); //生成需求单号 string strYcMrId = this.execute("com.hnshituo.pur.utils.service.UtilsService", "genMrId", new object[] { 1 }); rem.CreateName = UserInfo.GetUserName(); rem.CreateUserid = UserInfo.GetUserID(); rem.CreateTime = DateTime.Now; rem.Status = "3"; //ReqM.ReqOrgId = txt_REQ_ORG_ID.Text; //ReqM.ReqOrgName = txt_REQORGNAME.Text; rem.MrPeriodEnd = Convert.ToDateTime(ultraGrid1.ActiveRow.Cells["MRPERIODEND"].Value.ToString()).Date; //rem.MrPeriodStart = Convert.ToDateTime(txt_MRPERIODSTART.Text).Date; rem.UrgencyType = "1"; rem.ReqOrgName = UserInfo.GetDepartment();//申请者机构名称 rem.ReqOrgId = UserInfo.GetDeptid();//申请者机构ID rem.Validflag = "1"; rem.RequireType = "122103";//生产性物料预采,系统自动生成,RPA160700003-002 RPA160700003-001 rem.MrId = strYcMrId; EntityPurPlanD ppd = new EntityPurPlanD(); ppd = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "findById", new object[] { ultraGrid1.Rows[i].Cells["MrLineId"].Value.ToString() });//添加操作 ReqD = EntityHelper.CopyEntity(ppd); ReqD.MrLineId = strYcMrId + "-001"; ReqD.MrId = strYcMrId; ReqD.Remark = "由预采补充需求计划行信息"; ReqD.BuyerDeptCode = ""; ReqD.BuyerDeptDesc = ""; ReqD.BuyerUnitCode = ""; ReqD.BuyerUnitDesc = ""; ReqD.Validflag = "1"; ReqD.FlagGeneratedPurPlan = "4"; ReqD.Qty = bQTYYC; ReqD.QtyPur = bQTYYC; ReqD.BudgetAmt = bQTYYC * (ReqD.BugPrice == null ? 0 : ReqD.BugPrice); ReqD.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); ReqD.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); ReqD.CreateTime = DateTime.Now; ReqD.FlagGeneratedPurPlan = "1"; //2016年2月28新增leitao ReqD.DeliveryLocationFlag = "0"; ReqD.DeliveryLocation = ""; ReqD.DeliveryLocationCode = ""; ReqD.AuditFlag = "1"; ReqD.AuditMsg = "默认审批通过"; //插入关系表 ReqR.PurLineId = ppd.MrLineId; ReqR.CreateTime = DateTime.Now; ReqR.RequireLineId = ReqD.MrLineId; ReqR.ID = ReqD.MrLineId + ppd.MrLineId; rpr = EntityHelper.CopyEntity(ReqD); rpr.PurLineId = ppd.MrLineId; rpr.Id = ReqD.MrLineId + ppd.MrLineId; rpr.Status = "2"; rpr.LastDeliveryDate = ppd.AskDeliverDate; rpr.LjhTime = System.DateTime.Now; rpr.Purtype = "3"; rpr.OriQty = bQTYYC; rpr.OriQtyPur = bQTYYC; rpr.Qty = bQTYYC; rpr.QtyPur = bQTYYC; alrem.Add(rem); alReqD.Add(ReqD); alReqR.Add(ReqR); alrpr.Add(rpr); } CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "submit", new object[] { alrem, alReqD, alReqR, alrpr, ppm });//添加操作 return crt; } #endregion #region 获取聊天信息 /// /// 设置聊天界面结构 /// /// private void setChitChatDt() { //设置tab聊天框 for (int i = 0; i < dataTable3.Rows.Count; i++) { RichTextBox tb = new RichTextBox(); tb.Name = dataTable3.Rows[i]["SUPPCODE"].ToString(); tb.Dock = DockStyle.Fill; tb.Multiline = true; tb.ReadOnly = true; tb.TextChanged += new EventHandler(rtbLog_TextChanged); Infragistics.Win.UltraWinTabControl.UltraTab ultb = ultraTabControl1.Tabs.Add(dataTable3.Rows[i]["SUPPCODE"].ToString(), dataTable3.Rows[i]["SUPPNAME"].ToString() + "(" + dataTable3.Rows[i]["SUPPCODE"].ToString() + ")"); //ultb.TabPage = ult_tpc; ultb.TabPage.Controls.Add(tb); QtabColor = ultb.TabPage.Tab.Appearance.BackColor; } //显示供应商聊天复选框 //int widthScreen_top = 0;//计算显示的供应商长度是否超出发送文本框的高度 //int widthScreen_left = 0;//计算显示的供应商长度是否超出发送文本框的宽度 //for (int i = 0; i < dataTable3.Rows.Count; i++) //{ // CheckBox rb = new CheckBox(); // rb.Text = dataTable3.Rows[i]["SUPPNAME"].ToString() + "(" + dataTable3.Rows[i]["SUPPCODE"].ToString() + ")"; // rb.Name = dataTable3.Rows[i]["SUPPCODE"].ToString(); // rb.AutoSize = true; // rb.Left = textBox1.Left + widthScreen_left; // rb.Top = textBox1.Top - rb.Height * (widthScreen_top / textBox1.Width + 1); // ultraGroupBox6.Controls.Add(rb); // widthScreen_top += rb.Width + 5; // widthScreen_left += rb.Width + 5; // if (widthScreen_left > textBox1.Width) // { // widthScreen_left = 0; // } // if (i == dataTable3.Rows.Count - 1) // { // checkBox1.Left = textBox1.Left + widthScreen_left;//设置全选复选框的位置 // checkBox1.Top = rb.Top; // } //} } #endregion #region 发送聊天信息 #endregion private void OpChatFun() { frmPopTaskChat frm = new frmPopTaskChat(this.ob, Q_strTASKID); frm.ShowDialog(); } /// /// 获取任务单状态(返回数字) /// /// public string getTaskStatusNum() { string strTaskStatus = ""; PurTaskMEntity M_PurTaskM = new PurTaskMEntity(); M_PurTaskM = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "findById", new object[] { Q_strTASKID }); if (M_PurTaskM != null) { strTaskStatus = M_PurTaskM.Status; } return strTaskStatus; } /// /// 单元格值改变事件 /// /// /// private void ultraGrid1_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid") { //ultraGrid1.UpdateData(); //ExceptionOp(e.Cell.Row.ParentRow); setBidSynchronous(dataTable4, dataTable5); } } ///// ///// 显示异常处理方式 ///// ///// //private void ExceptionOp(UltraGridRow ugr) //{ // double bnum = 0;//定标数量 // double bPICKQTY = 0;//招标数量 // double.TryParse(ugr.Cells["PICKQTY"].Value.ToString(), out bPICKQTY); // foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows) // { // if (Boolean.Parse(ugrC.Cells["isbid"].Value.ToString())) // { // double bBidwinqty = 0;//定标数量 // double.TryParse(ugrC.Cells["bidwinqty"].Value.ToString(), out bBidwinqty); // bnum += bBidwinqty; // } // } // if (bnum < bPICKQTY && ugr.ChildBands[0].Rows.Count>0)//作不足量处理 // { // ugr.Cells["combox"].Appearance.BackColor = Color.Yellow; // ugr.Cells["combox"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; // ugr.Cells["combox"].EditorComponent = ultCombox; // ugr.Cells["combox"].Activation = Activation.AllowEdit; // } // else//不用处理 // { // ugr.Cells["combox"].Appearance.BackColor = Color.Gray; // ugr.Cells["combox"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Default; // ugr.Cells["combox"].Value = null; // ugr.Cells["combox"].EditorComponent = null;//ultCombox; // ugr.Cells["combox"].Activation = Activation.ActivateOnly; // } //} /// /// 弹出项目加分详情 /// /// /// private void ultraGrid6_ClickCell(object sender, ClickCellEventArgs e) { if (e.Cell.Column.Key == "project1" || e.Cell.Column.Key == "project2" || e.Cell.Column.Key == "project3") { frmPopExamineSub frm = new frmPopExamineSub(); frm.ShowDialog(); } } /// /// 设置文本控件滚动条 /// /// /// private void rtbLog_TextChanged(object sender, EventArgs e) { RichTextBox rtb = (RichTextBox)sender; rtb.SelectionStart = rtb.Text.Length; //Set the current caret position at the end rtb.ScrollToCaret(); //Now scroll it automatically } /// /// 设置最低报价中标 /// /// /// private void btnSetMinPrice_Click(object sender, EventArgs e) { //if(ultraTabControl1.ActiveTab.Key=="1") //{ for (int i = 0; i < ultraGrid1.Rows.Count; i++) { //最低报价供应商 UltraGridRow ugrMinPrice = null; double dminPrice = 0; foreach (UltraGridRow ugr in ultraGrid1.Rows[i].ChildBands[0].Rows) { if (ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim() != "" && ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim()!="0") { if(dminPrice==0)//初始化最低报价 { dminPrice=double.Parse(ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim()); ugrMinPrice = ugr; } if(double.Parse(ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim()) /// 输入中标信息,同步更新其他方式招标的中标信息 /// /// /// private void ultraGrid5_CellChange(object sender, CellEventArgs e) { //setBidSynchronous(dataTable5, dataTable4); if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid") { //ultraGrid1.UpdateData(); //ExceptionOp(e.Cell.Row.ParentRow); setBidSynchronous(dataTable5, dataTable4); } } /// /// 全中标 /// /// /// private void ultraGrid5_ClickCellButton(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "btnCheckAll") { foreach (UltraGridRow ugr in e.Cell.Row.ChildBands[0].Rows) { if (e.Cell.Value.ToString()=="全中标") { ugr.Cells["isbid"].Value = true; } else if (e.Cell.Value.ToString() == "全不中标") { ugr.Cells["isbid"].Value = false; } } if (e.Cell.Value.ToString() == "全中标") { e.Cell.Value = "全不中标"; } else if (e.Cell.Value.ToString() == "全不中标") { e.Cell.Value = "全中标"; } setBidSynchronous(dataTable5, dataTable4); comm.RefreshAndAutoSizeColumns(ultraGrid5, "btnCheckAll"); } } /// /// 同步各种招标方式中标信息 /// private void setBidSynchronous(DataTable SourceDt,DataTable Objdt) { ultraGrid1.UpdateData(); ultraGrid5.UpdateData(); foreach (DataRow drO in Objdt.Rows) { foreach (DataRow drS in SourceDt.Rows) { string s1 = drO["ITEMUNIQUE"].ToString(); string s2 = drS["ITEMUNIQUE"].ToString(); string s3 = drO["SUPPCODE"].ToString(); string s4 = drS["SUPPCODE"].ToString(); if (s1 == s2 && s3 == s4) { drO["isbid"]=drS["isbid"]; drO["bidwinqty"] = drS["bidwinqty"]; break; } } } } /// /// 修改定标信息 /// /// /// private void ultraGrid8_CellChange(object sender, CellEventArgs e) { ultraGrid8.UpdateData(); if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid") { //ultraGrid1.UpdateData(); //ExceptionOp(e.Cell.Row.ParentRow); setBidSynchronous(dataTable4, dataTable5); } } private void ultraGrid9_CellChange(object sender, CellEventArgs e) { ultraGrid9.UpdateData(); if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid") { //ultraGrid1.UpdateData(); //ExceptionOp(e.Cell.Row.ParentRow); setBidSynchronous(dataTable5, dataTable4); } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr1 = ultraGrid1.ActiveRow; foreach (UltraGridRow ugr in ultraGrid8.Rows) { if (ugr1.Cells["ITEMUNIQUE"].Value.ToString() == ugr.Cells["ITEMUNIQUE"].Value.ToString()) { ugr.Hidden = false; } else { ugr.Hidden = true; } } ultraGrid8.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.VisibleIndex; comm.RefreshAndAutoSizeExceptColumns(ultraGrid8); } private void ultraGrid5_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr1 = ultraGrid5.ActiveRow; foreach (UltraGridRow ugr in ultraGrid9.Rows) { if (ugr1.Cells["suppcode"].Value.ToString() == ugr.Cells["suppcode"].Value.ToString()) { ugr.Hidden = false; } else { ugr.Hidden = true; } } ultraGrid9.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.VisibleIndex; comm.RefreshAndAutoSizeExceptColumns(ultraGrid9); } } }