frmOrderDeliveryReview.cs 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474
  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 CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Server;
  11. using Core.Mes.Client.Comm.Control;
  12. using Infragistics.Win.UltraWinGrid;
  13. using Core.StlMes.Client.Qcm;
  14. using Core.Mes.Client.Comm.Format;
  15. using System.Collections;
  16. using Core.Mes.Client.Comm.Tool;
  17. using Core.StlMes.Client.SaleOrder.Dialog;
  18. namespace Core.StlMes.Client.SaleOrder
  19. {
  20. public partial class frmOrderDeliveryReview : FrmBase
  21. {
  22. public frmOrderDeliveryReview()
  23. {
  24. InitializeComponent();
  25. this.IsLoadUserView = true;
  26. }
  27. private string[] dataArr = null;
  28. public frmOrderDeliveryReview(OpeBase _ob, string[] arr)
  29. {
  30. InitializeComponent();
  31. this.IsLoadUserView = true;
  32. this.ob = _ob;
  33. this.CustomInfo = "CHGE";
  34. dataArr = new string[arr.Length];
  35. dataArr = arr;
  36. }
  37. protected override void OnLoad(EventArgs e)
  38. {
  39. base.OnLoad(e);
  40. foreach (UltraGridColumn col in ultraGrid1.DisplayLayout.Bands[0].Columns)
  41. {
  42. col.SortIndicator = SortIndicator.Disabled;
  43. }
  44. }
  45. /// <summary>
  46. /// 来自于哪个界面 1交货期评审提报 2 交货期评审 3 合同行变更时的交货期
  47. /// </summary>
  48. private string statusFrom = ""; //
  49. private void frmOrderDeliveryReview_Load(object sender, EventArgs e)
  50. {
  51. //默认查询当前日期-1月——当前日期数据。
  52. udtEnd.DateTime = DateTime.Now;
  53. udtStart.DateTime = DateTime.Now.AddMonths(-1);
  54. if (this.CustomInfo.Contains("REPORT")) //交货期评审提报
  55. {
  56. statusFrom = "1";
  57. }
  58. else if (this.CustomInfo.Contains("CHGE")) //合同变更
  59. {
  60. statusFrom = "3";
  61. }
  62. else //交货期评审
  63. {
  64. statusFrom = "2";
  65. }
  66. }
  67. /// <summary>
  68. /// 重写基类toolBar方法
  69. /// </summary>
  70. /// <param name="sender"></param>
  71. /// <param name="ToolbarKey"></param>
  72. public override void ToolBar_Click(object sender, string ToolbarKey)
  73. {
  74. switch (ToolbarKey)
  75. {
  76. case "doQuery":
  77. doQuery();
  78. break;
  79. case "doReport":
  80. doReport();
  81. break;
  82. case "doCancel":
  83. doCancel();
  84. break;
  85. case "doClose":
  86. this.Close();
  87. break;
  88. case "Cycle":
  89. DoCycle();
  90. break;
  91. case "InPutMpsNo":
  92. InPutMpsNo();
  93. break;
  94. case "Update":
  95. UpdateDelivery();
  96. break;
  97. //分界面
  98. case "doOk":
  99. this.doOk();
  100. break;
  101. case "doReviewNotPass":
  102. this.doReviewNotPass();
  103. break;
  104. //------合同行变更交货期界面------
  105. case "ChgeQuery":
  106. this.ChgeQuery();
  107. break;
  108. case "ChgeUpdate":
  109. UpdateDeliveryChge();
  110. break;
  111. }
  112. }
  113. /// <summary>
  114. /// 维护MPS编号
  115. /// </summary>
  116. private void InPutMpsNo()
  117. {
  118. UltraGridRow ugr = ultraGHead.ActiveRow;
  119. if (ugr == null)
  120. {
  121. MessageUtil.ShowWarning("请选择一个需要维护MPS编号的合同!");
  122. return;
  123. }
  124. string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
  125. //判断选择的合同是否需要维护MPS编号
  126. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getMpsFlag", new object[] { ordPk }, this.ob);
  127. if (dt != null && dt.Rows.Count > 0)
  128. {
  129. if (!dt.Rows[0][0].ToString().Contains("1"))
  130. {
  131. MessageUtil.ShowWarning("您选择的合同不需要维护MPS编号!");
  132. return;
  133. }
  134. }
  135. else
  136. {
  137. MessageUtil.ShowWarning("您选择的合同合同行出现异常!");
  138. return;
  139. }
  140. FrmInPutMpsNo pmn = new FrmInPutMpsNo(this.ob, ordPk);
  141. pmn.ShowDialog();
  142. doQuery();
  143. foreach (UltraGridRow uRow in ultraGHead.Rows)
  144. {
  145. if (uRow.Cells["ORD_PK"].Value.ToString() == ordPk)
  146. {
  147. uRow.Activate();
  148. break;
  149. }
  150. }
  151. }
  152. /// <summary>
  153. /// 修改交货行的信息。替代之前的"保存“与”删除“
  154. /// </summary>
  155. private void UpdateDelivery()
  156. {
  157. UltraGridRow row = ultraGridOrderLine.ActiveRow;
  158. if (row == null)
  159. {
  160. MessageUtil.ShowWarning("请选择你要修改的合同行!");
  161. return;
  162. }
  163. if (row.HasParent())
  164. row = row.ParentRow;
  165. //合同行变更时交货期。
  166. if (statusFrom == "3")
  167. {
  168. string lnPk = row.Cells["ORD_LN_PK"].Value.ToString();
  169. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.selectOrderLine", new object[] { lnPk }, this.ob);
  170. if (dt != null && dt.Rows.Count > 0)
  171. {
  172. string lnStatus = dt.Rows[0]["ORDER_LN_STATUS"].ToString();
  173. string isLock = dt.Rows[0]["ISLOCK"].ToString();
  174. if (isLock != "1")
  175. {
  176. MessageUtil.ShowWarning("您选择的合同行尚未锁定!");
  177. return;
  178. }
  179. if (lnStatus != "12020202")
  180. {
  181. MessageUtil.ShowWarning("您选择的合同行尚未通过技术评审!");
  182. return;
  183. }
  184. }
  185. else
  186. {
  187. MessageUtil.ShowWarning("您选择的合同行已不存在!");
  188. return;
  189. }
  190. }
  191. UltraGridRow ugr = ultraGHead.ActiveRow;
  192. string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
  193. DataTable stsDt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getOrdStatus", new object[] { ordPk }, this.ob);
  194. if (stsDt != null && stsDt.Rows.Count > 0)
  195. {
  196. string ordSts = stsDt.Rows[0][0].ToString();
  197. if (ordSts != "12020202" && ordSts != "12020211")
  198. {
  199. MessageUtil.ShowWarning("只有技术评审通过和交货期评审失败的状态才可以修改交货期!");
  200. return;
  201. }
  202. }
  203. else
  204. {
  205. MessageUtil.ShowWarning("您选择的合同已被删除!");
  206. return;
  207. }
  208. string orderunit = ""; //订货单位
  209. string shrow = ""; //收货单位
  210. string enTotalLen = ""; //保总长
  211. string lenUnit = ""; //长度单位
  212. string specCode = ""; //产品规格代码
  213. orderunit = row.Cells["ORDER_UNIT"].Value.ToString();
  214. if (row.HasParent())
  215. {
  216. shrow = row.Cells["RECEIV_NM"].Value == null ? "" : row.Cells["RECEIV_NM"].Value.ToString();
  217. enTotalLen = row.ParentRow.Cells["ORD_ENSU_TOTL_LEN"].Value.ToString();
  218. lenUnit = row.ParentRow.Cells["LEN_UNIT"].Value.ToString();
  219. specCode = row.ParentRow.Cells["SPEC_CODE"].Value.ToString();
  220. }
  221. else
  222. {
  223. shrow = row.ChildBands[0].Rows[0].Cells["RECEIV_NM"].Value == null ? "" : row.ChildBands[0].Rows[0].Cells["RECEIV_NM"].Value.ToString();
  224. enTotalLen = row.Cells["ORD_ENSU_TOTL_LEN"].Value.ToString();
  225. lenUnit = row.Cells["LEN_UNIT"].Value.ToString();
  226. specCode = row.Cells["SPEC_CODE"].Value.ToString();
  227. }
  228. DataTable dlyDt = new DataTable();
  229. frmOrderDelivery fod = new frmOrderDelivery(this.ob);
  230. fod.OrderNo = row.Cells["ORD_LN_PK"].Value.ToString();
  231. string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString();
  232. fod.NumWt = row.Cells["ORDER_QTY"].Value.ToString();
  233. fod.OrderUnit = orderunit;
  234. fod.LenUnit = lenUnit;
  235. fod.SaleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid());
  236. fod.ShRow = shrow;
  237. fod.FromForm = "1";
  238. fod.ManageNo = ordPk;
  239. fod.OrderNo = ordLnPk;
  240. fod.Order_line_lne = Convert.ToDouble(enTotalLen == "" ? "0" : enTotalLen);
  241. fod.Spec_code = specCode;
  242. fod.ShowDialog();
  243. dlyDt = fod.DlyDt;
  244. doQuery();
  245. foreach (UltraGridRow uRow in ultraGHead.Rows)
  246. {
  247. if (uRow.Cells["ORD_PK"].Value.ToString().Equals(ordPk))
  248. {
  249. uRow.Activate();
  250. DoCycle();
  251. break;
  252. }
  253. }
  254. foreach (UltraGridRow cRow in ultraGridOrderLine.Rows)
  255. {
  256. if (cRow.Cells["ORD_LN_PK"].Value.ToString().Equals(ordLnPk))
  257. {
  258. cRow.Activate();
  259. break;
  260. }
  261. }
  262. if (fod.DialogResult != DialogResult.OK)
  263. return;
  264. string strLine = "";
  265. for (int k = 0; k < dlyDt.Rows.Count; k++)
  266. {
  267. string ordLnDlyPk = dlyDt.Rows[k]["ORD_LN_DLY_PK"].ToString();
  268. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getOrderDlyTransit", new object[] { ordLnDlyPk }, this.ob);
  269. string trasLine = "";
  270. for (int n = 0; n < dt.Rows.Count; n++)
  271. {
  272. string agency = dt.Rows[n]["AGENCY_FL"].ToString();
  273. if (agency == "0" || agency == "2") //买方线路
  274. {
  275. if (agency == "0")
  276. trasLine += " 买方线路:";
  277. else
  278. {
  279. trasLine += " 买方线路(买方代办):";
  280. }
  281. if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "")
  282. trasLine = trasLine + "运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString();
  283. if (dt.Rows[n]["DESTINATION"].ToString() != "")
  284. trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString();
  285. if (dt.Rows[n]["STATION_NO"].ToString() != "")
  286. trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString();
  287. if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "")
  288. trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString();
  289. if (dt.Rows[n]["PORT_NO"].ToString() != "")
  290. trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString();
  291. if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "")
  292. trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString();
  293. if (dt.Rows[n]["RECEIVOR"].ToString() != "")
  294. trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString();
  295. }
  296. else
  297. {
  298. trasLine += " TPCO代办线路:";
  299. if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "")
  300. trasLine = trasLine + " 运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString();
  301. if (dt.Rows[n]["DESTINATION"].ToString() != "")
  302. trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString();
  303. if (dt.Rows[n]["STATION_NO"].ToString() != "")
  304. trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString();
  305. if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "")
  306. trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString();
  307. if (dt.Rows[n]["PORT_NO"].ToString() != "")
  308. trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString();
  309. if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "")
  310. trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString();
  311. if (dt.Rows[n]["RECEIVOR"].ToString() != "")
  312. trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString();
  313. }
  314. trasLine = trasLine + ";";
  315. }
  316. strLine += "交货量:" + dlyDt.Rows[k]["DELVRY_QTY"].ToString() + ";交货日期:" + dlyDt.Rows[k]["DELVRY_EDATE"].ToString() + ";收货单位:" + dlyDt.Rows[k]["RECEIV_NM"].ToString() + ";交货地点:" + dlyDt.Rows[k]["DELVRY_ADDR"].ToString() + trasLine + "\r\n";//;运输方案:" + orderDerlivery.Tables[i].Rows[k]["TRANSIT_PLAN"].ToString() + "\r\n";
  317. }
  318. UltraGridRow ugrLine = ultraGridOrderLine.ActiveRow;
  319. ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.setOrderLineDlyEtime", new object[] { ugrLine.Cells["ORD_LN_PK"].Value.ToString(), ugrLine.Cells["DELVRY_EDATE"].Value.ToString(), strLine }, this.ob);
  320. }
  321. private void UpdateDeliveryChge()
  322. {
  323. UltraGridRow row = ultraGridOrderLine.ActiveRow;
  324. if (row == null)
  325. {
  326. MessageUtil.ShowWarning("请选择你要修改的合同行!");
  327. return;
  328. }
  329. if (row.HasParent())
  330. row = row.ParentRow;
  331. //合同行变更时交货期。
  332. if (statusFrom == "3")
  333. {
  334. string lnPk = row.Cells["ORD_LN_PK"].Value.ToString();
  335. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.selectOrderLine", new object[] { lnPk }, this.ob);
  336. if (dt != null && dt.Rows.Count > 0)
  337. {
  338. string lnStatus = dt.Rows[0]["ORDER_LN_STATUS"].ToString();
  339. string isLock = dt.Rows[0]["ISLOCK"].ToString();
  340. if (isLock != "1")
  341. {
  342. MessageUtil.ShowWarning("您选择的合同行尚未锁定!");
  343. return;
  344. }
  345. if (lnStatus != "12020202")
  346. {
  347. MessageUtil.ShowWarning("您选择的合同行尚未通过技术评审!");
  348. return;
  349. }
  350. }
  351. else
  352. {
  353. MessageUtil.ShowWarning("您选择的合同行已不存在!");
  354. return;
  355. }
  356. }
  357. UltraGridRow ugr = ultraGHead.ActiveRow;
  358. string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
  359. string orderunit = ""; //订货单位
  360. string shrow = ""; //收货单位
  361. string enTotalLen = ""; //保总长
  362. string lenUnit = ""; //长度单位
  363. string specCode = ""; //产品规格代码
  364. orderunit = row.Cells["ORDER_UNIT"].Value.ToString();
  365. if (row.HasParent())
  366. {
  367. shrow = row.Cells["RECEIV_NM"].Value == null ? "" : row.Cells["RECEIV_NM"].Value.ToString();
  368. enTotalLen = row.ParentRow.Cells["ORD_ENSU_TOTL_LEN"].Value.ToString();
  369. lenUnit = row.ParentRow.Cells["LEN_UNIT"].Value.ToString();
  370. specCode = row.ParentRow.Cells["SPEC_CODE"].Value.ToString();
  371. }
  372. else
  373. {
  374. shrow = row.ChildBands[0].Rows[0].Cells["RECEIV_NM"].Value == null ? "" : row.ChildBands[0].Rows[0].Cells["RECEIV_NM"].Value.ToString();
  375. enTotalLen = row.Cells["ORD_ENSU_TOTL_LEN"].Value.ToString();
  376. lenUnit = row.Cells["LEN_UNIT"].Value.ToString();
  377. specCode = row.Cells["SPEC_CODE"].Value.ToString();
  378. }
  379. DataTable dlyDt = new DataTable();
  380. frmOrderDelivery fod = new frmOrderDelivery(this.ob);
  381. fod.OrderNo = row.Cells["ORD_LN_PK"].Value.ToString();
  382. string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString();
  383. fod.NumWt = row.Cells["ORDER_QTY"].Value.ToString();
  384. fod.OrderUnit = orderunit;
  385. fod.LenUnit = lenUnit;
  386. fod.SaleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid());
  387. fod.ShRow = shrow;
  388. fod.FromForm = "3";
  389. fod.ManageNo = ordPk;
  390. fod.OrderNo = ordLnPk;
  391. fod.Order_line_lne = Convert.ToDouble(enTotalLen == "" ? "0" : enTotalLen);
  392. fod.Spec_code = specCode;
  393. fod.ShowDialog();
  394. dlyDt = fod.DlyDt;
  395. doQuery();
  396. foreach (UltraGridRow uRow in ultraGHead.Rows)
  397. {
  398. if (uRow.Cells["ORD_PK"].Value.ToString().Equals(ordPk))
  399. {
  400. uRow.Activate();
  401. DoCycle();
  402. break;
  403. }
  404. }
  405. foreach (UltraGridRow cRow in ultraGridOrderLine.Rows)
  406. {
  407. if (cRow.Cells["ORD_LN_PK"].Value.ToString().Equals(ordLnPk))
  408. {
  409. cRow.Activate();
  410. break;
  411. }
  412. }
  413. if (fod.DialogResult != DialogResult.OK)
  414. return;
  415. string strLine = "";
  416. for (int k = 0; k < dlyDt.Rows.Count; k++)
  417. {
  418. string ordLnDlyPk = dlyDt.Rows[k]["ORD_LN_DLY_PK"].ToString();
  419. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getOrderDlyTransit", new object[] { ordLnDlyPk }, this.ob);
  420. string trasLine = "";
  421. for (int n = 0; n < dt.Rows.Count; n++)
  422. {
  423. string agency = dt.Rows[n]["AGENCY_FL"].ToString();
  424. if (agency == "0" || agency == "2") //买方线路
  425. {
  426. if (agency == "0")
  427. trasLine += " 买方线路:";
  428. else
  429. {
  430. trasLine += " 买方线路(买方代办):";
  431. }
  432. if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "")
  433. trasLine = trasLine + "运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString();
  434. if (dt.Rows[n]["DESTINATION"].ToString() != "")
  435. trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString();
  436. if (dt.Rows[n]["STATION_NO"].ToString() != "")
  437. trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString();
  438. if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "")
  439. trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString();
  440. if (dt.Rows[n]["PORT_NO"].ToString() != "")
  441. trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString();
  442. if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "")
  443. trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString();
  444. if (dt.Rows[n]["RECEIVOR"].ToString() != "")
  445. trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString();
  446. }
  447. else
  448. {
  449. trasLine += " TPCO代办线路:";
  450. if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "")
  451. trasLine = trasLine + " 运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString();
  452. if (dt.Rows[n]["DESTINATION"].ToString() != "")
  453. trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString();
  454. if (dt.Rows[n]["STATION_NO"].ToString() != "")
  455. trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString();
  456. if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "")
  457. trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString();
  458. if (dt.Rows[n]["PORT_NO"].ToString() != "")
  459. trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString();
  460. if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "")
  461. trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString();
  462. if (dt.Rows[n]["RECEIVOR"].ToString() != "")
  463. trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString();
  464. }
  465. trasLine = trasLine + ";";
  466. }
  467. strLine += "交货量:" + dlyDt.Rows[k]["DELVRY_QTY"].ToString() + ";交货日期:" + dlyDt.Rows[k]["DELVRY_EDATE"].ToString() + ";收货单位:" + dlyDt.Rows[k]["RECEIV_NM"].ToString() + ";交货地点:" + dlyDt.Rows[k]["DELVRY_ADDR"].ToString() + trasLine + "\r\n";//;运输方案:" + orderDerlivery.Tables[i].Rows[k]["TRANSIT_PLAN"].ToString() + "\r\n";
  468. }
  469. UltraGridRow ugrLine = ultraGridOrderLine.ActiveRow;
  470. ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.setOrderLineDlyEtime", new object[] { ugrLine.Cells["ORD_LN_PK"].Value.ToString(), ugrLine.Cells["DELVRY_EDATE"].Value.ToString(), strLine }, this.ob);
  471. }
  472. /// <summary>
  473. /// 交货期评审失败
  474. /// </summary>
  475. private void doReviewNotPass()
  476. {
  477. UltraGridRow ugr = ultraGHead.ActiveRow;
  478. if (ugr == null)
  479. {
  480. MessageUtil.ShowWarning("请选择你要操作的合同!");
  481. return;
  482. }
  483. //如果选择的是交货期评审失败的合同呢
  484. if (ugr.Cells["ORDER_STS"].Text.Trim() == "12020211")
  485. {
  486. MessageUtil.ShowWarning("您选择的合同已经是”交货期评审失败状态“,不必重复操作!");
  487. return;
  488. }
  489. if (MessageBox.Show("是否对所选合同进行评审不通过操作?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  490. return;
  491. dlgReviewMemo dlg = new dlgReviewMemo();
  492. dlg.ReviewFlag = 0;
  493. dlg.ReviewSatus = "评审不通过";
  494. dlg.ShowDialog();
  495. string reviewMemo = dlg.ReviewMemo;
  496. if (dlg.DialogResult != DialogResult.OK)
  497. return;
  498. string name = UserInfo.GetUserName();
  499. string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
  500. dept = dept + "-" + UserInfo.GetDepartment();
  501. string ordPk = ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString();
  502. //UpdateHeadStatus(ordPk, hStatus, hStatusDesc);
  503. CoreClientParam ccp = new CoreClientParam();
  504. ccp.IfShowErrMsg = false;
  505. ccp.ServerName = "com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview";
  506. ccp.MethodName = "reviewBack";
  507. ccp.ServerParams = new object[] { ordPk, name, dept, reviewMemo };
  508. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  509. if (ccp == null)
  510. return;
  511. else
  512. {
  513. if (ccp.ReturnCode == -1)
  514. {
  515. MessageBox.Show(ccp.ReturnObject.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  516. return;
  517. }
  518. }
  519. doQuery();
  520. }
  521. /// <summary>
  522. /// 交货期评审通过
  523. /// </summary>
  524. private void doOk()
  525. {
  526. //12020212
  527. UltraGridRow ugr = ultraGHead.ActiveRow;
  528. if (ugr == null)
  529. {
  530. MessageUtil.ShowWarning("请选择你要操作的合同!");
  531. return;
  532. }
  533. if (ugr.Cells["ORDER_STS"].Text.Trim() == "12020212")
  534. {
  535. MessageUtil.ShowWarning("您选择的合同已经是”交货期评审通过“,不能再评审通过!");
  536. return;
  537. }
  538. //如果选择的是交货期评审失败的合同呢
  539. if (ugr.Cells["ORDER_STS"].Text.Trim() == "12020211")
  540. {
  541. MessageUtil.ShowWarning("您选择的合同已经是”交货期评审失败状态“,不能再评审通过!");
  542. return;
  543. }
  544. string ordPk = ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString();
  545. string hStatus = "12020212";
  546. string hStatusDesc = "交货期评审通过";
  547. if (MessageBox.Show("是否对选择的合同评审通过?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  548. return;
  549. //投入产能井操作
  550. dlgReviewMemo dlg = new dlgReviewMemo();
  551. dlg.ReviewFlag = 1;
  552. dlg.ReviewSatus = "评审通过";
  553. dlg.ShowDialog();
  554. string reviewMemo = dlg.ReviewMemo;
  555. if (dlg.DialogResult != DialogResult.OK)
  556. return;
  557. string name = UserInfo.GetUserName();
  558. string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
  559. dept = dept + "-" + UserInfo.GetDepartment();
  560. string saleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid());
  561. CoreClientParam ccp = new CoreClientParam();
  562. ccp.IfShowErrMsg = false;
  563. ccp.ServerName = "com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview";
  564. //if (this.CustomInfo.ToString2().EndsWith("120504_0") || this.CustomInfo.ToString2().EndsWith("120504_1"))
  565. //{
  566. // string startStatus = this.CustomInfo.ToString2().Split('_')[1].ToString2();
  567. // string endStatus = (int.Parse(startStatus) + 1 ).ToString2();
  568. // ccp.MethodName = "updateThExamineStatus";
  569. // ccp.ServerParams = new object[] { ordPk, name, dept, reviewMemo, startStatus, endStatus };
  570. //}
  571. //else {
  572. ccp.MethodName = "inputWell";
  573. ccp.ServerParams = new object[] { ordPk, name, dept, reviewMemo, saleOrg };
  574. //}
  575. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  576. if (ccp == null)
  577. return;
  578. if (ccp != null)
  579. {
  580. if (ccp.ReturnCode == -1)
  581. {
  582. if (ccp.ReturnObject != null)
  583. {
  584. MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
  585. return;
  586. }
  587. else
  588. {
  589. MessageUtil.ShowWarning(ccp.ReturnInfo);
  590. return;
  591. }
  592. }
  593. }
  594. doQuery();
  595. //UpdateHeadStatus(ordPk, hStatus, hStatusDesc);
  596. }
  597. /// <summary>
  598. /// 取消提报
  599. /// </summary>
  600. private void doCancel()
  601. {
  602. if (ultraGHead.ActiveRow == null)
  603. {
  604. MessageBox.Show("请选择你要操作的合同!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  605. return;
  606. }
  607. if (MessageBox.Show("是否确认撤销提报?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  608. return;
  609. //1. 判断当前选中合同行交货期是否满足。
  610. //2. 满足。
  611. string ordPk = ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString();
  612. //string hStatus = "12020202";
  613. //string hStatusDesc = "技术评审通过";
  614. //UpdateHeadStatus(ordPk, hStatus, hStatusDesc);
  615. CoreClientParam ccp = new CoreClientParam();
  616. ccp.IfShowErrMsg = false;
  617. ccp.ServerName = "com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview";
  618. ccp.MethodName = "updateOrderStatusCancel";
  619. ccp.ServerParams = new object[] { ordPk, UserInfo.GetUserName() };
  620. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  621. if (ccp == null)
  622. return;
  623. else
  624. {
  625. if (ccp.ReturnCode == -1)
  626. {
  627. MessageBox.Show(ccp.ReturnObject.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  628. return;
  629. }
  630. }
  631. doQuery();
  632. }
  633. /// <summary>
  634. /// 确认功能,提报
  635. /// </summary>
  636. private void doReport()
  637. {
  638. if (ultraGHead.ActiveRow == null)
  639. {
  640. MessageBox.Show("请选择要操作的合同!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  641. return;
  642. }
  643. UltraGridRow ugr = ultraGHead.ActiveRow;
  644. string ordPk = ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString();
  645. // string hStatus = "12020210";
  646. // string hStatusDesc = "待交货期评审";
  647. //判断交货行的交货量是否等于合同行的交货量!
  648. //ORD_PK --合同行--每个合同行的交货行的总量
  649. if (ultraGHead.ActiveRow.Cells["ORDER_STS"].Value.ToString() == "12020210")
  650. {
  651. MessageBox.Show("您所选合同已处于[待交货期评审]状态,不必重复提报!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  652. return;
  653. }
  654. CoreClientParam ccp = new CoreClientParam();
  655. ccp.IfShowErrMsg = false;
  656. ccp.ServerName = "com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview";
  657. ccp.MethodName = "isMeetDelivery";
  658. ccp.ServerParams = new object[] { ordPk };
  659. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  660. if (ccp != null)
  661. {
  662. if (ccp.ReturnCode == -1 || ccp.ReturnObject.ToString().Equals("N"))
  663. {
  664. MessageUtil.ShowWarning("您选择的合同的交货量与订货量不一致,不能提报!");
  665. return;
  666. }
  667. }
  668. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getOrderDeliveryStatus", new object[] { ordPk }, this.ob);
  669. List<string> list = new List<string>();
  670. foreach (DataRow dr in dt.Rows)
  671. {
  672. list.Add(dr["PRDCYC_MEET"].ToString());
  673. }
  674. if (list.Contains("等待") || list.Count <= 0)
  675. {
  676. MessageUtil.ShowWarning("请先对要提报的合同进行交货期分析!");
  677. return;
  678. }
  679. //卡住MPS的输入
  680. DataTable mpsDt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getLineMpsComplete", new object[] { ordPk }, this.ob);
  681. list = new List<string>();
  682. foreach (DataRow dr in mpsDt.Rows)
  683. {
  684. list.Add(dr[0].ToString());
  685. }
  686. if (list.Contains("1"))
  687. {
  688. MessageUtil.ShowWarning("确认后的MPS编号不存在或者MPS编号对应的MPS文本尚未维护,不能提报!");
  689. return;
  690. }
  691. //1. 判断当前选中合同行交货期是否满足。(这里需要到数据库验证)
  692. if (ultraGHead.ActiveRow.Cells["ISDELIVERYD"].Value.ToString() == "满足")
  693. {
  694. if (MessageBox.Show("是否提报选择的合同!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  695. return;
  696. }
  697. else
  698. {
  699. //if (MessageBox.Show("您选择的合同交货期不满足,是否继续提报?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No)
  700. // return;
  701. MessageBox.Show("您选择的合同交货期不满足,不能提报!请按系统分析的交货期调整", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  702. return;
  703. }
  704. //UpdateHeadStatus(ordPk, hStatus, hStatusDesc);
  705. string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
  706. dept = dept + "-" + UserInfo.GetDepartment();
  707. CoreClientParam ccp1 = new CoreClientParam();
  708. ccp1.IfShowErrMsg = false;
  709. ccp1.ServerName = "com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview";
  710. ccp1.MethodName = "updateOrderStatusReport";
  711. ccp1.ServerParams = new object[] { ordPk, UserInfo.GetUserName(), dept };
  712. ccp1 = this.ExecuteNonQuery(ccp1, CoreInvokeType.Internal);
  713. if (ccp1 == null)
  714. return;
  715. else
  716. {
  717. if (ccp1.ReturnCode == -1)
  718. {
  719. MessageBox.Show(ccp1.ReturnObject.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  720. return;
  721. }
  722. }
  723. doQuery();
  724. }
  725. /// <summary>
  726. /// 修正合同头状态
  727. /// </summary>
  728. /// <param name="ordPk"></param>
  729. private void UpdateHeadStatus(string ordPk, string hStatus, string hStatusDesc)
  730. {
  731. //获取当前选中合同头主键,修正当前合同头主键下面全部合同行,全部交货行状态为交货期评审通过。
  732. //执行数据库相关操作
  733. CoreClientParam ccp = new CoreClientParam();
  734. ccp.ServerName = "com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview";
  735. ccp.MethodName = "UpdateHeadStatus";
  736. ccp.ServerParams = new object[] { ordPk, hStatus, hStatusDesc };
  737. try
  738. {
  739. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  740. }
  741. catch (Exception ex)
  742. {
  743. MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
  744. return;
  745. }
  746. if (ccp.ReturnCode == -1)
  747. {
  748. return;
  749. }
  750. else
  751. {
  752. MessageBox.Show("操作成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  753. doQuery();
  754. foreach (UltraGridRow row in ultraGHead.Rows)
  755. {
  756. if (ordPk.Equals(row.Cells["ORD_PK"].Value.ToString()))
  757. {
  758. row.Activate();
  759. break;
  760. }
  761. }
  762. }
  763. }
  764. /// <summary>
  765. /// 查询出技术评审通过的合同头信息。
  766. /// </summary>
  767. private void doQuery()
  768. {
  769. string orderNo = utxtOrderNo.Text.Trim();
  770. string isDeliveryD = "";
  771. if (uchkIsDeliveryD.Checked)
  772. {
  773. isDeliveryD = "0";
  774. }
  775. else
  776. {
  777. isDeliveryD = "1";
  778. }
  779. string orderStart = "1000-01-01 00:00:01";
  780. string orderEnd = "9999-12-31 23:59:59";
  781. TimeSpan ts = udtEnd.DateTime.Subtract(udtStart.DateTime);
  782. if (ts.TotalDays < 0)
  783. {
  784. MessageBox.Show("创建开始日期必须小于创建结束日期。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  785. return;
  786. }
  787. string valid = "1";
  788. if (chkValid.Checked)
  789. {
  790. valid = "0";
  791. }
  792. else
  793. {
  794. valid = "1";
  795. }
  796. if (uchkDate.Checked)
  797. {
  798. orderStart = udtStart.DateTime.ToString("yyyy-MM-dd") + " 00:00:01";
  799. orderEnd = udtEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59";
  800. }
  801. string[] arr = this.ValidDataPurviewIds;
  802. string supp = this.CustomInfo.Contains("120504") ? "120504" : "";
  803. if (this.CustomInfo.ToString2().Equals("REVIEW"))
  804. {
  805. supp = "120501";
  806. }
  807. string thExamineStatus = "";
  808. //if (this.CustomInfo.ToString2().EndsWith("120504_0") || this.CustomInfo.ToString2().EndsWith("120504_1") || this.CustomInfo.ToString2().EndsWith("120504_2"))
  809. //{
  810. // thExamineStatus = this.CustomInfo.ToString2().Split('_')[1].ToString2();
  811. //}
  812. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.doQuery", new Object[] { orderNo, isDeliveryD, orderStart, orderEnd, valid, statusFrom, arr, supp, thExamineStatus }, this.ob);
  813. GridHelper.CopyDataToDatatable(ref dt, ref this.orderHeadDt, true);
  814. dataTable1.Clear();
  815. string status = "满足";
  816. string status1 = "不满足";
  817. string status2 = "等待";
  818. if (dt.Rows.Count > 0)
  819. {
  820. foreach (UltraGridRow row in ultraGHead.Rows)
  821. {
  822. if ("1".Equals(row.Cells["ISDELIVERYD"].Value))
  823. {
  824. row.Cells["ISDELIVERYD"].Value = status;
  825. }
  826. else if ("2".Equals(row.Cells["ISDELIVERYD"].Value))
  827. {
  828. row.Cells["ISDELIVERYD"].Value = status2;
  829. }
  830. else
  831. {
  832. row.Cells["ISDELIVERYD"].Value = status1;
  833. }
  834. if ("1".Equals(row.Cells["CUSTOMER_MODEL_FL"].Value))
  835. {
  836. row.Cells["CUSTOMER_MODEL_FL"].Value = status;
  837. }
  838. else
  839. {
  840. row.Cells["CUSTOMER_MODEL_FL"].Value = status1;
  841. }
  842. if ("1".Equals(row.Cells["VALIDFLAG"].Value))
  843. {
  844. row.Cells["VALIDFLAG"].Value = true;
  845. row.Appearance.ForeColor = Color.Black;
  846. }
  847. else
  848. {
  849. row.Cells["VALIDFLAG"].Value = false;
  850. row.Appearance.ForeColor = Color.Red;
  851. }
  852. }
  853. //列自适应
  854. GridHelper.RefreshAndAutoSizeExceptRows(ultraGHead, new UltraGridColumn[] { });
  855. ultraGHead.UpdateData();
  856. }
  857. else
  858. {
  859. slm_order_line_delivery.Rows.Clear();
  860. slm_order_line.Rows.Clear();
  861. }
  862. }
  863. private void bindSlmOrderLine(string orderPk)
  864. {
  865. if (ultraGHead.ActiveRow == null)
  866. {
  867. MessageBox.Show("请先选择合同头信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  868. return;
  869. }
  870. this.slm_order_line_delivery.Rows.Clear();
  871. this.slm_order_line.Clear();
  872. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.GetOrderLine", new Object[] { orderPk, statusFrom }, this.ob);
  873. DataTable deliveryDt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.GetOrderLineDelivery", new Object[] { orderPk, statusFrom }, this.ob);
  874. GridHelper.CopyDataToDatatable(ref dt, ref this.slm_order_line, true);
  875. GridHelper.CopyDataToDatatable(ref deliveryDt, ref this.slm_order_line_delivery, true);
  876. //不同颜色区分是否有效数据
  877. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  878. for (int i = 0; i < ultraGridOrderLine.Rows.Count; i++)
  879. {
  880. row = ultraGridOrderLine.Rows[i];
  881. //主表不可编辑
  882. DataRow[] dr = slm_order_line_delivery.Select("ORD_LN_PK = '" + row.Cells["ORD_LN_PK"].Value.ToString() + "'", "DELVRY_EDATE DESC");
  883. if (dr.Length > 0)
  884. {
  885. row.Cells["DELVRY_EDATE"].Value = dr[0]["DELVRY_EDATE"].ToString();
  886. }
  887. for (int k = 0; k < ultraGridOrderLine.Rows[i].Cells.Count; k++)
  888. {
  889. ultraGridOrderLine.Rows[i].Cells[k].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  890. }
  891. //从表不可编辑。
  892. string strStatus = "满足";
  893. UltraGridRow rowChind = null;
  894. ArrayList list = new ArrayList();
  895. for (int j = 0; j < ultraGridOrderLine.Rows[i].ChildBands[0].Rows.Count; j++)
  896. {
  897. rowChind = ultraGridOrderLine.Rows[i].ChildBands[0].Rows[j];
  898. if ("等待".Equals(rowChind.Cells["PRDCYC_MEET"].Value.ToString()))
  899. {
  900. list.Add("a");
  901. }
  902. else if ("不满足".Equals(rowChind.Cells["PRDCYC_MEET"].Value.ToString()))
  903. {
  904. list.Add("b");
  905. }
  906. }
  907. if (list.Count <= 0)
  908. {
  909. strStatus = "满足";
  910. }
  911. else
  912. {
  913. if (list.Contains("b"))
  914. {
  915. strStatus = "不满足";
  916. }
  917. else
  918. {
  919. strStatus = "等待";
  920. }
  921. }
  922. //STATUS,状态字段:
  923. row.Cells["STATUS"].Value = strStatus;
  924. row.Cells["PlineSelect"].Value = "产线确认";
  925. //交货量差
  926. // row.Cells["DELVRY_RANGE"].Value = "-" + row.Cells["DELVRY_RANGE_MIN"].Value.ToString() + row.Cells["DELVRY_RANGE_TPE"].Value.ToString() + "," + "+" +
  927. // row.Cells["DELVRY_RANGE_MAX"].Value.ToString() + row.Cells["DELVRY_RANGE_TPE"].Value.ToString();
  928. }
  929. //列自适应
  930. UltraGridColumn[] col = new UltraGridColumn[] { ultraGridOrderLine.DisplayLayout.Bands[0].Columns["LEN_DESC"], ultraGridOrderLine.DisplayLayout.Bands[0].Columns["STD_NAME"]
  931. , ultraGridOrderLine.DisplayLayout.Bands[0].Columns["PSC_DESC"] };
  932. GridHelper.RefreshAndAutoSizeExceptColumns(ultraGridOrderLine, col);
  933. ultraGridOrderLine.UpdateData();
  934. }
  935. /// <summary>
  936. /// 带出合同行信息和交货行信息。
  937. /// </summary>
  938. /// <param name="sender"></param>
  939. /// <param name="e"></param>
  940. private void ultraGHead_AfterRowActivate(object sender, EventArgs e)
  941. {
  942. if (ultraGHead.ActiveRow != null)
  943. {
  944. string orderPk = ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString();
  945. bindSlmOrderLine(orderPk);
  946. }
  947. dataTable2.Clear();
  948. dataTable1.Clear();
  949. }
  950. private void uchkOrderNo_CheckedChanged(object sender, EventArgs e)
  951. {
  952. utxtOrderNo.ReadOnly = !uchkOrderNo.Checked;
  953. }
  954. /// <summary>
  955. /// 创建日期是否有效
  956. /// </summary>
  957. /// <param name="sender"></param>
  958. /// <param name="e"></param>
  959. private void uchkDate_CheckedChanged(object sender, EventArgs e)
  960. {
  961. if (uchkDate.Checked)
  962. {
  963. udtStart.ReadOnly = false;
  964. udtEnd.ReadOnly = false;
  965. }
  966. else
  967. {
  968. udtStart.ReadOnly = true;
  969. udtEnd.ReadOnly = true;
  970. }
  971. }
  972. /// <summary>
  973. /// cellChange事件
  974. /// </summary>
  975. /// <param name="sender"></param>
  976. /// <param name="e"></param>
  977. private void ultraGridOrderLine_CellChange(object sender, CellEventArgs e)
  978. {
  979. if (e.Cell.Column.Key.Equals("DELVRY_EDATE"))
  980. return;
  981. ultraGridOrderLine.UpdateData();
  982. if (e.Cell.Column.Key.Equals("CHK"))
  983. {
  984. if (Convert.ToBoolean(e.Cell.Value))
  985. {
  986. for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
  987. {
  988. e.Cell.Row.Cells[i].Activation = Activation.AllowEdit;
  989. }
  990. }
  991. else
  992. {
  993. for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
  994. {
  995. if (e.Cell.Row.Cells[i].Column.Key.Equals("CHK"))
  996. {
  997. e.Cell.Row.Cells[i].Activation = Activation.AllowEdit;
  998. }
  999. else
  1000. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  1001. }
  1002. }
  1003. }
  1004. }
  1005. private string deliveryInsertPk = "";
  1006. private int deliveryInsertSeq = 0;
  1007. /// <summary>
  1008. /// 子表新增行时触发事件
  1009. /// </summary>
  1010. /// <param name="sender"></param>
  1011. /// <param name="e"></param>
  1012. private void ultraGridOrderLine_AfterRowInsert(object sender, RowEventArgs e)
  1013. {
  1014. // UltraGridRow ugr = ultraGridOrderLine.ActiveRow;
  1015. // if (ugr == null)
  1016. // return;
  1017. // if (!ugr.HasParent())
  1018. // return;
  1019. // if (Convert.ToBoolean(ugr.Cells["CHK"].Value))
  1020. // {
  1021. // for (int i = 0; i < ugr.Cells.Count; i++)
  1022. // {
  1023. // ugr.Cells[i].Activation = Activation.AllowEdit;
  1024. // }
  1025. // }
  1026. // else
  1027. // {
  1028. // for (int i = 0; i < ugr.Cells.Count; i++)
  1029. // {
  1030. // if (ugr.Cells[i].Column.Key.Equals("CHK"))
  1031. // ugr.Cells[i].Activation = Activation.AllowEdit;
  1032. // else
  1033. // ugr.Cells[i].Activation = Activation.ActivateOnly;
  1034. // }
  1035. // }
  1036. // string ordLnPk = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["ORD_LN_PK"].Value.ToString();
  1037. // //判断全局变量是否为空,不为空,则001+1,补0,组合,赋值即可。
  1038. // if ("".Equals(deliveryInsertPk))
  1039. // {
  1040. // //从数据库中去获取最大交货行主键,存入全局变量。35位+001
  1041. // string deliveryMaxPk = GetDeliveryMaxPk(ordLnPk);
  1042. // if ("".Equals(deliveryMaxPk))
  1043. // {
  1044. // deliveryInsertPk = ordLnPk;
  1045. // deliveryInsertSeq = 1;
  1046. // }
  1047. // else
  1048. // {
  1049. // deliveryInsertPk = ordLnPk;
  1050. // deliveryInsertSeq = Convert.ToInt32(deliveryMaxPk.Substring(35)) + 1;
  1051. // }
  1052. // }
  1053. // else
  1054. // {
  1055. // deliveryInsertSeq++;
  1056. // }
  1057. // string deliveryInsertSeqStr = deliveryInsertSeq.ToString();
  1058. // while (deliveryInsertSeqStr.Length < 3)
  1059. // {
  1060. // deliveryInsertSeqStr = "0" + deliveryInsertSeqStr;
  1061. // }
  1062. // //ORD_PK,ORD_LN_PK,ORD_LN_DLY_PK,DELIVERY_NO,DELVRY_EDATE,DELVRY_QTY,ORDER_UNIT,WGT_ESTMT,RECEIV_NO,RECEIV_NM
  1063. // e.Row.Cells["ORD_PK"].Value = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["ORD_PK"].Value;
  1064. // e.Row.Cells["ORD_LN_PK"].Value = ordLnPk;
  1065. // e.Row.Cells["ORD_LN_DLY_PK"].Value = ordLnPk + deliveryInsertSeqStr;
  1066. // e.Row.Cells["DELIVERY_NO"].Value = deliveryInsertSeqStr;
  1067. // e.Row.Cells["DELVRY_EDATE"].Value = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["DELVRY_EDATE"].Value;
  1068. // e.Row.Cells["DELVRY_QTY"].Value = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["DELVRY_QTY"].Value;
  1069. // e.Row.Cells["ORDER_UNIT"].Value = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["ORDER_UNIT"].Value;
  1070. // e.Row.Cells["WGT_ESTMT"].Value = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["WGT_ESTMT"].Value;
  1071. // e.Row.Cells["RECEIV_NO"].Value = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["RECEIV_NO"].Value;
  1072. // e.Row.Cells["RECEIV_NM"].Value = e.Row.ParentRow.ChildBands[0].Rows[0].Cells["RECEIV_NM"].Value;
  1073. }
  1074. /// <summary>
  1075. /// 获取当前选中合同行向下最大交货行主键
  1076. /// </summary>
  1077. /// <param name="ordLnPk"></param>
  1078. /// <returns></returns>
  1079. private string GetDeliveryMaxPk(string ordLnPk)
  1080. {
  1081. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.GetDeliveryMaxPk", new Object[] { ordLnPk }, this.ob);
  1082. return dt.Rows[0][0].ToString();
  1083. }
  1084. private void ultraGridOrderLine_AfterRowActivate(object sender, EventArgs e)
  1085. {
  1086. UltraGridRow ugr = this.ultraGridOrderLine.ActiveRow;
  1087. if (ugr != null)
  1088. {
  1089. if (ugr.HasParent())
  1090. {
  1091. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getMscPLPCLST", new object[] { ugr.Cells["ORD_LN_DLY_PK"].Value.ToString() }, this.ob);
  1092. GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
  1093. if (dt == null || dt.Rows.Count <= 0)
  1094. dataTable2.Clear();
  1095. if (Convert.ToBoolean(ugr.Cells["CHK"].Value))
  1096. {
  1097. for (int i = 0; i < ugr.Cells.Count; i++)
  1098. {
  1099. ugr.Cells[i].Activation = Activation.AllowEdit;
  1100. }
  1101. }
  1102. else
  1103. {
  1104. for (int i = 0; i < ugr.Cells.Count; i++)
  1105. {
  1106. if (ugr.Cells[i].Column.Key.Equals("CHK"))
  1107. {
  1108. ugr.Cells[i].Activation = Activation.AllowEdit;
  1109. }
  1110. else
  1111. ugr.Cells[i].Activation = Activation.ActivateOnly;
  1112. }
  1113. }
  1114. }
  1115. else
  1116. {
  1117. deliveryInsertPk = "";
  1118. deliveryInsertSeq = 0;
  1119. dataTable2.Clear();
  1120. dataTable1.Clear();
  1121. for (int i = 0; i < ugr.ChildBands[0].Rows.Count; i++)
  1122. {
  1123. ugr.ChildBands[0].Rows[i].Cells["CHK"].Value = true;
  1124. }
  1125. }
  1126. }
  1127. //ultraGridOrderLine.UpdateData();
  1128. }
  1129. /// <summary>
  1130. /// 交货期分析 这里曾经出现一个70行的合同 计算过久导致服务端与客户端失去联系 从而报错! 所以后来改为单行分析。
  1131. /// </summary>
  1132. private void DoCycle()
  1133. {
  1134. UltraGridRow ugr = ultraGHead.ActiveRow; //合同头GRID
  1135. if (ugr == null)
  1136. {
  1137. MessageUtil.ShowWarning("请选择您要分析的合同!");
  1138. return;
  1139. }
  1140. this.Cursor = Cursors.WaitCursor;
  1141. string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
  1142. foreach (UltraGridRow row in ultraGridOrderLine.Rows)
  1143. {
  1144. string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString();
  1145. CoreClientParam ccp = new CoreClientParam();
  1146. ccp.IfShowErrMsg = false;
  1147. ccp.ServerName = "com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview";
  1148. ccp.MethodName = "castWell";
  1149. ccp.ServerParams = new object[] { ordPk, ordLnPk, CustomInfo };
  1150. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1151. if (ccp != null)
  1152. {
  1153. if (ccp.ReturnCode == -1)
  1154. {
  1155. MessageBox.Show(ccp.ReturnInfo, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1156. row.Activate();
  1157. row.ExpandAll();
  1158. this.Cursor = Cursors.Default;
  1159. return;
  1160. }
  1161. }
  1162. }
  1163. doQuery();
  1164. foreach (UltraGridRow uRow in ultraGHead.Rows)
  1165. {
  1166. if (uRow.Cells["ORD_PK"].Value.ToString().Equals(ordPk))
  1167. {
  1168. uRow.Activate();
  1169. foreach (UltraGridRow uLineRow in ultraGridOrderLine.Rows)
  1170. {
  1171. uLineRow.ExpandAll();
  1172. }
  1173. break;
  1174. }
  1175. }
  1176. this.Cursor = Cursors.Default;
  1177. }
  1178. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  1179. {
  1180. UltraGridRow ugr = ultraGrid1.ActiveRow;
  1181. UltraGridRow ugrLine = ultraGridOrderLine.ActiveRow;
  1182. UltraGridRow ugrHead = ultraGHead.ActiveRow;
  1183. if (ugr == null)
  1184. {
  1185. dataTable2.Clear();
  1186. }
  1187. if (ugr == null || ugrLine == null || ugrHead == null)
  1188. return;
  1189. string designKey = ugrLine.Cells["DESGIN_KEY"].Value.ToString();
  1190. string processCode = ugr.Cells["PROCESS_CODE"].Value.ToString();
  1191. string saleOrg = ugrHead.Cells["SALE_ORG"].Value.ToString();
  1192. string time = ugr.Cells["REVIEW_ASK"].Value.ToString();
  1193. if (time == "")
  1194. return;
  1195. DateTime date = Convert.ToDateTime(time);
  1196. int year = date.Year;
  1197. int month = date.Month;
  1198. string wellCode = "";
  1199. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getWellCode", new object[] { designKey, processCode }, this.ob);
  1200. if (dt != null && dt.Rows.Count > 0)
  1201. {
  1202. wellCode = dt.Rows[0][0].ToString();
  1203. }
  1204. else
  1205. {
  1206. MessageUtil.ShowWarning("找不到对应的产能井!");
  1207. return;
  1208. }
  1209. //DesignKey -- Wellcode ---消耗信息,月产值信息
  1210. DataTable wellDt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getWellDetail", new object[] { wellCode, saleOrg, year, month }, this.ob);
  1211. GridHelper.CopyDataToDatatable(ref wellDt, ref dataTable2, true);
  1212. }
  1213. private void ultraGridOrderLine_ClickCellButton(object sender, CellEventArgs e)
  1214. {
  1215. UltraGridRow ugr = ultraGridOrderLine.ActiveRow;
  1216. if (ugr == null || ugr.HasParent())
  1217. return;
  1218. if (e.Cell.Column.Key.Equals("PlineSelect"))
  1219. {
  1220. string ordLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString().Trim();
  1221. frmPlineSelected fps = new frmPlineSelected(ordLnPk, this.ob);
  1222. fps.ShowDialog();
  1223. }
  1224. }
  1225. private void utxtOrderNo_KeyPress(object sender, KeyPressEventArgs e)
  1226. {
  1227. if (e.KeyChar == 13)
  1228. doQuery();
  1229. }
  1230. /// <summary>
  1231. /// 查询出技术评审通过的合同头信息。
  1232. /// </summary>
  1233. private void ChgeQuery()
  1234. {
  1235. string orderNo = utxtOrderNo.Text.Trim();
  1236. string isDeliveryD = "";
  1237. if (uchkIsDeliveryD.Checked)
  1238. {
  1239. isDeliveryD = "0";
  1240. }
  1241. else
  1242. {
  1243. isDeliveryD = "1";
  1244. }
  1245. string orderStart = "1000-01-01 00:00:00";
  1246. string orderEnd = "9999-12-31 23:59:59";
  1247. TimeSpan ts = udtEnd.DateTime.Subtract(udtStart.DateTime);
  1248. if (ts.TotalDays < 0)
  1249. {
  1250. MessageBox.Show("创建开始日期必须小于创建结束日期。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1251. return;
  1252. }
  1253. string valid = "1";
  1254. if (chkValid.Checked)
  1255. {
  1256. valid = "0";
  1257. }
  1258. else
  1259. {
  1260. valid = "1";
  1261. }
  1262. if (uchkDate.Checked)
  1263. {
  1264. orderStart = udtStart.DateTime.ToShortDateString() + " 00:00:01";
  1265. orderEnd = udtEnd.DateTime.ToShortDateString() + " 23:59:59";
  1266. }
  1267. string[] arr = this.dataArr;
  1268. string supp = this.CustomInfo.Contains("120504") ? "120504" : "";
  1269. if (orderNo.StartsWith("TH"))
  1270. {
  1271. supp = "120504";
  1272. }
  1273. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.doQuery", new Object[] { orderNo, isDeliveryD, orderStart, orderEnd, valid, statusFrom, arr, supp }, this.ob);
  1274. GridHelper.CopyDataToDatatable(ref dt, ref this.orderHeadDt, true);
  1275. dataTable1.Clear();
  1276. string status = "满足";
  1277. string status1 = "不满足";
  1278. string status2 = "等待";
  1279. if (dt.Rows.Count > 0)
  1280. {
  1281. foreach (UltraGridRow row in ultraGHead.Rows)
  1282. {
  1283. if ("1".Equals(row.Cells["ISDELIVERYD"].Value))
  1284. {
  1285. row.Cells["ISDELIVERYD"].Value = status;
  1286. }
  1287. else if ("2".Equals(row.Cells["ISDELIVERYD"].Value))
  1288. {
  1289. row.Cells["ISDELIVERYD"].Value = status2;
  1290. }
  1291. else
  1292. {
  1293. row.Cells["ISDELIVERYD"].Value = status1;
  1294. }
  1295. if ("1".Equals(row.Cells["CUSTOMER_MODEL_FL"].Value))
  1296. {
  1297. row.Cells["CUSTOMER_MODEL_FL"].Value = status;
  1298. }
  1299. else
  1300. {
  1301. row.Cells["CUSTOMER_MODEL_FL"].Value = status1;
  1302. }
  1303. if ("1".Equals(row.Cells["VALIDFLAG"].Value))
  1304. {
  1305. row.Cells["VALIDFLAG"].Value = true;
  1306. row.Appearance.ForeColor = Color.Black;
  1307. }
  1308. else
  1309. {
  1310. row.Cells["VALIDFLAG"].Value = false;
  1311. row.Appearance.ForeColor = Color.Red;
  1312. }
  1313. }
  1314. //列自适应
  1315. GridHelper.RefreshAndAutoSizeExceptRows(ultraGHead, new UltraGridColumn[] { });
  1316. ultraGHead.UpdateData();
  1317. }
  1318. else
  1319. {
  1320. slm_order_line_delivery.Rows.Clear();
  1321. slm_order_line.Rows.Clear();
  1322. }
  1323. }
  1324. }
  1325. }