FrmPlnSaleOrder.cs 105 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096
  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 com.steering.pss.plnsaleord.order.model;
  10. using CoreFS.CA06;
  11. using Core.Mes.Client.Comm.Tool;
  12. using System.Collections;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Core.Mes.Client.Comm.Server;
  15. using Infragistics.Win;
  16. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  17. using Core.Mes.Client.Comm;
  18. using Core.Mes.Client.Comm.Control;
  19. using System.Diagnostics;
  20. using com.steering.pss.plnsaleord.ordAmCal.model;
  21. using System.Reflection;
  22. using Core.StlMes.Client.PlnSaleOrd.Control;
  23. using Core.StlMes.Client.PlnSaleOrd.Entity;
  24. using Core.Mes.Client.Comm.Format;
  25. namespace Core.StlMes.Client.PlnSaleOrd
  26. {
  27. public partial class FrmPlnSaleOrder : FrmBase
  28. {
  29. public FrmPlnSaleOrder()
  30. {
  31. this.IsLoadUserView = true;
  32. InitializeComponent();
  33. EntityHelper.ShowGridCaption<PlnSaleordEntity>(ultraGridSaleOrder.DisplayLayout.Bands[0]);
  34. EntityHelper.ShowGridCaption<MatZcMEntity>(gdMat.DisplayLayout.Bands[0]);
  35. System.Threading.Thread t = new System.Threading.Thread(setGridColunmName);
  36. t.Start();
  37. }
  38. /// <summary>
  39. /// 用于查询利库数据的参数
  40. /// </summary>
  41. ArrayList listLiku = new ArrayList();
  42. private void setGridColunmName()
  43. {
  44. System.Threading.Thread.Sleep(3000);
  45. if (!this.IsDisposed)
  46. {
  47. EntityHelper.ShowGridCaption<PlnSaleordEntity>(ultraGridSaleOrder.DisplayLayout.Bands[0]);
  48. }
  49. }
  50. public override void ToolBar_Click(object sender, string ToolbarKey)
  51. {
  52. base.ToolBar_Click(sender, ToolbarKey);
  53. switch (ToolbarKey)
  54. {
  55. case "Query": //查询
  56. DoQuery(GetQueryCondition());
  57. break;
  58. case "Accept"://合同接收
  59. DoReceive();
  60. break;
  61. case "CancelAcp"://合同退回
  62. CancelAcp();
  63. break;
  64. case "MonthStatist"://统计报表
  65. DoMonthStatist();
  66. break;
  67. case "RefresDate"://刷新加载数据
  68. RefresDate();
  69. DoQuery(GetQueryCondition());
  70. break;
  71. case "confirm"://销售确认
  72. DoConfirm();
  73. break;
  74. case "cancelConfirm"://销售取消确认
  75. DoCancelConfirm();
  76. break;
  77. case "LiKu"://销售利库
  78. ReportLiKu();
  79. break;
  80. case "Export":
  81. GridHelper.ulGridToExcel(ultraGridSaleOrder, "销售合同提报信息");
  82. break;
  83. case "Close": //关闭
  84. this.Close();
  85. break;
  86. }
  87. }
  88. private void DoCancelConfirm()
  89. {
  90. ultraGridSaleOrder.UpdateData();
  91. IQueryable<UltraGridRow> checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'");
  92. if (checkRows.Count() == 0)
  93. {
  94. MessageUtil.ShowTips("未勾选任何合同!");
  95. return;
  96. }
  97. ArrayList list = new ArrayList();
  98. ArrayList list1 = new ArrayList();
  99. foreach (UltraGridRow uRow in checkRows)
  100. {
  101. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleStatus",
  102. new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, this.ob);
  103. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  104. {
  105. continue;
  106. }
  107. if (!dtStatus.Rows[0]["PORDERSTATUS"].ToString().Equals("0"))
  108. {
  109. MessageUtil.ShowTips(uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  110. + uRow.Cells["DeliveryNo"].Value.ToString() + "已接收,无法取消确认!");
  111. return;
  112. }
  113. ReportOrderLineDelivery reportModel = new ReportOrderLineDelivery();
  114. string specCode = uRow.Cells["SPECCODE"].Value.ToString();
  115. string ordUnit = uRow.Cells["ORDERUNIT"].Value.ToString();
  116. string elimNum = ""; //脱单量
  117. string elimWgt = "";
  118. string elimLen = "";
  119. string chargeNum = ""; //利库量
  120. string chargeWgt = "";
  121. string chargeLen = "";
  122. //新增 利库量 脱单量的处理逻辑
  123. DataTable dt2 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getProcessOrderInfo", new object[] { uRow.Cells["ORDLNDLYPK"].Value.ToString() }, ob);
  124. if (dt2 != null && dt2.Rows.Count > 0)
  125. {
  126. elimNum = dt2.Rows[0]["ELIM_NUM"].ToString();
  127. elimWgt = dt2.Rows[0]["ELIM_WGT"].ToString();
  128. elimLen = dt2.Rows[0]["ELIM_LEN"].ToString();
  129. chargeNum = dt2.Rows[0]["CHARGE_NUM"].ToString();
  130. chargeWgt = dt2.Rows[0]["CHARGE_WGT"].ToString();
  131. chargeLen = dt2.Rows[0]["CHARGE_LEN"].ToString();
  132. }
  133. // reportModel.OrderQty = row["DELVRY_QTY"].ToString(); 以前的提报量
  134. //reportModel.Orderweight = row["ORDERWEIGHT"].ToString(); 估算重量
  135. //reportModel.Totlength = row["TOTLENGTH"].ToString(); 保总长
  136. decimal ordQty = Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()); //交货行的交货量
  137. decimal repQty = 0; //提报量 订单量-利库量+脱单量
  138. decimal estWgt = 0; //估算重量
  139. decimal sureLen = 0; //保总长
  140. if (ordUnit == "吨")
  141. {
  142. repQty = ordQty + Convert.ToDecimal(chargeWgt == "" ? "0" : chargeWgt) + Convert.ToDecimal(elimWgt == "" ? "0" : elimWgt);
  143. estWgt = repQty;
  144. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  145. }
  146. else if (ordUnit == "支")
  147. {
  148. repQty = ordQty + Convert.ToDecimal(chargeNum == "" ? "0" : chargeNum) + Convert.ToDecimal(elimNum == "" ? "0" : elimNum);
  149. estWgt = repQty;
  150. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  151. }
  152. else if (ordUnit == "米")
  153. {
  154. repQty = ordQty + Convert.ToDecimal(chargeLen == "" ? "0" : chargeLen) + Convert.ToDecimal(elimLen == "" ? "0" : elimLen);
  155. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  156. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  157. }
  158. else if (ordUnit == "毫米")
  159. {
  160. repQty = ordQty + Convert.ToDecimal(chargeLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeLen) * 1000)) + Convert.ToDecimal(elimLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimLen) * 1000));
  161. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  162. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  163. }
  164. else if (ordUnit == "英尺")
  165. {
  166. 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)));
  167. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  168. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  169. }
  170. else if (ordUnit == "英镑")
  171. {
  172. 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)));
  173. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  174. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  175. }
  176. if (repQty <= 0)
  177. continue;
  178. reportModel.DelvryQty = ordQty.ToString();
  179. reportModel.ChargeNum = chargeNum;
  180. reportModel.ChargeWgt = chargeWgt;
  181. reportModel.ChargeLen = chargeLen;
  182. reportModel.ElimNum = elimNum;
  183. reportModel.ElimWgt = elimWgt;
  184. reportModel.ElimLen = elimLen;
  185. // ORDER_QTY NUMBER(8,3),
  186. reportModel.OrderQty = Convert.ToString(repQty);
  187. // ORDERWEIGHT NUMBER(16,3),重量估算
  188. reportModel.Orderweight = Convert.ToString(estWgt);
  189. // ORDERNUM NUMBER(10),合同支数,无。
  190. reportModel.Ordernum = uRow.Cells["ORDERNUM"].Value.ToString();
  191. // TOTLENGTH NUMBER(16,3),OrdEnsuTotlLen,总保长
  192. reportModel.Totlength = Convert.ToString(sureLen);
  193. // ORDER_UNIT VARCHAR2(20),
  194. reportModel.OrderUnit = uRow.Cells["OrderUnit"].Value.ToString();
  195. reportModel.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
  196. ArrayList param = new ArrayList();
  197. param.Add("0");
  198. param.Add(reportModel.OrderQty);
  199. param.Add(reportModel.Orderweight);
  200. param.Add(reportModel.Ordernum);
  201. param.Add(reportModel.Totlength);
  202. param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  203. list1.Add(JSONFormat.Format(reportModel));
  204. list.Add(param);
  205. }
  206. int succed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.updateConfirmXs",
  207. new object[] { list,list1 }, this.ob);
  208. if (succed > 0)
  209. {
  210. MessageUtil.ShowTips("取消确认成功");
  211. DoQuery(GetQueryCondition());
  212. }
  213. }
  214. public static decimal GetPrdctWgtNew(decimal ordernum, string orderunit, string psc, OpeBase ob)
  215. {
  216. decimal orderwgt = 0; //米单重
  217. decimal dhweight = 0;
  218. ArrayList parm = new ArrayList();
  219. //代表 米单重(数据来源于COM_BASE_SPEC表,通过产品规格编码获取,需要除以1000,将“公斤”转换成“吨”)
  220. //2015-06-17修改 基础数据维护公式计算,已将数据单位 米/吨。
  221. if (orderunit == "米" || orderunit == "毫米" || orderunit == "英尺")
  222. {
  223. //查询数据库
  224. DataTable dataWgt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.GetWeiGht", new Object[] { psc }, ob);
  225. if (dataWgt.Rows.Count > 0)
  226. {
  227. string di = dataWgt.Rows[0][0].ToString(); //外径
  228. string he = dataWgt.Rows[0][1].ToString(); //壁厚
  229. string ty = dataWgt.Rows[0][2].ToString(); //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)
  230. string fomula = ""; //公式
  231. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.getBaseCode4052", null, ob);
  232. for (int i = 0; i < dt.Rows.Count; i++)
  233. {
  234. if (dt.Rows[i][1].ToString().Equals(ty))
  235. {
  236. fomula = dt.Rows[i][0].ToString();
  237. break;
  238. }
  239. }
  240. if (!fomula.Equals(""))
  241. {
  242. fomula = fomula.Replace("外径", di);
  243. fomula = fomula.Replace("壁厚", he);
  244. decimal? result = fomula.CompileFormula();
  245. if (result != null)
  246. orderwgt = (decimal)result;
  247. else
  248. {
  249. MessageBox.Show("质量管理-基础信息维护的米单重公式不合法!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  250. return 0;
  251. }
  252. }
  253. }
  254. //orderwgt = Convert.ToDouble(dataWgt.Rows[0][0]);
  255. }
  256. if (orderunit == "吨")
  257. {
  258. dhweight = ordernum;
  259. }
  260. else if (orderunit == "英镑")
  261. {
  262. dhweight = Convert.ToDecimal(ordernum * Convert.ToDecimal(0.45359237));
  263. }
  264. else if (orderunit == "米")
  265. {
  266. dhweight = (ordernum * orderwgt);
  267. }
  268. else if (orderunit == "毫米")
  269. {
  270. dhweight = (ordernum * orderwgt) / 1000;
  271. }
  272. else if (orderunit == "英尺")
  273. {
  274. dhweight = Convert.ToDecimal(ordernum * Convert.ToDecimal(0.3048) * Convert.ToDecimal(orderwgt));
  275. }
  276. else if (orderunit == "支")
  277. {
  278. dhweight = ordernum;
  279. }
  280. else if (orderunit == "个")
  281. {
  282. dhweight = ordernum;
  283. }
  284. return dhweight;
  285. }
  286. private void DoConfirm()
  287. {
  288. ultraGridSaleOrder.UpdateData();
  289. IQueryable<UltraGridRow> checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'");
  290. if (checkRows.Count() == 0)
  291. {
  292. MessageUtil.ShowTips("未勾选任何合同!");
  293. return;
  294. }
  295. ArrayList list = new ArrayList();
  296. ArrayList list1 = new ArrayList();
  297. foreach (UltraGridRow uRow in checkRows)
  298. {
  299. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleStatus",
  300. new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, this.ob);
  301. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  302. {
  303. continue;
  304. }
  305. if (!dtStatus.Rows[0]["PORDERSTATUS"].ToString().Equals("0"))
  306. {
  307. MessageUtil.ShowTips(uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  308. + uRow.Cells["DeliveryNo"].Value.ToString() + "已接收,无法确认!");
  309. return;
  310. }
  311. ReportOrderLineDelivery reportModel = new ReportOrderLineDelivery();
  312. string specCode = uRow.Cells["SPECCODE"].Value.ToString();
  313. string ordUnit = uRow.Cells["ORDERUNIT"].Value.ToString();
  314. string elimNum = ""; //脱单量
  315. string elimWgt = "";
  316. string elimLen = "";
  317. string chargeNum = ""; //利库量
  318. string chargeWgt = "";
  319. string chargeLen = "";
  320. //新增 利库量 脱单量的处理逻辑
  321. DataTable dt2 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getProcessOrderInfo", new object[] { uRow.Cells["ORDLNDLYPK"].Value.ToString() }, ob);
  322. if (dt2 != null && dt2.Rows.Count > 0)
  323. {
  324. elimNum = dt2.Rows[0]["ELIM_NUM"].ToString();
  325. elimWgt = dt2.Rows[0]["ELIM_WGT"].ToString();
  326. elimLen = dt2.Rows[0]["ELIM_LEN"].ToString();
  327. chargeNum = dt2.Rows[0]["CHARGE_NUM"].ToString();
  328. chargeWgt = dt2.Rows[0]["CHARGE_WGT"].ToString();
  329. chargeLen = dt2.Rows[0]["CHARGE_LEN"].ToString();
  330. }
  331. // reportModel.OrderQty = row["DELVRY_QTY"].ToString(); 以前的提报量
  332. //reportModel.Orderweight = row["ORDERWEIGHT"].ToString(); 估算重量
  333. //reportModel.Totlength = row["TOTLENGTH"].ToString(); 保总长
  334. decimal ordQty = Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()); //交货行的交货量
  335. decimal repQty = 0; //提报量 订单量-利库量+脱单量
  336. decimal estWgt = 0; //估算重量
  337. decimal sureLen = 0; //保总长
  338. if (ordUnit == "吨")
  339. {
  340. repQty = ordQty - Convert.ToDecimal(chargeWgt == "" ? "0" : chargeWgt) + Convert.ToDecimal(elimWgt == "" ? "0" : elimWgt);
  341. estWgt = repQty;
  342. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  343. }
  344. else if (ordUnit == "支")
  345. {
  346. repQty = ordQty - Convert.ToDecimal(chargeNum == "" ? "0" : chargeNum) + Convert.ToDecimal(elimNum == "" ? "0" : elimNum);
  347. estWgt = repQty;
  348. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  349. }
  350. else if (ordUnit == "米")
  351. {
  352. repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : chargeLen) + Convert.ToDecimal(elimLen == "" ? "0" : elimLen);
  353. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  354. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  355. }
  356. else if (ordUnit == "毫米")
  357. {
  358. repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeLen) * 1000)) + Convert.ToDecimal(elimLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimLen) * 1000));
  359. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  360. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  361. }
  362. else if (ordUnit == "英尺")
  363. {
  364. 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)));
  365. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  366. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  367. }
  368. else if (ordUnit == "英镑")
  369. {
  370. 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)));
  371. estWgt = GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
  372. sureLen = repQty / Convert.ToDecimal(uRow.Cells["ORDERQTY"].Value.ToString()) * Convert.ToDecimal(uRow.Cells["TOTLENGTH"].Value.ToString3());
  373. }
  374. if (repQty <= 0)
  375. continue;
  376. reportModel.DelvryQty = ordQty.ToString();
  377. reportModel.ChargeNum = chargeNum;
  378. reportModel.ChargeWgt = chargeWgt;
  379. reportModel.ChargeLen = chargeLen;
  380. reportModel.ElimNum = elimNum;
  381. reportModel.ElimWgt = elimWgt;
  382. reportModel.ElimLen = elimLen;
  383. // ORDER_QTY NUMBER(8,3),
  384. reportModel.OrderQty = Convert.ToString(repQty);
  385. // ORDERWEIGHT NUMBER(16,3),重量估算
  386. reportModel.Orderweight = Convert.ToString(estWgt);
  387. // ORDERNUM NUMBER(10),合同支数,无。
  388. reportModel.Ordernum = uRow.Cells["ORDERNUM"].Value.ToString();
  389. // TOTLENGTH NUMBER(16,3),OrdEnsuTotlLen,总保长
  390. reportModel.Totlength = Convert.ToString(sureLen);
  391. // ORDER_UNIT VARCHAR2(20),
  392. reportModel.OrderUnit = uRow.Cells["OrderUnit"].Value.ToString();
  393. reportModel.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
  394. ArrayList param = new ArrayList();
  395. param.Add("1");
  396. param.Add(reportModel.OrderQty);
  397. param.Add(reportModel.Orderweight);
  398. param.Add(reportModel.Ordernum);
  399. param.Add(reportModel.Totlength);
  400. param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  401. list.Add(param);
  402. list1.Add(JSONFormat.Format(reportModel));
  403. }
  404. int succed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.updateConfirmXs",
  405. new object[] { list, list1 }, this.ob);
  406. if (succed > 0)
  407. {
  408. MessageUtil.ShowTips("确认成功");
  409. DoQuery(GetQueryCondition());
  410. }
  411. }
  412. private void FrmPlnSaleOrder_Load(object sender, EventArgs e)
  413. {
  414. comQueryPanel1.ctrlForQueryPORDERSTATUS.Items.Add("0", "未接收");
  415. comQueryPanel1.ctrlForQueryPORDERSTATUS.Items.Add("1", "已接收");
  416. comQueryPanel1.ctrlForQueryPORDERSTATUS.Items.Add("2", "已下发");
  417. comQueryPanel1.ctrlForQueryPORDERSTATUS.Items.Add("3", "生产中");
  418. comQueryPanel1.ctrlForQueryPORDERSTATUS.Items.Add("4", "生产完成");
  419. comQueryPanel1.ctrlForQueryPORDERSTATUS.Items.Add("5", "缴库完成");
  420. comQueryPanel1.ctrlForQueryPORDERSTATUS.SelectedIndex = 0;
  421. comQueryPanel1.checkBoxIsConfirm.Text = "设计通过";
  422. comQueryPanel1.checkBoxIsConfirm.Visible = true;
  423. comQueryPanel1.checkBoxIsConfirm.Checked = false;
  424. comQueryPanel1.ultraTextEditorAcceptNo.Value = "X" + DateTime.Now.ToString("yyyyMMdd");
  425. if (!this.CustomInfo.ToString().Equals("120501-XS"))
  426. {
  427. splitContainer1.Panel2Collapsed = true;
  428. splitContainer1.Panel2.Hide();
  429. EntityHelper.setColumnShowOrHidden(ultraGridSaleOrder, new string[] { "ActCount", "ActWeight" }, true);
  430. }
  431. Init();
  432. RefresDate();
  433. DoQuery(GetQueryCondition());
  434. }
  435. private void Init()
  436. {
  437. ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["OrderAddDesc"].EditorComponent = ultraFileLook;
  438. ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["OrderAddDesc"].ButtonDisplayStyle
  439. = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
  440. PlanComm.setGridActivation(this.ultraGridSaleOrder.DisplayLayout.Bands[0], "CHC");
  441. PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 7, 3,
  442. "OrderQty", "Orderweight", "Planweight", "Paydownweight", "Lengthmax", "Lengthmin",
  443. "ReqQtysum", "ConfirmWtSum", "PaydownWtMin", "PaydownWtMax", "WeightJg");
  444. PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 7, 2,
  445. "Totlength", "TotlengthM");
  446. PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 5, 2,
  447. "Outdiameter", "Wallthick", "LenToendMin",
  448. "LenToendMax", "LengthJg", "HeightOrdMax", "HeightOrdMin");
  449. PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 5, 0,
  450. "Ordernum", "PaydownNum");
  451. PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 3, 6, "WeightPerM");
  452. PlanComm.setGridSummarySet(ultraGridSaleOrder, 3, "OrderQty", "Orderweight", "Planweight",
  453. "ReqQtysum", "ConfirmWtSum", "PaydownWtMin", "PaydownWtMax", "Paydownweight");
  454. PlanComm.setGridSummarySet(ultraGridSaleOrder, 2, "TotlengthM");
  455. PlanComm.setGridSummarySet(ultraGridSaleOrder, 0, "Ordernum", "PaydownNum", "TotlengthM");
  456. }
  457. /// <summary>
  458. /// 刷新
  459. /// </summary>
  460. private void RefresDate()
  461. {
  462. DataTable tableBaseInfo = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryBaseinfoAll",
  463. new object[] { }, this.ob);
  464. if (tableBaseInfo != null)
  465. {
  466. //外购坯
  467. tableBaseInfo.DefaultView.RowFilter = "SORTCODE='1218'";
  468. DataTable dtOutBillet = tableBaseInfo.DefaultView.ToTable();
  469. if (dtOutBillet != null && dtOutBillet.Rows.Count > 0)
  470. {
  471. ValueList vlistSteel = PlanComm.GeneralValuelist(ref dtOutBillet, "BASECODE", "BASENAME");
  472. ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["OutsBilletFl"].ValueList = vlistSteel;
  473. ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["OutsBilletFl"].Style =
  474. Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  475. }
  476. }
  477. }
  478. /// <summary>
  479. /// 获取查询条件信息
  480. /// </summary>
  481. /// <returns>查询条件信息</returns>
  482. private ArrayList GetQueryCondition()
  483. {
  484. ArrayList ary = new ArrayList();
  485. string strRollmonth = "";
  486. string strAcceptNo = "";//接收批次号
  487. string strOrderNo = ""; //合同号
  488. string strOrderStatus = ""; //合同状态
  489. string haveJg = ""; //是否有接箍
  490. string haveDj = ""; //是否有短节
  491. string isGpOrder = ""; //是否是管坯合同
  492. if (comQueryPanel1.checkBoxHvJg.Checked)
  493. {
  494. haveJg = "1";
  495. }
  496. if (comQueryPanel1.checkBoxHvDj.Checked)
  497. {
  498. haveDj = "1";
  499. }
  500. if (comQueryPanel1.checkBoxisGp.Checked)
  501. {
  502. isGpOrder = "1";
  503. }
  504. if (comQueryPanel1.checkBoxAcceptNo.Checked)
  505. {
  506. strAcceptNo = comQueryPanel1.ultraTextEditorAcceptNo.Text.Trim();
  507. }
  508. if (comQueryPanel1.checkBoxForReqORDER_NO.Checked)
  509. {
  510. strOrderNo = comQueryPanel1.ctrlForQueryORDER_NO.Text.Trim();
  511. }
  512. if (comQueryPanel1.checkBoxForReqPORDERSTATUS.Checked)
  513. {
  514. strOrderStatus = comQueryPanel1.ctrlForQueryPORDERSTATUS.Value.ToString();
  515. }
  516. if (comQueryPanel1.checkBoxRollMonth.Checked)
  517. {
  518. strRollmonth = comQueryPanel1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM");
  519. }
  520. ary.Add(strRollmonth);
  521. ary.Add(strAcceptNo);
  522. ary.Add(strOrderNo);
  523. ary.Add(strOrderStatus);
  524. ary.Add(haveJg);
  525. ary.Add(haveJg);
  526. ary.Add(haveDj);
  527. ary.Add(haveDj);
  528. ary.Add(isGpOrder);
  529. ary.Add(isGpOrder);
  530. return ary;
  531. }
  532. /// <summary>
  533. /// 查询
  534. /// </summary>
  535. private void DoQuery(ArrayList ary)
  536. {
  537. if (this.CustomInfo.ToString().Equals("120501-XS"))
  538. {
  539. this.slmPlnSaleordEntitybindingSource.DataSource = EntityHelper.GetData<PlnSaleordEntity>(
  540. "com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleOrder1",
  541. new object[] { ary, comQueryPanel1.checkBoxIsConfirm.Checked, this.CustomInfo.ToString2() }, this.ob);
  542. }
  543. else {
  544. this.slmPlnSaleordEntitybindingSource.DataSource = EntityHelper.GetData<PlnSaleordEntity>(
  545. "com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleOrder",
  546. new object[] { ary, comQueryPanel1.checkBoxIsConfirm.Checked, this.CustomInfo.ToString2() }, this.ob);
  547. }
  548. IQueryable<UltraGridRow> uRows = ultraGridSaleOrder.Rows.AsQueryable().Where(" IsBackord = '是' ");
  549. foreach (UltraGridRow uRow in uRows)
  550. {
  551. uRow.Appearance.BackColor = Color.FromArgb(255, 222, 173);
  552. }
  553. }
  554. /// <summary>
  555. /// 合同接收
  556. /// </summary>
  557. //private void DoAccept()
  558. //{
  559. // try
  560. // {
  561. // int defailNum = 0;
  562. // string messageErr = "";
  563. // this.ultraGridSaleOrder.UpdateData();
  564. // ArrayList list = new ArrayList();
  565. // ArrayList listPrc = new ArrayList();
  566. // IQueryable<UltraGridRow> checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'");
  567. // if (checkRows.Count() == 0)
  568. // {
  569. // MessageUtil.ShowTips("未勾选任何合同!");
  570. // return;
  571. // }
  572. // PlanComm.WaitFromOpen(this.Cursor);
  573. // foreach (UltraGridRow uRow in checkRows)
  574. // {
  575. // PlnSaleordEntity orderEntity = new PlnSaleordEntity();
  576. // PlnSaleordProcEntity orderPrcEntity = new PlnSaleordProcEntity();
  577. // #region 验证合同
  578. // if (!VerifyOnly(uRow.Cells["OrderNo"].Value.ToString(),
  579. // uRow.Cells["OrderSeq"].Value.ToString(),
  580. // uRow.Cells["DeliveryNo"].Value.ToString()))
  581. // {
  582. // if (messageErr.Equals(""))
  583. // {
  584. // messageErr = "交货行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  585. // + uRow.Cells["DeliveryNo"].Value.ToString() + "存在多条,请联系合同提报人!";
  586. // }
  587. // defailNum++;
  588. // continue;
  589. // }
  590. // DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleStatus",
  591. // new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, this.ob);
  592. // if (dtStatus == null || dtStatus.Rows.Count <= 0)
  593. // {
  594. // defailNum++;
  595. // continue;
  596. // }
  597. // if (!dtStatus.Rows[0]["PORDERSTATUS"].ToString().Equals("0"))
  598. // {
  599. // if (messageErr.Equals(""))
  600. // {
  601. // messageErr = "交货行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  602. // + uRow.Cells["DeliveryNo"].Value.ToString() + "已经接收过了!";
  603. // }
  604. // defailNum++;
  605. // continue;
  606. // }
  607. // string desginKey = ""; //质量设计主键
  608. // DataTable dtCraft = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryOrdCraftOrdDesign",
  609. // new object[] { uRow.Cells["OrdLnPk"].Value.ToString() }, this.ob);
  610. // if (dtCraft != null && dtCraft.Rows.Count > 0)
  611. // {
  612. // bool isSpecCraft = false;
  613. // foreach (DataRow dr in dtCraft.Rows)
  614. // {
  615. // if (dr["VALIDFLAG"].ToString().Equals("1"))
  616. // {
  617. // isSpecCraft = true;
  618. // desginKey = dr["DESGIN_KEY"].ToString();
  619. // orderPrcEntity.CraftFileMan = dr["CRAFT_NAME"].ToString();
  620. // orderPrcEntity.CraftFileNo = dr["CRAFT_NO"].ToString();
  621. // orderPrcEntity.CraftSeq = dr["CRAFT_SEQ"].ToString();
  622. // orderPrcEntity.CraftNoV = dr["CRAFT_NO_V"].ToString();
  623. // break;
  624. // }
  625. // }
  626. // if (!isSpecCraft)
  627. // {
  628. // desginKey = dtCraft.Rows[0]["DESGIN_KEY"].ToString();
  629. // orderPrcEntity.CraftFileMan = dtCraft.Rows[0]["CRAFT_NAME"].ToString();
  630. // orderPrcEntity.CraftFileNo = dtCraft.Rows[0]["CRAFT_NO"].ToString();
  631. // orderPrcEntity.CraftSeq = dtCraft.Rows[0]["CRAFT_SEQ"].ToString();
  632. // orderPrcEntity.CraftNoV = dtCraft.Rows[0]["CRAFT_NO_V"].ToString();
  633. // }
  634. // }
  635. // else
  636. // {
  637. // if (!uRow.Cells["Departname"].Value.ToString().Equals("")
  638. // || !uRow.Cells["UnitDesc"].Value.ToString().Equals(""))
  639. // {
  640. // if (messageErr.Equals(""))
  641. // {
  642. // messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "未找到工艺评审!\n"
  643. // + uRow.Cells["Departname"].Value.ToString() + "," + uRow.Cells["UnitDesc"].Value.ToString() + "。";
  644. // }
  645. // }
  646. // else
  647. // {
  648. // if (messageErr.Equals(""))
  649. // {
  650. // messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "未找到工艺评审!";
  651. // }
  652. // }
  653. // defailNum++;
  654. // continue;
  655. // }
  656. // #endregion
  657. // #region 获取信息
  658. // orderEntity.TotlengthM = uRow.Cells["Totlength"].Value.ToString(); //保米长
  659. // orderEntity.LenUnit = uRow.Cells["LenUnit"].Value.ToString(); //长度单位
  660. // orderEntity.TotlengthUnit = uRow.Cells["LenUnit"].Value.ToString();//保总长单位
  661. // orderEntity.Lengthmax = uRow.Cells["Lengthmax"].Value.ToString();//最大长度
  662. // orderEntity.Lengthmin = uRow.Cells["Lengthmin"].Value.ToString(); //最小长度
  663. // orderEntity.ShrtLenRato = uRow.Cells["ShrtLenRato"].Value.ToString();//短尺率
  664. // orderEntity.Shortest = uRow.Cells["Shortest"].Value.ToString(); //短尺最短
  665. // orderEntity.Longest = uRow.Cells["Longest"].Value.ToString(); //长尺最长
  666. // orderEntity.AvgLenMin = uRow.Cells["AvgLenMin"].Value.ToString();//平均长度大于
  667. // orderEntity.DifrncLenMax = uRow.Cells["DifrncLenMax"].Value.ToString();//最长最短差小于
  668. // orderEntity.SiglLen = uRow.Cells["SiglLen"].Value.ToString(); //单倍尺长
  669. // orderEntity.EndlenSpecstd = uRow.Cells["EndlenSpecstd"].Value.ToString();//成品长度公差(单倍尺长专用)
  670. // orderEntity.AddAskNo = uRow.Cells["AddAskNo"].Value.ToString();//附加要求编码
  671. // orderEntity.OrderUnit = dtStatus.Rows[0]["ORDER_UNIT"].ToString(); //订货计量单位
  672. // orderEntity.OutsStlPipeFl = dtStatus.Rows[0]["OUTS_STL_PIPE_FL"].ToString();//外购管
  673. // string producType = ""; //品名类型
  674. // bool isProCodeD = false;//是否经过轧管
  675. // double outdiameter = 0;///外径
  676. // double wallthick = 0; //壁厚
  677. // double orderQty = 0;//合同订货量
  678. // double.TryParse(uRow.Cells["Wallthick"].Value.ToString(), out wallthick);
  679. // if (!double.TryParse(uRow.Cells["Outdiameter"].Value.ToString(), out outdiameter))
  680. // {
  681. // if (messageErr.Equals(""))
  682. // {
  683. // messageErr = "交货行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  684. // + uRow.Cells["DeliveryNo"].Value.ToString() + "外径有误,请核对合同信息!";
  685. // }
  686. // defailNum++;
  687. // continue;
  688. // }
  689. // if (!double.TryParse(dtStatus.Rows[0]["ORDER_QTY"].ToString(), out orderQty))
  690. // {
  691. // if (messageErr.Equals(""))
  692. // {
  693. // messageErr = "交货行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  694. // + uRow.Cells["DeliveryNo"].Value.ToString() + "订货量有误!";
  695. // }
  696. // defailNum++;
  697. // continue;
  698. // }
  699. // if (orderEntity.LenUnit.Trim().Equals("英尺"))
  700. // {
  701. // #region 长度单位为英尺、所有长度字段单位转换为米。
  702. // if (!orderEntity.Lengthmax.Trim().Equals(""))
  703. // {
  704. // ///最大长度
  705. // orderEntity.Lengthmax = PlanComm.FootoMi(Convert.ToDouble(orderEntity.Lengthmax)).ToString();
  706. // }
  707. // if (!orderEntity.Lengthmin.Trim().Equals(""))
  708. // {
  709. // ///最小长度
  710. // orderEntity.Lengthmin = PlanComm.FootoMi(Convert.ToDouble(orderEntity.Lengthmin)).ToString();
  711. // }
  712. // if (!orderEntity.Shortest.Trim().Equals(""))
  713. // {
  714. // ///短尺最短
  715. // orderEntity.Shortest = PlanComm.FootoMi(Convert.ToDouble(orderEntity.Shortest)).ToString();
  716. // }
  717. // if (!orderEntity.TotlengthM.Trim().Equals(""))
  718. // {
  719. // ///订货长度(保总长)、保米长
  720. // orderEntity.TotlengthM = PlanComm.FootoMi(Convert.ToDouble(orderEntity.TotlengthM)).ToString();
  721. // }
  722. // if (!orderEntity.Longest.Trim().Equals(""))
  723. // {
  724. // ///长尺最长
  725. // orderEntity.Longest = PlanComm.FootoMi(Convert.ToDouble(orderEntity.Longest)).ToString();
  726. // }
  727. // if (!orderEntity.AvgLenMin.Trim().Equals(""))
  728. // {
  729. // ///平均长度大于
  730. // orderEntity.AvgLenMin = PlanComm.FootoMi(Convert.ToDouble(orderEntity.AvgLenMin)).ToString();
  731. // }
  732. // if (!orderEntity.DifrncLenMax.Trim().Equals(""))
  733. // {
  734. // ///最长最短差小于
  735. // orderEntity.DifrncLenMax = PlanComm.FootoMi(Convert.ToDouble(orderEntity.DifrncLenMax)).ToString();
  736. // }
  737. // if (!orderEntity.SiglLen.Trim().Equals(""))
  738. // {
  739. // ///单倍尺长
  740. // orderEntity.SiglLen = PlanComm.FootoMi(Convert.ToDouble(orderEntity.SiglLen)).ToString();
  741. // }
  742. // if (!orderEntity.EndlenSpecstd.Trim().Equals(""))
  743. // {
  744. // ///成品长度公差
  745. // orderEntity.EndlenSpecstd = PlanComm.FootoMi(Convert.ToDouble(orderEntity.EndlenSpecstd)).ToString();
  746. // }
  747. // #endregion
  748. // }
  749. // //查询销售分类和品名类型
  750. // DataTable dtProduce = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryProducType",
  751. // new object[] { uRow.Cells["Produccode"].Value.ToString() }, this.ob);
  752. // if (dtProduce != null && dtProduce.Rows.Count > 0)
  753. // {
  754. // orderEntity.PrdCls = dtProduce.Rows[0]["PRODUC_STYLE"].ToString();
  755. // producType = dtProduce.Rows[0]["PRODUC_TYPE"].ToString();
  756. // }
  757. // //计重方式-理重、实重
  758. // DataTable dtAddAsk = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryWeighType",
  759. // new object[] { uRow.Cells["AddAskNo"].Value.ToString() }, this.ob);
  760. // if (dtAddAsk != null && dtAddAsk.Rows.Count > 0)
  761. // {
  762. // orderEntity.WeighType = dtAddAsk.Rows[0]["ASK_SUB_ITME_VAL_DESC"].ToString();
  763. // }
  764. // //合同行交货到站
  765. // DataTable dtTransit = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryTransit",
  766. // new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, this.ob);
  767. // if (dtTransit != null && dtTransit.Rows.Count > 0)
  768. // {
  769. // orderEntity.StationNo = dtTransit.Rows[0]["STATION_NO"].ToString();
  770. // orderEntity.StationNm = dtTransit.Rows[0]["STATION_NM"].ToString();
  771. // }
  772. // //合同行交货运输方案
  773. // DataTable dtTranType = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryTranType",
  774. // new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, this.ob);
  775. // if (dtTranType != null && dtTranType.Rows.Count > 0)
  776. // {
  777. // orderEntity.TransitTyp = dtTranType.Rows[0]["TRANSIT_TYP"].ToString();
  778. // }
  779. // #region 查询质量设计制程
  780. // DataTable dtDegnPl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryDesginPl",
  781. // new object[] { desginKey }, this.ob);
  782. // if (dtDegnPl != null && dtDegnPl.Rows.Count > 0)
  783. // {
  784. // orderPrcEntity.IndexSeq = dtDegnPl.Rows[0]["MSC_PLINE"].ToString();
  785. // orderPrcEntity.ProcessSeq = dtDegnPl.Rows[0]["WHOLE_BACKLOG"].ToString();
  786. // orderPrcEntity.GradecodeAll = dtDegnPl.Rows[0]["GRADENAME"].ToString();
  787. // string wholeDesc = dtDegnPl.Rows[0]["WHOLE_BACKLOG_DESC"].ToString();
  788. // orderEntity.Endgxname = wholeDesc.Substring(wholeDesc.LastIndexOf('-') + 1,
  789. // wholeDesc.Length - wholeDesc.LastIndexOf('-') - 1);
  790. // if (orderPrcEntity.ProcessSeq.Equals(""))
  791. // {
  792. // if (messageErr.Equals(""))
  793. // {
  794. // messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  795. // + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  796. // + "未找到制程经过的工序,请联系管理员。";
  797. // }
  798. // defailNum++;
  799. // continue;
  800. // }
  801. // }
  802. // else
  803. // {
  804. // if (messageErr.Equals(""))
  805. // {
  806. // messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  807. // + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  808. // + "未找到制程,请联系管理员。";
  809. // }
  810. // defailNum++;
  811. // continue;
  812. // }
  813. // #endregion
  814. // #region 根据制程查询全程途经工序
  815. // ArrayList param = new ArrayList();
  816. // param.Add(desginKey);
  817. // param.Add(orderPrcEntity.IndexSeq);
  818. // DataTable dtProcess = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryMscplPrc",
  819. // new object[] { param }, this.ob);
  820. // if (dtProcess != null && dtProcess.Rows.Count > 0)
  821. // {
  822. // string endgxCode = orderPrcEntity.ProcessSeq.Substring(orderPrcEntity.ProcessSeq.Length - 1);
  823. // string gprocessC = ""; //加工二级工序
  824. // string fprocessC = ""; //热处理二级工序
  825. // orderPrcEntity.GroupJgx = "/";
  826. // orderPrcEntity.GroupRcl = "/";
  827. // orderPrcEntity.BjType = "/";
  828. // foreach (DataRow dr in dtProcess.Rows)
  829. // {
  830. // if (dr["PROCESS_CODE"].ToString().Trim().Equals("H"))
  831. // {
  832. // orderPrcEntity.GroupJgx = "200401";
  833. // }
  834. // if (dr["PROCESS_CODE"].ToString().Trim().Equals("G"))
  835. // {
  836. // //经过加工工序
  837. // gprocessC = dr["PROCESS_CODE_C"].ToString();
  838. // //加工组
  839. // //string modelCode = uRow.Cells["ModelCode"].Value.ToString();
  840. // //string[] planGroups = FrmDefGroup.planGroups(desginKey,
  841. // // orderPrcEntity.IndexSeq, "G", this.ob);
  842. // //if (planGroups != null)
  843. // //{
  844. // // orderPrcEntity.GroupJgx = FrmDefGroup.defgourpJgc(planGroups, outdiameter, modelCode, this.ob);
  845. // //}
  846. // //else
  847. // //{
  848. // // orderPrcEntity.GroupJgx = FrmDefGroup.defgourpJgc(outdiameter, modelCode, this.ob);
  849. // //}
  850. // }
  851. // if (dr["PROCESS_CODE"].ToString().Trim().Equals("F"))
  852. // {
  853. // //经过热处理工序
  854. // fprocessC = dr["PROCESS_CODE_C"].ToString();
  855. // //热处理组
  856. // //double lengthmax = Convert.ToDouble(uRow.Cells["Lengthmax"].Value);
  857. // //string modelCode = uRow.Cells["ModelCode"].Value.ToString();
  858. // //string[] planGroups = FrmDefGroup.planGroups(desginKey,
  859. // // orderPrcEntity.IndexSeq, "F", this.ob);
  860. // //if (planGroups != null)
  861. // //{
  862. // // orderPrcEntity.GroupRcl = FrmDefGroup.defgourpRcl(planGroups, outdiameter, wallthick,
  863. // // lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob);
  864. // //}
  865. // //else
  866. // //{
  867. // // orderPrcEntity.GroupRcl = FrmDefGroup.defgourpRcl(outdiameter, wallthick,
  868. // // lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob);
  869. // //}
  870. // }
  871. // if (dr["PROCESS_CODE"].ToString().Trim().Equals("E"))
  872. // {
  873. // //经过镦拔扩工序
  874. // orderPrcEntity.BjType = dr["PROCESS_DESC_C"].ToString();
  875. // }
  876. // if (dr["PROCESS_CODE"].ToString().Trim().Equals("D"))
  877. // {
  878. // //经过轧管工序
  879. // isProCodeD = true;
  880. // }
  881. // }
  882. // ///生产分类
  883. // orderEntity.ProduceSort = PlnSaleOrderBase.produceSort(endgxCode, orderEntity.PrdCls, gprocessC, fprocessC);
  884. // }
  885. // else
  886. // {
  887. // if (messageErr.Equals(""))
  888. // {
  889. // messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  890. // + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  891. // + "未找到制程途径工序,请联系管理员。";
  892. // }
  893. // defailNum++;
  894. // continue;
  895. // }
  896. // #endregion
  897. // //查询监制要求
  898. // orderEntity.Monitordemand = queryLinePrdcr(uRow.Cells["PrdcrNo"].Value.ToString(),
  899. // orderPrcEntity.IndexSeq);
  900. // orderPrcEntity.Prdcrpro = getOrdPrdcrpro(uRow.Cells["PrdcrNo"].Value.ToString(),
  901. // orderPrcEntity.IndexSeq, this.ob);
  902. // //组合类型
  903. // orderEntity.Mergetype = MergeType(desginKey, orderPrcEntity.ProcessSeq).ToString();
  904. // #region 接箍信息
  905. // if (producType.Equals("D"))
  906. // {
  907. // # region 如果品名类型是接箍
  908. // DataTable dtjg = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryJgCode",
  909. // new object[] { desginKey }, this.ob);
  910. // if (dtjg != null && dtjg.Rows.Count > 0)
  911. // {
  912. // orderEntity.CodeJg = dtjg.Rows[0]["CODE_JG"].ToString();//接箍码
  913. // orderEntity.LengthJg = dtjg.Rows[0]["LENGTH_JG"].ToString(); //接箍长度
  914. // //交货单位“个”或“支”,有合同支数
  915. // if (!(orderEntity.OrderUnit.Trim().Equals("个") ||
  916. // orderEntity.OrderUnit.Trim().Equals("支")))
  917. // {
  918. // if (messageErr.Equals(""))
  919. // {
  920. // messageErr = "成品接箍合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  921. // + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  922. // + "交货单位不是“支”,请检查合同!";
  923. // }
  924. // defailNum++;
  925. // continue;
  926. // }
  927. // }
  928. // #endregion
  929. // }
  930. // else if (producType.Equals("B"))
  931. // {
  932. // //如果是钢管+接箍
  933. // DataTable dtjg = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryJgCode",
  934. // new object[] { desginKey }, this.ob);
  935. // if (dtjg != null && dtjg.Rows.Count > 0)
  936. // {
  937. // orderEntity.CodeJg = dtjg.Rows[0]["CODE_JG"].ToString();//接箍码
  938. // orderEntity.LengthJg = dtjg.Rows[0]["LENGTH_JG"].ToString();//接箍长度
  939. // }
  940. // }
  941. // else if (producType.Equals("C"))
  942. // {
  943. // //附件中,如果有接箍,写入接箍码
  944. // DataTable dtjg = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryJgCode",
  945. // new object[] { desginKey }, this.ob);
  946. // if (dtjg != null && dtjg.Rows.Count > 0)
  947. // {
  948. // orderEntity.CodeJg = dtjg.Rows[0]["CODE_JG"].ToString();//接箍码
  949. // orderEntity.LengthJg = dtjg.Rows[0]["LENGTH_JG"].ToString();//接箍长度
  950. // }
  951. // }
  952. // #endregion
  953. // //查询物料信息
  954. // param.Clear();
  955. // param.Add(orderPrcEntity.IndexSeq);
  956. // param.Add(uRow.Cells["Msc"].Value.ToString());
  957. // param.Add(uRow.Cells["MaterialNo"].Value.ToString());
  958. // param.Add(orderPrcEntity.ProcessSeq);
  959. // DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdMscBom",
  960. // new object[] { param }, this.ob);
  961. // if (dtBom != null && dtBom.Rows.Count > 0)
  962. // {
  963. // bool isAvailBom = false;//是否存在可用BOM
  964. // string errReason = "";//不可用原因
  965. // foreach (DataRow dr in dtBom.Rows)
  966. // {
  967. // #region 判断坯料的属性
  968. // string dinMaterial = "";
  969. // ///轧管投入物料(炼钢末工序产出物料)
  970. // if (!dr["D_IN_MATERIAL_NO"].ToString().Equals(""))
  971. // {
  972. // dinMaterial = dr["D_IN_MATERIAL_NO"].ToString();
  973. // }
  974. // else if (!dr["C_OUT_MATERIAL_NO"].ToString().Equals(""))
  975. // {
  976. // dinMaterial = dr["C_OUT_MATERIAL_NO"].ToString();
  977. // }
  978. // else if (!dr["B_OUT_MATERIAL_NO"].ToString().Equals(""))
  979. // {
  980. // dinMaterial = dr["B_OUT_MATERIAL_NO"].ToString();
  981. // }
  982. // else
  983. // {
  984. // dinMaterial = dr["A_OUT_MATERIAL_NO"].ToString();
  985. // }
  986. // orderPrcEntity.StuffProperty = PlnSaleOrderBase.stuffProperty(dinMaterial);
  987. // #endregion
  988. // // 轧管去向
  989. // orderPrcEntity.Abc = PlnSaleOrderBase.getPlnOrdZgAbc(
  990. // dr["D_OUT_MATERIAL_NO"].ToString());
  991. // orderPrcEntity.Bom = dr["BOM"].ToString();
  992. // orderPrcEntity.GroupRollAll = dr["D_PLINE"].ToString();
  993. // orderPrcEntity.Gradecode = dr["GRADECODE"].ToString();
  994. // orderPrcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString();
  995. // orderPrcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString();
  996. // orderPrcEntity.DimaterYlg = dr["DIMATER"].ToString();
  997. // orderPrcEntity.HeightYlg = dr["HEIGHT"].ToString();
  998. // orderPrcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
  999. // orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
  1000. // orderPrcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
  1001. // orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
  1002. // #region 默认轧管产线
  1003. // ArrayList paramPline = new ArrayList();
  1004. // paramPline.Add(dr["D_IN_MATERIAL_NO"].ToString());
  1005. // paramPline.Add(dr["D_OUT_MATERIAL_NO"].ToString());
  1006. // paramPline.Add(desginKey);
  1007. // paramPline.Add(orderPrcEntity.IndexSeq);
  1008. // paramPline.Add(uRow.Cells["FinalUser"].Value.ToString());
  1009. // paramPline.Add(uRow.Cells["Produccode"].Value.ToString());
  1010. // DataTable dtDpl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getBomMaterialDpl",
  1011. // new object[] { paramPline }, this.ob);
  1012. // if (dtDpl != null && dtDpl.Rows.Count > 0)
  1013. // {
  1014. // //如果存在ASSEL机组,优选ASSEL机组
  1015. // if (PlanComm.isInDataTable(dtDpl, "PLINE_CODE", "C012"))
  1016. // {
  1017. // if (queryAsselFl(uRow.Cells["OrdLnPk"].Value.ToString(), this.ob))
  1018. // {
  1019. // orderPrcEntity.GroupRoll = "C012";
  1020. // }
  1021. // else
  1022. // {
  1023. // bool isPline = false;
  1024. // foreach (DataRow drPine in dtDpl.Rows)
  1025. // {
  1026. // if (!drPine["PLINE_CODE"].ToString().Equals("C012"))
  1027. // {
  1028. // isPline = true;
  1029. // orderPrcEntity.GroupRoll = drPine["PLINE_CODE"].ToString();
  1030. // break;
  1031. // }
  1032. // }
  1033. // if (!isPline)
  1034. // {
  1035. // orderPrcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
  1036. // }
  1037. // }
  1038. // }
  1039. // else
  1040. // {
  1041. // orderPrcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
  1042. // }
  1043. // }
  1044. // else if (isProCodeD)
  1045. // {
  1046. // errReason = "未找到可用轧管机组(BOM:" + dr["BOM"].ToString() + ")。";
  1047. // continue;
  1048. // }
  1049. // #endregion
  1050. // if (orderEntity.Mergetype.Equals("3"))
  1051. // {
  1052. // #region 管坯合同
  1053. //double orderWeight = 0; //合同量
  1054. //double aimlength = 0; //目标长度
  1055. //int planNum = 0;//合同支数
  1056. //DateTime date = new DateTime();
  1057. //double weightMI = PlanComm.GpweightOfmi(outdiameter);//米单重
  1058. //double rate = 0;
  1059. //double delvryRangeMax = Convert.ToDouble(uRow.Cells["DelvryRangeMax"].Value);
  1060. //double delvryRangeMin = Convert.ToDouble(uRow.Cells["DelvryRangeMin"].Value);
  1061. //if (uRow.Cells["DelvryRangeTpe"].Value.ToString().Trim().Equals("绝对值"))
  1062. //{
  1063. // delvryRangeMax = (delvryRangeMax / orderQty) * 100;
  1064. // delvryRangeMin = (delvryRangeMin / orderQty) * 100;
  1065. //}
  1066. //if (orderEntity.OrderUnit.Equals("米"))
  1067. //{
  1068. // orderWeight = Math.Round((orderQty * weightMI), 3);
  1069. //}
  1070. //else if (orderEntity.OrderUnit.Equals("英尺"))
  1071. //{
  1072. // double lengqty = PlanComm.FootoMi(orderQty);
  1073. // orderWeight = Math.Round((lengqty * weightMI), 3);
  1074. //}
  1075. //else if (orderEntity.OrderUnit.Equals("英磅"))
  1076. //{
  1077. // orderWeight = PlanComm.PoundtoTon(orderQty);
  1078. //}
  1079. //else
  1080. //{
  1081. // orderWeight = orderQty;
  1082. //}
  1083. ////目标长度,取长度上下限中间值,计算计划支数
  1084. //if (!orderEntity.Lengthmax.Trim().Equals("") && !orderEntity.Lengthmin.Trim().Equals(""))
  1085. //{
  1086. // aimlength = (Convert.ToDouble(orderEntity.Lengthmax) +
  1087. // Convert.ToDouble(orderEntity.Lengthmin)) / 2;
  1088. // if ((orderWeight % (aimlength * weightMI)) == 0)
  1089. // {
  1090. // planNum = (int)(orderWeight / (aimlength * weightMI));
  1091. // }
  1092. // else
  1093. // {
  1094. // planNum = (int)(orderWeight / (aimlength * weightMI)) + 1;
  1095. // }
  1096. //}
  1097. //if (DateTime.TryParse(uRow.Cells["RollMonth"].Value.ToString(), out date))
  1098. //{
  1099. // rate = ((delvryRangeMax + delvryRangeMin) * queryPutRate(
  1100. // date.Year, date.Month, this.ob) - delvryRangeMin) / 100;
  1101. //}
  1102. //orderEntity.Planweight = orderWeight.ToString();
  1103. //orderEntity.Orderweight = orderWeight.ToString();
  1104. //orderEntity.Ordernum = planNum.ToString();
  1105. //orderEntity.WeightPerM = Math.Round(weightMI, 6).ToString();
  1106. //orderEntity.PaydownWtMax = (orderWeight * delvryRangeMax / 100).ToString();
  1107. //orderEntity.PaydownWtMin = (orderWeight * delvryRangeMin / 100).ToString();
  1108. //orderPrcEntity.PlanWtD = orderWeight.ToString();
  1109. //orderPrcEntity.PlanNumD = planNum.ToString();
  1110. //orderPrcEntity.WeightPerM = Math.Round(weightMI, 6).ToString();
  1111. //orderPrcEntity.AimLenEnd = aimlength.ToString();
  1112. //orderPrcEntity.PlanPMain = ((1 + rate) * orderWeight).ToString();
  1113. //orderPrcEntity.HeightNkMax = "0";
  1114. //orderPrcEntity.HeightNkMin = "0";
  1115. //orderPrcEntity.AimLenRoll = "0";
  1116. // #endregion
  1117. // }
  1118. // else if (orderPrcEntity.ProcessSeq.Contains("D")
  1119. // && !orderPrcEntity.GroupRoll.Trim().Equals("C072")
  1120. // && !orderEntity.OutsStlPipeFl.Equals("121903")
  1121. // && !orderEntity.OutsStlPipeFl.Equals("121902")
  1122. // || orderEntity.OrderUnit.Trim().Equals("支"))
  1123. // {
  1124. // #region 合同量转换
  1125. // OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
  1126. // InOrdParamEntity inOrdParam = new InOrdParamEntity();
  1127. // PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob);
  1128. // DateTime date = new DateTime();
  1129. // string errMessage = "";
  1130. // double putRate = 1;
  1131. // double height = 0;
  1132. // if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
  1133. // {
  1134. // //投料率
  1135. // putRate = queryPutRate(date.Year, date.Month, this.ob);
  1136. // }
  1137. // inOrdParam = ordAmountCal.getInOrdParam(desginKey, orderPrcEntity.IndexSeq,
  1138. // uRow.Cells["OrdLnDlyPk"].Value.ToString(), orderPrcEntity.GroupRoll,
  1139. // orderPrcEntity.Bom, orderEntity.CodeJg, putRate);
  1140. // if (!ordAmountCal.isRightParam(inOrdParam, desginKey, orderEntity.CodeJg,
  1141. // orderPrcEntity.Bom, orderPrcEntity.GroupRoll, out errMessage))
  1142. // {
  1143. // errReason = errMessage;
  1144. // continue;
  1145. // }
  1146. // ordAmountCal.InEnity = inOrdParam;
  1147. // outOrdParam = ordAmountCal.getOrdAmount();
  1148. // if (outOrdParam.ErrCode == -1)
  1149. // {
  1150. // errReason = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
  1151. // continue;
  1152. // }
  1153. // orderEntity.Ordernum = outOrdParam.PlanNum.ToString();
  1154. // orderEntity.Orderweight = outOrdParam.EstWeight.ToString();
  1155. // orderEntity.Orderweightunit = outOrdParam.WeightUnit;
  1156. // orderEntity.Planweight = outOrdParam.WeightInA.ToString();
  1157. // orderEntity.PaydownWtMax = outOrdParam.WeightInAMax.ToString();
  1158. // orderEntity.PaydownWtMin = outOrdParam.WeightInAMin.ToString();
  1159. // orderEntity.WeightPerM = outOrdParam.WeightMi.ToString();
  1160. // orderEntity.LenToendMax = outOrdParam.LenToendMax.ToString();
  1161. // orderEntity.LenToendMin = outOrdParam.LenToendMin.ToString();
  1162. // if (wallthick > 0)
  1163. // {
  1164. // orderEntity.HeightOrdMax = (100 * inOrdParam.StdWallthickMax / wallthick).ToString();
  1165. // orderEntity.HeightOrdMin = (100 * inOrdParam.StdWallthickMin / wallthick).ToString();
  1166. // }
  1167. // orderPrcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
  1168. // orderPrcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
  1169. // orderPrcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
  1170. // orderPrcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
  1171. // orderPrcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
  1172. // orderPrcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
  1173. // orderPrcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
  1174. // orderPrcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
  1175. // orderPrcEntity.CutNumP = outOrdParam.CutNumP.ToString();
  1176. // orderPrcEntity.RollLength = outOrdParam.RollLength.ToString();
  1177. // orderPrcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
  1178. // orderPrcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
  1179. // orderPrcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
  1180. // // 查询控制壁厚
  1181. // if (inOrdParam.StdWallthickMax == inOrdParam.NkWallthickMax
  1182. // && inOrdParam.StdWallthickMin == inOrdParam.NkWallthickMin
  1183. // && wallthick > 0)
  1184. // {
  1185. // orderPrcEntity.HeightNkMax = (100 * inOrdParam.StdWallthickMax / wallthick).ToString();
  1186. // orderPrcEntity.HeightNkMin = (100 * inOrdParam.StdWallthickMin / wallthick).ToString();
  1187. // }
  1188. // else if (double.TryParse(dr["HEIGHT"].ToString(), out height)
  1189. // && height > 0)
  1190. // {
  1191. // orderPrcEntity.HeightNkMax = (100 * inOrdParam.NkWallthickMax / height).ToString();
  1192. // orderPrcEntity.HeightNkMin = (100 * inOrdParam.NkWallthickMin / height).ToString();
  1193. // }
  1194. // #endregion
  1195. // }
  1196. // else
  1197. // {
  1198. // #region 外购管
  1199. // double orderWeight = 0; //合同量
  1200. // double aimlength = 0; //目标长度
  1201. // int planNum = 0;//合同支数
  1202. // OrderStdSic std = new OrderStdSic(this.ob);
  1203. // std.DesginKey = desginKey;
  1204. // std.Outdiameter = outdiameter;
  1205. // std.Wallthick = wallthick;
  1206. // std.getStdTolerance();
  1207. // double weightMI = PlanComm.WeightOfMi(outdiameter, std.AimWallthick);//米单重
  1208. // double rate = 0;
  1209. // DateTime date = new DateTime();
  1210. // double delvryRangeMax = Convert.ToDouble(uRow.Cells["DelvryRangeMax"].Value);
  1211. // double delvryRangeMin = Convert.ToDouble(uRow.Cells["DelvryRangeMin"].Value);
  1212. // if (uRow.Cells["DelvryRangeTpe"].Value.ToString().Trim().Equals("绝对值"))
  1213. // {
  1214. // delvryRangeMax = (delvryRangeMax / orderQty) * 100;
  1215. // delvryRangeMin = (delvryRangeMin / orderQty) * 100;
  1216. // }
  1217. // if (orderEntity.OrderUnit.Equals("米"))
  1218. // {
  1219. // orderWeight = Math.Round((orderQty * weightMI), 3);
  1220. // }
  1221. // else if (orderEntity.OrderUnit.Equals("英尺"))
  1222. // {
  1223. // double lengqty = PlanComm.FootoMi(orderQty);
  1224. // orderWeight = Math.Round((lengqty * weightMI), 3);
  1225. // }
  1226. // else if (orderEntity.OrderUnit.Equals("英磅"))
  1227. // {
  1228. // orderWeight = PlanComm.PoundtoTon(orderQty);
  1229. // }
  1230. // else
  1231. // {
  1232. // orderWeight = orderQty;
  1233. // }
  1234. // //目标长度,取长度上下限中间值,计算计划支数
  1235. // if (!orderEntity.Lengthmax.Trim().Equals("") && !orderEntity.Lengthmin.Trim().Equals(""))
  1236. // {
  1237. // aimlength = (Convert.ToDouble(orderEntity.Lengthmax) +
  1238. // Convert.ToDouble(orderEntity.Lengthmin)) / 2;
  1239. // if ((orderWeight % (aimlength * weightMI)) == 0)
  1240. // {
  1241. // planNum = (int)(orderWeight / (aimlength * weightMI));
  1242. // }
  1243. // else
  1244. // {
  1245. // planNum = (int)(orderWeight / (aimlength * weightMI)) + 1;
  1246. // }
  1247. // }
  1248. // if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
  1249. // {
  1250. // rate = ((delvryRangeMax + delvryRangeMin) * queryPutRate(
  1251. // date.Year, date.Month, this.ob) - delvryRangeMin) / 100;
  1252. // }
  1253. // orderEntity.Orderweight = orderWeight.ToString();
  1254. // orderEntity.Ordernum = planNum.ToString();
  1255. // orderEntity.WeightPerM = Math.Round(weightMI, 6).ToString();
  1256. // orderEntity.Planweight = orderWeight.ToString();
  1257. // orderEntity.PaydownWtMax = (orderWeight * delvryRangeMax / 100).ToString();
  1258. // orderEntity.PaydownWtMin = (orderWeight * delvryRangeMin / 100).ToString();
  1259. // orderEntity.HeightOrdMax = (100 * std.StdMax / wallthick).ToString();
  1260. // orderEntity.HeightOrdMin = (100 * std.StdMin / wallthick).ToString();
  1261. // orderPrcEntity.PlanWtD = orderWeight.ToString();
  1262. // orderPrcEntity.PlanNumD = planNum.ToString();
  1263. // orderPrcEntity.WeightPerM = Math.Round(weightMI, 6).ToString();
  1264. // orderPrcEntity.AimLenEnd = aimlength.ToString();
  1265. // orderPrcEntity.PlanPMain = ((1 + rate) * orderWeight).ToString();
  1266. // orderPrcEntity.PlanTotLenD = (planNum * aimlength).ToString();
  1267. // orderPrcEntity.AimWallthick = std.AimWallthick.ToString();
  1268. // // 查询控制壁厚
  1269. // orderPrcEntity.HeightNkMax = (100 * std.StdMax / wallthick).ToString();
  1270. // orderPrcEntity.HeightNkMin = (100 * std.StdMin / wallthick).ToString();
  1271. // #endregion
  1272. // }
  1273. // isAvailBom = true;
  1274. // break;
  1275. // }
  1276. // if (!isAvailBom)
  1277. // {
  1278. // if (messageErr.Equals(""))
  1279. // {
  1280. // messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  1281. // + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + errReason;
  1282. // }
  1283. // defailNum++;
  1284. // continue;
  1285. // }
  1286. // }
  1287. // else
  1288. // {
  1289. // if (messageErr.Equals(""))
  1290. // {
  1291. // messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  1292. // + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  1293. // + "未找到BOM,请联系管理员。";
  1294. // }
  1295. // defailNum++;
  1296. // continue;
  1297. // }
  1298. // orderEntity.LenUnit = "米";
  1299. // orderEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
  1300. // orderEntity.PipeProperty = PlnSaleOrderBase.pipeProperty(uRow.Cells["MaterialNo"].Value.ToString());
  1301. // orderEntity.BlGroupNum = desginKey;
  1302. // orderEntity.Specstandard = desginKey;
  1303. // orderEntity.UpdateName = UserInfo.GetUserName();
  1304. // orderPrcEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
  1305. // orderPrcEntity.PlnDivideId = "01";
  1306. // ///如果短尺率大于0,则短尺随炉,否则不短尺随炉。
  1307. // if (!orderEntity.ShrtLenRato.Trim().Equals("") && Convert.ToInt32(orderEntity.ShrtLenRato) > 0)
  1308. // {
  1309. // orderEntity.ShrtStove = "短尺随炉";
  1310. // }
  1311. // #region 判断有没有接箍、短节
  1312. // if (orderEntity.Mergetype.Trim().Equals("1") ||
  1313. // orderEntity.Mergetype.Trim().Equals("2"))
  1314. // {
  1315. // orderEntity.JgordIsOk = "0"; //接箍合同是否形成
  1316. // orderEntity.JglReqIsOk = "0"; //接箍料需求是否制订
  1317. // }
  1318. // else
  1319. // {
  1320. // orderEntity.JgordIsOk = "2"; //无接箍
  1321. // orderEntity.JglReqIsOk = "2";//无接箍
  1322. // }
  1323. // //判断有没有短节
  1324. // if (orderEntity.Mergetype.Trim().Equals("0"))
  1325. // {
  1326. // DataTable dtGroupBl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryBlCode",
  1327. // new object[] { desginKey }, this.ob);
  1328. // if (dtGroupBl != null && dtGroupBl.Rows.Count > 0)
  1329. // {
  1330. // orderEntity.DjblReqIsOk = "0"; //短节备料是否形成
  1331. // }
  1332. // else
  1333. // {
  1334. // orderEntity.DjblReqIsOk = "2"; //无短节备料
  1335. // }
  1336. // }
  1337. // else if (orderEntity.Mergetype.Trim().Equals("2"))
  1338. // {
  1339. // orderEntity.DjblReqIsOk = "0"; //短节备料是否形成
  1340. // }
  1341. // else
  1342. // {
  1343. // orderEntity.DjblReqIsOk = "2"; //无短节备料
  1344. // }
  1345. // #endregion
  1346. // #region 各工序信息确认
  1347. // if (orderPrcEntity.ProcessSeq.Contains("F"))
  1348. // {
  1349. // //判断是否经过热处理工序
  1350. // orderPrcEntity.FIsOk = "0";
  1351. // }
  1352. // else
  1353. // {
  1354. // orderPrcEntity.FIsOk = "2";
  1355. // }
  1356. // if (orderPrcEntity.ProcessSeq.Contains("G"))
  1357. // {
  1358. // //判断是否经过管加工工序
  1359. // orderPrcEntity.GIsOk = "0";
  1360. // }
  1361. // else
  1362. // {
  1363. // orderPrcEntity.GIsOk = "2";
  1364. // }
  1365. // if (orderPrcEntity.ProcessSeq.Contains("D"))
  1366. // {
  1367. // //判断是否经过轧管工序
  1368. // orderPrcEntity.DIsOk = "0";
  1369. // }
  1370. // else
  1371. // {
  1372. // orderPrcEntity.DIsOk = "2";
  1373. // }
  1374. // if (orderPrcEntity.ProcessSeq.Contains("E"))
  1375. // {
  1376. // //判断是否经过镦拔扩工序
  1377. // orderPrcEntity.EIsOk = "0";
  1378. // }
  1379. // else
  1380. // {
  1381. // orderPrcEntity.EIsOk = "2";
  1382. // }
  1383. // #endregion
  1384. // list.Add(orderEntity);
  1385. // listPrc.Add(orderPrcEntity);
  1386. // #endregion
  1387. // }
  1388. // if (list.Count == 0)
  1389. // {
  1390. // PlanComm.WaitFromColse(this.Cursor);
  1391. // MessageUtil.ShowTips("0条接收成功," + defailNum + "条接收失败。\n" + messageErr);
  1392. // return;
  1393. // }
  1394. // CoreClientParam ccp = new CoreClientParam();
  1395. // ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnSaleOrder";
  1396. // ccp.MethodName = "updatePretreat";
  1397. // ccp.ServerParams = new object[] { list, listPrc };
  1398. // ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1399. // PlanComm.WaitFromColse(this.Cursor);
  1400. // if (ccp == null)
  1401. // {
  1402. // MessageBox.Show("服务端处理失败!");
  1403. // return;
  1404. // }
  1405. // else if (ccp.ReturnCode != -1)
  1406. // {
  1407. // if (defailNum == 0)
  1408. // {
  1409. // MessageUtil.ShowTips("接收成功,共" + list.Count + "条。");
  1410. // }
  1411. // else
  1412. // {
  1413. // MessageUtil.ShowTips(list.Count + "条接收成功," + defailNum + "条接收失败。\n" + messageErr);
  1414. // }
  1415. // }
  1416. // }
  1417. // catch (Exception ex)
  1418. // {
  1419. // PlanComm.WaitFromColse(this.Cursor);
  1420. // if (!(ex is MESException))
  1421. // {
  1422. // MessageUtil.ShowError(ex.Message);
  1423. // }
  1424. // }
  1425. // DoQuery(GetQueryCondition());
  1426. //}
  1427. /// <summary>
  1428. /// 接收
  1429. /// </summary>
  1430. private void DoReceive()
  1431. {
  1432. ultraGridSaleOrder.UpdateData();
  1433. ArrayList list = new ArrayList();
  1434. IQueryable<UltraGridRow> checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'");
  1435. if (checkRows.Count() == 0)
  1436. {
  1437. MessageUtil.ShowTips("未勾选任何合同!");
  1438. return;
  1439. }
  1440. PlanComm.WaitFromOpen(this.Cursor);
  1441. foreach (UltraGridRow uRow in checkRows)
  1442. {
  1443. list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  1444. }
  1445. CoreClientParam ccp = new CoreClientParam();
  1446. ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnSaleOrder";
  1447. ccp.MethodName = "doReceive";
  1448. ccp.ServerParams = new object[] { list, UserInfo.GetUserName() };
  1449. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1450. PlanComm.WaitFromColse(this.Cursor);
  1451. if (ccp == null)
  1452. {
  1453. MessageBox.Show("服务端处理失败!");
  1454. return;
  1455. }
  1456. else if (ccp.ReturnCode != -1)
  1457. {
  1458. if (ccp.ReturnObject != null && !ccp.ReturnObject.ToString().Equals(""))
  1459. {
  1460. MessageUtil.ShowTips(ccp.ReturnObject.ToString());
  1461. }
  1462. }
  1463. DoQuery(GetQueryCondition());
  1464. }
  1465. /// <summary>
  1466. /// 合同行生成工艺评审数据
  1467. /// </summary>
  1468. private void creatCraft(string ordLnPk)
  1469. {
  1470. Assembly saleOrdDll = Assembly.LoadFrom(Application.StartupPath + "\\Core.StlMes.Client.SaleOrder.dll");
  1471. Type craftReviewType = saleOrdDll.GetType("Core.StlMes.Client.SaleOrder.ReviewForm.frmCraftReviewTechnology");
  1472. object craftReviewForm = Activator.CreateInstance(craftReviewType, null);
  1473. bool result = bool.Parse(craftReviewType.GetMethod("CheckQuality").Invoke(
  1474. craftReviewForm, new object[] { ordLnPk, this.ob }).ToString());
  1475. if (result)
  1476. {
  1477. craftReviewType.GetMethod("Quality", new Type[] { typeof(string), typeof(OpeBase) })
  1478. .Invoke(craftReviewForm, new object[] { ordLnPk, this.ob });
  1479. }
  1480. }
  1481. /// <summary>
  1482. /// 合同退回
  1483. /// </summary>
  1484. private void CancelAcp()
  1485. {
  1486. try
  1487. {
  1488. int defailNum = 0;
  1489. string messageErr = "";
  1490. this.ultraGridSaleOrder.UpdateData();
  1491. ArrayList list = new ArrayList();
  1492. ArrayList listLog = new ArrayList();
  1493. IQueryable<UltraGridRow> checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'");
  1494. if (checkRows.Count() == 0)
  1495. {
  1496. MessageUtil.ShowTips("未勾选任何合同!");
  1497. return;
  1498. }
  1499. bool isChecked = false;
  1500. string reason = "";
  1501. foreach (UltraGridRow uRow in checkRows)
  1502. {
  1503. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleStatus",
  1504. new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, this.ob);
  1505. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  1506. {
  1507. defailNum++;
  1508. continue;
  1509. }
  1510. if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().Equals("1"))
  1511. {
  1512. if (dtStatus.Rows[0]["JGORD_IS_OK"].ToString().Equals("1"))
  1513. {
  1514. defailNum++;
  1515. messageErr = "请先撤消" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  1516. + uRow.Cells["DeliveryNo"].Value.ToString() + "的接箍合同!";
  1517. continue;
  1518. }
  1519. if (dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("1"))
  1520. {
  1521. defailNum++;
  1522. messageErr = "请先撤消" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  1523. + uRow.Cells["DeliveryNo"].Value.ToString() + "的短节合同!";
  1524. continue;
  1525. }
  1526. ArrayList paramLog = new ArrayList();
  1527. ArrayList param = new ArrayList();
  1528. if (!isChecked)
  1529. {
  1530. bool isConfirm = false;
  1531. FrmCancelPretreat CancelPre = new FrmCancelPretreat();
  1532. CancelPre.ShowDialog();
  1533. isConfirm = CancelPre.getIsConfirm();
  1534. if (!isConfirm)
  1535. {
  1536. return;
  1537. }
  1538. reason = CancelPre.getConcelReason();
  1539. }
  1540. isChecked = true;
  1541. #region 记录回退日志
  1542. paramLog.Add(reason);
  1543. paramLog.Add(UserInfo.GetUserName());
  1544. paramLog.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  1545. listLog.Add(paramLog);
  1546. #endregion
  1547. param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  1548. list.Add(param);
  1549. }
  1550. else
  1551. {
  1552. defailNum++;
  1553. if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("1") < 0)
  1554. {
  1555. messageErr = "合同" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  1556. + uRow.Cells["DeliveryNo"].Value.ToString() + "未接收!";
  1557. continue;
  1558. }
  1559. else
  1560. {
  1561. messageErr = "合同" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  1562. + uRow.Cells["DeliveryNo"].Value.ToString() + "已经下发!";
  1563. continue;
  1564. }
  1565. }
  1566. }
  1567. if (list.Count == 0)
  1568. {
  1569. MessageUtil.ShowTips("0条退回成功," + defailNum + "条退回失败。\n" + messageErr);
  1570. return;
  1571. }
  1572. int succed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.cancelAcp",
  1573. new object[] { listLog, list }, this.ob);
  1574. if (succed > 0)
  1575. {
  1576. if (defailNum == 0)
  1577. {
  1578. MessageUtil.ShowTips("退回成功,共" + list.Count + "条。");
  1579. }
  1580. else
  1581. {
  1582. MessageUtil.ShowTips(list.Count + "条退回成功," + defailNum + "条退回失败。\n" + messageErr);
  1583. }
  1584. if (list.Count > 0 || defailNum==0)
  1585. {
  1586. DoQuery(GetQueryCondition());
  1587. }
  1588. }
  1589. }
  1590. catch (Exception ex)
  1591. {
  1592. if (!(ex is MESException))
  1593. {
  1594. MessageUtil.ShowError(ex.Message);
  1595. }
  1596. }
  1597. }
  1598. /// <summary>
  1599. /// 查询投料率
  1600. /// </summary>
  1601. /// <returns></returns>
  1602. public static double queryPutRate(int year, int month, OpeBase _ob)
  1603. {
  1604. double putRate = 1;
  1605. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryPutRate",
  1606. new object[] { year.ToString(), month.ToString() }, _ob);
  1607. if (dt != null && dt.Rows.Count > 0)
  1608. {
  1609. double.TryParse(dt.Rows[0]["PUT_RATE"].ToString(), out putRate);
  1610. }
  1611. return putRate;
  1612. }
  1613. /// <summary>
  1614. /// 验证交货行唯一
  1615. /// </summary>
  1616. /// <param name="orderNo">合同号</param>
  1617. /// <param name="orderSeq">合同行号</param>
  1618. /// <param name="deliveryNo">交货行号</param>
  1619. public bool VerifyOnly(string orderNo, string orderSeq, string deliveryNo)
  1620. {
  1621. ArrayList list = new ArrayList();
  1622. list.Add(orderNo);
  1623. list.Add(orderSeq);
  1624. list.Add(deliveryNo);
  1625. DataTable dtOrderNo = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleByPrimary",
  1626. new object[] { list }, this.ob);
  1627. if (dtOrderNo != null && dtOrderNo.Rows.Count > 0)
  1628. {
  1629. if (!dtOrderNo.Rows[0][0].Equals("1"))
  1630. {
  1631. return false;
  1632. }
  1633. }
  1634. return true;
  1635. }
  1636. /// <summary>
  1637. /// 返回组合类型
  1638. /// </summary>
  1639. /// <param name="desginKey"></param>
  1640. /// <param name="processSeq"></param>
  1641. /// <returns></returns>
  1642. private int MergeType(string desginKey, string processSeq)
  1643. {
  1644. if (processSeq != "")
  1645. {
  1646. string endcode = processSeq.Substring(processSeq.Length - 1, 1);
  1647. if (endcode.CompareTo("D") < 0)
  1648. {
  1649. return 3;
  1650. }
  1651. }
  1652. DataTable dtjg = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryJgCode",
  1653. new object[] { desginKey }, this.ob);
  1654. DataTable dtBl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryBlCode",
  1655. new object[] { desginKey }, this.ob);
  1656. if (dtjg.Rows.Count > 0 && dtjg != null)
  1657. {
  1658. if (dtBl.Rows.Count > 0 && dtBl != null)
  1659. {
  1660. return 2;
  1661. }
  1662. else
  1663. {
  1664. return 1;
  1665. }
  1666. }
  1667. return 0;
  1668. }
  1669. /// <summary>
  1670. /// 查询监制基础信息
  1671. /// </summary>
  1672. /// <param name="prdcrNo">监制编号</param>
  1673. /// <param name="mscPline">制程</param>
  1674. /// <returns></returns>
  1675. private string queryLinePrdcr(string prdcrNo, string mscPline)
  1676. {
  1677. ArrayList param = new ArrayList();
  1678. param.Add(prdcrNo);
  1679. param.Add(mscPline);
  1680. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryLinePrdcr",
  1681. new object[] { param }, this.ob);
  1682. if (dt != null && dt.Rows.Count > 0)
  1683. {
  1684. return dt.Rows[0]["PRDCR_DESC"].ToString();
  1685. }
  1686. return "";
  1687. }
  1688. /// <summary>
  1689. /// 查询监制工序
  1690. /// </summary>
  1691. /// <param name="prdcrNo">监制编号</param>
  1692. /// <param name="mscPline">制程</param>
  1693. /// <returns></returns>
  1694. public static string getOrdPrdcrpro(string prdcrNo, string mscPline, OpeBase _ob)
  1695. {
  1696. CoreClientParam ccp = new CoreClientParam();
  1697. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreOrdLinePrdcrLst";
  1698. ccp.MethodName = "queryOrdPrdcrpro";
  1699. ccp.ServerParams = new object[] { prdcrNo, mscPline };
  1700. ccp = _ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
  1701. if (ccp == null || ccp.ReturnObject == null)
  1702. {
  1703. return "";
  1704. }
  1705. return (string)ccp.ReturnObject;
  1706. }
  1707. /// <summary>
  1708. /// 查询监制工序
  1709. /// </summary>
  1710. /// <param name="ordLnDlyPk">交货pk</param>
  1711. /// <param name="plnDivideId">排产流水</param>
  1712. /// <returns></returns>
  1713. public static string getOrdPrdcrproPk(string ordLnDlyPk, string plnDivideId, OpeBase _ob)
  1714. {
  1715. CoreClientParam ccp = new CoreClientParam();
  1716. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreOrdLinePrdcrLst";
  1717. ccp.MethodName = "queryOrdPrdcrproPk";
  1718. ccp.ServerParams = new object[] { ordLnDlyPk, plnDivideId };
  1719. ccp = _ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
  1720. if (ccp == null || ccp.ReturnObject == null)
  1721. {
  1722. return "";
  1723. }
  1724. return (string)ccp.ReturnObject;
  1725. }
  1726. /// <summary>
  1727. /// 查询是否Assel机组
  1728. /// </summary>
  1729. /// <param name="ordLnPk"></param>
  1730. /// <returns></returns>
  1731. public static bool queryAsselFl(string ordLnPk, OpeBase _ob)
  1732. {
  1733. bool isAssel = false;
  1734. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryAsselFl",
  1735. new object[] { ordLnPk }, _ob);
  1736. if (dt != null && dt.Rows.Count > 0)
  1737. {
  1738. if (dt.Rows[0]["ASSEL_FL"].ToString().Trim().Equals("1"))
  1739. {
  1740. isAssel = true;
  1741. }
  1742. }
  1743. return isAssel;
  1744. }
  1745. /// <summary>
  1746. /// 排产月统计查询
  1747. /// </summary>
  1748. private void DoMonthStatist()
  1749. {
  1750. FrmReqRollMonth outPut = new FrmReqRollMonth();
  1751. outPut.Show();
  1752. }
  1753. private void ultraGridSaleOrder_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  1754. {
  1755. foreach (UltraGridRow uRow in ultraGridSaleOrder.Selected.Rows)
  1756. {
  1757. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  1758. {
  1759. uRow.Cells["CHC"].Value = true;
  1760. }
  1761. }
  1762. }
  1763. private void ultraGridSaleOrder_CellDataError(object sender, CellDataErrorEventArgs e)
  1764. {
  1765. e.RaiseErrorEvent = false;
  1766. }
  1767. /// <summary>
  1768. /// 查看附加要求贴图
  1769. /// </summary>
  1770. /// <param name="sender"></param>
  1771. /// <param name="e"></param>
  1772. private void ultraFileLook_EditorButtonClick(object sender,
  1773. Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1774. {
  1775. try
  1776. {
  1777. UltraGridRow ugr = ultraGridSaleOrder.ActiveRow;
  1778. if (ugr == null)
  1779. {
  1780. return;
  1781. }
  1782. string askNo = ugr.Cells["AddAskNo"].Value.ToString();
  1783. string orderAddDesc = ugr.Cells["OrderAddDesc"].Value.ToString();
  1784. if (e.Button.Key.ToLower().Equals("select"))
  1785. {
  1786. ArrayList listPIC = new ArrayList();
  1787. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryAddAsk",
  1788. new object[] { askNo }, this.ob);
  1789. if (dt != null && dt.Rows.Count > 0)
  1790. {
  1791. foreach (DataRow dr in dt.Rows)
  1792. {
  1793. listPIC.Add(dr["PIC"].ToString());
  1794. }
  1795. }
  1796. dlgOrderAskLook orderAsk = new dlgOrderAskLook(this.ob, listPIC);
  1797. orderAsk.Show();
  1798. }
  1799. else if (e.Button.Key.ToLower().Equals("look"))
  1800. {
  1801. BaseForm orderAddDescPre = new BaseForm(this.ob, orderAddDesc);
  1802. orderAddDescPre.Show();
  1803. }
  1804. }
  1805. catch (Exception ex)
  1806. {
  1807. if (!(ex is MESException))
  1808. {
  1809. MessageBox.Show(ex.Message);
  1810. }
  1811. }
  1812. }
  1813. private void ReportLiKu()
  1814. {
  1815. ultraGridSaleOrder.UpdateData();
  1816. UltraGridRow ugr = ultraGridSaleOrder.ActiveRow;
  1817. if (ugr == null)
  1818. {
  1819. MessageUtil.ShowWarning("请选择您要利库的交货行!");
  1820. return;
  1821. }
  1822. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleStatus",
  1823. new object[] { ugr.Cells["OrdLnDlyPk"].Value.ToString() }, this.ob);
  1824. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  1825. {
  1826. return;
  1827. }
  1828. if (!dtStatus.Rows[0]["PORDERSTATUS"].ToString().Equals("0"))
  1829. {
  1830. MessageUtil.ShowTips(ugr.Cells["OrderNoSeq"].Value.ToString() + "/"
  1831. + ugr.Cells["DeliveryNo"].Value.ToString() + "已接收,无法利库!");
  1832. return;
  1833. }
  1834. string ordStr = "合同号:" + ugr.Cells["ORDERNO"].Value.ToString() + "/" + ugr.Cells["ORDERSEQ"].Value.ToString() + " 交货行号:" + ugr.Cells["DELIVERYNO"].Value.ToString();
  1835. //合同行提报锁定的!
  1836. DataTable lockDt1 = ServerHelper.GetData("com.steering.pss.sale.order.DAL.SlmOrderLineLockDAL.getOrderLineLock", new object[] { ugr.Cells["ORDLNPK"].Value.ToString() }, this.ob);
  1837. if (lockDt1 != null && lockDt1.Rows.Count > 0)
  1838. {
  1839. if (lockDt1.Rows[0][0].ToString() == "1")
  1840. {
  1841. MessageUtil.ShowWarning(ordStr + "该合同行提报排产被锁定请重新审批合同价格!不允许利库! ");
  1842. return;
  1843. }
  1844. }
  1845. string ordLnDlyPk = ugr.Cells["OrdLnDlyPk"].Value.ToString();
  1846. string saleOrg = ugr.Cells["ORDERFROM"].Value.ToString();
  1847. FrmReportLiKu frl = new FrmReportLiKu(this.ob, "1");
  1848. frl.DataArr = this.ValidDataPurviewIds;
  1849. frl.ListParm = listLiku;
  1850. frl.OrdSaleOrg = saleOrg;
  1851. frl.OrdLnDlyPk = ordLnDlyPk;
  1852. frl.FormClosingQueryHandle += frl_FormClosingQueryHandle;
  1853. frl.WindowState = FormWindowState.Maximized;
  1854. frl.StartPosition = FormStartPosition.CenterScreen;
  1855. frl.ShowDialog();
  1856. }
  1857. void frl_FormClosingQueryHandle(string ordLnDlyPk)
  1858. {
  1859. DoQuery(GetQueryCondition());
  1860. foreach (UltraGridRow row in ultraGridSaleOrder.Rows)
  1861. {
  1862. if (row.Cells["ORD_LN_DLY_PK"].Value.ToString() == ordLnDlyPk)
  1863. {
  1864. row.Activate();
  1865. break;
  1866. }
  1867. }
  1868. }
  1869. private void QueryMatInfo(ArrayList parm, string saleOrg, string suppUnit)
  1870. {
  1871. List<MatZcMEntity> listSource = EntityHelper.GetData<MatZcMEntity>(
  1872. "com.steering.pss.sale.order.CoreOrderReport.queryMatInfo1", new object[] { parm, saleOrg, suppUnit }, this.ob);
  1873. matZcMEntityBindingSource.DataSource = listSource;
  1874. }
  1875. private void ultraGridSaleOrder_ClickCellButton(object sender, CellEventArgs e)
  1876. {
  1877. ultraGridSaleOrder.UpdateData();
  1878. UltraGridRow ugr = ultraGridSaleOrder.ActiveRow;
  1879. if (e.Cell.Column.Key.Equals("OrderNoSeq"))
  1880. {
  1881. if (ugr == null)
  1882. return;
  1883. string saleOrg = ugr.Cells["ORDERFROM"].Value.ToString().Equals("国际贸易部") ? "100102" : "100101";
  1884. string suppUnit = ugr.Cells["supplyUnitCode"].Value.ToString();
  1885. QueryMatInfo(listLiku, saleOrg, suppUnit);
  1886. string str = "合同号:" + ugr.Cells["ORDERNO"].Value.ToString() + "/" + ugr.Cells["ORDERSEQ"].Value.ToString()
  1887. + " 交货行号:" + ugr.Cells["DELIVERYNO"].Value.ToString() + " 的可利库的库存信息。";
  1888. this.labTips.Text = str;
  1889. this.labTips.AutoSize = true;
  1890. return;
  1891. }
  1892. if (!e.Cell.Column.Key.Equals("IsBackord"))
  1893. {
  1894. return;
  1895. }
  1896. if (ugr == null)
  1897. {
  1898. return;
  1899. }
  1900. string ordLnDlyPk = ugr.Cells["OrdLnDlyPk"].Value.ToString();
  1901. if (!ugr.Cells["IsBackord"].Value.ToString().Trim().Equals("是"))
  1902. {
  1903. return;
  1904. }
  1905. if (MessageUtil.ShowQuestion("是否清除回退标记?") == DialogResult.No)
  1906. {
  1907. return;
  1908. }
  1909. CoreClientParam ccp = new CoreClientParam();
  1910. ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnSaleOrder";
  1911. ccp.MethodName = "clearOrdBackI";
  1912. ccp.ServerParams = new object[] { ordLnDlyPk };
  1913. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1914. if (ccp == null)
  1915. {
  1916. MessageUtil.ShowError("服务端处理失败!");
  1917. return;
  1918. }
  1919. if (ccp.ReturnCode < 0)
  1920. {
  1921. MessageUtil.ShowError(ccp.ReturnInfo);
  1922. return;
  1923. }
  1924. if (ccp.ReturnObject != null)
  1925. {
  1926. MessageUtil.ShowTips(ccp.ReturnObject.ToString());
  1927. ugr.Cells["IsBackord"].Value = "否";
  1928. if ((ugr.Index + 1) % 2 == 0)
  1929. {
  1930. ugr.Appearance.BackColor = Color.FromArgb(240, 248, 255); ;
  1931. }
  1932. else
  1933. {
  1934. ugr.Appearance.BackColor = Color.White;
  1935. }
  1936. }
  1937. }
  1938. private void ultraGridSaleOrder_AfterRowActivate(object sender, EventArgs e)
  1939. {
  1940. ultraGridSaleOrder.UpdateData();
  1941. UltraGridRow ugr = ultraGridSaleOrder.ActiveRow;
  1942. listLiku = new ArrayList();
  1943. listLiku.Add(ugr.Cells["PRODUCCODE"].Value.ToString());
  1944. listLiku.Add(ugr.Cells["STEELCODE"].Value.ToString());
  1945. listLiku.Add(ugr.Cells["SpecCode"].Value.ToString());
  1946. listLiku.Add(ugr.Cells["ModelCode"].Value.ToString());
  1947. listLiku.Add(ugr.Cells["StdName"].Value.ToString());
  1948. listLiku.Add(ugr.Cells["StdName"].Value.ToString());
  1949. }
  1950. }
  1951. }