FrmPop_setPriceOne.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Core.Mes.Client.Comm.Control;
  10. using Core.Mes.Client.Comm.Tool;
  11. using CoreFS.CA06;using Pur.Entity;using Pur.Entity;
  12. using Pur.Entity.pur_planEntity;
  13. using System.Collections;
  14. using Pur.configure;
  15. using Pur.Entity.configureEntity;
  16. using Pur.Pop_upWindow;
  17. using Infragistics.Win.UltraWinGrid;
  18. using com.hnshituo.pur.vo;
  19. namespace Pur.Pop_upWindow
  20. {
  21. public partial class FrmPop_setPriceOne : FrmPmsBase
  22. {
  23. string Q_strTASKID = "";//修改数据库字段PUR_TASK_OFFER_C,PUR_TASK_C
  24. DataTable Q_dt_getExamineMana = null;
  25. DataTable Q_dtMinPrice = null;//保存显示最低价格供应商
  26. public FrmPop_setPriceOne(OpeBase ob, string strTASKID)
  27. {
  28. InitializeComponent();
  29. this.ob = ob;
  30. Q_strTASKID = strTASKID;
  31. InitializeComponent();
  32. }
  33. /// <summary>
  34. /// 查询任务主表
  35. /// </summary>
  36. public void GetTaskM()
  37. {
  38. PurTaskMEntity M_PurTaskM = this.execute<PurTaskMEntity>("com.hnshituo.pur.purplan.service.TaskMService", "findById", new object[] { Q_strTASKID });
  39. if (M_PurTaskM != null)
  40. {
  41. lb_taskId.Text = M_PurTaskM.TaskId;
  42. lb_taskName.Text = M_PurTaskM.TaskName;
  43. if (M_PurTaskM.OfferTimeStart != null & M_PurTaskM.OfferTimeStart.Value != null)
  44. lb_OFFER_TIME_START.Text = M_PurTaskM.OfferTimeStart.Value.ToShortDateString();
  45. if (M_PurTaskM.OfferTimeEnd != null && M_PurTaskM.OfferTimeEnd.Value != null)
  46. lb_OFFER_TIME_END.Text = M_PurTaskM.OfferTimeEnd.Value.ToShortDateString();
  47. }
  48. }
  49. /// <summary>
  50. /// 查询任务从表
  51. /// </summary>
  52. public void GetTaskC()
  53. {
  54. if (Q_strTASKID != "")
  55. {
  56. // 查询任务从表
  57. PurTaskCEntity M_PurTaskC = new PurTaskCEntity();
  58. M_PurTaskC.TaskId = Q_strTASKID;
  59. M_PurTaskC.Validflag = "1";
  60. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskCService", "find", new object[] { M_PurTaskC, 0, 0 });
  61. GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//绑定物料分类表
  62. }
  63. }
  64. /// <summary>
  65. /// 查询供应商
  66. /// </summary>
  67. public void GetSupp()
  68. {
  69. if (Q_strTASKID != "")
  70. {
  71. // 查询供应商
  72. PurTaskSuppsEntity M_PurTaskSupps = new PurTaskSuppsEntity();
  73. M_PurTaskSupps.TaskId = Q_strTASKID;
  74. M_PurTaskSupps.Validflag = "1";
  75. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskSuppsService", "find", new object[] { M_PurTaskSupps, 0, 0 });
  76. GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true);//绑定物料分类表
  77. }
  78. }
  79. /// <summary>
  80. /// 供应商报价
  81. /// </summary>
  82. private void getExamineMana()
  83. {
  84. if (Q_strTASKID == "")
  85. {
  86. MessageUtil.ShowTips("未找到任务单号");
  87. return;
  88. }
  89. DataTable dtItem = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskCService", "getTaskItem", new object[] { Q_strTASKID });
  90. DataTable dtSupps = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskOfferCService", "getSuppRes", new object[] { Q_strTASKID });
  91. //DataColumn[] dcs = {dtSupps.Columns["ITEMCODE"]};
  92. //dtSupps.PrimaryKey = dcs;
  93. GridHelper.CopyDataToDatatable(ref dtItem, ref dataTable1, true);//绑定物料分类表
  94. GridHelper.CopyDataToDatatable(ref dtSupps, ref dataTable4, true);//绑定物料分类表
  95. //设置显示表的表结构
  96. DataTable dt = new DataTable();
  97. DataColumn dc = new System.Data.DataColumn();
  98. dc.ColumnName = "ITEM";
  99. dc.Caption = "物料信息";
  100. dt.Columns.Add(dc);
  101. for (int k = 0; k < dataTable3.Rows.Count; k++)
  102. {
  103. DataColumn dc_Supp = new System.Data.DataColumn();
  104. //dc_Supp.ColumnName = "SUPP" + (k + 1);
  105. //dc_Supp.Caption = "供应商信息" + (k + 1);
  106. dc_Supp.ColumnName = dataTable3.Rows[k]["SUPPCODE"].ToString();
  107. dc_Supp.Caption = dataTable3.Rows[k]["SUPPNAME"].ToString();
  108. dt.Columns.Add(dc_Supp);
  109. }
  110. //给设计表赋值
  111. for (int i = 0; i < dataTable1.Rows.Count; i++)//循环物料表
  112. {
  113. for (int j = 0; j < dataTable1.Columns.Count; j++)//循环每行物料表的列(只需6列)
  114. {
  115. DataRow dr = dt.NewRow();
  116. dr[0] = dataTable1.Rows[i][j].ToString();//物料报价信息
  117. dt.Rows.Add(dr);
  118. }
  119. //循环供应商
  120. for (int k = 0; k < dataTable3.Rows.Count; k++)//几个供应商
  121. {
  122. DataRow[] drSupps = dtSupps.Select("SUPPCODE='" + dataTable3.Rows[k]["SUPPCODE"].ToString() + "'");//寻找当前供应商的对应物料报价信息
  123. DataRow[] drSupps_dt4 = dataTable4.Select("SUPPCODE='" + dataTable3.Rows[k]["SUPPCODE"].ToString() + "'");//寻找当前供应商的对应物料报价信息
  124. for (int m = 0; m < drSupps_dt4.Length; m++)//供应商与物料报价关系为多对多,可能有相同的供应商报价,但对应的物料是不同
  125. {
  126. if (drSupps[m]["ITEMCODE"].ToString() == dtItem.Rows[i]["ITEMCODE"].ToString())//判断供应商与物料是否有报价权
  127. {
  128. for (int n = 1; n < dataTable4.Columns.Count; n++)
  129. dt.Rows[i * 6 + n][k + 1] = drSupps_dt4[m][n].ToString();//供应商报价信息
  130. break;
  131. }
  132. }
  133. }
  134. }
  135. //给表添加报价参数
  136. //DataColumn dc_Item_Args = new System.Data.DataColumn();
  137. //dc_Item_Args.ColumnName = "dc_Item_Args";
  138. //dc_Item_Args.Caption = "参数信息";
  139. //dt.Columns.Add(dc_Item_Args);
  140. //dc_Item_Args.SetOrdinal(0);
  141. for (int i = 0; i < dataTable1.Rows.Count; i++)
  142. {
  143. string[] str_Item_Args = { "", "单 价", "数 量", "金 额", "交货日期", "备 注" };
  144. for (int j = 0; j < 6; j++)
  145. {
  146. if ((i + 1) % 6 != 0)//物料名下一个循环设置
  147. {
  148. dt.Rows[i * 6 + j][0] = str_Item_Args[j] + "(" + dt.Rows[i * 6 + j][0].ToString() + ")";
  149. }
  150. }
  151. ultraGrid1.DataSource = dt;
  152. }
  153. //给物料名称行设置背景颜色
  154. for (int i = 0; i < dataTable1.Rows.Count; i++)
  155. {
  156. for (int j = 0; j < 6; j++)//设置物料信息字段背景颜色
  157. {
  158. if (j != 0)
  159. {
  160. ultraGrid1.Rows[i * 6 + j].Cells[0].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  161. ultraGrid1.Rows[i * 6 + j].Cells[0].Appearance.BackColor = Color.YellowGreen;
  162. ultraGrid1.Rows[i * 6 + j].Cells[0].Appearance.ForeColor = Color.Black;
  163. }
  164. }
  165. //设置每行第一列背景颜色
  166. dt.Rows[i * 6][0] = (i + 1) + "﹑物料名:" + dt.Rows[i * 6][0].ToString() + " 物料编码:" + dtItem.Rows[i]["ITEMCODE"].ToString();//设置物料显示
  167. if (dt.Columns.Count > 1)//显示物料描述信息
  168. {
  169. dt.Rows[i * 6][1] = "物料描述:" + dtItem.Rows[i]["ITEMDESC"].ToString();
  170. }
  171. //物料名所在列颜色
  172. ultraGrid1.Rows[i * 6].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  173. ultraGrid1.Rows[i * 6].Appearance.ForeColor = Color.White;
  174. ultraGrid1.Rows[i * 6].Appearance.BorderColor3DBase = Color.CornflowerBlue;
  175. ultraGrid1.Rows[i * 6].Appearance.BackColor = Color.DodgerBlue;
  176. }
  177. Q_dt_getExamineMana = dt;
  178. }
  179. /// <summary>
  180. /// 中标
  181. /// </summary>
  182. /// <param name="sender"></param>
  183. /// <param name="e"></param>
  184. private void ultraButton1_Click(object sender, EventArgs e)
  185. {
  186. // 查询任务从表
  187. ultraGrid1.UpdateData();
  188. PurTaskCEntity M_PurTaskC = new PurTaskCEntity();
  189. M_PurTaskC.TaskId = Q_strTASKID;
  190. M_PurTaskC.Validflag = "1";
  191. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskCService", "find", new object[] { M_PurTaskC, 0, 0 });
  192. ArrayList al = new ArrayList();
  193. for (int i = 0; i < dt.Rows.Count; i++)
  194. {
  195. for (int j = 0; j < Q_dtMinPrice.Rows.Count; j++)
  196. {
  197. PurTaskCEntity M_PurTaskC_al = new PurTaskCEntity();
  198. M_PurTaskC_al.TaskId = Q_strTASKID;
  199. M_PurTaskC_al.Validflag = "1";
  200. string str = Q_dtMinPrice.Rows[j]["ITEM"].ToString();
  201. if (dt.Rows[i]["ITEMCODE"].ToString() == str.Substring(str.LastIndexOf(":") + 1) && str.IndexOf("备") != 0)
  202. {
  203. M_PurTaskC_al.TaskLineId = dt.Rows[i]["TASKLINEID"].ToString();
  204. if (Q_dtMinPrice.Rows[j][1] != null && Q_dtMinPrice.Rows[j][1].ToString() != "")//中标价
  205. {
  206. double db = 0;
  207. double.TryParse(Q_dtMinPrice.Rows[j + 1][1].ToString(), out db);
  208. M_PurTaskC_al.BidPrice = db;
  209. }
  210. else
  211. {
  212. M_PurTaskC_al.BidPrice = null;
  213. }
  214. if (Q_dtMinPrice.Rows[j + 2][1] != null)
  215. {
  216. M_PurTaskC_al.BidPriceReason = Q_dtMinPrice.Rows[j + 2][1].ToString();//中标价理由
  217. }
  218. al.Add(M_PurTaskC_al);
  219. break;
  220. }
  221. }
  222. }
  223. if (al.Count > 0)
  224. {
  225. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.purplan.service.TaskCService", "UpdMinPrice", new object[] { al });
  226. if (crt.Resultcode != 0)
  227. {
  228. MessageUtil.ShowTips("提交失败 " + crt.Resultmsg);
  229. return;
  230. }
  231. MessageUtil.ShowTips("提交成功");
  232. this.Close();
  233. }
  234. }
  235. private void ultraButton2_Click(object sender, EventArgs e)
  236. {
  237. this.Close();
  238. }
  239. }
  240. }