frmOrderReports.cs 74 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700
  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.Mes.Client.Comm.Format;
  14. using System.Collections;
  15. using Core.Mes.Client.Comm.Tool;
  16. using Core.Mes.Client.Comm;
  17. using Infragistics.Win.UltraWinEditors;
  18. using System.Reflection;
  19. using Core.StlMes.Client.SaleOrder.Dialog;
  20. namespace Core.StlMes.Client.SaleOrder.ReviewForm
  21. {
  22. public partial class frmOrderReports : Core.StlMes.Client.Sale.Common.FrmStyleBase.FrmUIBase
  23. {
  24. public frmOrderReports()
  25. {
  26. InitializeComponent();
  27. this.IsLoadUserView = true;
  28. }
  29. private string BALNCE_PRICE_STS = "BALNCE_PRICE_STS";
  30. private string BALNCE_PRICE_ORG_STS = "BALNCE_PRICE_ORG_STS";
  31. /// <summary>
  32. /// 用于查询利库数据的参数
  33. /// </summary>
  34. ArrayList listLiku = new ArrayList();
  35. /// <summary>
  36. /// 重写基类toolBar方法
  37. /// </summary>
  38. /// <param name="sender"></param>
  39. /// <param name="ToolbarKey"></param>
  40. public override void ToolBar_Click(object sender, string ToolbarKey)
  41. {
  42. switch (ToolbarKey)
  43. {
  44. case "doQuery":
  45. doQuery();
  46. break;
  47. case "doReport":
  48. doReport();
  49. break;
  50. case "doClearReport":
  51. doClearReport();
  52. break;
  53. case "Export":
  54. ExportData();
  55. break;
  56. case "LiKu":
  57. ReportLiKu();
  58. break;
  59. case "CheckNLK":
  60. CheckNLK();
  61. break;
  62. case "CheckLK":
  63. CheckLK();
  64. break;
  65. case "UpdatePresentStatus":
  66. UpdatePresentStatus();
  67. break;
  68. case "doClose":
  69. this.Close();
  70. break;
  71. }
  72. }
  73. private void UpdatePresentStatus()
  74. {
  75. ultraGridReport.UpdateData();
  76. UltraGridRow[] dr = GridHelper.GetRowsWithKey(ultraGridReport, new string[] { "CHK" }, new string[] { "True" });
  77. if (dr.Length <= 0)
  78. {
  79. MessageBox.Show("请先选择交货行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  80. return;
  81. }
  82. //这里只是先在界面判断一下状态,后台会实时查询状态的。
  83. foreach (UltraGridRow urow in ultraGridReport.Rows)
  84. {
  85. if (Convert.ToBoolean(urow.Cells["CHK"].Value))
  86. {
  87. if (urow.Cells["PORDERSTATUS"].Value.ToString() != "未提报")
  88. {
  89. MessageBox.Show("您选择的记录存在已经被处理的状态,不能修改提报状态,\r\n只有[未提报]可以修改提报状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  90. urow.Activate();
  91. return;
  92. }
  93. if (urow.Cells["ORDERFROMCODE"].Value.ToString() != "100102")
  94. {
  95. MessageBox.Show("只有[国际贸易部]可以修改提报状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  96. urow.Activate();
  97. return;
  98. }
  99. }
  100. }
  101. if (MessageBox.Show("是否确认修改提报状态选择的记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  102. {
  103. return;
  104. }
  105. ArrayList list = new ArrayList();
  106. foreach (UltraGridRow urow in ultraGridReport.Rows)
  107. {
  108. if (Convert.ToBoolean(urow.Cells["CHK"].Value))
  109. {
  110. ArrayList parm = new ArrayList();
  111. string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
  112. parm.Add(ordLnDlyPk);
  113. parm.Add(urow.Cells["PRESENT_STATUS"].Value.ToString());
  114. list.Add(parm);
  115. }
  116. }
  117. CoreClientParam ccp = new CoreClientParam();
  118. ccp.IfShowErrMsg = false;
  119. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
  120. ccp.MethodName = "UpdatePresentStatus";
  121. ccp.ServerParams = new Object[] { list };
  122. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  123. if (ccp == null)
  124. return;
  125. else
  126. {
  127. if (ccp.ReturnCode == -1)
  128. {
  129. MessageBox.Show(ccp.ReturnObject.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  130. return;
  131. }
  132. }
  133. MessageBox.Show("修改完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  134. doQuery();
  135. }
  136. /// <summary>
  137. /// 评审不利库的原因
  138. /// </summary>
  139. private void CheckNLK()
  140. {
  141. ultraGridReport.UpdateData();
  142. UltraGridRow ugr = ultraGridReport.ActiveRow;
  143. if (ugr == null)
  144. {
  145. MessageUtil.ShowWarning("请选择您要审核不利库愿意的交货行!");
  146. return;
  147. }
  148. if (ugr.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
  149. {
  150. MessageUtil.ShowWarning("您选择的记录已经提报完毕,此功能只针对“生效状态”的交货行!");
  151. ugr.Activate();
  152. return;
  153. }
  154. string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
  155. string str = "合同号:" + ugr.Cells["ORDER_NO"].Value.ToString() + "/" + ugr.Cells["ORDER_SEQ"].Value.ToString() + " 交货行号:" + ugr.Cells["DELIVERY_NO"].Value.ToString();
  156. DataTable lkDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryLKFlag", new object[] { ordLnDlyPk }, this.ob);
  157. if (lkDt != null && lkDt.Rows.Count > 0)
  158. {
  159. string lkFlag = lkDt.Rows[0]["IS_LIKU"].ToString2();
  160. string lkCheck = lkDt.Rows[0]["NLK_CHECK"].ToString2();
  161. if (lkFlag == "1")
  162. {
  163. if (lkCheck != "L")
  164. {
  165. MessageUtil.ShowWarning("您选择的交货行没有利库原因可审核!");
  166. return;
  167. }
  168. }
  169. else
  170. {
  171. MessageUtil.ShowWarning("您选择的交货行没有利库原因可审核!");
  172. return;
  173. }
  174. }
  175. else
  176. {
  177. MessageUtil.ShowWarning("交货行已不存在,请刷新数据!");
  178. return;
  179. }
  180. FrmCheckNLK fcn = new FrmCheckNLK(ordLnDlyPk, this.ob);
  181. fcn.TipStr = str;
  182. fcn.ShowDialog();
  183. }
  184. /// <summary>
  185. /// 对已经利库的数据进行评审
  186. /// </summary>
  187. private void CheckLK()
  188. {
  189. ultraGridReport.UpdateData();
  190. UltraGridRow ugr = ultraGridReport.ActiveRow;
  191. if (ugr == null)
  192. {
  193. MessageUtil.ShowWarning("请选择您要利库的交货行!");
  194. return;
  195. }
  196. if (ugr.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
  197. {
  198. MessageUtil.ShowWarning("您选择的记录已经提报完毕,此功能只能对“生效状态”的交货行利库!");
  199. ugr.Activate();
  200. return;
  201. }
  202. string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
  203. string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
  204. if (!IsNeedCheckLK(ordLnDlyPk))
  205. {
  206. MessageUtil.ShowWarning("您选择的交货行没有利库记录需要审核!");
  207. ugr.Activate();
  208. return;
  209. }
  210. FrmReportLiKu frl = new FrmReportLiKu(this.ob, "2");
  211. frl.DataArr = this.ValidDataPurviewIds;
  212. frl.ListParm = listLiku;
  213. frl.OrdSaleOrg = saleOrg;
  214. frl.OrdLnDlyPk = ordLnDlyPk;
  215. frl.FormClosingQueryHandle += frl_FormClosingQueryHandle;
  216. frl.WindowState = FormWindowState.Maximized;
  217. frl.StartPosition = FormStartPosition.CenterScreen;
  218. frl.ShowDialog();
  219. }
  220. /// <summary>
  221. /// 导出
  222. /// </summary>
  223. private void ExportData()
  224. {
  225. GridHelper.ulGridToExcel(ultraGridReport, "提报数据");
  226. }
  227. /// <summary>
  228. /// 取消提报
  229. /// </summary>
  230. private void doClearReport()
  231. {
  232. ultraGridReport.UpdateData();
  233. UltraGridRow[] dr = GridHelper.GetRowsWithKey(ultraGridReport, new string[] { "CHK" }, new string[] { "True" });
  234. if (dr.Length <= 0)
  235. {
  236. MessageBox.Show("请先选择交货行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  237. return;
  238. }
  239. //这里只是先在界面判断一下状态,后台会实时查询状态的。
  240. foreach (UltraGridRow urow in ultraGridReport.Rows)
  241. {
  242. if (Convert.ToBoolean(urow.Cells["CHK"].Value))
  243. {
  244. if (urow.Cells["PORDERSTATUS"].Value.ToString() == "未提报")
  245. {
  246. MessageBox.Show("您选择的记录还没有提报,不能取消提报!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  247. urow.Activate();
  248. return;
  249. }
  250. else if (urow.Cells["PORDERSTATUS"].Value.ToString() != "待接收")
  251. {
  252. MessageBox.Show("您选择的记录存在已经被处理的状态,不能取消提报,\r\n只有[待接收]可以取消提报!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  253. urow.Activate();
  254. return;
  255. }
  256. }
  257. }
  258. if (MessageBox.Show("是否确认取消提报选择的记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  259. {
  260. return;
  261. }
  262. ArrayList list = new ArrayList();
  263. foreach (UltraGridRow urow in ultraGridReport.Rows)
  264. {
  265. if (Convert.ToBoolean(urow.Cells["CHK"].Value))
  266. {
  267. ArrayList parm = new ArrayList();
  268. string ordPk = urow.Cells["ORD_PK"].Value.ToString();
  269. string ordLnPk = urow.Cells["ORD_LN_PK"].Value.ToString();
  270. string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
  271. parm.Add(ordPk);
  272. parm.Add(ordLnPk);
  273. parm.Add(ordLnDlyPk);
  274. parm.Add(UserInfo.GetUserName());
  275. list.Add(parm);
  276. }
  277. }
  278. CoreClientParam ccp = new CoreClientParam();
  279. ccp.IfShowErrMsg = false;
  280. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
  281. ccp.MethodName = "doClearReport";
  282. ccp.ServerParams = new Object[] { list };
  283. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  284. if (ccp == null)
  285. return;
  286. else
  287. {
  288. if (ccp.ReturnCode == -1)
  289. {
  290. MessageBox.Show(ccp.ReturnObject.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  291. return;
  292. }
  293. list = new ArrayList();
  294. foreach (UltraGridRow urow in ultraGridReport.Rows)
  295. {
  296. if (Convert.ToBoolean(urow.Cells["CHK"].Value))
  297. {
  298. if (urow.Cells["ORDERFROMCODE"].Value.ToString() != "100102")
  299. {
  300. continue;
  301. }
  302. ArrayList parm = new ArrayList();
  303. string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
  304. parm.Add(ordLnDlyPk);
  305. parm.Add(urow.Cells["PRESENT_STATUS"].Value.ToString());
  306. list.Add(parm);
  307. }
  308. }
  309. if (list.Count > 0)
  310. {
  311. ccp = new CoreClientParam();
  312. ccp.IfShowErrMsg = false;
  313. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
  314. ccp.MethodName = "UpdatePresentStatus";
  315. ccp.ServerParams = new Object[] { list };
  316. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  317. }
  318. }
  319. MessageBox.Show("取消提报完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  320. doQuery();
  321. }
  322. /// <summary>
  323. /// 获取当前选中交货行数据库中的状态
  324. /// </summary>
  325. /// <param name="ordPk"></param>
  326. /// <param name="ordLnPk"></param>
  327. /// <param name="ordLnDlyPk"></param>
  328. /// <returns></returns>
  329. private string GetDeliverySts(string ordPk, string ordLnPk, string ordLnDlyPk)
  330. {
  331. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.GetDeliverySts", new Object[] { ordPk, ordLnPk, ordLnDlyPk }, this.ob);
  332. return dt.Rows[0]["DELIVERY_STATUS"].ToString();
  333. }
  334. /// <summary>
  335. /// 提报
  336. /// </summary>
  337. private void doReport()
  338. {
  339. ultraGridReport.UpdateData();
  340. ArrayList craft = new ArrayList();
  341. UltraGridRow[] dr = GridHelper.GetRowsWithKey(ultraGridReport, new string[] { "CHK" }, new string[] { "True" });
  342. if (dr.Length <= 0)
  343. {
  344. MessageBox.Show("请先选择交货行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  345. return;
  346. }
  347. DataTable timeDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getServerTime", null, this.ob);
  348. int mon = Convert.ToInt16(timeDt.Rows[0][0].ToString().Substring(5, 2));
  349. int year = Convert.ToDateTime(timeDt.Rows[0][0].ToString()).Year;
  350. ArrayList list = new ArrayList();
  351. UltraGridRow[] rows = ultraGridReport.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString().ToUpper() == "TRUE").ToArray();
  352. foreach (UltraGridRow urow in rows)
  353. {
  354. string ordStr = "合同号:" + urow.Cells["ORDER_NO"].Value.ToString() + "/" + urow.Cells["ORDER_SEQ"].Value.ToString() + " 交货行号:" + urow.Cells["DELIVERY_NO"].Value.ToString();
  355. if (urow.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
  356. {
  357. MessageUtil.ShowWarning(ordStr + "已经提报完毕,不必重复提报!");
  358. urow.Activate();
  359. return;
  360. }
  361. //合同行被锁定的 交货行不能提报!
  362. DataTable lockDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getOrderLineLock", new object[] { urow.Cells["ORD_LN_PK"].Value.ToString() }, this.ob);
  363. if (lockDt != null && lockDt.Rows.Count > 0)
  364. {
  365. if (lockDt.Rows[0][0].ToString() == "1")
  366. {
  367. MessageUtil.ShowWarning(ordStr + "所在的合同行已被锁定,合同处于合同变更中,无法提报!");
  368. return;
  369. }
  370. }
  371. else
  372. {
  373. MessageUtil.ShowWarning(ordStr + "所在的合同行已不存在!");
  374. return;
  375. }
  376. //合同行提报锁定的!
  377. DataTable lockDt1 = ServerHelper.GetData("com.steering.pss.sale.order.DAL.SlmOrderLineLockDAL.getOrderLineLock", new object[] { urow.Cells["ORD_LN_PK"].Value.ToString() }, this.ob);
  378. if (lockDt1 != null && lockDt1.Rows.Count > 0)
  379. {
  380. if (lockDt1.Rows[0][0].ToString() == "1")
  381. {
  382. MessageUtil.ShowWarning(ordStr + "该合同行提报排产被锁定请重新审批合同价格!不允许提报排产! ");
  383. return;
  384. }
  385. }
  386. string ordPk = urow.Cells["ORD_PK"].Value.ToString();
  387. //现货合同不能提报
  388. string ordType = "";
  389. DataTable ordTypDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getOrderType", new object[] { ordPk }, this.ob);
  390. if (ordTypDt != null && ordTypDt.Rows.Count > 0)
  391. {
  392. ordType = ordTypDt.Rows[0][0].ToString();
  393. }
  394. if (ordType.Equals("120102") || ordType.Equals("120105"))
  395. {
  396. MessageUtil.ShowWarning(ordStr + "的合同类型是现货合同或者贸易合同,无法提报!");
  397. urow.Activate();
  398. return;
  399. }
  400. else if (ordType.Equals("120103")) //研发合同 所有生效方可提报
  401. {
  402. DataTable yfDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getAllEffect", new object[] { ordPk }, this.ob);
  403. if(yfDt!=null && yfDt.Rows.Count>0)
  404. {
  405. MessageUtil.ShowWarning(ordStr + "所在的合同下,存在尚未生效的合同行,只有整个合同都生效了,方可提报!");
  406. urow.Activate();
  407. return;
  408. }
  409. }
  410. if (urow.Cells["REVIEW_ASK_END"].Value == null || urow.Cells["REVIEW_ASK_END"].Value.ToString() == "")
  411. {
  412. MessageUtil.ShowWarning(ordStr + "轧制月份为空,不能提报,可以尝试退回交货期进行交货期分析\n或者进行交货行变更");
  413. return;
  414. }
  415. var DateSum = new List<string>();
  416. for (var date = Convert.ToDateTime(timeDt.Rows[0][0].ToString()); date < Convert.ToDateTime(timeDt.Rows[0][0].ToString()).AddMonths(12); date = date.AddMonths(1))
  417. {
  418. DateSum.Add(date.ToString("yyyy-MM"));
  419. }
  420. if (!DateSum.Contains(urow.Cells["REVIEW_ASK_END"].Value.ToString()))
  421. {
  422. MessageUtil.ShowWarning(ordStr + "的记录轧制月份不在(" + string.Join(",", DateSum) + ")月,不能提报!");
  423. urow.Activate();
  424. return;
  425. }
  426. //if (mon < 11)
  427. //{
  428. // if (Convert.ToInt16(urow.Cells["REVIEW_ASK_END"].Value.ToString().Substring(5, 2)) < mon
  429. // || Convert.ToInt16(urow.Cells["REVIEW_ASK_END"].Value.ToString().Substring(5, 2)) > mon + 2)
  430. // {
  431. // int mon1 = mon + 1;
  432. // int mon2 = mon + 2;
  433. // MessageUtil.ShowWarning(ordStr + "的记录轧制月份不在(" + mon + "," + mon1 + "," + mon2 + ")月,不能提报!");
  434. // urow.Activate();
  435. // return;
  436. // }
  437. //}
  438. //else
  439. //{
  440. // int cmon = Convert.ToDateTime(urow.Cells["REVIEW_ASK_END"].Value.ToString()).Month; //10 1月
  441. // int cyear = Convert.ToDateTime(urow.Cells["REVIEW_ASK_END"].Value.ToString()).Year; // 2015 2016年
  442. // DateTime time = new DateTime(cyear, cmon, 1);
  443. // DateTime time1 = new DateTime(year, mon, 1); //本月
  444. // DateTime time2 = new DateTime(); //下下月
  445. // int cmon1 = mon + 1;
  446. // int cmon2 = mon + 2;
  447. // string cmon1str = "";
  448. // string cmon2str = "";
  449. // if (cmon1 > 12)
  450. // {
  451. // cmon1str = (year + 1).ToString() + "年" + (cmon1 - 12).ToString();
  452. // }
  453. // else
  454. // {
  455. // cmon1str = (year).ToString() + "年" + (cmon1).ToString();
  456. // }
  457. // if (cmon2 > 12)
  458. // {
  459. // cmon2str = (year + 1).ToString() + "年" + (cmon2 - 12).ToString();
  460. // time2 = new DateTime(year + 1, cmon2 - 12, 1);
  461. // }
  462. // else
  463. // {
  464. // cmon2str = (year).ToString() + "年" + (cmon2).ToString();
  465. // time2 = new DateTime(year, cmon2, 1);
  466. // }
  467. // if (time < time1 || time > time2)
  468. // {
  469. // MessageUtil.ShowWarning(ordStr + "的记录轧制月份不在(" + year.ToString() + "年" + mon + "," + cmon1str + "," + cmon2str + ")月,不能提报!");
  470. // urow.Activate();
  471. // return;
  472. // }
  473. //}
  474. string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
  475. string ordLnPk = urow.Cells["ORD_LN_PK"].Value.ToString();
  476. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getPrdcrIsNull", new object[] { ordLnPk }, this.ob);
  477. if (dt != null && dt.Rows.Count > 0)
  478. {
  479. MessageUtil.ShowWarning(ordStr + "的合同没有维护监制要求!");
  480. urow.Activate();
  481. return;
  482. }
  483. DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getPrdcrNotNull", new object[] { ordLnPk }, this.ob);
  484. if (dt1 != null && dt1.Rows.Count > 0)
  485. {
  486. MessageUtil.ShowWarning(ordStr + "的合同,维护的监制没有生效!");
  487. urow.Activate();
  488. return;
  489. }
  490. if (urow.Cells["ORDERFROMCODE"].Value.ToString() == "100102" && urow.Cells["PRESENT_STATUS"].Value.ToString() != "可提报")
  491. {
  492. MessageUtil.ShowWarning(ordStr + "的合同为不可提报状态,不能提报!");
  493. urow.Activate();
  494. return;
  495. }
  496. listLiku = new ArrayList();
  497. listLiku.Add(urow.Cells["PRODUCCODE"].Value.ToString());
  498. listLiku.Add(urow.Cells["STEELCODE"].Value.ToString());
  499. listLiku.Add(urow.Cells["SPEC_CODE"].Value.ToString());
  500. listLiku.Add(urow.Cells["MODEL_CODE"].Value.ToString());
  501. listLiku.Add(urow.Cells["STD_STYLE_DESC"].Value.ToString());
  502. listLiku.Add(urow.Cells["STD_STYLE_DESC"].Value.ToString());
  503. //判断是否已经选择是否利库
  504. bool isSelected = false;
  505. DataTable lkDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryLKFlag", new object[] { ordLnDlyPk }, this.ob);
  506. if (lkDt != null && lkDt.Rows.Count > 0)
  507. {
  508. string lkFlag = lkDt.Rows[0]["IS_LIKU"].ToString2();
  509. string lkCheck = lkDt.Rows[0]["NLK_CHECK"].ToString2();
  510. if (lkFlag == "1" && this.CustomInfo.Equals("120504"))
  511. {
  512. isSelected = true;
  513. if (lkCheck == "L")
  514. {
  515. MessageUtil.ShowWarning(ordStr + "请先审核放弃利库的原因!");
  516. return;
  517. }
  518. }
  519. }
  520. else
  521. {
  522. MessageUtil.ShowWarning(ordStr + "交货行已不存在,请刷新数据!");
  523. return;
  524. }
  525. //是否有成品库存
  526. bool hasMat = false;
  527. if (!isSelected && this.CustomInfo.Equals("120504"))
  528. {
  529. string saleOrg = urow.Cells["ORDERFROMCODE"].Value.ToString();
  530. //是否有利库的资源 然后判断交货行有没有利库
  531. DataTable matDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryIsExistsMat", new object[] { listLiku, saleOrg, urow.Cells["SUPPLY_UNIT_CODE"].Value.ToString() }, this.ob);
  532. if (matDt != null && matDt.Rows.Count > 0)
  533. {
  534. if (Convert.ToInt16(matDt.Rows[0][0].ToString3()) > 0)
  535. {
  536. hasMat = true;
  537. }
  538. }
  539. DataTable liKuDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryIsLiKu", new object[] { ordLnDlyPk }, this.ob);
  540. if (liKuDt != null && liKuDt.Rows.Count > 0)
  541. {
  542. if (hasMat)
  543. {
  544. if (Convert.ToDecimal(liKuDt.Rows[0][0].ToString3()) < Convert.ToDecimal(urow.Cells["ORDERWEIGHT"].Value))
  545. {
  546. string str = ordStr + " 存在可利库的成品信息!\n请问是否利库?";
  547. if (MessageUtil.ShowYesNoAndQuestion(str) == DialogResult.No)
  548. {
  549. //更新交货行状态 同时保存原因
  550. dlgReviewMemo dlg = new dlgReviewMemo();
  551. dlg.ReviewSatus = "请输入有库存而不利库的原因";
  552. dlg.ReviewFlag = 4;
  553. dlg.ShowDialog();
  554. if (dlg.DialogResult == DialogResult.OK)
  555. {
  556. string reviewMemo = dlg.ReviewMemo;
  557. int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderReport.updateLKFlag", new object[] { ordLnDlyPk, reviewMemo }, this.ob);
  558. if (count > 0)
  559. {
  560. MessageUtil.ShowTips("请审核不利库的原因!");
  561. return;
  562. }
  563. }
  564. return;
  565. }
  566. else
  567. {
  568. MessageUtil.ShowTips("请点击利库按钮进行利库操作!");
  569. }
  570. return;
  571. }
  572. }
  573. }
  574. }
  575. //判断是否利库了 但利库数据尚未审核的
  576. if (IsNeedCheckLK(ordLnDlyPk) && this.CustomInfo.Equals("120504"))
  577. {
  578. MessageUtil.ShowWarning(ordStr + "存在没有审核的利库数据,请审核!");
  579. return;
  580. }
  581. DataRow row = null;
  582. DataRow[] dRow = SLM_ORDER_LINE_DELIVERY.Select("ORD_LN_DLY_PK = '" + ordLnDlyPk + "'");
  583. row = dRow[0];
  584. //for (int i = 0; i < SLM_ORDER_LINE_DELIVERY.Rows.Count; i++)
  585. //{
  586. // if (ordLnDlyPk.Equals(SLM_ORDER_LINE_DELIVERY.Rows[i]["ORD_LN_DLY_PK"].ToString()))
  587. // {
  588. // row = SLM_ORDER_LINE_DELIVERY.Rows[i];
  589. // break;
  590. // }
  591. //}
  592. ReportOrderLineDelivery reportModel = new ReportOrderLineDelivery();
  593. reportModel.OrdPk = row["ORD_PK"].ToString();
  594. reportModel.OrdLnPk = row["ORD_LN_PK"].ToString();
  595. // ORD_LN_DLY_PK VARCHAR2(40) NOT NULL,
  596. reportModel.OrdLnDlyPk = row["ORD_LN_DLY_PK"].ToString();
  597. // ORDER_NO VARCHAR2(20),
  598. reportModel.OrderNo = row["ORDER_NO"].ToString();
  599. // ORDER_SEQ VARCHAR2(3),
  600. reportModel.OrderSeq = row["ORDER_SEQ"].ToString();
  601. // DELIVERY_NO VARCHAR2(3),
  602. reportModel.DeliveryNo = row["DELIVERY_NO"].ToString();
  603. // PRD_CLS VARCHAR2(20),
  604. reportModel.PrdCls = row["PRD_CLS"].ToString();
  605. // PRODUCCODE VARCHAR2(20),
  606. reportModel.Produccode = row["PRODUCCODE"].ToString();
  607. // PRODUCNAME VARCHAR2(100),
  608. reportModel.Producname = row["PRODUCNAME"].ToString();
  609. // STD_CODE VARCHAR2(20),
  610. reportModel.StdCode = row["STD_CODE"].ToString();
  611. // STD_NAME VARCHAR2(200),
  612. reportModel.StdName = row["STD_NAME"].ToString();
  613. // STEELCODE VARCHAR2(10),
  614. reportModel.Steelcode = row["STEELCODE"].ToString();
  615. // STEELNAME VARCHAR2(100),
  616. reportModel.Steelname = row["STEELNAME"].ToString();
  617. // SPEC_CODE VARCHAR2(20),
  618. reportModel.SpecCode = row["SPEC_CODE"].ToString();
  619. string specCode = row["SPEC_CODE"].ToString();
  620. // SPEC_NAME VARCHAR2(100),
  621. reportModel.SpecName = row["SPEC_NAME"].ToString();
  622. // OUTDIAMETER外径
  623. reportModel.Outdiameter = row["OUTDIAMETER"].ToString();
  624. // WALLTHICK NUMBER(10,3),
  625. reportModel.Wallthick = row["WALLTHICK"].ToString();
  626. // LEN_NO VARCHAR2(20),
  627. reportModel.LenNo = row["LEN_NO"].ToString();
  628. // LENGTHMAX NUMBER(10,3),
  629. reportModel.Lengthmax = row["LENGTHMAX"].ToString();
  630. // LENGTHMIN NUMBER(10,3),
  631. reportModel.Lengthmin = row["LENGTHMIN"].ToString();
  632. // LENGTHDISC VARCHAR2(100),
  633. reportModel.Lengthdisc = row["LENGTHDISC"].ToString();
  634. // MODEL_CODE VARCHAR2(20),
  635. reportModel.ModelCode = row["MODEL_CODE"].ToString();
  636. // MODEL_DESC VARCHAR2(100),
  637. reportModel.ModelDesc = row["MODEL_DESC"].ToString();
  638. // ORDER_UNIT VARCHAR2(20),
  639. reportModel.OrderUnit = row["ORDER_UNIT"].ToString();
  640. string ordUnit = row["ORDER_UNIT"].ToString();
  641. string elimNum = ""; //脱单量
  642. string elimWgt = "";
  643. string elimLen = "";
  644. string chargeNum = ""; //利库量
  645. string chargeWgt = "";
  646. string chargeLen = "";
  647. decimal ordQty = Convert.ToDecimal(row["DELVRY_QTY"].ToString()); //交货行的交货量
  648. // reportModel.OrderQty = row["DELVRY_QTY"].ToString(); 以前的提报量
  649. //reportModel.Orderweight = row["ORDERWEIGHT"].ToString(); 估算重量
  650. //reportModel.Totlength = row["TOTLENGTH"].ToString(); 保总长
  651. decimal repQty = 0; //提报量 订单量-利库量+脱单量
  652. decimal estWgt = 0; //估算重量
  653. decimal sureLen = 0; //保总长
  654. if ("120504".Equals(this.CustomInfo.ToString()))
  655. {
  656. //新增 利库量 脱单量的处理逻辑
  657. DataTable dt2 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getProcessOrderInfo", new object[] { row["ORD_LN_DLY_PK"].ToString() }, ob);
  658. if (dt2 != null && dt2.Rows.Count > 0)
  659. {
  660. elimNum = dt2.Rows[0]["ELIM_NUM"].ToString();
  661. elimWgt = dt2.Rows[0]["ELIM_WGT"].ToString();
  662. elimLen = dt2.Rows[0]["ELIM_LEN"].ToString();
  663. chargeNum = dt2.Rows[0]["CHARGE_NUM"].ToString();
  664. chargeWgt = dt2.Rows[0]["CHARGE_WGT"].ToString();
  665. chargeLen = dt2.Rows[0]["CHARGE_LEN"].ToString();
  666. }
  667. }
  668. if (ordUnit == "吨")
  669. {
  670. repQty = ordQty - Convert.ToDecimal(chargeWgt == "" ? "0" : chargeWgt) + Convert.ToDecimal(elimWgt == "" ? "0" : elimWgt);
  671. estWgt = repQty;
  672. sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
  673. }
  674. else if (ordUnit == "支")
  675. {
  676. repQty = ordQty - Convert.ToDecimal(chargeNum == "" ? "0" : chargeNum) + Convert.ToDecimal(elimNum == "" ? "0" : elimNum);
  677. estWgt = repQty;
  678. sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
  679. }
  680. else if (ordUnit == "米")
  681. {
  682. repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : chargeLen) + Convert.ToDecimal(elimLen == "" ? "0" : elimLen);
  683. estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  684. sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
  685. }
  686. else if (ordUnit == "毫米")
  687. {
  688. repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeLen) * 1000)) + Convert.ToDecimal(elimLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimLen) * 1000));
  689. estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  690. sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
  691. }
  692. else if (ordUnit == "英尺")
  693. {
  694. repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeLen) / Convert.ToDecimal(0.3048))) + Convert.ToDecimal(elimLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimLen) / Convert.ToDecimal(0.3048)));
  695. estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  696. sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
  697. }
  698. else if (ordUnit == "英镑")
  699. {
  700. repQty = ordQty - Convert.ToDecimal(chargeWgt == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeWgt) / Convert.ToDecimal(0.45359237))) + Convert.ToDecimal(elimWgt == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimWgt) / Convert.ToDecimal(0.45359237)));
  701. estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  702. sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
  703. }
  704. if (repQty <= 0)
  705. continue;
  706. reportModel.DelvryQty = ordQty.ToString();
  707. reportModel.ChargeNum = chargeNum;
  708. reportModel.ChargeWgt = chargeWgt;
  709. reportModel.ChargeLen = chargeLen;
  710. reportModel.ElimNum = elimNum;
  711. reportModel.ElimWgt = elimWgt;
  712. reportModel.ElimLen = elimLen;
  713. // ORDER_QTY NUMBER(8,3),
  714. reportModel.OrderQty = Convert.ToString(repQty);
  715. // ORDERWEIGHT NUMBER(16,3),重量估算
  716. reportModel.Orderweight = Convert.ToString(estWgt);
  717. // ORDERNUM NUMBER(10),合同支数,无。
  718. reportModel.Ordernum = row["ORDERNUM"].ToString();
  719. // TOTLENGTH NUMBER(16,3),OrdEnsuTotlLen,总保长
  720. reportModel.Totlength = Convert.ToString(sureLen);
  721. // DELVRY_RANGE_TPE VARCHAR2(20),
  722. reportModel.DelvryRangeTpe = row["DELVRY_RANGE_TPE"].ToString();
  723. // DELVRY_RANGE_MIN NUMBER(2),
  724. reportModel.DelvryRangeMin = row["DELVRY_RANGE_MIN"].ToString();
  725. // DELVRY_RANGE_MAX NUMBER(2),
  726. reportModel.DelvryRangeMax = row["DELVRY_RANGE_MAX"].ToString();
  727. // BUYER_ID VARCHAR2(20), 客户编码
  728. reportModel.BuyerId = row["BUYER_ID"].ToString();
  729. // BUYER_NAME VARCHAR2(100),客户名称
  730. reportModel.BuyerName = row["BUYER_NAME"].ToString();
  731. //CUST_ALPHA_NO VARCHAR2(20),客户AlphaNo
  732. reportModel.CustAlphaNo = row["CUST_ALPHA_NO"].ToString();
  733. // ORDER_SPECIAL_DESC VARCHAR2(200),产品特殊要求描述 \r\n 特殊字符 导致JSON转化异常。
  734. string specialDesc = row["ORDER_SPECIAL_DESC"].ToString().Trim();
  735. //specialDesc = specialDesc.Replace("\r", "");
  736. //specialDesc = specialDesc.Replace("\n", "");
  737. reportModel.OrderSpecialDesc = specialDesc.Trim();
  738. // ADD_ASK_NO VARCHAR2(16),
  739. reportModel.AddAskNo = row["ADD_ASK_NO"].ToString();
  740. // ORDER_ADD_DESC VARCHAR2(200), \r\n 特殊字符 导致JSON转化异常。
  741. string addDesc = row["ORDER_ADD_DESC"].ToString().Trim();
  742. //addDesc = addDesc.Replace("\r", "");
  743. // addDesc = addDesc.Replace("\n", "");
  744. reportModel.OrderAddDesc = addDesc.Trim();
  745. // ORDERFROM VARCHAR2(20),合同来源,无此字段--销售组织。
  746. reportModel.Orderfrom = row["ORDERFROMCODE"].ToString();
  747. // FINAL_USER VARCHAR2(20),
  748. reportModel.FinalUser = row["FINAL_USER"].ToString();
  749. // FINAL_USER_DESC VARCHAR2(100),
  750. reportModel.FinalUserDesc = row["FINAL_USER_DESC"].ToString();
  751. // UPPERLIMIT NUMBER(10,3),上限
  752. reportModel.Upperlimit = row["UPPERLIMIT"].ToString();
  753. // LOWERLIMT NUMBER(10,3),下限,
  754. reportModel.Lowerlimt = row["LOWERLIMT"].ToString();
  755. // DELVRY_BDATE DATE,
  756. reportModel.DelvryBdate = row["DELVRY_BDATE"].ToString() != "" ? Convert.ToDateTime(row["DELVRY_BDATE"].ToString()).ToString("yyyy-MM-dd") : row["DELVRY_BDATE"].ToString();
  757. // DELVRY_EDATE DATE,
  758. reportModel.DelvryEdate = row["DELVRY_EDATE"].ToString() != "" ? Convert.ToDateTime(row["DELVRY_EDATE"].ToString()).ToString("yyyy-MM-dd") : row["DELVRY_EDATE"].ToString();
  759. // LATEST_PROD_DATE最迟生产日期,无此字段,上面是最迟交货日期
  760. reportModel.LatestProdDate = row["LATEST_PROD_DATE"].ToString() != "" ? Convert.ToDateTime(row["LATEST_PROD_DATE"].ToString()).ToString("yyyy-MM-dd") : row["LATEST_PROD_DATE"].ToString();
  761. // ORDERCONTACT VARCHAR2(20),合同联系人,无此字段。
  762. reportModel.Ordercontact = row["ORDERCONTACT"].ToString();
  763. // MONITORDEMAND VARCHAR2(200),监制要求
  764. reportModel.Monitordemand = row["MONITORDEMAND"].ToString();
  765. // SPECSTANDARD VARCHAR2(20),公差标准
  766. //reportModel.SPECSTANDARD = row["ORD_LN_PK"].ToString();
  767. // PACKTYPE VARCHAR2(20),包装要求
  768. //reportModel.OrdLnPk = row["ORD_LN_PK"].ToString();
  769. // PSC
  770. reportModel.Psc = row["PSC"].ToString();
  771. // PRIORITY VARCHAR2(20),合同优先级
  772. //reportModel.OrdLnPk = row["ORD_LN_PK"].ToString();
  773. // msc
  774. reportModel.Msc = row["MSC"].ToString();
  775. //
  776. reportModel.CreateName = this.UserInfo.GetUserName();
  777. reportModel.JzFileIfAll = string.IsNullOrEmpty(row["PRDCR_NO"].ToString()) ? "0" : "1"; //row["JZ_FILE_IF_ALL"].ToString();
  778. //
  779. reportModel.PrdcrNo = row["PRDCR_NO"].ToString();
  780. reportModel.MaterialNo = row["MATERIAL_NO"].ToString();
  781. reportModel.MaterialDesc = row["MATERIAL_DESC"].ToString();
  782. reportModel.ShrtLenRato = row["SHRT_LEN_RATO"].ToString();
  783. reportModel.Shortest = row["SHORTEST"].ToString();
  784. reportModel.LongLenRato = row["LONG_LEN_RATO"].ToString();
  785. reportModel.Longest = row["LONGEST"].ToString();
  786. reportModel.SiglLen = row["SIGL_LEN"].ToString();
  787. reportModel.LenUnit = row["LEN_UNIT"].ToString();
  788. reportModel.PrdcrDesc = row["PRDCR_DESC"].ToString();
  789. reportModel.OutsBilletFl = row["OUTS_BILLET_FL_CODE"].ToString();
  790. reportModel.UseCode = row["USE_CODE"].ToString();
  791. reportModel.UseDesc = row["USE_DESC"].ToString();
  792. reportModel.EndLenSpecStd = row["ENDLEN_SPECSTD"].ToString();
  793. reportModel.AvgLenMin = row["AVG_LEN_MIN"].ToString();
  794. reportModel.ShrtStove = row["SHRT_STOVE"].ToString();
  795. reportModel.DifrncLenMax = row["DIFRNC_LEN_MAX"].ToString();
  796. reportModel.StdStyleDesc = row["STD_STYLE_DESC"].ToString();
  797. reportModel.OutsStlPipeFl = row["OUTS_STL_PIPE_FL_CODE"].ToString();
  798. reportModel.RollMonth = row["REVIEW_ASK_END"].ToString();
  799. reportModel.SupplyUnitCode = row["SUPPLY_UNIT_CODE"].ToString();
  800. reportModel.SupplyUnit = row["SUPPLY_UNIT"].ToString();
  801. reportModel.DelvryAddr = row["DELVRY_ADDR"].ToString();
  802. if (row["ORDER_TYP"].ToString().Equals("120108"))
  803. reportModel.TypeFlag = "1";
  804. else if (row["ORDER_TYP"].ToString().Equals("120109"))
  805. reportModel.TypeFlag = "2";
  806. else
  807. reportModel.TypeFlag = "0";
  808. list.Add(JSONFormat.Format(reportModel));
  809. if (!craft.Contains(ordLnPk))
  810. {
  811. craft.Add(ordLnPk);
  812. }
  813. }
  814. if (list.Count <= 0)
  815. {
  816. MessageUtil.ShowWarning("没有符合提报要求的数据!");
  817. return;
  818. }
  819. if (MessageUtil.ShowYesNoAndQuestion("是否确认提报所选记录?") == DialogResult.No) return;
  820. //执行数据库相关操作
  821. CoreClientParam ccp = new CoreClientParam();
  822. ccp.IfShowErrMsg = false;
  823. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
  824. ccp.MethodName = "doReport";
  825. ccp.ServerParams = new object[] { list };
  826. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  827. if (ccp == null)
  828. return;
  829. else
  830. {
  831. if (ccp.ReturnCode == -1)
  832. {
  833. if (ccp.ReturnObject != null)
  834. {
  835. MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
  836. return;
  837. }
  838. else
  839. {
  840. MessageUtil.ShowWarning(ccp.ReturnInfo);
  841. return;
  842. }
  843. }
  844. else
  845. {
  846. MessageBox.Show("提报完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  847. //工艺评审 2015-12-09新增
  848. frmCraftReviewTechnology crt = new frmCraftReviewTechnology();
  849. foreach (string pk in craft)
  850. {
  851. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getCraftState",
  852. new string[] { pk }, ob);
  853. if (dt.Rows.Count > 0 && dt.Rows[0]["VALIDFLAG"].ToString() == "1" && dt.Rows[0]["CRAFT_SOURCE"].ToString() != "人工上传")
  854. {
  855. continue;
  856. }
  857. crt.CheckQuality(pk, true, this.ob);
  858. crt.Quality(pk, true, this.ob);
  859. }
  860. doQuery();
  861. }
  862. }
  863. }
  864. /// <summary>
  865. /// 查询
  866. /// </summary>
  867. private void doQuery()
  868. {
  869. string orderNo = "";
  870. string orderSts = cmbSts.Value.ToString().Trim();
  871. string orderStart = "";
  872. string orderEnd = "";
  873. string reportStartTime = "";
  874. string reportEndTime = "";
  875. if (uchkOrderNo.Checked)
  876. orderNo = utxtOrderNo.Text.Trim().ToLower();
  877. if (uchkDate.Checked)
  878. {
  879. orderStart = udtStart.DateTime.ToString("yyyy-MM-dd") + " 00:00:01";
  880. orderEnd = udtEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59";
  881. }
  882. else
  883. {
  884. orderStart = "1000-01-01 00:00:01";
  885. orderEnd = "9999-12-31 23:59:59";
  886. }
  887. if (rchkDate.Checked)
  888. {
  889. reportStartTime = rdtStart.DateTime.ToString("yyyy-MM-dd") + " 00:00:01";
  890. reportEndTime = rdtEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59";
  891. }
  892. string[] arr = this.ValidDataPurviewIds;
  893. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.doQuery", new Object[] { orderNo, orderStart, orderEnd, arr, CustomInfo, reportStartTime, reportEndTime }, this.ob);
  894. string strSelect = "CREATE_TIME >= '" + orderStart + "' AND CREATE_TIME <= '" + orderEnd + "'";
  895. DataRow[] arrayDR = dt.Select(strSelect, "ORDER_NO,ORDER_SEQ,DELIVERY_NO ASC");
  896. DataTable dtNew = dt.Clone();
  897. ArrayList list = new ArrayList();
  898. for (int i = 0; i < arrayDR.Length; i++)
  899. {
  900. dtNew.ImportRow(arrayDR[i]);
  901. list.Add(arrayDR[i]["PRDCR_NO_GM"]);
  902. }
  903. GridHelper.CopyDataToDatatable(ref dtNew, ref this.SLM_ORDER_LINE_DELIVERY, true);
  904. foreach (UltraGridRow row in ultraGridReport.Rows)
  905. {
  906. if (list.Contains(row.Cells["PRDCR_NO"].Value.ToString()))
  907. {
  908. row.Appearance.BackColor = Color.Yellow;
  909. }
  910. }
  911. }
  912. private string[] GetBalanceMainColumn()
  913. {
  914. return new string[]
  915. {
  916. "SALE_AREA_DESC",
  917. "FORECORPCODE",
  918. "ISPRECLOSE",
  919. "TICKETSTATUS",
  920. "BALANCESTATUS_ORG",
  921. "BALANCESTATUS",
  922. "BUYERCODE",
  923. "BUYERNAME",
  924. "FST_DRAWEE_UNIT",
  925. "ASKPLAN_ID",
  926. "ORD_NO",
  927. "ORD_SEQ",
  928. "ORD_LN_DLY",
  929. "ASKPLAN_ID_SEQ",
  930. "STEELCODEKEY",
  931. "PACTINDEX",
  932. "SPETKEY",
  933. "SEND_NUM",
  934. "ORDER_UNIT",
  935. "QUANTITY",
  936. "WEIGHT",
  937. "TON_PRICE",
  938. "PRICE",
  939. "MONEY",
  940. "BALNCE_PRICE",
  941. "LEAVEMONEY",
  942. "AFFRIMPERSON",
  943. "AFFIRMTIME",
  944. "INVOICENO",
  945. "REALINVOICENO",
  946. "REALINVOICENO_DATE1",
  947. "REALINVOICENO_DATE",
  948. "INVOICEPERSON",
  949. "INVOICEDATE",
  950. "PRICE_ORG",
  951. "MONEY_ORG",
  952. "AFFRIMPERSON_ORG",
  953. "AFFIRMTIME_ORG",
  954. "INVOICENO_ORG",
  955. "REALINVOICENO_ORG",
  956. "INVOICEDATE_ORG",
  957. "REALINVOICENO_DATE_ORG1",
  958. "REALINVOICENO_DATE_ORG",
  959. "CONTAIN_TAX",
  960. "CATEGORY",
  961. "SPEC_ABBSYMNAME",
  962. "STD_STYLE_DESC",
  963. "MODEL_DESC",
  964. "TRANS_TYPE_NAME",
  965. "BASEPRICE",
  966. "INCEPTCORPCODE",
  967. // "BALNCE_PRICE_STS",
  968. // "BALNCE_PRICE_ORG_STS",
  969. "ORD_PK",
  970. "ORD_LN_PK",
  971. "ORD_LN_DLY_PK",
  972. "CUSTOMER_NO",
  973. "CUSTOMER_NM",
  974. "SALE_AREA_NO",
  975. "DELETE_TIME",
  976. "BILL_STATUS_FLAG",
  977. "INVOICE_MONTH",
  978. "IN_TIME_F",
  979. "CHK",
  980. "DELVRY_WHEREABOUTS",
  981. "IS_USE",
  982. "MEMO",
  983. "SUPPLY_UNIT_DESC",
  984. "CREATE_NAME"
  985. };
  986. }
  987. public Hashtable GetColumnAndCaption1()
  988. {
  989. Hashtable hs = new Hashtable();
  990. hs.Add("SHIPNO", "船号");
  991. hs.Add("BUYERCODE", "结算单位编码");
  992. hs.Add("BUYERNAME", "结算单位");
  993. hs.Add("INCEPTCORPCODE", "收货单位");
  994. hs.Add("QUANTITY", "支数");
  995. hs.Add("WEIGHT", "重量");
  996. hs.Add("TON_PRICE", "吨价");
  997. hs.Add("MONEY", "金额");
  998. hs.Add("OUTSTOCKMNY", "吊装费");
  999. hs.Add("TRANSMNY", "运费");
  1000. hs.Add("ISPRECLOSE", "是否虚单");
  1001. hs.Add("ORD_NO", "合同号");
  1002. hs.Add("ORD_SEQ", "合同行");
  1003. hs.Add("ORD_LN_DLY", "交货行");
  1004. hs.Add("SPETKEY", "规格");
  1005. hs.Add("STEELCODEKEY", "钢级(牌号)");
  1006. hs.Add("PRICE", "单价");
  1007. hs.Add("AFFRIMPERSON", "末次确认人");
  1008. hs.Add("AFFIRMTIME", "末次确认时间");
  1009. hs.Add("BASEPRICE", "订单价");
  1010. hs.Add("FORECORPCODE", "子公司");
  1011. hs.Add("STATIONCODE", "到站");
  1012. hs.Add("TALLYSHEET_NO", "理货单");
  1013. hs.Add("BATCH_NO", " 炉批号");
  1014. hs.Add("ACT_WGT", "重量");
  1015. hs.Add("TICKETTYPE", "类型");
  1016. hs.Add("TICKETNUM", "票据数");
  1017. hs.Add("TRANS_TYPE", "运输类型");
  1018. hs.Add("MOTORMANNAME", "承运公司");
  1019. hs.Add("REG_ID", "维护人");
  1020. hs.Add("REG_DTIME", "维护时间");
  1021. hs.Add("AFFRIM_ID", "确认人");
  1022. hs.Add("AFFRIM_TIME", "确认时间");
  1023. hs.Add("MONEY_TYPE", "费用类型");
  1024. hs.Add("ASKPLAN_ID", "提单号");
  1025. hs.Add("TRANS_TYPE_NAME", "运输方式");
  1026. hs.Add("REALINVOICENO_ORG", "首次真实发票号");
  1027. hs.Add("REALINVOICENO", "末次真实发票号");
  1028. hs.Add("INVOICENO", "末次结算单号");
  1029. hs.Add("MONEY_ORG", "首次结算金额");
  1030. hs.Add("PRICE_ORG", "首次单价");
  1031. hs.Add("INVOICENO_ORG", "首次结算单号");
  1032. hs.Add("INVOICENO_SEQ_ORG", "序号");
  1033. hs.Add("TICKETPERSON", "确认人");
  1034. hs.Add("TICKETDATE", "确认时间");
  1035. hs.Add("CATEGORY", "品名");
  1036. hs.Add("SPEC_ABBSYMNAME", "标准");
  1037. hs.Add("STD_STYLE_DESC", "标准类别");
  1038. hs.Add("MODEL_DESC", "扣型");
  1039. hs.Add("ORDER_UNIT", "计量单位");
  1040. hs.Add("SALE_AREA_DESC", "销售区域");
  1041. hs.Add("SEND_NUM", "实发量");
  1042. hs.Add("RECEIV_ADDR", "指定地址");
  1043. hs.Add("DELVRY_ADDR", "交货地点");
  1044. hs.Add("AGENCY_FL", "是否代办");
  1045. hs.Add("ISREALCLOSE", "虚单关闭状态");
  1046. hs.Add("TICKETSTATUS", "提单是否确认");
  1047. hs.Add("INVOICEPERSON_ORG", "首次编单人");
  1048. hs.Add("INVOICEDATE_ORG", "首次编单时间");
  1049. hs.Add("INVOICEPERSON", "末次编单人");
  1050. hs.Add("INVOICEDATE", "末次编单时间");
  1051. hs.Add("CONTAIN_TAX", "是否含税");
  1052. hs.Add("BALNCE_PRICE_STS", "首次价格有效性");
  1053. hs.Add("BALNCE_PRICE_ORG_STS", "末次价格有效性");
  1054. hs.Add("REALINVOICENO_DATE1", "末次发票时间");
  1055. hs.Add("REALINVOICENO_DATE_ORG1", "首次发票时间");
  1056. hs.Add("PACTINDEX", "钢种");
  1057. hs.Add("BALNCE_PRICE", "末次不含税单价");
  1058. hs.Add("LEAVEMONEY", "末次含税金额");
  1059. hs.Add("DELETE_TIME", "出库时间");
  1060. hs.Add("BILL_STATUS_FLAG", "是否提单关闭");
  1061. hs.Add("INVOICE_MONTH", "年月");
  1062. hs.Add("IN_TIME_F", "入库时间");
  1063. hs.Add("CHK", "选择");
  1064. hs.Add("DELVRY_WHEREABOUTS", "库存地点");
  1065. hs.Add("IS_USE", "是否使用");
  1066. hs.Add("MEMO", "备注");
  1067. hs.Add("SUPPLY_UNIT_DESC", "制造商");
  1068. hs.Add("CREATE_NAME", "业务员");
  1069. return hs;
  1070. }
  1071. private Hashtable GetColumnAndCaption()
  1072. {
  1073. Hashtable hs = new Hashtable();
  1074. hs.Add("SHIPNO", "船号");
  1075. hs.Add("WEIGHT", "重量");
  1076. hs.Add("DOCKCODE", "港口");
  1077. hs.Add("TRANSMONEYSY1", "船运费");
  1078. hs.Add("SHIPPRICE", "船运价");
  1079. hs.Add("PLY", "厚/直径/壁厚");
  1080. hs.Add("WIDTH", "宽/外径");
  1081. hs.Add("HOISTINGFEE", "吊装费");
  1082. hs.Add("TRANSMONETRAIN", "火运费");
  1083. hs.Add("ORD_NO", "合同号");
  1084. hs.Add("ORD_SEQ", "合同行");
  1085. hs.Add("ORD_LN_DLY", "交货行");
  1086. hs.Add("ASKPLAN_ID", "提单号");
  1087. hs.Add("ASKPLAN_ID_SEQ", "提单序号");
  1088. hs.Add("SPETKEY", "规格");
  1089. hs.Add("STEELCODEKEY", " 钢级(牌号)");
  1090. hs.Add("ADJUSTPRICEPERSON", "调价人");
  1091. hs.Add("ADJUSTPRICEREASON", "调价原因");
  1092. hs.Add("AFFRIMPERSON", "末次确认人");
  1093. hs.Add("AFFIRMTIME", "末次确认时间");
  1094. hs.Add("AFFRIMPERSON_ORG", "首次确认人");
  1095. hs.Add("AFFIRMTIME_ORG", "首次确认时间");
  1096. hs.Add("BASEPRICE", "订单价");
  1097. hs.Add("FORECORPCODE", "子公司");
  1098. hs.Add("STATIONCODE", "到站");
  1099. hs.Add("BUYERNAME", "结算单位名称");
  1100. hs.Add("BUYERCODE", "客户编码");
  1101. hs.Add("CUSTOMER_NM", "订货单位");
  1102. hs.Add("TRANS_TYPE_NAME", "运输方式");
  1103. hs.Add("MONEY_ORG", "首次结算金额");
  1104. hs.Add("PRICE_ORG", "首次结算价");
  1105. hs.Add("CATEGORY", "品名");
  1106. hs.Add("SPEC_ABBSYMNAME", "标准");
  1107. hs.Add("STD_STYLE_DESC", "标准类别");
  1108. hs.Add("MODEL_DESC", "扣型");
  1109. hs.Add("ORDER_UNIT", "计量单位");
  1110. hs.Add("SALE_AREA_DESC", "销售区域");
  1111. hs.Add("SEND_NUM", "实发量");
  1112. hs.Add("CONTAIN_TAX", "是否含税");
  1113. hs.Add("BALANCESTATUS_ORG", "首次结算状态");
  1114. hs.Add("FST_DRAWEE_UNIT", "首次受票人");
  1115. hs.Add("INVOICENO_ORG", "首次结算单号");
  1116. hs.Add("REALINVOICENO_ORG", "首次真实单号");
  1117. return hs;
  1118. }
  1119. /// <summary>
  1120. /// 提报状态数据源绑定
  1121. /// </summary>
  1122. ///
  1123. private DataSet dsBalanceMain = new DataSet();
  1124. private void bindCmbSts()
  1125. {
  1126. this.dsBalanceMain = base.GetDataSetByColumnName(this.GetBalanceMainColumn(),
  1127. null, GetColumnAndCaption1());
  1128. this.ultraGrid1.DataSource = this.dsBalanceMain;
  1129. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.GetSts", null, this.ob);
  1130. //查询区域适用单位绑定,提供空值。
  1131. ComboBoxHelper.FillUlcmItemsAddEmpty(cmbSts, dt);
  1132. }
  1133. private Core.StlMes.Client.Sale.BLL.SaleBusinessMgt.Balance.SlmBalanceInfo slmBalanceInfo = null;
  1134. private void frmOrderReport_Load(object sender, EventArgs e)
  1135. {
  1136. //提报状态数据源绑定。
  1137. bindCmbSts();
  1138. cmbSts.Value = "12020301";
  1139. cmbSts.ReadOnly = false;
  1140. ClsBaseInfo.SetComboItemHeight(cmbSts);
  1141. udtStart.Value = DateTime.Now.AddDays(-31).ToShortDateString();
  1142. udtEnd.Value = DateTime.Now.ToShortDateString();
  1143. slmBalanceInfo = new Core.StlMes.Client.Sale.BLL.SaleBusinessMgt.Balance.SlmBalanceInfo(this.ob);
  1144. InitGrid();
  1145. //加载库存信息数据
  1146. InitMat();
  1147. }
  1148. /// <summary>
  1149. /// 初始化库存信息
  1150. /// </summary>
  1151. private void InitMat()
  1152. {
  1153. EntityHelper.ShowGridCaption<MatZcMEntity>(gdMat.DisplayLayout.Bands[0]);
  1154. UltraComboEditor uce = new UltraComboEditor();
  1155. uce.Items.Add("1", "封锁");
  1156. uce.Items.Add("0", "未封锁");
  1157. gdMat.DisplayLayout.Bands[0].Columns["lockFlag"].EditorComponent = uce;
  1158. gdMat.DisplayLayout.Bands[0].Columns["mngLockFlag"].EditorComponent = uce;
  1159. }
  1160. private void uchkOrderNo_CheckedChanged(object sender, EventArgs e)
  1161. {
  1162. if (uchkOrderNo.Checked)
  1163. {
  1164. utxtOrderNo.ReadOnly = false;
  1165. string orderNo = utxtOrderNo.Text.Trim();
  1166. if (orderNo != "")
  1167. {
  1168. uchkDate.Enabled = true;
  1169. uchkDate.Checked = false;
  1170. }
  1171. else
  1172. {
  1173. uchkDate.Enabled = false;
  1174. uchkDate.Checked = true;
  1175. }
  1176. }
  1177. else
  1178. {
  1179. utxtOrderNo.ReadOnly = true;
  1180. uchkDate.Enabled = false;
  1181. uchkDate.Checked = true;
  1182. }
  1183. }
  1184. private void uchkSts_CheckedChanged(object sender, EventArgs e)
  1185. {
  1186. if (uchkSts.Checked)
  1187. {
  1188. cmbSts.ReadOnly = false;
  1189. }
  1190. else
  1191. {
  1192. cmbSts.SelectedIndex = 0;
  1193. cmbSts.ReadOnly = true;
  1194. }
  1195. }
  1196. private void uchkDate_CheckedChanged(object sender, EventArgs e)
  1197. {
  1198. if (uchkDate.Checked)
  1199. {
  1200. udtStart.ReadOnly = false;
  1201. udtEnd.ReadOnly = false;
  1202. }
  1203. else
  1204. {
  1205. udtStart.ReadOnly = true;
  1206. udtEnd.ReadOnly = true;
  1207. }
  1208. }
  1209. private void ultraGridReport_AfterRowActivate(object sender, EventArgs e)
  1210. {
  1211. ultraGridReport.UpdateData();
  1212. UltraGridRow ugr = ultraGridReport.ActiveRow;
  1213. if (ugr == null)
  1214. return;
  1215. for (int i = 0; i < ugr.Cells.Count; i++)
  1216. {
  1217. if (!ugr.Cells[i].Column.Key.Equals("CHK"))
  1218. {
  1219. ugr.Cells[i].Activation = Activation.ActivateOnly;
  1220. }
  1221. else
  1222. ugr.Cells[i].Activation = Activation.AllowEdit;
  1223. }
  1224. // 查询库存信息 ORDERFROMCODE 考虑到效率问题 放在CellButton事件中查询
  1225. //string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
  1226. listLiku = new ArrayList();
  1227. listLiku.Add(ugr.Cells["PRODUCCODE"].Value.ToString());
  1228. listLiku.Add(ugr.Cells["STEELCODE"].Value.ToString());
  1229. listLiku.Add(ugr.Cells["SPEC_CODE"].Value.ToString());
  1230. listLiku.Add(ugr.Cells["MODEL_CODE"].Value.ToString());
  1231. listLiku.Add(ugr.Cells["STD_STYLE_DESC"].Value.ToString());
  1232. listLiku.Add(ugr.Cells["STD_STYLE_DESC"].Value.ToString());
  1233. //QueryMatInfo(list, saleOrg);
  1234. matZcMEntityBindingSource.Clear();
  1235. }
  1236. private void QueryMatInfo(ArrayList parm, string saleOrg, string suppUnit)
  1237. {
  1238. List<MatZcMEntity> listSource = EntityHelper.GetData<MatZcMEntity>(
  1239. "com.steering.pss.sale.order.CoreOrderReport.queryMatInfo", new object[] { parm, saleOrg, suppUnit }, this.ob);
  1240. matZcMEntityBindingSource.DataSource = listSource;
  1241. }
  1242. private void utxtOrderNo_KeyPress(object sender, KeyPressEventArgs e)
  1243. {
  1244. if (e.KeyChar == 13)
  1245. doQuery();
  1246. }
  1247. private void ultraGridReport_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  1248. {
  1249. foreach (UltraGridRow uRow in ultraGridReport.Selected.Rows)
  1250. {
  1251. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  1252. {
  1253. uRow.Cells["CHK"].Value = true;
  1254. }
  1255. }
  1256. }
  1257. private void btnReset_Click(object sender, EventArgs e)
  1258. {
  1259. ultraGridReport.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters();
  1260. }
  1261. private void utxtOrderNo_ValueChanged(object sender, EventArgs e)
  1262. {
  1263. string orderNo = utxtOrderNo.Text.Trim();
  1264. if (orderNo != "")
  1265. {
  1266. uchkDate.Enabled = true;
  1267. uchkDate.Checked = false;
  1268. }
  1269. else
  1270. {
  1271. uchkDate.Enabled = false;
  1272. uchkDate.Checked = true;
  1273. }
  1274. }
  1275. private void ultraGridReport_InitializeRow(object sender, InitializeRowEventArgs e)
  1276. {
  1277. if (e.Row.Cells["ORDER_TYP"].Value.ToString2() == "120103")
  1278. {
  1279. e.Row.Cells["REVIEW_ASK_END"].Value = DateTime.Now.ToString("yyyy-MM");
  1280. }
  1281. }
  1282. /// <summary>
  1283. /// cellButton
  1284. /// </summary>
  1285. /// <param name="sender"></param>
  1286. /// <param name="e"></param>
  1287. private void ultraGridReport_ClickCellButton(object sender, CellEventArgs e)
  1288. {
  1289. if (e.Cell.Column.Key.Equals("ORDER_SEQ"))
  1290. {
  1291. ultraGridReport.UpdateData();
  1292. UltraGridRow ugr = ultraGridReport.ActiveRow;
  1293. if (ugr == null)
  1294. return;
  1295. string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
  1296. string suppUnit = ugr.Cells["SUPPLY_UNIT_CODE"].Value.ToString();
  1297. QueryMatInfo(listLiku, saleOrg, suppUnit);
  1298. string str = "合同号:" + ugr.Cells["ORDER_NO"].Value.ToString() + "/" + ugr.Cells["ORDER_SEQ"].Value.ToString()
  1299. + " 交货行号:" + ugr.Cells["DELIVERY_NO"].Value.ToString() + " 的可利库的库存信息。";
  1300. }
  1301. }
  1302. private void ReportLiKu()
  1303. {
  1304. ultraGridReport.UpdateData();
  1305. UltraGridRow ugr = ultraGridReport.ActiveRow;
  1306. if (ugr == null)
  1307. {
  1308. MessageUtil.ShowWarning("请选择您要利库的交货行!");
  1309. return;
  1310. }
  1311. if (ugr.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
  1312. {
  1313. MessageUtil.ShowWarning("您选择的记录已经提报完毕,此功能只能对“生效状态”的交货行利库!");
  1314. ugr.Activate();
  1315. return;
  1316. }
  1317. string ordStr = "合同号:" + ugr.Cells["ORDER_NO"].Value.ToString() + "/" + ugr.Cells["ORDER_SEQ"].Value.ToString() + " 交货行号:" + ugr.Cells["DELIVERY_NO"].Value.ToString();
  1318. //合同行提报锁定的!
  1319. DataTable lockDt1 = ServerHelper.GetData("com.steering.pss.sale.order.DAL.SlmOrderLineLockDAL.getOrderLineLock", new object[] { ugr.Cells["ORD_LN_PK"].Value.ToString() }, this.ob);
  1320. if (lockDt1 != null && lockDt1.Rows.Count > 0)
  1321. {
  1322. if (lockDt1.Rows[0][0].ToString() == "1")
  1323. {
  1324. MessageUtil.ShowWarning(ordStr + "该合同行提报排产被锁定请重新审批合同价格!不允许利库! ");
  1325. return;
  1326. }
  1327. }
  1328. string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
  1329. string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
  1330. FrmReportLiKu frl = new FrmReportLiKu(this.ob, "1",this.CustomInfo);
  1331. frl.DataArr = this.ValidDataPurviewIds;
  1332. frl.ListParm = listLiku;
  1333. frl.OrdSaleOrg = saleOrg;
  1334. frl.OrdLnDlyPk = ordLnDlyPk;
  1335. frl.FormClosingQueryHandle += frl_FormClosingQueryHandle;
  1336. frl.WindowState = FormWindowState.Maximized;
  1337. frl.StartPosition = FormStartPosition.CenterScreen;
  1338. frl.ShowDialog();
  1339. }
  1340. void frl_FormClosingQueryHandle(string ordLnDlyPk)
  1341. {
  1342. this.doQuery();
  1343. foreach (UltraGridRow row in ultraGridReport.Rows)
  1344. {
  1345. if (row.Cells["ORD_LN_DLY_PK"].Value.ToString() == ordLnDlyPk)
  1346. {
  1347. row.Activate();
  1348. break;
  1349. }
  1350. }
  1351. }
  1352. /// <summary>
  1353. /// 判断交货行是否具有需要审核的利库数据
  1354. /// </summary>
  1355. /// <param name="ordLnDlyPk"></param>
  1356. /// <returns>True 是 False 否 </returns>
  1357. private bool IsNeedCheckLK(string ordLnDlyPk)
  1358. {
  1359. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryDlyLkTd", new object[] { ordLnDlyPk }, this.ob);
  1360. if (dt != null && dt.Rows.Count > 0)
  1361. {
  1362. string lkId = dt.Rows[0]["LK_ID"].ToString2();
  1363. string tdId = dt.Rows[0]["TD_ID"].ToString2();
  1364. string[] lk = lkId.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
  1365. string[] td = tdId.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
  1366. if (lk != null && lk.Length > 0)
  1367. {
  1368. List<string> lkList = new List<string>(lk);
  1369. List<string> tdList = null;
  1370. if (td != null && td.Length > 0)
  1371. {
  1372. tdList = new List<string>(td);
  1373. }
  1374. else
  1375. {
  1376. tdList = new List<string> { "1" }; //下面的差集函数不能跟NULL做差集,所以随便给一个值
  1377. }
  1378. var interList = lkList.Except(tdList).ToList();
  1379. for (int i = 0; i < interList.Count; i++)
  1380. {
  1381. DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryMatCheck", new object[] { ordLnDlyPk, interList[i] }, this.ob);
  1382. if (dt1 != null && dt1.Rows.Count > 0)
  1383. {
  1384. if (dt1.Rows[0][0].ToString2().Contains("1"))
  1385. return true;
  1386. }
  1387. }
  1388. }
  1389. }
  1390. return false;
  1391. }
  1392. private void gdMat_AfterRowActivate(object sender, EventArgs e)
  1393. {
  1394. var ugr = gdMat.ActiveRow;
  1395. if (ugr != null)
  1396. {
  1397. string str = "";
  1398. string productName = ugr.Cells["producname"].Text.ToString();//品名
  1399. string steelName = ugr.Cells["steelname"].Text.ToString();//钢级
  1400. string specName = ugr.Cells["specName"].Text.ToString();//规格
  1401. string modelDesc = ugr.Cells["ModelDesc"].Text.ToString();// 扣型
  1402. str += " AND k.STEELNAME = '" + steelName + "' AND k.PRODUCNAME = '" + productName + "' AND t.SPETKEY = '" + specName + "' AND t.MODEL_DESC = '" + modelDesc + "'";
  1403. DataSet ds = this.slmBalanceInfo.GetInvoiceSlmBalaneInfoByStdAndStell(str,false);
  1404. Core.StlMes.Client.Sale.Util.UtilDataSet.SetDataSetByMergeSameColumnName(ref this.dsBalanceMain, ds);
  1405. }
  1406. }
  1407. private Infragistics.Win.ValueList GetAgenCyFlList()
  1408. {
  1409. Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
  1410. lit.ValueListItems.Add("0", "否");
  1411. lit.ValueListItems.Add("1", "是");
  1412. return lit;
  1413. }
  1414. private Infragistics.Win.ValueList GetStatusList()
  1415. {
  1416. Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
  1417. lit.ValueListItems.Add("0", "未确认");
  1418. lit.ValueListItems.Add("1", "确认");
  1419. lit.ValueListItems.Add("2", "编单");
  1420. return lit;
  1421. }
  1422. private Infragistics.Win.ValueList GetPriceStatusList()
  1423. {
  1424. Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
  1425. lit.ValueListItems.Add("0", " 无效");
  1426. lit.ValueListItems.Add("1", " 有效");
  1427. return lit;
  1428. }
  1429. private Infragistics.Win.ValueList GetBalStatusList()
  1430. {
  1431. Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
  1432. lit.ValueListItems.Add("0", "未编单");
  1433. lit.ValueListItems.Add("1", "未编单");
  1434. lit.ValueListItems.Add("2", "未编单");
  1435. lit.ValueListItems.Add("3", "编单");
  1436. return lit;
  1437. }
  1438. private Infragistics.Win.ValueList GetFst_Drawee_unit()
  1439. {
  1440. Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
  1441. lit.ValueListItems.Add("120601", "N/A");
  1442. lit.ValueListItems.Add("120602", "/");
  1443. lit.ValueListItems.Add("120603", "天津钢管集团股份有限公司");
  1444. lit.ValueListItems.Add("120604", "天津钢管钢铁贸易有限公司");
  1445. lit.ValueListItems.Add("120605", "天津钢管国际经济贸易有限公司");
  1446. lit.ValueListItems.Add("120606", "合同结算单位");
  1447. lit.ValueListItems.Add("120607", "江苏天淮钢管有限公司");
  1448. lit.ValueListItems.Add("120608", "天津钢管制造有限公司");
  1449. return lit;
  1450. }
  1451. private void InitGrid()
  1452. {
  1453. try
  1454. {
  1455. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CONTAIN_TAX"].ValueList = GetAgenCyFlList();
  1456. }
  1457. catch
  1458. { }
  1459. try
  1460. {
  1461. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS_ORG"].ValueList = GetBalStatusList();
  1462. }
  1463. catch
  1464. { }
  1465. try
  1466. {
  1467. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS"].ValueList = GetBalStatusList();
  1468. }
  1469. catch
  1470. { }
  1471. try
  1472. {
  1473. this.ultraGrid1.DisplayLayout.Bands[0].Columns["FST_DRAWEE_UNIT"].ValueList = GetFst_Drawee_unit();
  1474. }
  1475. catch
  1476. { }
  1477. try
  1478. {
  1479. this.ultraGrid1.DisplayLayout.Bands[0].Columns["TICKETSTATUS"].ValueList = GetAgenCyFlList();
  1480. }
  1481. catch
  1482. { }
  1483. try
  1484. {
  1485. this.ultraGrid1.DisplayLayout.Bands[0].Columns[this.BALNCE_PRICE_STS].ValueList = GetPriceStatusList();
  1486. }
  1487. catch
  1488. { }
  1489. try
  1490. {
  1491. this.ultraGrid1.DisplayLayout.Bands[0].Columns[this.BALNCE_PRICE_ORG_STS].ValueList = GetPriceStatusList();
  1492. }
  1493. catch
  1494. { }
  1495. try
  1496. {
  1497. this.ultraGrid1.DisplayLayout.Bands[0].Columns["AFFRIMPERSON_ORG"].Header.Caption = "首次确认人";
  1498. this.ultraGrid1.DisplayLayout.Bands[0].Columns["AFFIRMTIME_ORG"].Header.Caption = "首次确认时间";
  1499. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS_ORG"].Header.Caption = "首次结算状态";
  1500. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS"].Header.Caption = "末次结算状态";
  1501. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRICE"].Header.Caption = "末次结算单价";
  1502. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MONEY"].Header.Caption = "末次结算金额";
  1503. }
  1504. catch
  1505. { }
  1506. }
  1507. /* public void OpenOtherAssemblyForm(Form vParentFrm, string vKey, string vAssemblyName,
  1508. string vClassName, string vCaption, OpeBase _ob)
  1509. {
  1510. //检查窗体是否已经打开
  1511. foreach (Form mdiChild in vParentFrm.MdiChildren)
  1512. {
  1513. if ((mdiChild as FrmBase).Key == vKey)
  1514. {
  1515. mdiChild.Activate();
  1516. return;
  1517. }
  1518. }
  1519. FrmBase form = null;
  1520. //实例化窗体并打开
  1521. try
  1522. {
  1523. Assembly baseFormAssembly = Assembly.Load(vAssemblyName);
  1524. Type type = baseFormAssembly.GetType(vClassName);
  1525. System.Diagnostics.Debug.Assert(type.IsSubclassOf(typeof(FrmBase)));
  1526. form = Activator.CreateInstance(type, true) as FrmBase;
  1527. PropertyInfo info = type.GetProperty("MyValidDataPurviewIds");
  1528. info.SetValue(form, this.ValidDataPurviewIds, null);
  1529. form.MdiParent = vParentFrm;
  1530. form.Text = vCaption;
  1531. form.Key = vKey;
  1532. form.ob = _ob;
  1533. form.CustomInfo = "";
  1534. form.Show();
  1535. }
  1536. catch (Exception ex)
  1537. {
  1538. Console.WriteLine(ex.Message);
  1539. form.Dispose();
  1540. }
  1541. } */
  1542. }
  1543. }