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; 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 Infragistics.Win.UltraWinEditors; namespace Pur.Pop_upWindow { public partial class FrmPop_setPriceAll : FrmPmsBase { string Q_strTASKID = "";//修改数据库字段PUR_TASK_OFFER_C,PUR_TASK_C DataTable Q_dt_getExamineMana = null; DataTable Q_dt_dtItem = null;//物料表,用来查找确定报价时的物料唯一值ITEM_UNIQUE DataTable Q_dt_TaskOfferC = null; string QsetEvaluationORsetPriceAll = ""; DateTime QdTime = new DateTime();//更新交货日期,防止首次输入交货日期不准确 //DataTable Q_dt_dtItem = null; //DataTable Q_dtMinPrice = null;//保存显示最低价格供应商 public FrmPop_setPriceAll(OpeBase ob, string strTASKID, string setEvaluationORsetPriceAll) { InitializeComponent(); QsetEvaluationORsetPriceAll = setEvaluationORsetPriceAll; this.ob = ob; Q_strTASKID = strTASKID; GetTaskM(); GetTaskC(); GetSupp(); if (setEvaluationORsetPriceAll == "setPriceAll")//定价操作,不需要添加是否中标功能 { getExamineMana_back_20160223(setEvaluationORsetPriceAll); this.Text = "定价定量"; } else { this.Text = "定标"; getExamineMana(setEvaluationORsetPriceAll); } ultraGrid1.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.None;//去掉grid序号显示 GridHelper.ClearUlGridFilter(ultraGrid1); } /// /// 按钮控件 /// /// /// private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key.ToString()) { case "Query": { } break; case "conFirmation": { if (QsetEvaluationORsetPriceAll == "setPriceAll")//定价操作 { setPriceAll_back_20160223(); } else { setPriceAll(); } } break; case "ESC": { this.Close(); } break; } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); //ultraGrid1.DisplayLayout.Override.RowSizingArea = RowSizingArea.RowSelectorsOnly; //ultraGrid1.DisplayLayout.Override.RowSizingArea = RowSizingArea.RowBordersOnly; for (int i = 0; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++) { ultraGrid1.DisplayLayout.Bands[0].Columns[i].SortIndicator = SortIndicator.Disabled;//是否允许排序 } //ultraGrid1.DisplayLayout.Bands[0].Columns["JUDGE_STOVE_NO"].SortIndicator = SortIndicator.Disabled;//是否允许排序 ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//是否允许过滤 } /// /// 查询任务主表 /// public void GetTaskM() { PurTaskMEntity M_PurTaskM = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "findById", new object[] { Q_strTASKID }); if (M_PurTaskM != null) { lb_taskId.Text = M_PurTaskM.TaskId; lb_taskName.Text = M_PurTaskM.TaskName; if (M_PurTaskM.OfferTimeStart != null & M_PurTaskM.OfferTimeStart.Value != null) lb_OFFER_TIME_START.Text = M_PurTaskM.OfferTimeStart.Value.ToShortDateString(); if (M_PurTaskM.OfferTimeEnd != null && M_PurTaskM.OfferTimeEnd.Value != null) lb_OFFER_TIME_END.Text = M_PurTaskM.OfferTimeEnd.Value.ToShortDateString(); } } /// /// 查询任务从表 /// 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 }); if (dt.Rows.Count > 0) { dt.DefaultView.Sort = "ITEMUNIQUE"; dt = dt.DefaultView.ToTable(); } 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);//绑定物料分类表 } } /// /// 供应商报价 /// private void getExamineMana_back_20160223(string setEvaluationORsetPriceAll) { if (Q_strTASKID == "") { MessageUtil.ShowTips("未找到任务单号"); return; } DataTable dtItem = this.execute("com.hnshituo.pur.purplan.service.TaskCService", "getTaskItem", new object[] { Q_strTASKID }); DataTable dtSupps = this.execute("com.hnshituo.pur.purplan.service.TaskOfferCService", "getSuppRes", new object[] { Q_strTASKID }); //DataColumn[] dcs = {dtSupps.Columns["ITEMCODE"]}; //dtSupps.PrimaryKey = dcs; if (dtItem.Rows.Count > 0) { dtItem.DefaultView.Sort="ITEMUNIQUE"; dtItem = dtItem.DefaultView.ToTable(); } Q_dt_TaskOfferC = dtSupps; Q_dt_dtItem = dtItem; GridHelper.CopyDataToDatatable(ref dtItem, ref dataTable1, true);//绑定物料分类表 GridHelper.CopyDataToDatatable(ref dtSupps, ref dataTable4, true);//绑定物料分类表 //设置显示表的表结构 DataTable dt = new DataTable(); DataColumn dc = new System.Data.DataColumn(); dc.ColumnName = "ITEM"; dc.Caption = "物料信息"; dt.Columns.Add(dc); for (int k = 0; k < dataTable3.Rows.Count; k++) { DataColumn dc_Supp = new System.Data.DataColumn(); //dc_Supp.ColumnName = "SUPP" + (k + 1); //dc_Supp.Caption = "供应商信息" + (k + 1); dc_Supp.ColumnName = dataTable3.Rows[k]["SUPPCODE"].ToString(); dc_Supp.Caption = dataTable3.Rows[k]["SUPPNAME"].ToString(); dt.Columns.Add(dc_Supp); } //给设计表赋值 for (int i = 0; i < dataTable1.Rows.Count; i++)//循环物料表 { for (int j = 0; j < dataTable1.Columns.Count; j++)//循环每行物料表的列(只需6列) { DataRow dr = dt.NewRow(); dr[0] = dataTable1.Rows[i][j].ToString();//物料报价信息 dt.Rows.Add(dr); } //循环供应商 for (int k = 0; k < dataTable3.Rows.Count; k++)//几个供应商 { if (dtSupps.Rows.Count > 0) { DataRow[] drSupps = dtSupps.Select("SUPPCODE='" + dataTable3.Rows[k]["SUPPCODE"].ToString() + "'");//寻找当前供应商的对应物料报价信息 DataRow[] drSupps_dt4 = dataTable4.Select("SUPPCODE='" + dataTable3.Rows[k]["SUPPCODE"].ToString() + "'");//寻找当前供应商的对应物料报价信息 for (int m = 0; m < drSupps_dt4.Length; m++)//供应商与物料报价关系为多对多,可能有相同的供应商报价,但对应的物料是不同 { //if (drSupps[m]["ITEMCODE"].ToString() == dtItem.Rows[i]["ITEMCODE"].ToString() && drSupps[m]["ITEMATTRID"].ToString().Trim() == dtItem.Rows[i]["ITEMATTRID"].ToString().Trim())//判断供应商与物料是否有报价权 if (drSupps[m]["ITEMUNIQUE"].ToString() == dtItem.Rows[i]["ITEMUNIQUE"].ToString()) { for (int n = 1; n < dataTable4.Columns.Count; n++) dt.Rows[i * 6 + n][k + 1] = drSupps_dt4[m][n].ToString();//供应商报价信息 } } } } } //给表添加报价参数 //DataColumn dc_Item_Args = new System.Data.DataColumn(); //dc_Item_Args.ColumnName = "dc_Item_Args"; //dc_Item_Args.Caption = "参数信息"; //dt.Columns.Add(dc_Item_Args); //dc_Item_Args.SetOrdinal(0); for (int i = 0; i < dataTable1.Rows.Count; i++) { string[] str_Item_Args = { "", "单 价", "数 量", "金 额", "交货日期", "备 注" }; for (int j = 0; j < 6; j++) { if ((i + 1) % 6 != 0)//物料名下一个循环设置 { if (j == 4)//交货日期格式为短日期(yyyy-mm-dd) { IFormatProvider p= new System.Globalization.CultureInfo("zh-CN", true); dt.Rows[i * 6 + j][0] = str_Item_Args[j] + "(" + DateTime.ParseExact(dt.Rows[i * 6 + j][0].ToString(), "yyyy-MM-dd hh:mm:ss", p).ToString("yyyy-MM-dd") + ")"; } else { dt.Rows[i * 6 + j][0] = str_Item_Args[j] + "(" + dt.Rows[i * 6 + j][0].ToString() + ")"; } } } } ultraGrid1.DataSource = dt; //给物料名称行设置背景颜色 for (int i = 0; i < dataTable1.Rows.Count; i++) { for (int j = 0; j < 6; j++)//设置物料信息字段背景颜色 { if (j != 0) { ultraGrid1.Rows[i * 6 + j].Cells[0].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[i * 6 + j].Cells[0].Appearance.BackColor = Color.YellowGreen; ultraGrid1.Rows[i * 6 + j].Cells[0].Appearance.ForeColor = Color.Black; ultraGrid1.Rows[i * 6 + j].Cells[0].Activation = Activation.ActivateOnly;//设置不可编辑 } } //设置每行第一列背景颜色 dt.Rows[i * 6][0] = (i + 1) + "﹑物料名:" + dt.Rows[i * 6][0].ToString() + " 物料编码:" + dtItem.Rows[i]["ITEMCODE"].ToString();//设置物料显示 if (dt.Columns.Count > 1)//显示物料描述信息 { dt.Rows[i * 6][1] = "属性:【" + dtItem.Rows[i]["ITEMATTR"].ToString() + "】 属性编码:" + dtItem.Rows[i]["ITEMATTRID"].ToString(); } if (dt.Columns.Count > 2)//显示物料描述信息 { //dt.Rows[i * 6][2] = "物料描述:" + dtItem.Rows[i]["ITEMDESC"].ToString(); } //物料名所在行颜色 ultraGrid1.Rows[i * 6].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[i * 6].Appearance.ForeColor = Color.White; ultraGrid1.Rows[i * 6].Appearance.BorderColor3DBase = Color.CornflowerBlue; ultraGrid1.Rows[i * 6].Appearance.BackColor = Color.DodgerBlue; ultraGrid1.Rows[i * 6].Activation = Activation.ActivateOnly;//设置不可编辑 ultraGrid1.Rows[i * 6 + 3].Activation = Activation.ActivateOnly;//设置金额不可编辑 } Q_dt_getExamineMana = dt; //设置填写日期单元格类型为日期类型 for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells[0].Value.ToString().IndexOf("交货日期") == 0) { for (int j = 1; j < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; j++) { ultraGrid1.Rows[i].Cells[j].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date; //ultraGrid1.Rows[i].Cells[j].Value = new DateTime(); } } } ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Height = 32;//设置高度 if (setEvaluationORsetPriceAll == "setPriceAll")//定价操作,不需要添加是否中标功能 { return; } //填写是否中标和中标理由 for (int i = ultraGrid1.Rows.Count - 2; i < ultraGrid1.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { for (int k = 0; k < dtSupps.Rows.Count; k++) { if (dt.Columns[j].ColumnName == dtSupps.Rows[k]["SUPPCODE"].ToString()) { if (i == ultraGrid1.Rows.Count - 2) { if (dtSupps.Rows[k]["ISBID"].ToString() == "1") { ultraGrid1.Rows[i].Cells[j].Value = true; } else { ultraGrid1.Rows[i].Cells[j].Value = false; } } else { ultraGrid1.Rows[i].Cells[j].Value = dtSupps.Rows[k]["BIDREASON"].ToString(); } break; } } } } } /// /// 供应商报价 /// private void getExamineMana(string setEvaluationORsetPriceAll) { if (Q_strTASKID == "") { MessageUtil.ShowTips("未找到任务单号"); return; } DataTable dtItem = this.execute("com.hnshituo.pur.purplan.service.TaskCService", "getTaskItem", new object[] { Q_strTASKID }); DataTable dtSupps = this.execute("com.hnshituo.pur.purplan.service.TaskOfferCService", "getSuppRes", new object[] { Q_strTASKID }); //DataColumn[] dcs = {dtSupps.Columns["ITEMCODE"]}; //dtSupps.PrimaryKey = dcs; if (dtItem.Rows.Count > 0) { dtItem.DefaultView.Sort = "ITEMUNIQUE"; dtItem = dtItem.DefaultView.ToTable(); } Q_dt_TaskOfferC = dtSupps; Q_dt_dtItem = dtItem; GridHelper.CopyDataToDatatable(ref dtItem, ref dataTable1, true);//绑定物料分类表 GridHelper.CopyDataToDatatable(ref dtSupps, ref dataTable4, true);//绑定物料分类表 //设置显示表的表结构 DataTable dt = new DataTable(); DataColumn dc = new System.Data.DataColumn(); dc.ColumnName = "ITEM"; dc.Caption = "物料信息"; dt.Columns.Add(dc); for (int k = 0; k < dataTable3.Rows.Count; k++) { DataColumn dc_Supp = new System.Data.DataColumn(); //dc_Supp.ColumnName = "SUPP" + (k + 1); //dc_Supp.Caption = "供应商信息" + (k + 1); dc_Supp.ColumnName = dataTable3.Rows[k]["SUPPCODE"].ToString(); dc_Supp.Caption = dataTable3.Rows[k]["SUPPNAME"].ToString(); dt.Columns.Add(dc_Supp); } //给设计表赋值 for (int i = 0; i < dataTable1.Rows.Count; i++)//循环物料表 { for (int j = 0; j < dataTable1.Columns.Count; j++)//循环每行物料表的列(只需6列) { DataRow dr = dt.NewRow(); dr[0] = dataTable1.Rows[i][j].ToString();//物料报价信息 dt.Rows.Add(dr); } // 给供应商添加两列,填写供应商是否中标,绑定grid ultraGrid1.DataSource = dt; AddGridRow(dt); //循环供应商 for (int k = 0; k < dataTable3.Rows.Count; k++)//几个供应商 { if (dtSupps.Rows.Count > 0) { DataRow[] drSupps = dtSupps.Select("SUPPCODE='" + dataTable3.Rows[k]["SUPPCODE"].ToString() + "'");//寻找当前供应商的对应物料报价信息 DataRow[] drSupps_dt4 = dataTable4.Select("SUPPCODE='" + dataTable3.Rows[k]["SUPPCODE"].ToString() + "'");//寻找当前供应商的对应物料报价信息 for (int m = 0; m < drSupps_dt4.Length; m++)//供应商与物料报价关系为多对多,可能有相同的供应商报价,但对应的物料是不同 { //if (drSupps[m]["ITEMCODE"].ToString() == dtItem.Rows[i]["ITEMCODE"].ToString() && drSupps[m]["ITEMATTRID"].ToString().Trim() == dtItem.Rows[i]["ITEMATTRID"].ToString().Trim())//判断供应商与物料是否有报价权 if (drSupps[m]["ITEMUNIQUE"].ToString() == dtItem.Rows[i]["ITEMUNIQUE"].ToString()) { for (int n = 1; n < dataTable4.Columns.Count; n++) { dt.Rows[i * 8 + n][k + 1] = drSupps_dt4[m][n].ToString();//供应商报价信息 } //是否中标和中标理由赋值 //dt.Rows[i * 8 + dataTable4.Columns.Count][k + 1] = drSupps[m][n].ToString();//供应商报价信息 if (drSupps[m]["ISBID"].ToString() == "1") { ultraGrid1.Rows[i * 8 + dataTable4.Columns.Count].Cells[k + 1].Value = true; } else { ultraGrid1.Rows[i * 8 + dataTable4.Columns.Count].Cells[k + 1].Value = false; } ultraGrid1.Rows[i * 8 + dataTable4.Columns.Count + 1].Cells[k + 1].Value = drSupps[m]["BIDREASON"].ToString(); } } } } } //给表添加报价参数 //DataColumn dc_Item_Args = new System.Data.DataColumn(); //dc_Item_Args.ColumnName = "dc_Item_Args"; //dc_Item_Args.Caption = "参数信息"; //dt.Columns.Add(dc_Item_Args); //dc_Item_Args.SetOrdinal(0); for (int i = 0; i < dataTable1.Rows.Count; i++) { string[] str_Item_Args = { "", "单 价", "数 量", "金 额", "交货日期", "备 注" }; for (int j = 0; j < 6; j++) { if ((i + 1) % 8 != 0)//物料名下一个循环设置 { if (j == 4)//交货日期格式为短日期(yyyy-mm-dd) { IFormatProvider p = new System.Globalization.CultureInfo("zh-CN", true); dt.Rows[i * 8 + j][0] = str_Item_Args[j] + "(" + DateTime.ParseExact(dt.Rows[i * 8 + j][0].ToString(), "yyyy-MM-dd hh:mm:ss", p).ToString("yyyy-MM-dd") + ")"; } else { dt.Rows[i * 8 + j][0] = str_Item_Args[j] + "(" + dt.Rows[i * 8 + j][0].ToString() + ")"; } } } } ultraGrid1.DataSource = dt; //给物料名称行设置背景颜色 for (int i = 0; i < dataTable1.Rows.Count; i++) { for (int j = 0; j < 6; j++)//设置物料信息字段背景颜色 { if (j != 0) { ultraGrid1.Rows[i * 8 + j].Cells[0].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[i * 8 + j].Cells[0].Appearance.BackColor = Color.YellowGreen; ultraGrid1.Rows[i * 8 + j].Cells[0].Appearance.ForeColor = Color.Black; ultraGrid1.Rows[i * 8 + j].Cells[0].Activation = Activation.ActivateOnly;//设置不可编辑 } } //设置每行第一列背景颜色 dt.Rows[i * 8][0] = (i + 1) + "﹑物料名:" + dt.Rows[i * 8][0].ToString() + " 物料编码:" + dtItem.Rows[i]["ITEMCODE"].ToString();//设置物料显示 if (dt.Columns.Count > 1)//显示物料描述信息 { dt.Rows[i * 8][1] = "属性:【" + dtItem.Rows[i]["ITEMATTR"].ToString() + "】 属性编码:" + dtItem.Rows[i]["ITEMATTRID"].ToString(); } if (dt.Columns.Count > 2)//显示物料描述信息 { //dt.Rows[i * 8][2] = "物料描述:" + dtItem.Rows[i]["ITEMDESC"].ToString(); } //物料名所在行颜色 ultraGrid1.Rows[i * 8].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[i * 8].Appearance.ForeColor = Color.White; ultraGrid1.Rows[i * 8].Appearance.BorderColor3DBase = Color.CornflowerBlue; ultraGrid1.Rows[i * 8].Appearance.BackColor = Color.DodgerBlue; ultraGrid1.Rows[i * 8].Activation = Activation.ActivateOnly;//设置不可编辑 ultraGrid1.Rows[i * 8+3].Activation = Activation.ActivateOnly;//设置金额不可编辑 } //设置填写日期单元格类型为日期类型 for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells[0].Value.ToString().IndexOf("交货日期") == 0) { for (int j = 1; j < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; j++) { //UltraDateTimeEditor udte=new UltraDateTimeEditor(); //udte.Visible = false; //this.Controls.Add(udte); //ultraGrid1.Rows[i].Cells[j].EditorComponent = udte; ultraGrid1.Rows[i].Cells[j].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date; //ultraGrid1.Rows[i].Cells[j].Value = new DateTime(); } } } Q_dt_getExamineMana = dt; DataRow dr1 = dt.NewRow(); dr1[0] = "是否全部中标"; dt.Rows.Add(dr1); ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[0].Activation = Activation.ActivateOnly;//设置不可编辑 for (int i = 1; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++)//设置最后一行的样式 { ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[i].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox; ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[i].Value = false;//设置初始值 ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Height = 32;//设置高度 } //填写是否中标和中标理由 //for (int i = ultraGrid1.Rows.Count - 2; i < ultraGrid1.Rows.Count; i++) //{ // for (int j = 0; j < dt.Columns.Count; j++) // { // for (int k = 0; k < dtSupps.Rows.Count; k++) // { // if (dt.Columns[j].ColumnName == dtSupps.Rows[k]["SUPPCODE"].ToString()) // { // if (i == ultraGrid1.Rows.Count - 2) // { // if (dtSupps.Rows[k]["ISBID"].ToString() == "1") // { // ultraGrid1.Rows[i].Cells[j].Value = true; // } // else // { // ultraGrid1.Rows[i].Cells[j].Value = false; // } // } // else // { // ultraGrid1.Rows[i].Cells[j].Value = dtSupps.Rows[k]["BIDREASON"].ToString(); // } // break; // } // } // } //} } /// /// 保存报价 /// private void setPriceAll_back_20160223() { // 查询任务从表 ultraGrid1.UpdateData(); ArrayList al = new ArrayList(); ArrayList al_supp = new ArrayList(); for (int i = 1; i < Q_dt_getExamineMana.Columns.Count; i++)//循环任务单供应商表 { for (int j = 0; j < dataTable2.Rows.Count; j++)//循环任务单从表(物料),如果没有供应商对此物料报价,则插入,如果有,则更新报价 { //string strItemcode = Q_dt_getExamineMana.Rows[j * 6]["ITEM"].ToString(); //strItemcode = strItemcode.Substring(strItemcode.LastIndexOf(":") + 1);//获取物编码 //string strItemAttrId = Q_dt_getExamineMana.Rows[j * 6][1].ToString(); //strItemAttrId = strItemAttrId.Substring(strItemAttrId.LastIndexOf(":") + 1);//获取物料属性ID PurTaskOfferCEntity M_TaskOfferCEntity_al = new PurTaskOfferCEntity(); M_TaskOfferCEntity_al.ItemCode = dataTable2.Rows[j]["ITEMCODE"].ToString(); M_TaskOfferCEntity_al.ItemAttrId = dataTable2.Rows[j]["ITEMATTRID"].ToString(); M_TaskOfferCEntity_al.ItemUnique = dataTable2.Rows[j]["ITEMUNIQUE"].ToString();//物料唯一值 M_TaskOfferCEntity_al.SuppCode = Q_dt_getExamineMana.Columns[i].ColumnName; M_TaskOfferCEntity_al.TaskId = Q_strTASKID; 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 (QsetEvaluationORsetPriceAll == "setEvaluation")//不是定标操作,不需要添加是否中标功能 { if (Boolean.Parse(Q_dt_getExamineMana.Rows[j * 8 + 6][i].ToString())) { M_TaskOfferCEntity_al.IsBid = "1"; } else { M_TaskOfferCEntity_al.IsBid = "0"; } M_TaskOfferCEntity_al.BidReason = Q_dt_getExamineMana.Rows[j * 8 + 7][i].ToString(); } double ResWithTaxPrice = 0; double.TryParse(Q_dt_getExamineMana.Rows[j * 6 + 1][i].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(Q_dt_getExamineMana.Rows[j * 6 + 2][i].ToString(), out ResQty); M_TaskOfferCEntity_al.ResQty = ResQty;//报价数量 double ResWithTaxAmt = 0; double.TryParse(Q_dt_getExamineMana.Rows[j * 6 + 3][i].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(Q_dt_getExamineMana.Rows[j * 6 + 4][i].ToString(), out ResDeliverDate); M_TaskOfferCEntity_al.ResDeliverDate = ResDeliverDate;//报价日期 M_TaskOfferCEntity_al.ResRemark = Q_dt_getExamineMana.Rows[j * 6 + 5][i].ToString();//报价备注 al.Add(M_TaskOfferCEntity_al); } if (QsetEvaluationORsetPriceAll == "setEvaluation")//不是定标操作,不需要添加是否中标功能,setEvaluation为定标操作 { //保存供应商是否中标和中标理由 PurTaskSuppsEntity TaskSuppsEntity = new PurTaskSuppsEntity(); //供应商ID for (int j = 0; j < dataTable3.Rows.Count; j++) { if (dataTable3.Rows[j]["SUPPCODE"].ToString() == Q_dt_getExamineMana.Columns[i].ColumnName) { TaskSuppsEntity.Id = dataTable3.Rows[j]["ID"].ToString(); } } if (Boolean.Parse(ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[i].Value.ToString())) { TaskSuppsEntity.IsBid = "1"; } else { TaskSuppsEntity.IsBid = "0"; } TaskSuppsEntity.BidReason = ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[i].Value.ToString(); TaskSuppsEntity.UpdateName = UserInfo.GetUserName(); TaskSuppsEntity.UpdateUserid = UserInfo.GetUserID(); al_supp.Add(TaskSuppsEntity); } } if (al.Count > 0) { CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "setPriceAll", new object[] { al, al_supp }); if (crt.Resultcode != 0) { MessageUtil.ShowTips("提交失败 " + crt.Resultmsg); return; } MessageUtil.ShowTips("提交成功"); this.Close(); } } private void setPriceAll() { // 查询任务从表 ultraGrid1.UpdateData(); ArrayList al = new ArrayList(); ArrayList al_supp = new ArrayList(); for (int i = 1; i < Q_dt_getExamineMana.Columns.Count; i++)//循环任务单供应商表 { for (int j = 0; j < dataTable2.Rows.Count; j++)//循环任务单从表(物料),如果没有供应商对此物料报价,则插入,如果有,则更新报价 { //string strItemcode = Q_dt_getExamineMana.Rows[j * 8]["ITEM"].ToString(); //strItemcode = strItemcode.Substring(strItemcode.LastIndexOf(":") + 1);//获取物编码 //string strItemAttrId = Q_dt_getExamineMana.Rows[j * 8][1].ToString(); //strItemAttrId = strItemAttrId.Substring(strItemAttrId.LastIndexOf(":") + 1);//获取物料属性ID PurTaskOfferCEntity M_TaskOfferCEntity_al = new PurTaskOfferCEntity(); M_TaskOfferCEntity_al.ItemCode = dataTable2.Rows[j]["ITEMCODE"].ToString(); M_TaskOfferCEntity_al.ItemAttrId = dataTable2.Rows[j]["ITEMATTRID"].ToString(); M_TaskOfferCEntity_al.ItemUnique = dataTable2.Rows[j]["ITEMUNIQUE"].ToString();//物料唯一值 M_TaskOfferCEntity_al.SuppCode = Q_dt_getExamineMana.Columns[i].ColumnName;//供应商代码 M_TaskOfferCEntity_al.TaskId = Q_strTASKID; 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 (QsetEvaluationORsetPriceAll == "setEvaluation")//不是定标操作,不需要添加是否中标功能 { if (Boolean.Parse(Q_dt_getExamineMana.Rows[j * 8 + 6][i].ToString())) { M_TaskOfferCEntity_al.IsBid = "1"; } else { M_TaskOfferCEntity_al.IsBid = "0"; } M_TaskOfferCEntity_al.BidReason = Q_dt_getExamineMana.Rows[j * 8 + 7][i].ToString(); } double ResWithTaxPrice = 0; double.TryParse(Q_dt_getExamineMana.Rows[j * 8 + 1][i].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(Q_dt_getExamineMana.Rows[j * 8 + 2][i].ToString(), out ResQty); M_TaskOfferCEntity_al.ResQty = ResQty;//报价数量 double ResWithTaxAmt = 0; double.TryParse(Q_dt_getExamineMana.Rows[j * 8 + 3][i].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(Q_dt_getExamineMana.Rows[j * 8 + 4][i].ToString(), out ResDeliverDate); M_TaskOfferCEntity_al.ResDeliverDate = ResDeliverDate;//报价日期 M_TaskOfferCEntity_al.ResRemark = Q_dt_getExamineMana.Rows[j * 8 + 5][i].ToString();//报价备注 al.Add(M_TaskOfferCEntity_al); } if (QsetEvaluationORsetPriceAll == "setEvaluation")//不是定标操作,不需要添加是否中标功能 { //保存供应商是否中标和中标理由 PurTaskSuppsEntity TaskSuppsEntity = new PurTaskSuppsEntity(); //供应商ID for (int j = 0; j < dataTable3.Rows.Count; j++) { if (dataTable3.Rows[j]["SUPPCODE"].ToString() == Q_dt_getExamineMana.Columns[i].ColumnName) { TaskSuppsEntity.Id = dataTable3.Rows[j]["ID"].ToString(); TaskSuppsEntity.IsBid = "0"; string strBidReason = ""; for (int k = 0; k < al.Count; k++) { if (dataTable3.Rows[j]["SUPPCODE"].ToString() == ((PurTaskOfferCEntity)al[k]).SuppCode) { if (((PurTaskOfferCEntity)al[k]).IsBid == "1") { TaskSuppsEntity.IsBid = "1"; strBidReason += ((PurTaskOfferCEntity)al[k]).BidReason;//ultraGrid1.Rows[j + 1].Cells[i].Value.ToString() + "\n"; } } } if (TaskSuppsEntity.IsBid == "1") { TaskSuppsEntity.BidReason = strBidReason; } TaskSuppsEntity.UpdateName = UserInfo.GetUserName(); TaskSuppsEntity.UpdateUserid = UserInfo.GetUserID(); al_supp.Add(TaskSuppsEntity); break; } } } } if (al.Count > 0) { CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "setPriceAll", new object[] { al, al_supp }); if (crt.Resultcode != 0) { MessageUtil.ShowTips("提交失败 " + crt.Resultmsg); return; } MessageUtil.ShowTips("提交成功"); this.Close(); } } /// /// 给供应商添加两列,填写供应商是否中标,绑定grid /// private void AddGridRow_back_20160223(DataTable dt) { ultraGrid1.UpdateData(); DataRow dr = dt.NewRow(); dr[0] = "是否全部中标"; dt.Rows.Add(dr); DataRow dr1 = dt.NewRow(); dr1[0] = "全部中标理由"; dt.Rows.Add(dr1); Q_dt_getExamineMana = dt; for (int i = 0; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++)//是否中标单元格设置为复选框,改变第一列颜色 { if (i > 0) { ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[i].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox; ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[i].Value = false;//设置初始值 ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[i].Column.CellMultiLine = Infragistics.Win.DefaultableBoolean.True;//设置中标理由单元格可换行 } else { ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[0].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[0].Appearance.BackColor = Color.YellowGreen; ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[0].Appearance.ForeColor = Color.Black; ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[0].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[0].Appearance.BackColor = Color.YellowGreen; ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[0].Appearance.ForeColor = Color.Black; } } //ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Height = ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Height * 2; //设置填写日期单元格类型为日期类型 for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells[0].Value.ToString().IndexOf("交货日期") == 0) { for (int j = 1; j < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; j++) { ultraGrid1.Rows[i].Cells[j].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date; } } } } private void AddGridRow(DataTable dt) { ultraGrid1.UpdateData(); DataRow dr = dt.NewRow(); dr[0] = "是否中标"; dt.Rows.Add(dr); DataRow dr1 = dt.NewRow(); dr1[0] = "中标理由"; dt.Rows.Add(dr1); Q_dt_getExamineMana = dt; for (int i = 0; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++)//是否中标单元格设置为复选框,改变第一列颜色 { if (i > 0) { ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[i].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox; ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[i].Value = false;//设置初始值 ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[i].Column.CellMultiLine = Infragistics.Win.DefaultableBoolean.True;//设置中标理由单元格可换行 } else { ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[0].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[0].Appearance.BackColor = Color.YellowGreen; ultraGrid1.Rows[ultraGrid1.Rows.Count - 2].Cells[0].Appearance.ForeColor = Color.Black; ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[0].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True; ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[0].Appearance.BackColor = Color.YellowGreen; ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Cells[0].Appearance.ForeColor = Color.Black; } } //ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Height = ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Height * 2; } /// /// 修改单元格值改变事件 /// /// /// private void ultraGrid1_CellChange(object sender, CellEventArgs e) { string str= e.Cell.Value.ToString().Trim(); if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf("交货日期") != 0)//如果日期为空,则设置初始值 { ultraGrid1.UpdateData(); } if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf('单') == 0 || e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf('数') == 0 || e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf("是否中标") == 0) { double ResQty = 0;//数量 double.TryParse(e.Cell.Value.ToString(), out ResQty); if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf('数') == 0 || e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf("是否中标") == 0)//判断输入的供应商报价数量之和不能>物料数量 { //if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf('数') == 0) //{ // double numAll = 0;//同一物料报价数量之和 // for (int i = 1; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++) // { // if (QsetEvaluationORsetPriceAll == "setPriceAll" || bool.Parse(ultraGrid1.Rows[e.Cell.Row.Index + 4].Cells[i].Value.ToString())) // { // double num = 0;//数量 // double.TryParse(ultraGrid1.Rows[e.Cell.Row.Index].Cells[i].Value.ToString(), out num); // numAll += num; // } // } // double matResQty = 0;//物料报价数量 // string strMatResQty = e.Cell.Row.Cells["ITEM"].Value.ToString(); // strMatResQty = strMatResQty.Substring(strMatResQty.IndexOf('(') + 1, strMatResQty.LastIndexOf(')') - strMatResQty.IndexOf('(') - 1); // double.TryParse(strMatResQty, out matResQty); // if (QsetEvaluationORsetPriceAll != "setPriceAll") // { // if (matResQty < numAll && ) // { // MessageUtil.ShowTips("输入的中标供应商报价数量之和不能>物料数量"); // e.Cell.Value = str; // return; // } // } //} //else if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf("是否中标") == 0) //{ // double numAll = 0;//同一物料报价数量之和 // for (int i = 1; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++) // { // if (bool.Parse(ultraGrid1.Rows[e.Cell.Row.Index].Cells[i].Value.ToString())) // { // double num = 0;//数量 // double.TryParse(ultraGrid1.Rows[e.Cell.Row.Index-4].Cells[i].Value.ToString(), out num); // numAll += num; // } // } // double matResQty = 0;//物料报价数量 // string strMatResQty = ultraGrid1.Rows[e.Cell.Row.Index-4].Cells["ITEM"].Value.ToString(); // strMatResQty = strMatResQty.Substring(strMatResQty.IndexOf('(') + 1, strMatResQty.LastIndexOf(')') - strMatResQty.IndexOf('(') - 1); // double.TryParse(strMatResQty, out matResQty); // if (matResQty < numAll) // { // if (bool.Parse(e.Cell.Value.ToString())) // { // MessageUtil.ShowTips("中标供应商报价数量之和不能>物料数量"); // e.Cell.Value = bool.Parse(str); // } // } // return; //} } double ResWithTaxPrice = 0;//单价 if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf('数') == 0) { double.TryParse(ultraGrid1.Rows[e.Cell.Row.Index - 1].Cells[e.Cell.Column.Key].Value.ToString(), out ResWithTaxPrice); ultraGrid1.Rows[e.Cell.Row.Index + 1].Cells[e.Cell.Column.Key].Value = ResWithTaxPrice * ResQty;//计算金额 } else if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf('单') == 0) { double.TryParse(ultraGrid1.Rows[e.Cell.Row.Index + 1].Cells[e.Cell.Column.Key].Value.ToString(), out ResWithTaxPrice); ultraGrid1.Rows[e.Cell.Row.Index + 2].Cells[e.Cell.Column.Key].Value = ResWithTaxPrice * ResQty;//计算金额 } //for (int i = e.Cell.Row.Index; i < ultraGrid1.Rows.Count; i++) //{ // if (ultraGrid1.Rows[i].Cells["ITEM"].Value.ToString().IndexOf('数') == 0) // { // double.TryParse(ultraGrid1.Rows[i].Cells[e.Cell.Column.Key].Value.ToString(), out ResWithTaxPrice);//单价 // } // if (ultraGrid1.Rows[i].Cells["ITEM"].Value.ToString().IndexOf('金') == 0) // { // ultraGrid1.Rows[i].Cells[e.Cell.Column.Key].Value = ResWithTaxPrice * ResQty; // break; // } //} } else if (e.Cell.Row.Cells["ITEM"].Value.ToString().IndexOf("是否全部中标") == 0) //全选中标按钮 { foreach (UltraGridRow ugd in ultraGrid1.Rows) { if (ugd.Cells[e.Cell.Column.Key].Style.Equals(Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox)) { ugd.Cells[e.Cell.Column.Key].Value = e.Cell.Value; } } } } } }