FrmPopExamine.cs 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136
  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;
  12. using Pur.Entity;
  13. using Pur.Entity.pur_planEntity;
  14. using System.Collections;
  15. using Pur.configure;
  16. using Pur.Entity.configureEntity;
  17. using Pur.Pop_upWindow;
  18. using Infragistics.Win.UltraWinGrid;
  19. using com.hnshituo.pur.vo;
  20. using Infragistics.Win;
  21. using Pur.Entity.require_planEntiy;
  22. using Pur.require_plan;
  23. namespace Pur.pur_plan
  24. {
  25. public partial class FrmPopExamine : FrmPmsBase
  26. {
  27. string Q_strTASKID = "";
  28. ArrayList alrem = null;//需求主表
  29. ArrayList alReqD = null;//需求行表
  30. ArrayList alReqR = null;//需求关系表
  31. ArrayList alrpr = null;//需求接收表
  32. Color QtabColor;
  33. #region 初始化事件
  34. /// <summary>
  35. /// 构造函数
  36. /// </summary>
  37. /// <param name="ob"></param>
  38. /// <param name="strTASKID"></param>
  39. public FrmPopExamine(OpeBase ob, string strTASKID)
  40. {
  41. InitializeComponent();
  42. this.ob = ob;
  43. Q_strTASKID = strTASKID;
  44. GetTaskM();//查询任务单主表
  45. //GetTaskC();//查询任务单下的物料信息
  46. GetSupp();//查询任务单下的供应商
  47. getExamineMana();//获取供应商对物料报价
  48. getExamineManaByMat();
  49. }
  50. /// <summary>
  51. /// 初始化加载窗体事件
  52. /// </summary>
  53. /// <param name="sender"></param>
  54. /// <param name="e"></param>
  55. private void FrmPopExamine_Load(object sender, EventArgs e)
  56. {
  57. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0]);//设置不可编辑
  58. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[1]);//不可以手动输入报价信息
  59. //GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[1], "bidwinqty", "isbid", "bidwinwithtaxprice", "RESWITHTAXPRICE");//可以手动输入报价信息
  60. GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[1]);//设置不可编辑
  61. GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[0]);//设置不可编辑
  62. //GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[0], "bidwinqty", "isbid", "bidwinwithtaxprice");//可以手动输入报价信息 bidprice
  63. //GridHelper.SetExcludeColumnsActive(ultraGrid8.DisplayLayout.Bands[0]);//不可手动输入报价信息
  64. GridHelper.SetExcludeColumnsActive(ultraGrid8.DisplayLayout.Bands[0], "bidwinqty", "isbid", "bidwinwithtaxprice", "RESWITHTAXPRICE");//可手动输入报价信息
  65. if (ultraGrid8.Rows.Count > 0)
  66. {
  67. ultraGrid8.Rows[0].Height = ultraGrid8.Rows[0].Height * 2;
  68. }
  69. //GridHelper.SetExcludeColumnsActive(ultraGrid9.DisplayLayout.Bands[0]);//不可手动输入报价信息
  70. GridHelper.SetExcludeColumnsActive(ultraGrid9.DisplayLayout.Bands[0], "bidwinqty", "isbid", "bidwinwithtaxprice", "RESWITHTAXPRICE");//可手动输入报价信息
  71. if (ultraGrid9.Rows.Count > 0)
  72. {
  73. ultraGrid9.Rows[0].Height = ultraGrid9.Rows[0].Height * 2;
  74. }
  75. Ck_showAll.Checked = false;
  76. //splitContainer3.SplitterDistance = splitContainer3.Width / 2;
  77. //splitContainer4.SplitterDistance = splitContainer4.Width * 1/3;
  78. //bsplitContainer3Width = splitContainer3.SplitterDistance;//设置初始容器左右距离
  79. //bsplitContainer4Width = splitContainer4.SplitterDistance;
  80. }
  81. /// <summary>
  82. /// 按钮控件
  83. /// </summary>
  84. /// <param name="sender"></param>
  85. /// <param name="e"></param>
  86. private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  87. {
  88. switch (e.Tool.Key.ToString())
  89. {
  90. case "RefreshRes":
  91. {
  92. GetTaskM();//查询任务单主表
  93. getExamineMana();
  94. getExamineManaByMat();
  95. }
  96. break;
  97. case "conFirmation":
  98. {
  99. setPriceAll();
  100. }
  101. break;
  102. case "OpChatFun":
  103. {
  104. OpChatFun();
  105. }
  106. break;
  107. case "ESC":
  108. {
  109. this.Close();
  110. }
  111. break;
  112. }
  113. }
  114. #endregion
  115. #region 获取任务单基本信息(物料、供应商、报价信息)
  116. /// <summary>
  117. /// 查询任务主表
  118. /// </summary>
  119. public void GetTaskM()
  120. {
  121. //PurTaskMEntity M_PurTaskM = this.execute<PurTaskMEntity>("com.hnshituo.pur.purplan.service.TaskMService", "findById", new object[] { Q_strTASKID });
  122. PurTaskMEntity M_PurTaskM = new PurTaskMEntity();
  123. M_PurTaskM.TaskId = Q_strTASKID;
  124. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskMService", "getTaskM", new object[] { M_PurTaskM });
  125. if (dt != null && dt.Rows.Count > 0)
  126. {
  127. lb_taskId.Text = dt.Rows[0]["TaskId"].ToString();//M_PurTaskM.TaskId;
  128. lb_taskName.Text = dt.Rows[0]["taskName"].ToString();// M_PurTaskM.TaskName;
  129. lb_Status.Text = dt.Rows[0]["Status"].ToString();//
  130. //switch (M_PurTaskM.Status)
  131. //{
  132. // case "1":
  133. // lb_Status.Text = "未竞标";
  134. // break;
  135. // case "2":
  136. // lb_Status.Text = "报价中";
  137. // break;
  138. // case "3":
  139. // lb_Status.Text = "待开标";
  140. // break;
  141. // case "4":
  142. // lb_Status.Text = "评标中";
  143. // break;
  144. // case "5":
  145. // lb_Status.Text = "待供应商确认";
  146. // break;
  147. // case "6":
  148. // lb_Status.Text = "待供应部确认";
  149. // break;
  150. // case "7":
  151. // lb_Status.Text = "初拟中标";
  152. // break;
  153. // case "8":
  154. // lb_Status.Text = "已关闭";
  155. // break;
  156. // case "9":
  157. // lb_Status.Text = "已生成采购纪要";
  158. // break;
  159. // case "20":
  160. // lb_Status.Text = "审批通过";
  161. // break;
  162. // case "21":
  163. // lb_Status.Text = "审批不通过";
  164. // break;
  165. // case "19":
  166. // lb_Status.Text = "审批中";
  167. // break;
  168. // case "18":
  169. // lb_Status.Text = "待提报";
  170. // break;
  171. // case "17":
  172. // lb_Status.Text = "已废标";
  173. // break;
  174. //}
  175. }
  176. }
  177. /// <summary>
  178. /// 查询物料
  179. /// </summary>
  180. public void GetTaskC()
  181. {
  182. if (Q_strTASKID != "")
  183. {
  184. // 查询任务从表
  185. PurTaskCEntity M_PurTaskC = new PurTaskCEntity();
  186. M_PurTaskC.TaskId = Q_strTASKID;
  187. M_PurTaskC.Validflag = "1";
  188. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskCService", "find", new object[] { M_PurTaskC, 0, 0 });
  189. //将空属性的值置为""
  190. for (int i = 0; i < dt.Rows.Count; i++)
  191. {
  192. if (dt.Rows[i]["ITEMATTRID"] == null || dt.Rows[i]["ITEMATTRID"].ToString() == "")
  193. {
  194. dt.Rows[i]["ITEMATTRID"] = " ";
  195. }
  196. }
  197. GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//绑定物料分类表
  198. }
  199. }
  200. /// <summary>
  201. /// 查询供应商
  202. /// </summary>
  203. public void GetSupp()
  204. {
  205. if (Q_strTASKID != "")
  206. {
  207. // 查询供应商
  208. PurTaskSuppsEntity M_PurTaskSupps = new PurTaskSuppsEntity();
  209. M_PurTaskSupps.TaskId = Q_strTASKID;
  210. M_PurTaskSupps.Validflag = "1";
  211. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskSuppsService", "find", new object[] { M_PurTaskSupps, 0, 0 });
  212. GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true);//绑定供应商(查看供应商个数)
  213. GridHelper.CopyDataToDatatable(ref dt, ref dataTable9, true);//绑定供应商(按供应商招标)
  214. }
  215. }
  216. /// <summary>
  217. /// 查询物料和供应商报价(按供应商招标)
  218. /// </summary>
  219. private void getExamineMana()
  220. {
  221. DataTable dtItem = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskCService", "getTaskItem", new object[] { Q_strTASKID });//任务单对应的物料信息
  222. PurTaskOfferCEntity offerC = new PurTaskOfferCEntity();
  223. offerC.TaskId = Q_strTASKID;
  224. if(!Ck_showAll.Checked)
  225. {
  226. offerC.Validflag = "1";
  227. }
  228. DataTable dtSuppsRes = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskOfferCService", "getSuppRes1", new object[] { offerC });//物料对应供应商报价信息
  229. dataTable4.Rows.Clear();
  230. GridHelper.CopyDataToDatatable(ref dtItem, ref dataTable1, true);//绑定物料分类表
  231. //计算上一次采购金额
  232. //comm.delChildsNotExisPar(ref dtSuppsRes,dtItem);
  233. GridHelper.CopyDataToDatatable(ref dtSuppsRes, ref dataTable4, true);//绑定供应商报价表
  234. ultraGrid1.UpdateData();
  235. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  236. {
  237. foreach (UltraGridRow ugr in ultraGrid1.Rows[i].ChildBands[0].Rows)
  238. {
  239. //将定标单价等于报价单价
  240. if (ugr.Cells["bidwinwithtaxprice"].Value.ToString() == "")
  241. {
  242. ugr.Cells["bidwinwithtaxprice"].Value = ugr.Cells["reswithtaxprice"].Value;
  243. }
  244. if (ugr.Cells["bidwinqty"].Value.ToString() == "")
  245. {
  246. ugr.Cells["bidwinqty"].Value = ugr.Cells["resqty"].Value;
  247. }
  248. //ExceptionOp(ultraGrid1.Rows[i]);
  249. //初拟中标后只显示中标的供应商
  250. if (lb_Status.Text == "初拟中标")
  251. {
  252. if (Boolean.Parse(ugr.Cells["isbid"].Value.ToString()))
  253. {
  254. ugr.Hidden = false;
  255. }
  256. else
  257. {
  258. ugr.Hidden = true;
  259. }
  260. }
  261. else
  262. {
  263. ugr.Cells["RESDELIVERDATE"].Value = System.DateTime.Now;
  264. }
  265. }
  266. }
  267. //comm.RefreshAndAutoSizeExceptColumns(ultraGrid1,"table2");
  268. comm.RefreshAndAutoSizeExceptColumns(ultraGrid1);
  269. comm.RefreshAndAutoSizeExceptColumns(ultraGrid8);
  270. ultraGrid1.UpdateData();
  271. }
  272. /// <summary>
  273. /// 查询物料和供应商报价(按物料招标)
  274. /// </summary>
  275. private void getExamineManaByMat()
  276. {
  277. PurTaskOfferCEntity offerC = new PurTaskOfferCEntity();
  278. offerC.TaskId = Q_strTASKID;
  279. if (!Ck_showAll.Checked)
  280. {
  281. offerC.Validflag = "1";
  282. }
  283. DataTable dtSuppsRes = this.execute<DataTable>("com.hnshituo.pur.purplan.service.TaskOfferCService", "getSuppResJionMat", new object[] { offerC });//物料对应供应商报价信息
  284. GridHelper.CopyDataToDatatable(ref dtSuppsRes, ref dataTable5, true);//绑定供应商报价表
  285. ultraGrid1.UpdateData();
  286. for (int i = 0; i < ultraGrid5.Rows.Count; i++)
  287. {
  288. ultraGrid5.Rows[i].Cells["btnCheckAll"].Value = "全中标";
  289. //报价数量
  290. int resNum = 0;
  291. double resAtm = 0;
  292. foreach (UltraGridRow ugr in ultraGrid5.Rows[i].ChildBands[0].Rows)
  293. {
  294. //将定标单价等于报价单价
  295. if (ugr.Cells["bidwinwithtaxprice"].Value.ToString() == "")
  296. {
  297. ugr.Cells["bidwinwithtaxprice"].Value = ugr.Cells["reswithtaxprice"].Value;
  298. }
  299. if (ugr.Cells["bidwinqty"].Value.ToString() == "")
  300. {
  301. ugr.Cells["bidwinqty"].Value = ugr.Cells["resqty"].Value;
  302. }
  303. if (ugr.Cells["RESWITHTAXPRICE"].Value.ToString() != "" && ugr.Cells["RESWITHTAXPRICE"].Value.ToString() != "0")
  304. {resNum++;}
  305. if (ugr.Cells["RESWITHTAXAMT"].Value.ToString().Trim() != "")
  306. { resAtm += double.Parse(ugr.Cells["RESWITHTAXAMT"].Value.ToString().Trim()); }
  307. //设置交期时间格式
  308. ugr.Cells["ASKDELIVERDATE"].Column.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date;
  309. ugr.Cells["ASKDELIVERDATE"].Column.MaskInput = "yyyy/mm/dd";
  310. //设置交期时间格式
  311. ugr.Cells["RESDELIVERDATE"].Column.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date;
  312. ugr.Cells["RESDELIVERDATE"].Column.MaskInput = "yyyy/mm/dd";
  313. //ExceptionOp(ultraGrid1.Rows[i]);
  314. //初拟中标后只显示中标的供应商
  315. if (lb_Status.Text == "初拟中标")
  316. {
  317. if (Boolean.Parse(ugr.Cells["isbid"].Value.ToString()))
  318. {
  319. ugr.Hidden = false;
  320. }
  321. else
  322. {
  323. ugr.Hidden = true;
  324. }
  325. }
  326. else
  327. {
  328. ugr.Cells["RESDELIVERDATE"].Value = System.DateTime.Now;
  329. }
  330. }
  331. //显示供应商报价总数
  332. ultraGrid5.Rows[i].Cells["ResQty"].Value = resNum.ToString() + "/" + ultraGrid5.Rows[i].ChildBands[0].Rows.Count.ToString();
  333. ultraGrid5.Rows[i].Cells["ResAtm"].Value = resAtm;
  334. }
  335. //comm.RefreshAndAutoSizeExceptColumns(ultraGrid5, "table2");
  336. comm.RefreshAndAutoSizeExceptColumns(ultraGrid5);
  337. comm.RefreshAndAutoSizeExceptColumns(ultraGrid9);
  338. ultraGrid5.UpdateData();
  339. }
  340. #endregion
  341. #region 定标操作
  342. /// <summary>
  343. /// 定标操作
  344. /// </summary>
  345. private void setPriceAll()
  346. {
  347. string strTaskStatu=getTaskStatusNum();
  348. if (strTaskStatu == "7")
  349. {
  350. MessageUtil.ShowTips("任务单已初拟中标,不能重复初拟中标");
  351. return;
  352. }
  353. if (strTaskStatu != "6" && strTaskStatu != "4")
  354. {
  355. MessageUtil.ShowTips("任务单状态不为“待初拟中标”或“评标中”,不能初拟中标");
  356. return;
  357. }
  358. ultraGrid1.UpdateData();
  359. ArrayList al_TaskOfferC = new ArrayList();
  360. ArrayList al_ppd = new ArrayList();//采购计划补充预采需求
  361. ArrayList al_supp = new ArrayList();
  362. ArrayList alTaskC = new ArrayList();//任务单行
  363. //初始化供应商中标功能
  364. for (int i = 0; i < dataTable3.Rows.Count; i++)
  365. {
  366. PurTaskSuppsEntity TaskSuppsEntity = new PurTaskSuppsEntity();//供应商是否中标
  367. TaskSuppsEntity.Id = dataTable3.Rows[i]["ID"].ToString();
  368. TaskSuppsEntity.IsBid = "0";
  369. TaskSuppsEntity.UpdateName = UserInfo.GetUserName();
  370. TaskSuppsEntity.UpdateUserid = UserInfo.GetUserID();
  371. al_supp.Add(TaskSuppsEntity);
  372. }
  373. string strTips = "";//超标采购提示信息
  374. alrem = new ArrayList();//需求主表
  375. alReqD = new ArrayList();//需求行表
  376. alReqR = new ArrayList();//需求关系表
  377. alrpr = new ArrayList();//需求接收表
  378. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  379. {
  380. double b_SumResQty = 0;//同一物料下的定标数量合计
  381. for (int j = 0; j < ultraGrid1.Rows[i].ChildBands[0].Rows.Count; j++)
  382. {
  383. UltraGridRow ugr = ultraGrid1.Rows[i].ChildBands[0].Rows[j];
  384. if (!Boolean.Parse(ugr.Cells["isbid"].Value.ToString()))
  385. { continue; }
  386. if (ugr.Hidden == true)
  387. {
  388. continue;
  389. }
  390. PurTaskOfferCEntity M_TaskOfferCEntity_al = new PurTaskOfferCEntity();
  391. PurTaskCEntity mat_PurPlanD = this.execute<PurTaskCEntity>("com.hnshituo.pur.purplan.service.TaskCService", "findById", new object[] { ugr.Cells["tasklineid"].Value.ToString() });
  392. if (mat_PurPlanD != null)
  393. {
  394. M_TaskOfferCEntity_al = EntityHelper.CopyEntity<PurTaskOfferCEntity>(mat_PurPlanD);
  395. }
  396. M_TaskOfferCEntity_al.ItemCode = ugr.Cells["ITEMCODE"].Value.ToString();//物料编码
  397. M_TaskOfferCEntity_al.ItemAttr = ugr.Cells["ITEMATTR"].Value.ToString();//物料属性
  398. M_TaskOfferCEntity_al.ItemUom = ugr.Cells["ItemUom"].Value.ToString();//物料单位
  399. M_TaskOfferCEntity_al.ItemUnique = ugr.Cells["ITEMUNIQUE"].Value.ToString();//物料唯一值
  400. M_TaskOfferCEntity_al.SuppCode = ugr.Cells["SUPPCODE"].Value.ToString();//供应商代码
  401. double bpickqty = 0;
  402. double.TryParse(ugr.Cells["qty"].Value.ToString(), out bpickqty);
  403. M_TaskOfferCEntity_al.Qty = bpickqty;//招标数量
  404. M_TaskOfferCEntity_al.SuppName = ugr.Cells["SUPPNAME"].Value.ToString();//供应商代码
  405. M_TaskOfferCEntity_al.TaskId = ugr.Cells["TASKID"].Value.ToString();//任务单Id
  406. M_TaskOfferCEntity_al.TaxRateName = ugr.Cells["TaxRateName"].Value.ToString();//税率
  407. M_TaskOfferCEntity_al.Validflag = "1";
  408. if (Boolean.Parse(ugr.Cells["isbid"].Value.ToString()))
  409. {
  410. M_TaskOfferCEntity_al.IsBid = "1";//中标
  411. double ResQty1 = 0;
  412. double.TryParse(ugr.Cells["bidwinqty"].Value.ToString(), out ResQty1);
  413. M_TaskOfferCEntity_al.BidWinQty = ResQty1;//定标数量
  414. b_SumResQty += ResQty1;//累加同一物料下的定标数量
  415. if (ResQty1 <= 0)
  416. {
  417. MessageUtil.ShowTips(M_TaskOfferCEntity_al.SuppName + "对物料【" + M_TaskOfferCEntity_al.ItemName + "】的定标数量必须>0");
  418. return;
  419. }
  420. double ResWithTaxPrice1 = 0;
  421. double.TryParse(ugr.Cells["bidwinwithtaxprice"].Value.ToString(), out ResWithTaxPrice1);
  422. if (ResWithTaxPrice1 <= 0)
  423. {
  424. MessageUtil.ShowTips(M_TaskOfferCEntity_al.SuppName + "对物料【" + M_TaskOfferCEntity_al.ItemName + "】的定标单价必须>0");
  425. return;
  426. }
  427. M_TaskOfferCEntity_al.BidWinWithTaxPrice = Math.Round(ResWithTaxPrice1, 6);//定标含税单价
  428. M_TaskOfferCEntity_al.BidWinWithoutTaxPrice = Math.Round(ResWithTaxPrice1 / 1.13, 6);//定标不含税单价
  429. //-----------------------------------------------供应商中标
  430. foreach (PurTaskSuppsEntity TaskSuppsEntity in al_supp)
  431. {
  432. if (TaskSuppsEntity.Id == ugr.Cells["ID"].Value.ToString())
  433. {
  434. TaskSuppsEntity.IsBid = "1";
  435. break;
  436. }
  437. }
  438. }
  439. else
  440. {
  441. M_TaskOfferCEntity_al.IsBid = "0";
  442. }
  443. double ResWithTaxPrice = 0;
  444. double.TryParse(ugr.Cells["RESWITHTAXPRICE"].Value.ToString(), out ResWithTaxPrice);
  445. //M_TaskOfferCEntity_al.ResWithTaxPrice = Math.Round(ResWithTaxPrice, 6);//报价含税单价
  446. //M_TaskOfferCEntity_al.ResWithoutTaxPrice = Math.Round(ResWithTaxPrice / 1.16, 6);//报价不含税单价
  447. double ResQty = 0;
  448. double.TryParse(ugr.Cells["RESQTY"].Value.ToString(), out ResQty);
  449. //M_TaskOfferCEntity_al.ResQty = ResQty;//报价数量
  450. double ResWithTaxAmt = 0;
  451. double.TryParse(ugr.Cells["RESWITHTAXAMT"].Value.ToString(), out ResWithTaxAmt);
  452. //M_TaskOfferCEntity_al.ResWithTaxAmt = Math.Round(ResWithTaxAmt, 2);//报价含税金额
  453. //M_TaskOfferCEntity_al.ResWithoutTaxAmt = Math.Round(ResWithTaxAmt / 1.16, 2);//报价不含税金额
  454. DateTime ResDeliverDate;
  455. DateTime.TryParse(ugr.Cells["RESDELIVERDATE"].Value.ToString(), out ResDeliverDate);
  456. //M_TaskOfferCEntity_al.ResDeliverDate = ResDeliverDate;//报价日期
  457. //M_TaskOfferCEntity_al.ResRemark = ugr.Cells["RESREMARK"].Value.ToString();//报价备注
  458. M_TaskOfferCEntity_al.CreateName = UserInfo.GetUserName();
  459. M_TaskOfferCEntity_al.CreateUserid = UserInfo.GetUserID();
  460. M_TaskOfferCEntity_al.UpdateName = UserInfo.GetUserName();
  461. M_TaskOfferCEntity_al.UpdateUserid = UserInfo.GetUserID();
  462. if (M_TaskOfferCEntity_al.IsBid=="1")
  463. {
  464. al_TaskOfferC.Add(M_TaskOfferCEntity_al);
  465. }
  466. }
  467. //判断物料是否超标采购
  468. double b_BugPrice = 0;//任务单计划价
  469. double b_PICKQTY = 0;//任务单采购量
  470. double.TryParse(ultraGrid1.Rows[i].Cells["PICKQTY"].Value.ToString(), out b_PICKQTY);
  471. double b_PurPlanQty = 0;//采购计划量
  472. double.TryParse(ultraGrid1.Rows[i].Cells["ITEMUOMCONEFFICIENT"].Value.ToString(), out b_PurPlanQty);
  473. double b_getPurTask_Qty = 0;//已生成任务单数量
  474. double.TryParse(ultraGrid1.Rows[i].Cells["COMPANYCODE"].Value.ToString(), out b_getPurTask_Qty);
  475. double b_Has_Pur_Qty = b_PurPlanQty - b_getPurTask_Qty;//剩余采购量
  476. double b_ManayQty=b_SumResQty - b_PICKQTY;//超标数量
  477. //超标采购
  478. if (b_PICKQTY < b_SumResQty)
  479. {
  480. strTips += "物料名称【" + ultraGrid1.Rows[i].Cells["ITEMNAME"].Value.ToString() + "】下的定标数量总和【" + b_SumResQty + "】>招标数量【" + b_PICKQTY + "】\n";
  481. if (b_Has_Pur_Qty <= 0)//没有剩余采购量,补充需求
  482. {
  483. //增加预采需求
  484. setRequire(b_ManayQty, ultraGrid1.Rows[i].Cells["MRLINEID"].Value.ToString(), ultraGrid1.Rows[i].Cells["ASKDELIVERDATE"].Value.ToString());
  485. }
  486. else//有剩余采购计划量
  487. {
  488. if (b_ManayQty > b_Has_Pur_Qty)//剩下未生成任务单数量不足多招标的数量
  489. {
  490. //PurTaskCEntity TcEntity = new PurTaskCEntity();
  491. //TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString();
  492. //TcEntity.PickQty = b_PICKQTY + b_Has_Pur_Qty;
  493. //TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice;
  494. //alTaskC.Add(TcEntity);
  495. //增加预采需求
  496. setRequire(b_ManayQty - b_Has_Pur_Qty, ultraGrid1.Rows[i].Cells["MRLINEID"].Value.ToString(), ultraGrid1.Rows[i].Cells["ASKDELIVERDATE"].Value.ToString());
  497. }
  498. else//直接增加任务单量
  499. {
  500. //PurTaskCEntity TcEntity = new PurTaskCEntity();
  501. //TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString();
  502. //TcEntity.PickQty = b_PICKQTY + b_ManayQty;
  503. //TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice;
  504. //alTaskC.Add(TcEntity);
  505. }
  506. }
  507. //增加任务单量,任务单招标量等于预采量
  508. PurTaskCEntity TcEntity = new PurTaskCEntity();
  509. TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString();
  510. TcEntity.PickQty = b_SumResQty;
  511. TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice;
  512. alTaskC.Add(TcEntity);
  513. }
  514. else if (b_PICKQTY > b_SumResQty)//减标采购
  515. {
  516. //strTips += "物料名称【" + ultraGrid1.Rows[i].Cells["ITEMNAME"].Value.ToString() + "】下的定标数量总和【" + b_SumResQty + "】<招标数量【" + b_PICKQTY + "】\n";
  517. //又用户确定是否减少任务单量
  518. //if (ultraGrid1.Rows[i].Cells["combox"].Value.ToString() == "" && ultraGrid1.Rows[i].ChildBands[0].Rows.Count>0)
  519. //{
  520. //MessageUtil.ShowTips("物料名称【" + ultraGrid1.Rows[i].Cells["ITEMNAME"].Value.ToString() + "】下的定标数量总和【" + b_SumResQty + "】<招标数量【" + b_PICKQTY + "】,请选择招标异常处理方式");
  521. //return;
  522. //}
  523. //else
  524. //{
  525. //if (ultraGrid1.Rows[i].Cells["combox"].Value.ToString() == "0")//减少采购量,下次继续招标
  526. //{
  527. PurTaskCEntity TcEntity = new PurTaskCEntity();
  528. TcEntity.TaskLineId = ultraGrid1.Rows[i].Cells["TASKLINEID"].Value.ToString();
  529. TcEntity.PickQty = b_SumResQty;
  530. TcEntity.PickAmt = TcEntity.PickQty * b_BugPrice;
  531. alTaskC.Add(TcEntity);
  532. //}
  533. //}
  534. }
  535. }
  536. //if (strTips != "")
  537. //{
  538. if (strTips.Trim() == "")
  539. {
  540. strTips += "确定初拟中标?";
  541. }
  542. else
  543. {
  544. strTips += "\n确定初拟中标?";
  545. }
  546. if (MessageUtil.ShowYesNoAndQuestion(strTips).Equals(DialogResult.No))
  547. {
  548. return;
  549. }
  550. else//补录预采需求
  551. {
  552. if (al_TaskOfferC.Count > 0)
  553. {
  554. //if (alrem.Count > 0)
  555. //{
  556. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.purplan.service.TaskMService", "setPriceAll_AddReq", new object[] { al_TaskOfferC, al_supp, alrem, alReqD, alReqR, alrpr, alTaskC });
  557. if (crt.Resultcode != 0)
  558. {
  559. MessageUtil.ShowTips("初拟中标失败 " + crt.Resultmsg);
  560. return;
  561. }
  562. MessageUtil.ShowTips("初拟中标成功");
  563. GetTaskM();
  564. return;//结束方法
  565. //}
  566. //else
  567. //{
  568. //MessageUtil.ShowTips("未找到增加的预采需求");
  569. //return;
  570. //}
  571. }
  572. }
  573. //}
  574. strTips = "";
  575. //if (al_TaskOfferC.Count > 0)
  576. //{
  577. //CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.purplan.service.TaskMService", "setPriceAll", new object[] { al_TaskOfferC, al_supp });
  578. //if (crt.Resultcode != 0)
  579. //{
  580. //MessageUtil.ShowTips("初拟中标失败 " + crt.Resultmsg);
  581. //return;
  582. //}
  583. //MessageUtil.ShowTips("初拟中标成功");
  584. //GetTaskM();
  585. //this.Close();
  586. //}
  587. }
  588. /// <summary>
  589. /// 新增补充预采需求
  590. /// </summary>
  591. private void setRequire(double bQTYYC, string strPurLineId, string strASKDELIVERDATE)
  592. {
  593. //for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  594. //{
  595. RequirePlanM rem = new RequirePlanM();
  596. RequirePlanD ReqD = new RequirePlanD();
  597. ReqPurPlanR ReqR = new ReqPurPlanR();
  598. RequireReceive rpr = new RequireReceive();
  599. //double bQTYYC = 0;//预采量
  600. //double.TryParse(ultraGrid1.Rows[i].Cells["QTYYC"].Value.ToString(), out bQTYYC);
  601. //生成需求单号
  602. //string strYcMrId = this.execute<string>("com.hnshituo.pur.utils.service.UtilsService", "genMrId", new object[] { 1 });
  603. rem.CreateName = UserInfo.GetUserName();
  604. rem.CreateUserid = UserInfo.GetUserID();
  605. rem.CreateTime = DateTime.Now;
  606. rem.Status = "3";
  607. //ReqM.ReqOrgId = txt_REQ_ORG_ID.Text;
  608. //ReqM.ReqOrgName = txt_REQORGNAME.Text;
  609. rem.MrPeriodEnd = Convert.ToDateTime(strASKDELIVERDATE).Date;//Convert.ToDateTime(ultraGrid1.ActiveRow.Cells["MRPERIODEND"].Value.ToString()).Date;
  610. //rem.MrPeriodStart = Convert.ToDateTime(txt_MRPERIODSTART.Text).Date;
  611. rem.UrgencyType = "1";
  612. rem.ReqOrgName = UserInfo.GetDepartment();//申请者机构名称
  613. rem.ReqOrgId = UserInfo.GetDeptid();//申请者机构ID
  614. rem.Validflag = "1";
  615. rem.RequireType = "122103";//生产性物料预采,系统自动生成,RPA160700003-002 RPA160700003-001
  616. //rem.MrId = strYcMrId;
  617. EntityPurPlanD ppd = new EntityPurPlanD();
  618. ppd = this.execute<EntityPurPlanD>("com.hnshituo.pur.purplan.service.PurPlanDService", "findById", new object[] { strPurLineId });//添加操作
  619. ReqD = EntityHelper.CopyEntity<RequirePlanD>(ppd);
  620. //ReqD.MrLineId = strYcMrId + "-001";
  621. //ReqD.MrId = strYcMrId;
  622. ReqD.Remark = "由超额定标补充需求计划行信息";
  623. ReqD.BuyerDeptCode = "";
  624. ReqD.BuyerDeptDesc = "";
  625. ReqD.BuyerUnitCode = "";
  626. ReqD.BuyerUnitDesc = "";
  627. ReqD.Validflag = "1";
  628. ReqD.FlagGeneratedPurPlan = "4";
  629. ReqD.Qty = bQTYYC;
  630. ReqD.QtyPur = bQTYYC;
  631. ReqD.BudgetAmt = bQTYYC * (ReqD.BugPrice == null ? 0 : ReqD.BugPrice);
  632. ReqD.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
  633. ReqD.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
  634. ReqD.CreateTime = DateTime.Now;
  635. ReqD.FlagGeneratedPurPlan = "1";
  636. //2016年2月28新增leitao
  637. ReqD.DeliveryLocationFlag = "0";
  638. ReqD.DeliveryLocation = "";
  639. ReqD.DeliveryLocationCode = "";
  640. ReqD.AuditFlag = "1";
  641. ReqD.AuditMsg = "默认审批通过";
  642. //插入关系表
  643. ReqR.PurLineId = ppd.MrLineId;
  644. ReqR.CreateTime = DateTime.Now;
  645. ReqR.RequireLineId = ReqD.MrLineId;
  646. ReqR.ID = ReqD.MrLineId + ppd.MrLineId;
  647. rpr = EntityHelper.CopyEntity<RequireReceive>(ReqD);
  648. rpr.PurLineId = ppd.MrLineId;
  649. rpr.Id = ReqD.MrLineId + ppd.MrLineId;
  650. rpr.Status = "2";
  651. rpr.LastDeliveryDate = Convert.ToDateTime(strASKDELIVERDATE).Date; //ppd.AskDeliverDate;
  652. rpr.LjhTime = System.DateTime.Now;
  653. rpr.Purtype = "3";
  654. rpr.OriQty = bQTYYC;
  655. rpr.OriQtyPur = bQTYYC;
  656. rpr.Qty = bQTYYC;
  657. rpr.QtyPur = bQTYYC;
  658. rpr.Remark = "由超额定标补充需求计划行信息";
  659. alrem.Add(rem);
  660. alReqD.Add(ReqD);
  661. alReqR.Add(ReqR);
  662. alrpr.Add(rpr);
  663. //}
  664. //CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.purplan.service.PurPlanMService", "submit", new object[] { alrem, alReqD, alReqR, alrpr, ppm });//添加操作
  665. //return crt;
  666. }
  667. /// <summary>
  668. /// 新增补充预采需求(弃用)
  669. /// </summary>
  670. private CoreResult setRequireM(EntityPurPlanM ppm)
  671. {
  672. ArrayList alrem = new ArrayList();
  673. ArrayList alReqD = new ArrayList();
  674. ArrayList alReqR = new ArrayList();
  675. ArrayList alrpr = new ArrayList();
  676. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  677. {
  678. RequirePlanM rem = new RequirePlanM();
  679. RequirePlanD ReqD = new RequirePlanD();
  680. ReqPurPlanR ReqR = new ReqPurPlanR();
  681. RequireReceive rpr = new RequireReceive();
  682. double bQTYYC = 0;//预采量
  683. double.TryParse(ultraGrid1.Rows[i].Cells["QTYYC"].Value.ToString(), out bQTYYC);
  684. //生成需求单号
  685. string strYcMrId = this.execute<string>("com.hnshituo.pur.utils.service.UtilsService", "genMrId", new object[] { 1 });
  686. rem.CreateName = UserInfo.GetUserName();
  687. rem.CreateUserid = UserInfo.GetUserID();
  688. rem.CreateTime = DateTime.Now;
  689. rem.Status = "3";
  690. //ReqM.ReqOrgId = txt_REQ_ORG_ID.Text;
  691. //ReqM.ReqOrgName = txt_REQORGNAME.Text;
  692. rem.MrPeriodEnd = Convert.ToDateTime(ultraGrid1.ActiveRow.Cells["MRPERIODEND"].Value.ToString()).Date;
  693. //rem.MrPeriodStart = Convert.ToDateTime(txt_MRPERIODSTART.Text).Date;
  694. rem.UrgencyType = "1";
  695. rem.ReqOrgName = UserInfo.GetDepartment();//申请者机构名称
  696. rem.ReqOrgId = UserInfo.GetDeptid();//申请者机构ID
  697. rem.Validflag = "1";
  698. rem.RequireType = "122103";//生产性物料预采,系统自动生成,RPA160700003-002 RPA160700003-001
  699. rem.MrId = strYcMrId;
  700. EntityPurPlanD ppd = new EntityPurPlanD();
  701. ppd = this.execute<EntityPurPlanD>("com.hnshituo.pur.purplan.service.PurPlanDService", "findById", new object[] { ultraGrid1.Rows[i].Cells["MrLineId"].Value.ToString() });//添加操作
  702. ReqD = EntityHelper.CopyEntity<RequirePlanD>(ppd);
  703. ReqD.MrLineId = strYcMrId + "-001";
  704. ReqD.MrId = strYcMrId;
  705. ReqD.Remark = "由预采补充需求计划行信息";
  706. ReqD.BuyerDeptCode = "";
  707. ReqD.BuyerDeptDesc = "";
  708. ReqD.BuyerUnitCode = "";
  709. ReqD.BuyerUnitDesc = "";
  710. ReqD.Validflag = "1";
  711. ReqD.FlagGeneratedPurPlan = "4";
  712. ReqD.Qty = bQTYYC;
  713. ReqD.QtyPur = bQTYYC;
  714. ReqD.BudgetAmt = bQTYYC * (ReqD.BugPrice == null ? 0 : ReqD.BugPrice);
  715. ReqD.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
  716. ReqD.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
  717. ReqD.CreateTime = DateTime.Now;
  718. ReqD.FlagGeneratedPurPlan = "1";
  719. //2016年2月28新增leitao
  720. ReqD.DeliveryLocationFlag = "0";
  721. ReqD.DeliveryLocation = "";
  722. ReqD.DeliveryLocationCode = "";
  723. ReqD.AuditFlag = "1";
  724. ReqD.AuditMsg = "默认审批通过";
  725. //插入关系表
  726. ReqR.PurLineId = ppd.MrLineId;
  727. ReqR.CreateTime = DateTime.Now;
  728. ReqR.RequireLineId = ReqD.MrLineId;
  729. ReqR.ID = ReqD.MrLineId + ppd.MrLineId;
  730. rpr = EntityHelper.CopyEntity<RequireReceive>(ReqD);
  731. rpr.PurLineId = ppd.MrLineId;
  732. rpr.Id = ReqD.MrLineId + ppd.MrLineId;
  733. rpr.Status = "2";
  734. rpr.LastDeliveryDate = ppd.AskDeliverDate;
  735. rpr.LjhTime = System.DateTime.Now;
  736. rpr.Purtype = "3";
  737. rpr.OriQty = bQTYYC;
  738. rpr.OriQtyPur = bQTYYC;
  739. rpr.Qty = bQTYYC;
  740. rpr.QtyPur = bQTYYC;
  741. alrem.Add(rem);
  742. alReqD.Add(ReqD);
  743. alReqR.Add(ReqR);
  744. alrpr.Add(rpr);
  745. }
  746. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.purplan.service.PurPlanMService", "submit", new object[] { alrem, alReqD, alReqR, alrpr, ppm });//添加操作
  747. return crt;
  748. }
  749. #endregion
  750. #region 获取聊天信息
  751. /// <summary>
  752. /// 设置聊天界面结构
  753. /// </summary>
  754. /// <param name="dt_supps"></param>
  755. private void setChitChatDt()
  756. {
  757. //设置tab聊天框
  758. for (int i = 0; i < dataTable3.Rows.Count; i++)
  759. {
  760. RichTextBox tb = new RichTextBox();
  761. tb.Name = dataTable3.Rows[i]["SUPPCODE"].ToString();
  762. tb.Dock = DockStyle.Fill;
  763. tb.Multiline = true;
  764. tb.ReadOnly = true;
  765. tb.TextChanged += new EventHandler(rtbLog_TextChanged);
  766. Infragistics.Win.UltraWinTabControl.UltraTab ultb = ultraTabControl1.Tabs.Add(dataTable3.Rows[i]["SUPPCODE"].ToString(), dataTable3.Rows[i]["SUPPNAME"].ToString() + "(" + dataTable3.Rows[i]["SUPPCODE"].ToString() + ")");
  767. //ultb.TabPage = ult_tpc;
  768. ultb.TabPage.Controls.Add(tb);
  769. QtabColor = ultb.TabPage.Tab.Appearance.BackColor;
  770. }
  771. //显示供应商聊天复选框
  772. //int widthScreen_top = 0;//计算显示的供应商长度是否超出发送文本框的高度
  773. //int widthScreen_left = 0;//计算显示的供应商长度是否超出发送文本框的宽度
  774. //for (int i = 0; i < dataTable3.Rows.Count; i++)
  775. //{
  776. // CheckBox rb = new CheckBox();
  777. // rb.Text = dataTable3.Rows[i]["SUPPNAME"].ToString() + "(" + dataTable3.Rows[i]["SUPPCODE"].ToString() + ")";
  778. // rb.Name = dataTable3.Rows[i]["SUPPCODE"].ToString();
  779. // rb.AutoSize = true;
  780. // rb.Left = textBox1.Left + widthScreen_left;
  781. // rb.Top = textBox1.Top - rb.Height * (widthScreen_top / textBox1.Width + 1);
  782. // ultraGroupBox6.Controls.Add(rb);
  783. // widthScreen_top += rb.Width + 5;
  784. // widthScreen_left += rb.Width + 5;
  785. // if (widthScreen_left > textBox1.Width)
  786. // {
  787. // widthScreen_left = 0;
  788. // }
  789. // if (i == dataTable3.Rows.Count - 1)
  790. // {
  791. // checkBox1.Left = textBox1.Left + widthScreen_left;//设置全选复选框的位置
  792. // checkBox1.Top = rb.Top;
  793. // }
  794. //}
  795. }
  796. #endregion
  797. #region 发送聊天信息
  798. #endregion
  799. private void OpChatFun()
  800. {
  801. frmPopTaskChat frm = new frmPopTaskChat(this.ob, Q_strTASKID);
  802. frm.ShowDialog();
  803. }
  804. /// <summary>
  805. /// 获取任务单状态(返回数字)
  806. /// </summary>
  807. /// <returns></returns>
  808. public string getTaskStatusNum()
  809. {
  810. string strTaskStatus = "";
  811. PurTaskMEntity M_PurTaskM = new PurTaskMEntity();
  812. M_PurTaskM = this.execute<PurTaskMEntity>("com.hnshituo.pur.purplan.service.TaskMService", "findById", new object[] { Q_strTASKID });
  813. if (M_PurTaskM != null)
  814. {
  815. strTaskStatus = M_PurTaskM.Status;
  816. }
  817. return strTaskStatus;
  818. }
  819. /// <summary>
  820. /// 单元格值改变事件
  821. /// </summary>
  822. /// <param name="sender"></param>
  823. /// <param name="e"></param>
  824. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  825. {
  826. if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid")
  827. {
  828. //ultraGrid1.UpdateData();
  829. //ExceptionOp(e.Cell.Row.ParentRow);
  830. setBidSynchronous(dataTable4, dataTable5);
  831. }
  832. }
  833. ///// <summary>
  834. ///// 显示异常处理方式
  835. ///// </summary>
  836. ///// <param name="ugr"></param>
  837. //private void ExceptionOp(UltraGridRow ugr)
  838. //{
  839. // double bnum = 0;//定标数量
  840. // double bPICKQTY = 0;//招标数量
  841. // double.TryParse(ugr.Cells["PICKQTY"].Value.ToString(), out bPICKQTY);
  842. // foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows)
  843. // {
  844. // if (Boolean.Parse(ugrC.Cells["isbid"].Value.ToString()))
  845. // {
  846. // double bBidwinqty = 0;//定标数量
  847. // double.TryParse(ugrC.Cells["bidwinqty"].Value.ToString(), out bBidwinqty);
  848. // bnum += bBidwinqty;
  849. // }
  850. // }
  851. // if (bnum < bPICKQTY && ugr.ChildBands[0].Rows.Count>0)//作不足量处理
  852. // {
  853. // ugr.Cells["combox"].Appearance.BackColor = Color.Yellow;
  854. // ugr.Cells["combox"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  855. // ugr.Cells["combox"].EditorComponent = ultCombox;
  856. // ugr.Cells["combox"].Activation = Activation.AllowEdit;
  857. // }
  858. // else//不用处理
  859. // {
  860. // ugr.Cells["combox"].Appearance.BackColor = Color.Gray;
  861. // ugr.Cells["combox"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Default;
  862. // ugr.Cells["combox"].Value = null;
  863. // ugr.Cells["combox"].EditorComponent = null;//ultCombox;
  864. // ugr.Cells["combox"].Activation = Activation.ActivateOnly;
  865. // }
  866. //}
  867. /// <summary>
  868. /// 弹出项目加分详情
  869. /// </summary>
  870. /// <param name="sender"></param>
  871. /// <param name="e"></param>
  872. private void ultraGrid6_ClickCell(object sender, ClickCellEventArgs e)
  873. {
  874. if (e.Cell.Column.Key == "project1" || e.Cell.Column.Key == "project2" || e.Cell.Column.Key == "project3")
  875. {
  876. frmPopExamineSub frm = new frmPopExamineSub();
  877. frm.ShowDialog();
  878. }
  879. }
  880. /// <summary>
  881. /// 设置文本控件滚动条
  882. /// </summary>
  883. /// <param name="sender"></param>
  884. /// <param name="e"></param>
  885. private void rtbLog_TextChanged(object sender, EventArgs e)
  886. {
  887. RichTextBox rtb = (RichTextBox)sender;
  888. rtb.SelectionStart = rtb.Text.Length; //Set the current caret position at the end
  889. rtb.ScrollToCaret(); //Now scroll it automatically
  890. }
  891. /// <summary>
  892. /// 设置最低报价中标
  893. /// </summary>
  894. /// <param name="sender"></param>
  895. /// <param name="e"></param>
  896. private void btnSetMinPrice_Click(object sender, EventArgs e)
  897. {
  898. //if(ultraTabControl1.ActiveTab.Key=="1")
  899. //{
  900. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  901. {
  902. //最低报价供应商
  903. UltraGridRow ugrMinPrice = null;
  904. double dminPrice = 0;
  905. foreach (UltraGridRow ugr in ultraGrid1.Rows[i].ChildBands[0].Rows)
  906. {
  907. if (ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim() != "" && ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim()!="0")
  908. {
  909. if(dminPrice==0)//初始化最低报价
  910. {
  911. dminPrice=double.Parse(ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim());
  912. ugrMinPrice = ugr;
  913. }
  914. if(double.Parse(ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim())<dminPrice)
  915. {
  916. dminPrice = double.Parse(ugr.Cells["RESWITHTAXPRICE"].Value.ToString().Trim());
  917. ugrMinPrice = ugr;
  918. }
  919. }
  920. }
  921. if (ugrMinPrice != null)
  922. {
  923. ugrMinPrice.Cells["isbid"].Value = true;
  924. }
  925. ugrMinPrice = null;
  926. }
  927. setBidSynchronous(dataTable4, dataTable5);
  928. //}
  929. //else if (ultraTabControl1.ActiveTab.Key == "2")
  930. //{
  931. //}
  932. }
  933. /// <summary>
  934. /// 输入中标信息,同步更新其他方式招标的中标信息
  935. /// </summary>
  936. /// <param name="sender"></param>
  937. /// <param name="e"></param>
  938. private void ultraGrid5_CellChange(object sender, CellEventArgs e)
  939. {
  940. //setBidSynchronous(dataTable5, dataTable4);
  941. if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid")
  942. {
  943. //ultraGrid1.UpdateData();
  944. //ExceptionOp(e.Cell.Row.ParentRow);
  945. setBidSynchronous(dataTable5, dataTable4);
  946. }
  947. }
  948. /// <summary>
  949. /// 全中标
  950. /// </summary>
  951. /// <param name="sender"></param>
  952. /// <param name="e"></param>
  953. private void ultraGrid5_ClickCellButton(object sender, CellEventArgs e)
  954. {
  955. if (e.Cell.Column.Key == "btnCheckAll")
  956. {
  957. foreach (UltraGridRow ugr in e.Cell.Row.ChildBands[0].Rows)
  958. {
  959. if (e.Cell.Value.ToString()=="全中标")
  960. {
  961. ugr.Cells["isbid"].Value = true;
  962. }
  963. else if (e.Cell.Value.ToString() == "全不中标")
  964. {
  965. ugr.Cells["isbid"].Value = false;
  966. }
  967. }
  968. if (e.Cell.Value.ToString() == "全中标")
  969. {
  970. e.Cell.Value = "全不中标";
  971. }
  972. else if (e.Cell.Value.ToString() == "全不中标")
  973. {
  974. e.Cell.Value = "全中标";
  975. }
  976. setBidSynchronous(dataTable5, dataTable4);
  977. comm.RefreshAndAutoSizeColumns(ultraGrid5, "btnCheckAll");
  978. }
  979. }
  980. /// <summary>
  981. /// 同步各种招标方式中标信息
  982. /// </summary>
  983. private void setBidSynchronous(DataTable SourceDt,DataTable Objdt)
  984. {
  985. ultraGrid1.UpdateData();
  986. ultraGrid5.UpdateData();
  987. foreach (DataRow drO in Objdt.Rows)
  988. {
  989. foreach (DataRow drS in SourceDt.Rows)
  990. {
  991. string s1 = drO["ITEMUNIQUE"].ToString();
  992. string s2 = drS["ITEMUNIQUE"].ToString();
  993. string s3 = drO["SUPPCODE"].ToString();
  994. string s4 = drS["SUPPCODE"].ToString();
  995. if (s1 == s2 && s3 == s4)
  996. {
  997. drO["isbid"]=drS["isbid"];
  998. drO["bidwinqty"] = drS["bidwinqty"];
  999. break;
  1000. }
  1001. }
  1002. }
  1003. }
  1004. /// <summary>
  1005. /// 修改定标信息
  1006. /// </summary>
  1007. /// <param name="sender"></param>
  1008. /// <param name="e"></param>
  1009. private void ultraGrid8_CellChange(object sender, CellEventArgs e)
  1010. {
  1011. ultraGrid8.UpdateData();
  1012. if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid")
  1013. {
  1014. //ultraGrid1.UpdateData();
  1015. //ExceptionOp(e.Cell.Row.ParentRow);
  1016. setBidSynchronous(dataTable4, dataTable5);
  1017. }
  1018. }
  1019. private void ultraGrid9_CellChange(object sender, CellEventArgs e)
  1020. {
  1021. ultraGrid9.UpdateData();
  1022. if (e.Cell.Column.Key == "bidwinqty" || e.Cell.Column.Key == "isbid")
  1023. {
  1024. //ultraGrid1.UpdateData();
  1025. //ExceptionOp(e.Cell.Row.ParentRow);
  1026. setBidSynchronous(dataTable5, dataTable4);
  1027. }
  1028. }
  1029. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  1030. {
  1031. UltraGridRow ugr1 = ultraGrid1.ActiveRow;
  1032. foreach (UltraGridRow ugr in ultraGrid8.Rows)
  1033. {
  1034. if (ugr1.Cells["ITEMUNIQUE"].Value.ToString() == ugr.Cells["ITEMUNIQUE"].Value.ToString())
  1035. {
  1036. ugr.Hidden = false;
  1037. }
  1038. else
  1039. {
  1040. ugr.Hidden = true;
  1041. }
  1042. }
  1043. ultraGrid8.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.VisibleIndex;
  1044. comm.RefreshAndAutoSizeExceptColumns(ultraGrid8);
  1045. }
  1046. private void ultraGrid5_AfterRowActivate(object sender, EventArgs e)
  1047. {
  1048. UltraGridRow ugr1 = ultraGrid5.ActiveRow;
  1049. foreach (UltraGridRow ugr in ultraGrid9.Rows)
  1050. {
  1051. if (ugr1.Cells["suppcode"].Value.ToString() == ugr.Cells["suppcode"].Value.ToString())
  1052. {
  1053. ugr.Hidden = false;
  1054. }
  1055. else
  1056. {
  1057. ugr.Hidden = true;
  1058. }
  1059. }
  1060. ultraGrid9.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.VisibleIndex;
  1061. comm.RefreshAndAutoSizeExceptColumns(ultraGrid9);
  1062. }
  1063. }
  1064. }