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