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;
}
}
}
}
}
}