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;
namespace Pur.Pop_upWindow
{
public partial class FrmPop_setPriceOne : FrmPmsBase
{
string Q_strTASKID = "";//修改数据库字段PUR_TASK_OFFER_C,PUR_TASK_C
DataTable Q_dt_getExamineMana = null;
DataTable Q_dtMinPrice = null;//保存显示最低价格供应商
public FrmPop_setPriceOne(OpeBase ob, string strTASKID)
{
InitializeComponent();
this.ob = ob;
Q_strTASKID = strTASKID;
InitializeComponent();
}
///
/// 查询任务主表
///
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 });
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()
{
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;
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++)//几个供应商
{
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())//判断供应商与物料是否有报价权
{
for (int n = 1; n < dataTable4.Columns.Count; n++)
dt.Rows[i * 6 + n][k + 1] = drSupps_dt4[m][n].ToString();//供应商报价信息
break;
}
}
}
}
//给表添加报价参数
//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)//物料名下一个循环设置
{
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;
}
}
//设置每行第一列背景颜色
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]["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;
}
Q_dt_getExamineMana = dt;
}
///
/// 中标
///
///
///
private void ultraButton1_Click(object sender, EventArgs e)
{
// 查询任务从表
ultraGrid1.UpdateData();
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 });
ArrayList al = new ArrayList();
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < Q_dtMinPrice.Rows.Count; j++)
{
PurTaskCEntity M_PurTaskC_al = new PurTaskCEntity();
M_PurTaskC_al.TaskId = Q_strTASKID;
M_PurTaskC_al.Validflag = "1";
string str = Q_dtMinPrice.Rows[j]["ITEM"].ToString();
if (dt.Rows[i]["ITEMCODE"].ToString() == str.Substring(str.LastIndexOf(":") + 1) && str.IndexOf("备") != 0)
{
M_PurTaskC_al.TaskLineId = dt.Rows[i]["TASKLINEID"].ToString();
if (Q_dtMinPrice.Rows[j][1] != null && Q_dtMinPrice.Rows[j][1].ToString() != "")//中标价
{
double db = 0;
double.TryParse(Q_dtMinPrice.Rows[j + 1][1].ToString(), out db);
M_PurTaskC_al.BidPrice = db;
}
else
{
M_PurTaskC_al.BidPrice = null;
}
if (Q_dtMinPrice.Rows[j + 2][1] != null)
{
M_PurTaskC_al.BidPriceReason = Q_dtMinPrice.Rows[j + 2][1].ToString();//中标价理由
}
al.Add(M_PurTaskC_al);
break;
}
}
}
if (al.Count > 0)
{
CoreResult crt = this.execute("com.hnshituo.pur.purplan.service.TaskCService", "UpdMinPrice", new object[] { al });
if (crt.Resultcode != 0)
{
MessageUtil.ShowTips("提交失败 " + crt.Resultmsg);
return;
}
MessageUtil.ShowTips("提交成功");
this.Close();
}
}
private void ultraButton2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}