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 CoreFS.CA06; using Pur.Entity; using System.Collections; using Pur.Entity.pur_planEntity; using Pur.Entity.configureEntity; using Core.Mes.Client.Comm.Tool; using com.hnshituo.pur.vo; using Infragistics.Win; using Core.Mes.Client.Comm.Server; using Pur.require_plan; using Infragistics.Win.UltraWinEditors; using Pur.Pop_upWindow; using Infragistics.Win.UltraWinGrid; using Pur.configure; using Infragistics.Win.UltraWinToolTip; namespace Pur.pur_plan { public partial class frm_PurTaskM : FrmPmsBase { string QstrREQ_ORG_NAME = ""; string[] Qstr = null; DataTable Q_dtFLOW_TYPE = null; string strFUNCTION_VERSION_NO = "";//功能性招标方案 public frm_PurTaskM(DataTable dt, string strREQ_ORG_NAME, string[] str, OpeBase ob) { InitializeComponent(); this.ob = ob; Qstr = str; QstrREQ_ORG_NAME = strREQ_ORG_NAME; get_PurTaskM(dt); ultcmb_ELIVERY_TYPE.SelectedIndex = 0; ultraGrid3.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False; GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], "PAYMENTCODE", "PACKAGETYPE", "PICKQTY", "BALANCEBASEPRICEM", "AskDeliverDate"); GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[1], "bidwinqty", "bidwinwithtaxprice"); ultraGrid2.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); ultraGrid3.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); ultraGrid4.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); getUltcmbBindData(); //报价结束时间往后推迟两天 ultDt_OFFER_TIME_END.Value = System.DateTime.Now.AddDays(4); } public void get_PurTaskM(DataTable dt) { GridHelper.CopyDataToDatatable(ref dt, ref dataTable5, true);//绑定物料分类表 ultraGrid2.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); } /// /// 按钮控件 /// /// /// private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key.ToString()) { case "SelectSupp": { SelectSupp(); } break; //添加评标人员 case "addEvaUsers": { AddEva(); } break; //创建任务单 case "getTaskList": { setTaskList(); } break; case "ESC": { this.Close(); } break; } } /// /// 选择供应商 /// /// /// private void SelectSupp() { if (dataTable5.Rows.Count < 1) { MessageUtil.ShowTips("物料为空,不能添加供应商"); return; } ArrayList al = new ArrayList(); for (int i = 0; i < dataTable5.Rows.Count; i++) { al.Add(dataTable5.Rows[i]["ITEMCODE"].ToString()); } frmSuppChk frm = new frmSuppChk(this.ob, al, dataTable3); frm.ShowDialog(); if (frm.Q_dt != null) { DataTable dt = frm.Q_dt; GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, false); } //供应商与物料相互绑定 BindTaskCSupps(); getBALANCE_BASEPRICE(); GridHelper.RefreshAndAutoSize(ultraGrid3); } /// /// 绑定任务单行表的供应商 /// private void BindTaskCSupps() { dataTable33.Clear(); ArrayList al = new ArrayList(); int itemCount = dataTable5.Rows.Count; for (int i = 0; i < itemCount; i++) { al.Add(dataTable5.Rows[i]["ITEMCODE"].ToString()); } ArrayList al_supp = new ArrayList(); foreach (DataRow dr in dataTable3.Rows) { al_supp.Add(dr["SUPPCODE"].ToString()); dr["canCount"] = itemCount; } ArrayList als = new ArrayList(); als.Add(al); als.Add(al_supp); DataTable dt_supp = new DataTable(); if (al_supp.Count > 0) { dt_supp = this.execute("com.hnshituo.pur.configure.service.SuppGradeService", "get_SuppByMat", new object[] { als }); } DataColumn dc = new DataColumn(); dc.ColumnName = "ITEMUNIQUE"; dt_supp.Columns.Add(dc); //如果存在相同物料但物料唯一码不同的情况,则复制一个供应商,设置供应商的物料唯一码不同 DataTable dt_supp_clone = dt_supp.Clone(); for (int i = 0; i < dataTable5.Rows.Count; i++) { for (int j = 0; j < dt_supp.Rows.Count; j++) { if (dataTable5.Rows[i]["ITEMCODE"].ToString() == dt_supp.Rows[j]["ITEMCODE"].ToString()) { //加到物料供应商表 //处理物料唯一码 if (dt_supp.Rows[j]["ITEMUNIQUE"].ToString() != "")//copy一个供应商 { DataRow dr_supp = dt_supp_clone.NewRow(); dr_supp.ItemArray = dt_supp.Rows[j].ItemArray; dr_supp["ITEMUNIQUE"] = dataTable5.Rows[i]["ITEMUNIQUE"].ToString(); dt_supp_clone.Rows.Add(dr_supp); } else { dt_supp.Rows[j]["ITEMUNIQUE"] = dataTable5.Rows[i]["ITEMUNIQUE"].ToString(); } //加到供应商物料表 DataRow dr_mat = dataTable33.NewRow(); dr_mat["itemName"] = dataTable5.Rows[i]["ITEMNAME"].ToString(); dr_mat["MRLINEID"] = dataTable5.Rows[i]["MRLINEID"].ToString(); dr_mat["suppCode"] = dt_supp.Rows[j]["suppCode"]; dataTable33.Rows.Add(dr_mat); } } } foreach (DataRow dr in dt_supp_clone.Rows) { dt_supp.Rows.Add(dr.ItemArray); } comm.delChildsNotExisPar(ref dt_supp, dataTable5); GridHelper.CopyDataToDatatable(ref dt_supp, ref dataTable8, true); foreach (UltraGridRow dr1 in ultraGrid3.Rows) { dr1.Cells["useCount"].Value = dr1.ChildBands[0].Rows.Count; } ultraGrid3.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); } /// /// 添加评标人员 /// public void AddEva() { SetectManByDept frm = new SetectManByDept(); frm.ShowDialog(); //frmPopEvaUsers frm = new frmPopEvaUsers(this.ob, ""); //frm.ShowDialog(); //if (frm.dtEva != null) //{ // DataTable dt = frm.dtEva; // for (int i = 0; i < dt.Rows.Count;) // { // if (dataTable9.Rows.Contains(dt.Rows[i]["ID"])) // { // dt.Rows.RemoveAt(i); // } // else // { i++; } // } // GridHelper.CopyDataToDatatable(ref dt, ref dataTable9, false);//绑定物料分类表 //} } /// /// 选择招标流程单选按钮事件 /// /// /// private void rdb_FLOW_TYPE_CheckedChanged(object sender, EventArgs e) { if (ultcmb_FLOW_TYPE.Value != null) { //if (ultcmb_FLOW_TYPE.Value.ToString() == "1") //{ foreach (DataRow dr in Q_dtFLOW_TYPE.Rows) { //ultraTextEditor1.Text = "报价->议标->评标";//"供应商报价后,评价小组议标、确定价及量,供应商修改报价及量,供应部确认最终成交价及量"; if (dr["BASECODE"].ToString() == ultcmb_FLOW_TYPE.Value.ToString()) { ultraTextEditor1.Text = dr["MEMO"].ToString(); break; } } if (ultcmb_FLOW_TYPE.Value.ToString() == "122802") { ultraGrid2.DisplayLayout.Bands[1].Columns["bidwinwithtaxprice"].Hidden = false; ultraGrid2.DisplayLayout.Bands[1].Columns["bidwinqty"].Hidden = false; ultraGrid2.DisplayLayout.Bands[0].Columns["BALANCEBASEPRICEM"].Hidden = false; //ultraGrid2.DisplayLayout.Bands[1].Columns["isbid"].Hidden = false; } else { ultraGrid2.DisplayLayout.Bands[1].Columns["bidwinwithtaxprice"].Hidden = true; ultraGrid2.DisplayLayout.Bands[1].Columns["bidwinqty"].Hidden = true; ultraGrid2.DisplayLayout.Bands[0].Columns["BALANCEBASEPRICEM"].Hidden = true; //ultraGrid2.DisplayLayout.Bands[1].Columns["isbid"].Hidden = true; } //} //else if (ultcmb_FLOW_TYPE.Value.ToString() == "2") //{ // ultraTextEditor1.Text = "议标(定价定量)->评标";//"供应部定价及量,供应商确认"; //} //else if (ultcmb_FLOW_TYPE.Value.ToString() == "3") //{ // ultraTextEditor1.Text = "报价->评标";//"供应商报价后,一旦开标,不得修改报价及量"; //} //else if (ultcmb_FLOW_TYPE.Value.ToString() == "4") //{ // ultraTextEditor1.Text = "报价->根据综合评分评标";//"供应商报价后,一旦开标,不得修改报价及量"; //} } //this.ultraTextEditor2.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; } /// /// 生成任务单 /// /// /// private void setTaskList() { if (CtrValidation())//验证 { if (jy_negDate.Text == "") { MessageUtil.ShowTips("谈判日期不能为空!"); jy_negDate.Focus(); return; } if (ultraTextEditor2.Text.Trim() == "") { MessageUtil.ShowTips("成本分析不能为空!"); return; } if (ultraTextEditor3.Text.Trim() == "") { MessageUtil.ShowTips("市场预测不能为空!"); return; } if (ultraTextEditor4.Text.Trim() == "") { MessageUtil.ShowTips("物资使用情况不能为空!"); return; } if (ultraTextEditor5.Text.Trim() == "") { MessageUtil.ShowTips("评价不能为空!"); return; } string str = ""; str += "成本分析:" + ultraTextEditor2.Text + "\n"; str += "市场预测:" + ultraTextEditor3.Text + "\n"; str += "物资使用情况:" + ultraTextEditor4.Text + "\n"; str += "评价:" + ultraTextEditor5.Text + "\n"; str += "其他须说明:" + ultraTextEditor6.Text; jy_procRecord.Text = str.Trim(); if (ultraGrid4.Rows.Count <= 0) { MessageUtil.ShowTips("评标人员不能为空"); return; } try { ultraGrid2.UpdateData(); } catch(Exception e) { MessageUtil.ShowTips(e.Message); return; } ultraGrid3.UpdateData(); ultraGrid4.UpdateData(); //EntityPurPlanD mod_PurPlanD = new EntityPurPlanD();//采购计划,修改生成采购计划标志,1:未生成 2:已生成 PurTaskMEntity mod_PurTaskM = new PurTaskMEntity();//采购任务主表 //PurTaskCEntity mod_PurTaskC = new PurTaskCEntity();//采购任务跟踪表 //PurTaskSuppsEntity mod_PurTaskSupps = new PurTaskSuppsEntity();//采购任务供应商 ArrayList al_TaskOfferC = new ArrayList();//报价单 ArrayList al_PurPlanD = new ArrayList(); ArrayList al_PurTaskSupps = new ArrayList(); ArrayList al_PurTaskC = new ArrayList(); ArrayList al_Eva = new ArrayList(); //生成采购任务主表 string strTaskName = "TPCO-GY" + QstrREQ_ORG_NAME; //strTaskName = this.execute("com.hnshituo.pur.utils.service.UtilsService", "getOddNumber", new object[] { "PUR_TASK_M", "TASK_ID", strTaskName, "3" }); strTaskName = this.execute("com.hnshituo.pur.utils.service.UtilsService", "getCodeId_yymm", new object[] { "PUR_TASK_M", "TASK_NAME", strTaskName, "3" }); mod_PurTaskM.TaskName = strTaskName+"-" + txt_TASK_NAME.Text;//任务名称 mod_PurTaskM.Validflag = "1"; if (isExsitRow("com.hnshituo.pur.purplan.service.TaskMService", mod_PurTaskM) > 0) { MessageUtil.ShowTips("任务单名称已存在,请重新输入"); return; } mod_PurTaskM.DeliveryCondition = cmb_DELIVERY_CONDITION.Value == null ? null : cmb_DELIVERY_CONDITION.Value.ToString();//运输条件 mod_PurTaskM.DeliveryType = ultcmb_ELIVERY_TYPE.Value == null ? null : ultcmb_ELIVERY_TYPE.Value.ToString();//运输方式 mod_PurTaskM.ReceiveType = cmb_RECEIVE_TYPE.Value == null ? null : cmb_RECEIVE_TYPE.Value.ToString();//接收方式 mod_PurTaskM.Remark = txt_REMARK.Text;//备注 mod_PurTaskM.FunctionVersionName = txt_FUNCTION_VERSION_NO.Text; mod_PurTaskM.FunctionVersionNo = strFUNCTION_VERSION_NO; string strMrId = ultraGrid2.Rows[0].Cells["MRLINEID"].Value.ToString(); mod_PurTaskM.MrId = strMrId.Substring(0, strMrId.IndexOf('-')); if ((DateTime)(ultDt_OFFER_TIME_END.Value) <= System.DateTime.Now) { //mod_PurTaskM.Status = "1";//状态'1','未竞标','2','报价中','3','待开标','4','评标中','5','待供应商确认','6','待供应部确认','7','已确认','8','已关闭' MessageUtil.ShowTips("报价结束时间不能<=当前时间"); return; } if ((DateTime)(ultDt_OFFER_TIME_END.Value) <= (DateTime)(ultDt_OFFER_TIME_START.Value)) { MessageUtil.ShowTips("报价结束时间必须>=报价开始时间"); return; } if (ultcmb_FLOW_TYPE.Value != null && ultcmb_FLOW_TYPE.Value.ToString() == "122802") { mod_PurTaskM.Status = "18";//状态'1','未竞标','2','报价中','3','待开标','4','评标中','5','待供应商确认','6','待供应部确认','7','已确认','8','已关闭' } else { mod_PurTaskM.Status = "18";//状态'1','未竞标','2','报价中','3','待开标','4','评标中','5','待供应商确认','6','待供应部确认','7','已确认','8','已关闭' } mod_PurTaskM.OfferTimeStart = DateTime.Parse(ultDt_OFFER_TIME_START.Value.ToString()); mod_PurTaskM.OfferTimeEnd = DateTime.Parse(ultDt_OFFER_TIME_END.Value.ToString()); mod_PurTaskM.FlowType = ultcmb_FLOW_TYPE.Value == null ? null : ultcmb_FLOW_TYPE.Value.ToString(); //mod_PurTaskM.PickMode = ultcmb_ELIVERY_TYPE.Value == null ? null : ultcmb_ELIVERY_TYPE.Value.ToString();//报价类型 mod_PurTaskM.CreateUserid = UserInfo.GetUserID(); mod_PurTaskM.CreateName = UserInfo.GetUserName(); mod_PurTaskM.CreateTime = System.DateTime.Now; mod_PurTaskM.BuyerUnitCode = UserInfo.GetDeptid(); mod_PurTaskM.BuyerUnitDesc = UserInfo.GetDepartment(); mod_PurTaskM.Validflag = "1"; mod_PurTaskM.OperatorUserId = UserInfo.GetUserID(); //mod_PurTaskM.PriceVersionNo = txt_BALANCE_BASEPRICE_M.Value==null?null:txt_BALANCE_BASEPRICE_M.Value.ToString(); //插入任务单供应商 string[] TaskSupps = new string[ultraGrid3.Rows.Count]; if (ultraGrid3.Rows.Count < 1) { TaskSupps = new string[1]; TaskSupps[0] = "--"; } string[] TaskMats = new string[ultraGrid2.Rows.Count]; PurTaskMatSuppEntity TaskMatSuppEntity = new PurTaskMatSuppEntity(); //生成采购任务跟踪表和修改生成采购计划标志 for (int i = 0; i < ultraGrid2.Rows.Count; i++) { EntityPurPlanD mod_PurPlanD = new EntityPurPlanD();//采购计划,修改生成采购计划标志,1:未生成 2:已生成 mod_PurPlanD.FlagGeneratedPurPlan = "1"; mod_PurPlanD.MrLineId = ultraGrid2.Rows[i].Cells["MRLINEID"].Value.ToString(); PurTaskCEntity mod_PurTaskC = new PurTaskCEntity();//采购任务行 EntityPurPlanD mat_PurPlanD = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "findById", new object[] { ultraGrid2.Rows[i].Cells["MRLINEID"].Value.ToString() }); mod_PurTaskC = EntityHelper.CopyEntity(mat_PurPlanD); //mod_PurTaskC.PickQty = mat_PurPlanD.Qty; double bPickQty = 0; double.TryParse(ultraGrid2.Rows[i].Cells["PickQty"].Value.ToString(), out bPickQty); mod_PurTaskC.PickQty = bPickQty;//任务单数量 mod_PurTaskC.QtyPur = bPickQty;//任务单原始数量 mod_PurTaskC.PickAmt = bPickQty * (mod_PurTaskC.BugPrice == null ? 0 : mod_PurTaskC.BugPrice); if (ultraGrid2.Rows[i].Cells["BALANCEBASEPRICEM"].Value.ToString().Trim() == "") { if (ultraGrid2.Rows[i].Cells["BALANCEBASEPRICEM"].Column.Hidden == false) { //MessageUtil.ShowTips("物料名称【" + mod_PurTaskC.ItemName + "】,未选中价格政策"); //return; } } mod_PurTaskC.PriceVersionNo = ultraGrid2.Rows[i].Cells["BALANCEBASEPRICEM"].Value.ToString(); if (ultraGrid2.Rows[i].Cells["AskDeliverDate"].Value.ToString()=="") { MessageUtil.ShowTips("物料名称【" + mod_PurTaskC.ItemName + "】的交货日期不能为空"); return; } mod_PurTaskC.AskDeliverDate = DateTime.Parse(ultraGrid2.Rows[i].Cells["AskDeliverDate"].Value.ToString());//mat_PurPlanD.AskDeliverDate; mod_PurTaskC.Remark = mat_PurPlanD.Remark; mod_PurTaskC.PackageType = ultraGrid2.Rows[i].Cells["PackageType"].Value.ToString();//包装方式 mod_PurTaskC.PaymentCode = ultraGrid2.Rows[i].Cells["PaymentCode"].Value.ToString();//付款方式 //mod_PurTaskC.TaskLineId = Guid.NewGuid().ToString(); mod_PurTaskC.TaskId = mod_PurTaskM.TaskId;//任务编号 mod_PurTaskC.MrLineId = ultraGrid2.Rows[i].Cells["MRLINEID"].Value.ToString();//采购计划行号 mod_PurTaskC.Validflag = "1"; mod_PurTaskC.CreateName = UserInfo.GetUserName(); mod_PurTaskC.UpdateName = null; mod_PurTaskC.CreateTime = System.DateTime.Now; mod_PurTaskC.UpdateTime = null; TaskMats[i] = mod_PurTaskC.ItemCode; al_PurPlanD.Add(mod_PurPlanD); al_PurTaskC.Add(mod_PurTaskC); //---------------------------------------------------------------------------------------------------------网上询价,生成报价单 if (ultcmb_FLOW_TYPE.Value.ToString() == "122802") { double? b_SumResQty = 0; for (int j = 0; j < ultraGrid2.Rows[i].ChildBands[0].Rows.Count; j++) { PurTaskOfferCEntity toc = setOfferC(mod_PurTaskC.MrLineId, ultraGrid2.Rows[i].ChildBands[0].Rows[j]); if (toc == null) { return; } b_SumResQty += toc.BidWinQty == null ? 0 : toc.BidWinQty; al_TaskOfferC.Add(toc); } if (b_SumResQty != mod_PurTaskC.PickQty) { MessageUtil.ShowTips("物料名称【" + mod_PurTaskC.ItemName + "】下供应商定价的总数【" + b_SumResQty + "】必须=任务单招标数量【" + mod_PurTaskC.PickQty+"】"); return; } } } TaskMatSuppEntity.TaskMats = TaskMats; // 采购任务供应商 for (int i = 0; i < ultraGrid3.Rows.Count; i++) { PurTaskSuppsEntity mod_PurTaskSupps = new PurTaskSuppsEntity();//采购任务供应商 mod_PurTaskSupps.Id = Guid.NewGuid().ToString(); mod_PurTaskSupps.TaskId = mod_PurTaskM.TaskId; mod_PurTaskSupps.SuppCode = ultraGrid3.Rows[i].Cells["SUPPCODE"].Value.ToString(); mod_PurTaskSupps.SuppName = ultraGrid3.Rows[i].Cells["SUPPNAME"].Value.ToString(); if (ultraGrid3.Rows[i].Cells["isbid"].Value.ToString() == "1") { mod_PurTaskSupps.IsBid = "1"; } else { if (ultcmb_FLOW_TYPE.Value.ToString() == "122802") { mod_PurTaskSupps.IsBid = "1"; } else { mod_PurTaskSupps.IsBid = "0"; } } mod_PurTaskSupps.Validflag = "1"; mod_PurTaskSupps.CreateName = UserInfo.GetUserName(); mod_PurTaskSupps.CreateTime = System.DateTime.Now; mod_PurTaskSupps.CreateUserid = UserInfo.GetUserID(); TaskSupps[i] = mod_PurTaskSupps.SuppCode; al_PurTaskSupps.Add(mod_PurTaskSupps); } TaskMatSuppEntity.TaskId = mod_PurTaskM.TaskId; TaskMatSuppEntity.Validflag = "1"; TaskMatSuppEntity.CreateName = UserInfo.GetUserName(); TaskMatSuppEntity.CreateUserid = UserInfo.GetUserID(); TaskMatSuppEntity.TaskSupps = TaskSupps; // 采购任务评标人员 foreach (UltraGridRow ugr in ultraGrid4.Rows) { PurTaskEvaUsersEntity TaskEvaUsersEntity = new PurTaskEvaUsersEntity(); TaskEvaUsersEntity.Validflag = "1"; TaskEvaUsersEntity.TaskId = mod_PurTaskM.TaskId; TaskEvaUsersEntity.CreateName = UserInfo.GetUserName(); TaskEvaUsersEntity.CreateUserId = UserInfo.GetUserID(); TaskEvaUsersEntity.CreateTime = System.DateTime.Now; if (ugr.Cells["EVAROLEID"].Value.ToString().Trim() != "") { TaskEvaUsersEntity.EvaRoleId = ugr.Cells["EVAROLEID"].Value.ToString();//角色Id } if (ugr.Cells["EVAROLENAME"].Value.ToString().Trim() != "") { TaskEvaUsersEntity.EvaRoleName = ugr.Cells["EVAROLENAME"].Value.ToString();//角色名称 } if (ugr.Cells["EVAUSERID"].Value.ToString().Trim() != "") { TaskEvaUsersEntity.EvaUserid = ugr.Cells["EVAUSERID"].Value.ToString();//用户Id } if (ugr.Cells["EVAUSERNAME"].Value.ToString().Trim() != "") { TaskEvaUsersEntity.EvaUsername = ugr.Cells["EVAUSERNAME"].Value.ToString();//用户名称 } if (ugr.Cells["EVAORGID"].Value.ToString().Trim() != "") { TaskEvaUsersEntity.EvaOrgId = ugr.Cells["EVAORGID"].Value.ToString();//科室Id } if (ugr.Cells["EVAORGNAME"].Value.ToString().Trim() != "") { TaskEvaUsersEntity.EvaOrgName = ugr.Cells["EVAORGNAME"].Value.ToString();//科室名称 } al_Eva.Add(TaskEvaUsersEntity); } //采购纪要 PurTaskRecordEntity TkR = new PurTaskRecordEntity(); TkR.Validflag = "1"; TkR.Status = "2"; TkR.CreateName = UserInfo.GetUserName(); TkR.CreateTime = DateTime.Now; TkR.CreateUserid = UserInfo.GetUserID(); TkR.BuyerUserid = UserInfo.GetUserID(); TkR.BuyerUsername = UserInfo.GetUserName(); TkR.MngOrgId = UserInfo.GetDeptid(); TkR.MngOrgName = UserInfo.GetDepartment(); TkR.NegDate = Convert.ToDateTime(jy_negDate.Value); TkR.TaskName = mod_PurTaskM.TaskName; TkR.ProcRecord = jy_procRecord.Text.Trim(); TkR.Type = jy_type.Value.ToString().Trim(); if (MessageUtil.ShowYesNoAndQuestion("确定生成任务单?")==DialogResult.No) { return; } CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "setTaskList", new object[] { mod_PurTaskM, al_PurTaskC, al_PurTaskSupps, al_PurPlanD, al_Eva, TkR, TaskMatSuppEntity, al_TaskOfferC }); if (crt.Resultcode != 0) { MessageUtil.ShowTips("生成失败 " + crt.Resultmsg); return; } MessageUtil.ShowTips("生成成功!任务名称:" + mod_PurTaskM.TaskName); this.Close(); } } /// /// 生成报加单 /// private PurTaskOfferCEntity setOfferC(string strMRLINEID, UltraGridRow ugr) { PurTaskOfferCEntity M_TaskOfferCEntity_al = new PurTaskOfferCEntity(); EntityPurPlanD mat_PurPlanD = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "findById", new object[] { strMRLINEID }); 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();//供应商代码 //M_TaskOfferCEntity_al.Qty = mat_PurPlanD.PickQty;//招标数量;改为后台传值 M_TaskOfferCEntity_al.SuppName = ugr.Cells["SUPPNAME"].Value.ToString();//供应商代码 //M_TaskOfferCEntity_al.TaskId = mat_PurPlanD.TaskId;//任务单Id ;改为后台传值 M_TaskOfferCEntity_al.TaxRateName = "13%";//税率 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 null; } 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 null; } M_TaskOfferCEntity_al.BidWinWithTaxPrice = Math.Round(ResWithTaxPrice1, 2);//定标含税单价 M_TaskOfferCEntity_al.BidWinWithoutTaxPrice = Math.Round(ResWithTaxPrice1 / 1.13, 2);//定标不含税单价 M_TaskOfferCEntity_al.ResWithTaxPrice = M_TaskOfferCEntity_al.BidWinWithTaxPrice; M_TaskOfferCEntity_al.ResWithoutTaxPrice = M_TaskOfferCEntity_al.BidWinWithoutTaxPrice; M_TaskOfferCEntity_al.ResQty = M_TaskOfferCEntity_al.BidWinQty; //-----------------------------------------------供应商中标 //for (int i = 0; i < ultraGrid3.Rows.Count; i++) //{ //if (ultraGrid3.Rows[i].Cells["SUPPCODE"].Value.ToString() == ugr.Cells["SUPPCODE"].Value.ToString()) //{ //ultraGrid3.Rows[i].Cells["isbid"].Value = "1"; //break; //} //} //} //else //{ //M_TaskOfferCEntity_al.IsBid = "0"; //} M_TaskOfferCEntity_al.ResDeliverDate = System.DateTime.Now;//报价日期 M_TaskOfferCEntity_al.CreateName = UserInfo.GetUserName(); M_TaskOfferCEntity_al.CreateUserid = UserInfo.GetUserID(); M_TaskOfferCEntity_al.UpdateName = UserInfo.GetUserName(); M_TaskOfferCEntity_al.UpdateUserid = UserInfo.GetUserID(); return M_TaskOfferCEntity_al; } /// /// 移除供应商 /// /// /// private void ultraGrid3_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { dataTable3.Rows.RemoveAt(ultraGrid3.ActiveRow.Index); BindTaskCSupps(); //MessageUtil.ShowTips("删除成功"); } /// /// 删除评标人员 /// /// /// private void ultraGrid4_ClickCellButton(object sender, CellEventArgs e) { dataTable9.Rows.RemoveAt(e.Cell.Row.Index); MessageUtil.ShowTips("删除成功"); } /// /// 选中激活行 /// /// /// private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { } /// /// 非空验证 /// private bool CtrValidation() { foreach (Control ctr in ultraGroupBox5.Controls) { if (string.IsNullOrEmpty(ctr.Text)) { foreach (Control ctr_lb in ultraGroupBox5.Controls) { if (ctr_lb is Label && ctr_lb.Name.Contains(ctr.Name)) { MessageUtil.ShowTips(ctr_lb.Text + "不能为空"); return false; } } } } //验证每个物料都要选相应的供应商 foreach (UltraGridRow ugr in ultraGrid2.Rows) { if (!ugr.HasChild()) { //if (MessageUtil.ShowYesNoAndQuestion("物料【" + ugr.Cells["ITEMCODE"].Value.ToString() + "】没有添加供应商,确定要生成任务单?").Equals(DialogResult.No)) //{ MessageUtil.ShowTips("物料【" + ugr.Cells["ITEMNAME"].Value.ToString() + "】没有添加供应商,不能生成任务单"); return false; //} } } return true; } private void ultraGroupBox5_Click(object sender, EventArgs e) { } /// /// 绑定下拉列表的数据 /// /// /// private void getUltcmbBindData() { //接收方式 DataTable dt = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1101" }, this.ob); removeNotValiflagData(dt); getUltcmbBindValueList(dt, cmb_RECEIVE_TYPE); //运输条件 DataTable dt1 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1105" }, this.ob); removeNotValiflagData(dt1); getUltcmbBindValueList(dt1, cmb_DELIVERY_CONDITION); //运输方式 DataTable dt2 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1102" }, this.ob); removeNotValiflagData(dt2); getUltcmbBindValueList(dt2, ultcmb_ELIVERY_TYPE); //付款方式 DataTable dt3 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1104" }, this.ob); removeNotValiflagData(dt3); getUltcmbBindValueList(dt3, cmb_PAYMENT_CODE); ultraGrid2.DisplayLayout.Bands[0].Columns["PAYMENTCODE"].EditorComponent = cmb_PAYMENT_CODE; //包装方式 DataTable dt4 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1107" }, this.ob); removeNotValiflagData(dt4); getUltcmbBindValueList(dt4, cmb_PACKAGE_TYPE); ultraGrid2.DisplayLayout.Bands[0].Columns["PACKAGETYPE"].EditorComponent = cmb_PACKAGE_TYPE; //招标流程 DataTable dt5 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1228" }, this.ob); removeNotValiflagData(dt5); getUltcmbBindValueList(dt5, ultcmb_FLOW_TYPE); Q_dtFLOW_TYPE = dt5; //价格政策 BalanceBasepriceM pm = new BalanceBasepriceM(); DataTable dt6 = this.execute("com.hnshituo.pur.balance.service.BalanceBasepriceMService", "doQureyBasePriceM", new object[] { pm,0,0 }); comm.setUltraComboEditorBind(txt_BALANCE_BASEPRICE_M, dt6, "NAME", "ID"); //ultraGrid2.DisplayLayout.Bands[0].Columns["BALANCEBASEPRICEM"].EditorComponent = txt_BALANCE_BASEPRICE_M; txt_BALANCE_BASEPRICE_M.DropDownStyle = DropDownStyle.DropDownList; ultraGrid2.DisplayLayout.Bands[0].Columns["BALANCEBASEPRICEM"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; cmb_DELIVERY_CONDITION.Value = Qstr[0];//运输条件 ultcmb_ELIVERY_TYPE.Value = Qstr[1];//运输方式 cmb_RECEIVE_TYPE.Value = Qstr[2];//接收方式 } /// /// 移除无效数据 /// /// private void removeNotValiflagData(DataTable dt) { for (int i = 0; i < dt.Rows.Count; ) { if (dt.Rows[i]["VALIDFLAG"].ToString() == "0") { dt.Rows.RemoveAt(i); } else { i++; } } } /// /// 绑定所有的下拉列表的数据 /// private void getUltcmbBindValueList(DataTable dt, UltraComboEditor ultcmb) { for (int i = 0; i < dt.Rows.Count; i++) { ValueListItem vlItem = new ValueListItem(dt.Rows[i]["BASECODE"].ToString().Trim(), dt.Rows[i]["BASENAME"].ToString().Trim()); ultcmb.Items.Add(vlItem); } } /// /// 修改生成任务单数量限制 /// /// /// private void ultraGrid2_CellChange(object sender, CellEventArgs e) { object o = e.Cell.Value; UltraGridRow ugr = e.Cell.Row; if (e.Cell.Column.Key == "PICKQTY") { ultraGrid2.UpdateData(); double bOldPickQty = 0; double.TryParse(e.Cell.Row.Cells["PickQty"].Value.ToString(), out bOldPickQty);//输入的任务单数量 ultraGrid2.UpdateData(); double bPickQty = 0; double.TryParse(e.Cell.Row.Cells["PickQty"].Value.ToString(), out bPickQty);//输入的任务单数量 double bTaskQty = 0; double.TryParse(e.Cell.Row.Cells["TaskQty"].Value.ToString(), out bTaskQty);//已生成任务单数量 double bQty = 0; double.TryParse(e.Cell.Row.Cells["Qty"].Value.ToString(), out bQty);//采购数量 double breleaseqty1 = double.Parse(e.Cell.Row.Cells["releaseqty1"].Value.ToString());//非预采脱单 double breleaseqty3 = double.Parse(e.Cell.Row.Cells["releaseqty3"].Value.ToString());//挂单 if (bPickQty + bTaskQty + breleaseqty3 - breleaseqty1 > bQty) { MessageUtil.ShowTips("“已生成任务单”+“本次任务单数量”+“挂单”-“非预采脱单”数量不能>“采购计划数量”,请重新填写!"); e.Cell.Row.Cells["PickQty"].Value = o; } //if (bPickQty > bQty - bTaskQty) //{ // MessageUtil.ShowTips("填写的生成任务单数量不能>" + (bQty - bTaskQty) + "【采购数量(" + bQty + ")-已生成任务单数量(" + bTaskQty + ")】"); // e.Cell.Row.Cells["PickQty"].Value = o; //} } if (e.Cell.Column.Key == "BALANCEBASEPRICEM") { ultraGrid2.UpdateData(); BalanceBasepriceC pc = new BalanceBasepriceC(); pc.StandId = e.Cell.Value.ToString(); pc.GradeLevel = "中型废钢"; pc.Validflag = "1"; DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceBasepriceCService", "doQureyBasePriceC", new object[] { pc }); //for (int i = 0; i < dataTable8.Rows.Count; i++) //{ if (dt.Rows.Count < 1) { //dataTable8.Rows[i]["bidwinwithtaxprice"] = 0; foreach(UltraGridRow ugr1 in ugr.ChildBands[0].Rows) { ugr1.Cells["bidwinwithtaxprice"].Value = 0; } } else { //dataTable8.Rows[i]["bidwinwithtaxprice"] = dt.Rows[0]["PRICEVAL"].ToString(); //ugr.Cells["bidwinwithtaxprice"].Value = dt.Rows[0]["PRICEVAL"].ToString(); foreach (UltraGridRow ugr1 in ugr.ChildBands[0].Rows) { ugr1.Cells["bidwinwithtaxprice"].Value = dt.Rows[0]["PRICEVAL"].ToString(); } } //} if (dt.Rows.Count < 1) { MessageUtil.ShowTips("未找到价格政策【" + e.Cell.Text + "】的中型废钢价格"); return; } } } /// /// 初始化加载窗体 /// /// /// private void frm_PurTaskM_Load(object sender, EventArgs e) { //加载当前科室的评标人员 //PurTaskEvaUsersEntity TaskEvaUsersEntity = new PurTaskEvaUsersEntity(); //TaskEvaUsersEntity.EvaOrgId = this.UserInfo.GetDeptid(); //TaskEvaUsersEntity.Validflag = "1"; //DataTable dt = this.execute("com.hnshituo.pur.purplan.service.ConfEvaUserService", "find", new object[] { TaskEvaUsersEntity, 0, 0 }); //GridHelper.CopyDataToDatatable(ref dt, ref dataTable9, true); string strTaskName = "TPCO-GY" + QstrREQ_ORG_NAME; strTaskName = this.execute("com.hnshituo.pur.utils.service.UtilsService", "getCodeId_yymm", new object[] { "PUR_TASK_M", "TASK_NAME", strTaskName, "3" }); //strTaskName = this.execute("com.hnshituo.pur.utils.service.UtilsService", "getOddNumber", new object[] { "PUR_TASK_M", "TASK_ID", strTaskName, "3" }); txt_TASK_NAME1.Text = strTaskName+"-"; //评标人员角色 DataTable dt1 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1224" }, this.ob); dt1.DefaultView.RowFilter = "Validflag='1'"; dt1 = dt1.DefaultView.ToTable(); cmb_EVA_ROLE_NAME.DataSource = dt1; cmb_EVA_ROLE_NAME.DisplayMember = "BASENAME"; cmb_EVA_ROLE_NAME.ValueMember = "BASECODE"; jy_type.SelectedIndex = 0; //隐藏询价信息 ultraGrid2.DisplayLayout.Bands[1].Columns["bidwinwithtaxprice"].Hidden = true; ultraGrid2.DisplayLayout.Bands[1].Columns["bidwinqty"].Hidden = true; ultraGrid2.DisplayLayout.Bands[0].Columns["BALANCEBASEPRICEM"].Hidden = true; //ultraGrid2.DisplayLayout.Bands[1].Columns["isbid"].Hidden = true; //jy_negDate.Width = ultraPanel21.Width; //ultraTextEditor2.Width = ultraPanel21.Width; //ultraTextEditor4.Width = ultraPanel21.Width; //this.Width = 1250;// ultraExpandableGroupBox1.Width + ultraGroupBox6.Width + 50; //this.ultraTextEditor2.Width = ultraTextEditor2.Width - 200; //this.ultraTextEditor2.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; //this.ultraTextEditor3.Width = ultraGroupBox6.Width - 200; //this.ultraTextEditor4.Width = ultraGroupBox6.Width - 200; //this.ultraTextEditor5.Width = ultraGroupBox6.Width - 200; //this.ultraTextEditor6.Width = ultraGroupBox6.Width - 200; ultraGrid2.DisplayLayout.Bands[0].Columns["askdeliverdate"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date; } /// /// 添加评标人员 /// /// /// private void ultraButton1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txt_EVA_ORG_ID.Text)) { MessageUtil.ShowTips("请选择人员"); return; } if (string.IsNullOrEmpty(cmb_EVA_ROLE_NAME.Text)) { MessageUtil.ShowTips("请选择角色"); return; } if (dataTable9.Rows.Contains(txt_EVA_USERID.Text)) { MessageUtil.ShowTips("已经存在同一个人员,不要重复添加"); return; } else { DataRow dr = dataTable9.NewRow(); dr["EVAORGID"] = txt_EVA_ORG_ID.Text; dr["EVAORGNAME"] = txt_EVA_ORG_NAME.Text; dr["EVAUSERID"] = txt_EVA_USERID.Text; dr["EVAUSERNAME"] = txt_EVA_USERNAME.Text; dr["EVAROLEID"] = cmb_EVA_ROLE_NAME.Value; dr["EVAROLENAME"] = cmb_EVA_ROLE_NAME.Text; dataTable9.Rows.Add(dr); MessageUtil.ShowTips("添加成功!"); //清空控件 txt_EVA_ORG_ID.Text = null; txt_EVA_ORG_NAME.Text = null; txt_EVA_USERID.Text = null; txt_EVA_USERNAME.Text = null; cmb_EVA_ROLE_NAME.Value = null; } ultraGrid4.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); } /// /// 选择评标人员 /// /// /// private void txt_EVA_USERNAME_EditorButtonClick(object sender, EditorButtonEventArgs e) { SetectManByDept frm = new SetectManByDept(this.ob, this.UserInfo.GetDeptid()); frm.ShowDialog(); txt_EVA_ORG_ID.Text = frm.StrDeptId; txt_EVA_ORG_NAME.Text = frm.StrDeptName; txt_EVA_USERID.Text = frm.StrUserID; txt_EVA_USERNAME.Text = frm.StrUserName; } /// /// 鼠标移入显示评标详细信息 /// /// /// private void ultraLabel1_MouseEnter(object sender, EventArgs e) { UltraToolTipInfo utti = new UltraToolTipInfo(ultraTextEditor1.Text, ToolTipImage.Info, "招标流程说明:", DefaultableBoolean.True); ultraToolTipManager1.SetUltraToolTip(ultraLabel1, utti); ultraToolTipManager1.AutoPopDelay = 10000; } /// /// 添加评标人员分组 /// /// /// private void btnSelEvaGroup_Click(object sender, EventArgs e) { frmPopSelEvaGroup frm = new frmPopSelEvaGroup(this.ob); frm.ShowDialog(); if (frm.dtEvaGroup != null) { DataTable dt = frm.dtEvaGroup; //移除目标表中没有的列 for (int i = 0; i < dt.Columns.Count; ) { if (!dataTable9.Columns.Contains(dt.Columns[i].ColumnName)) { dt.Columns.RemoveAt(i); } else { i++; } } //添加评标人员 foreach (DataRow dr in dt.Rows) { if (!dataTable9.Rows.Contains(dr["EVAUSERID"])) { dataTable9.Rows.Add(dr.ItemArray); } } } ultraGrid4.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); } /// /// 判断数据库中是否存在相同记录 /// /// /// /// true存在 public int isExsitRow(string strJavaPackName, object o) { DataTable dt = this.execute(strJavaPackName, "find", new object[] { o, 0, 0 }); if (dt != null && dt.Rows.Count > 0)//存在相同的行 { return dt.Rows.Count; } return 0; } /// /// 批量修改支付方式 /// /// /// private void cmb_PAYMENT_CODE_ValueChanged(object sender, EventArgs e) { foreach (UltraGridRow ugr in ultraGrid2.Rows) { ugr.Cells["PAYMENTCODE"].Value = cmb_PAYMENT_CODE.Value; } } /// /// 批量修改包装方式 /// /// /// private void cmb_PACKAGE_TYPE_ValueChanged(object sender, EventArgs e) { foreach (UltraGridRow ugr in ultraGrid2.Rows) { ugr.Cells["PACKAGETYPE"].Value = cmb_PACKAGE_TYPE.Value; } } /// /// 招标流程 /// /// /// private void cmb_DELIVERY_CONDITION_ValueChanged(object sender, EventArgs e) { } private void frm_PurTaskM_Click(object sender, EventArgs e) { } /// /// 选择价格政策 /// /// /// private void txt_BALANCE_BASEPRICE_M_ValueChanged(object sender, EventArgs e) { getBALANCE_BASEPRICE(); } /// /// 根据选择的价格政策,填充供应商价格 /// private void getBALANCE_BASEPRICE() { if (txt_BALANCE_BASEPRICE_M.Value != null && ultcmb_FLOW_TYPE.Value != null && ultcmb_FLOW_TYPE.Value.ToString() == "122802") { BalanceBasepriceC pc = new BalanceBasepriceC(); pc.StandId = txt_BALANCE_BASEPRICE_M.Value.ToString(); pc.GradeLevel = "中型废钢"; pc.Validflag = "1"; DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceBasepriceCService", "doQureyBasePriceC", new object[] { pc }); //for (int i = 0; i < dataTable8.Rows.Count; i++) //{ if (dt.Rows.Count < 1) { //dataTable8.Rows[i]["bidwinwithtaxprice"] = 0; ultraGrid2.ActiveRow.Cells["bidwinwithtaxprice"].Value = 0; } else { //dataTable8.Rows[i]["bidwinwithtaxprice"] = dt.Rows[0]["PRICEVAL"].ToString(); ultraGrid2.ActiveRow.Cells["bidwinwithtaxprice"].Value = dt.Rows[0]["PRICEVAL"].ToString(); } //} if (dt.Rows.Count < 1) { MessageUtil.ShowTips("未找到价格政策【" + txt_BALANCE_BASEPRICE_M.Text + "】的中型废钢价格"); return; } } } private void txt_BALANCE_BASEPRICE_M_SelectionChanged(object sender, EventArgs e) { } /// /// 批量修改交期 /// /// /// private void ultraDateTimeEditor1_ValueChanged(object sender, EventArgs e) { foreach (DataRow dr in dataTable5.Rows) { dr["AskDeliverDate"] = ultraDateTimeEditor1.Value; } } /// /// 选择功能性招标方案 /// /// /// private void txt_FUNCTION_VERSION_NO_EditorButtonClick(object sender, EditorButtonEventArgs e) { frmPop_BID_FUNCTION frm = new frmPop_BID_FUNCTION(this.ob); frm.ShowDialog(); string strName = frm.strSelName; if (string.IsNullOrEmpty(strName)) { return; } txt_FUNCTION_VERSION_NO.Text = strName; strFUNCTION_VERSION_NO = frm.strSelId; } } }