frmOrderDelivery.cs 133 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490
  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.CA03;
  10. using CoreFS.CA04;
  11. using CoreFS.CA06;
  12. using System.Collections;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Core.Mes.Client.Comm.Server;
  15. using Core.Mes.Client.Comm.Control;
  16. using Core.Mes.Client.Comm.Tool;
  17. using System.IO;
  18. using System.Xml;
  19. using Core.Mes.Client.Comm.Format;
  20. using Infragistics.Win.UltraWinEditors;
  21. using Core.Mes.Client.Comm;
  22. using Core.StlMes.Client.SaleOrder.Dialog;
  23. namespace Core.StlMes.Client.SaleOrder
  24. {
  25. public partial class frmOrderDelivery : FrmBase
  26. {
  27. public frmOrderDelivery()
  28. {
  29. InitializeComponent();
  30. ExceptionHelper.RegistException();
  31. }
  32. /// <summary>
  33. /// 重写基类load事件,屏蔽平台过滤功能。
  34. /// </summary>
  35. /// <param name="e"></param>
  36. protected override void OnLoad(EventArgs e)
  37. {
  38. base.OnLoad(e);
  39. cmbUnit.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
  40. }
  41. public frmOrderDelivery(OpeBase ob)
  42. {
  43. InitializeComponent();
  44. ExceptionHelper.RegistException();
  45. this.ob = ob;
  46. }
  47. /// <summary>
  48. /// Top事件。
  49. /// </summary>
  50. /// <param name="sender"></param>
  51. /// <param name="e"></param>
  52. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  53. {
  54. switch (e.Tool.Key)
  55. {
  56. case "doQuery":
  57. doQuery();
  58. break;
  59. case "Query":
  60. doQuery();
  61. break;
  62. case "doAdd":
  63. doAdd();
  64. break;
  65. case "doUpdate":
  66. if (ultraGMain.Rows.Count <= 0)
  67. {
  68. MessageUtil.ShowWarning("请选择一条记录,然后再进行操作!");
  69. return;
  70. }
  71. doUpdate();
  72. break;
  73. case "doDelete":
  74. if (ultraGMain.Rows.Count <= 0)
  75. {
  76. MessageUtil.ShowWarning("请选择一条记录,然后再进行操作!");
  77. return;
  78. }
  79. doDelete();
  80. break;
  81. case "doOk":
  82. doOk();
  83. break;
  84. case "GenerateCh":
  85. GenerateChangeTable();
  86. break;
  87. default:
  88. break;
  89. }
  90. }
  91. #region 用于合同变更请求 FormOrderChangeManage
  92. bool isDelete = false; //是否删除
  93. bool isAdd = false; //是否新增
  94. bool isUpdate = false; //是否更新
  95. string chanVal = ""; //变更明细
  96. private string maxOrdLnDlyPk; //合同行下最大的交货行PK值 在Load时获取数据库
  97. Dictionary<string, string> dic = new Dictionary<string, string>(); //发生变化的行号 +变换内容
  98. #endregion
  99. /// <summary>
  100. /// 委托方法
  101. /// </summary>
  102. /// <param name="ROrdLen"></param>
  103. public delegate void GetOrderDeliveryHander(DataSet ds);
  104. public event GetOrderDeliveryHander GetOrderDelivery;
  105. /// <summary>
  106. /// 确认
  107. /// </summary>
  108. private void doOk()
  109. {
  110. if (FromForm != "4")
  111. {
  112. //合同状态
  113. string ordLnStateMsg = ValidState();
  114. if (ordLnStateMsg != "")
  115. {
  116. MessageUtil.ShowWarning(ordLnStateMsg);
  117. return;
  118. }
  119. }
  120. //检验是否维护指定地点。
  121. if (CheckStation() == false) return;
  122. if (this.FromForm == "1")
  123. {
  124. if (ultraGMain.Rows.Count <= 0)
  125. {
  126. MessageUtil.ShowWarning("必须保留至少一行交货行!");
  127. return;
  128. }
  129. }
  130. if (this.OrdType.Equals("120102")) //现货合同 只允许一个交货行
  131. {
  132. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.queryDeliveyCount", new object[] { this.OrderNo }, this.ob);
  133. if (dt != null && dt.Rows.Count > 0)
  134. {
  135. if (Convert.ToInt32(dt.Rows[0][0]) > 1)
  136. {
  137. MessageUtil.ShowWarning("现货合同的每个合同行下只允许存在一个交货行!");
  138. return;
  139. }
  140. }
  141. }
  142. string err = CheckDlyTransit();
  143. if (err != "")
  144. {
  145. MessageUtil.ShowWarning(err);
  146. return;
  147. }
  148. if (MessageUtil.ShowYesNoAndQuestion("是否确认?") == DialogResult.No)
  149. {
  150. return;
  151. }
  152. if (ultraGMain.Rows.Count <= 0)
  153. {
  154. GetOrderDelivery(this.dataSet1);
  155. this.Close();
  156. return;
  157. }
  158. if ((this.FromForm == "0" || FromForm == "4") && validSumWt())
  159. {
  160. GetOrderDelivery(this.dataSet1);
  161. this.Close();
  162. }
  163. if (this.FromForm.Equals("1") && validSumWt())
  164. {
  165. this.dlyDt = dataTable1;
  166. DialogResult = DialogResult.OK;
  167. this.Close();
  168. }
  169. if (this.FromForm == "3" && validSumWt())
  170. {
  171. this.Close();
  172. }
  173. }
  174. //MANAG_NO,ORDER_NO,ORDER_SEQ,ORDER_UNIT
  175. private string dlyTime = DateTime.Now.ToShortDateString();
  176. public string DlyTime
  177. {
  178. get { return dlyTime; }
  179. set
  180. {
  181. if (value != null && value != "")
  182. dlyTime = value;
  183. }
  184. }
  185. private string fromForm = "0";
  186. /// <summary>
  187. /// 0来自于‘合同信息维护’界面的请求。,1 来自'交货期评审提报'界面的交货期修改按钮弹出。 2来自于 合同变更 请求修改交货行信息。 3来自合同行变更调整交货期
  188. /// 4.临时修改交货地点
  189. /// </summary>
  190. public string FromForm
  191. {
  192. get { return fromForm; }
  193. set { fromForm = value; }
  194. }
  195. private DataTable dlyDt = new DataTable();
  196. public DataTable DlyDt
  197. {
  198. get { return dlyDt; }
  199. set { dlyDt = value; }
  200. }
  201. string saleOrg = "";
  202. public string SaleOrg
  203. {
  204. get { return saleOrg; }
  205. set { saleOrg = value; }
  206. }
  207. /// <summary>
  208. /// 管理卡号
  209. /// </summary>
  210. private string manageNo = "";
  211. public string ManageNo
  212. {
  213. get { return manageNo; }
  214. set { manageNo = value; }
  215. }
  216. /// <summary>
  217. /// 交货量
  218. /// </summary>
  219. private string numWt = "";
  220. public string NumWt
  221. {
  222. get { return numWt; }
  223. set { numWt = value; }
  224. }
  225. /// <summary>
  226. /// 估算总量
  227. /// </summary>
  228. private string numTag = "";
  229. public string NumTag
  230. {
  231. get { return numTag; }
  232. set { numTag = value; }
  233. }
  234. /// <summary>
  235. /// 合同ORD_LN_PK值
  236. /// </summary>
  237. private string orderNo = "";
  238. /// <summary>
  239. /// 合同ORD_LN_PK值
  240. /// </summary>
  241. public string OrderNo
  242. {
  243. get { return orderNo; }
  244. set { orderNo = value; }
  245. }
  246. //----------------------暂时在合同变更处使用=-=--------------------------
  247. /// <summary>
  248. /// 合同号 ORDER_NO
  249. /// </summary>
  250. private string ordNo;
  251. public string OrdNo
  252. {
  253. get { return ordNo; }
  254. set { ordNo = value; }
  255. }
  256. /// <summary>
  257. /// 合同行号
  258. /// </summary>
  259. private string ordSeq;
  260. /// <summary>
  261. /// 合同行号
  262. /// </summary>
  263. public string OrdSeq
  264. {
  265. get { return ordSeq; }
  266. set { ordSeq = value; }
  267. }
  268. //------------------------------------------------------------------------------------
  269. /// <summary>
  270. /// 合同行号
  271. /// </summary>
  272. private string orderSeq = "";
  273. public string OrderSeq
  274. {
  275. get { return orderSeq; }
  276. set { orderSeq = value; }
  277. }
  278. /// <summary>
  279. /// 单位
  280. /// </summary>
  281. private string orderUnit = "";
  282. public string OrderUnit
  283. {
  284. get { return orderUnit; }
  285. set { orderUnit = value; }
  286. }
  287. /// <summary>
  288. /// 存储新增时的交货信息编号,用于传递给运输线路界面。
  289. /// </summary>
  290. private string deliveryNo = "";
  291. public string DeliveryNo
  292. {
  293. get { return deliveryNo; }
  294. set { deliveryNo = value; }
  295. }
  296. /// <summary>
  297. /// 产品规格代码
  298. /// </summary>
  299. private string spec_code = "";
  300. public string Spec_code
  301. {
  302. get { return spec_code; }
  303. set { spec_code = value; }
  304. }
  305. /// <summary>
  306. /// 保总长
  307. /// </summary>
  308. private double order_line_lne = 0;
  309. public double Order_line_lne
  310. {
  311. get { return order_line_lne; }
  312. set { order_line_lne = value; }
  313. }
  314. /// <summary>
  315. /// 收货单位
  316. /// </summary>
  317. private string shRow = "";
  318. public string ShRow
  319. {
  320. get { return shRow; }
  321. set { shRow = value; }
  322. }
  323. /// <summary>
  324. /// DataSet,如果有数据,则需要将数据查询出来。
  325. /// </summary>
  326. private DataSet orderSet;
  327. public DataSet OrderSet
  328. {
  329. get { return orderSet; }
  330. set { orderSet = value; }
  331. }
  332. /// <summary>
  333. /// 交货地点
  334. /// </summary>
  335. private string dlyAddress;
  336. /// <summary>
  337. /// 交货地点
  338. /// </summary>
  339. public string DlyAddress
  340. {
  341. get { return dlyAddress; }
  342. set { dlyAddress = value; }
  343. }
  344. private string lenUnit;
  345. /// <summary>
  346. /// 长度单位/保总长单位
  347. /// </summary>
  348. public string LenUnit
  349. {
  350. get { return lenUnit; }
  351. set { lenUnit = value; }
  352. }
  353. /// <summary>
  354. /// 合同类型
  355. /// </summary>
  356. private string ordType = "A";
  357. /// <summary>
  358. /// 合同类型
  359. /// </summary>
  360. public string OrdType
  361. {
  362. get { return ordType; }
  363. set { ordType = value; }
  364. }
  365. /// <summary>
  366. /// 接箍单各重量
  367. /// </summary>
  368. private double jg_weight = 0;
  369. /// <summary>
  370. /// 接箍单各重量
  371. /// </summary>
  372. public double Jg_weight
  373. {
  374. get { return jg_weight; }
  375. set { jg_weight = value; }
  376. }
  377. /// <summary>
  378. /// 品种代码
  379. /// </summary>
  380. private string produc_code = "";
  381. /// <summary>
  382. /// 品种代码
  383. /// </summary>
  384. public string Produc_code
  385. {
  386. get { return produc_code; }
  387. set { produc_code = value; }
  388. }
  389. /// <summary>
  390. /// 验证重量
  391. /// </summary>
  392. /// <returns></returns>
  393. private bool validWt()
  394. {
  395. if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt))
  396. {
  397. MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  398. return false;
  399. }
  400. decimal JHwt = 0;
  401. foreach (UltraGridRow urow in ultraGMain.Rows)
  402. {
  403. if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
  404. {
  405. JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
  406. }
  407. }
  408. if ((Convert.ToDecimal(JHwt) + Convert.ToDecimal(uNCount.Value)) > Convert.ToDecimal(numWt))
  409. {
  410. MessageBox.Show("请确认是否超出交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  411. return false;
  412. }
  413. return true;
  414. }
  415. /// <summary>
  416. /// 修改验证重量
  417. /// </summary>
  418. /// <returns></returns>
  419. private bool validUpWt()
  420. {
  421. if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt))
  422. {
  423. MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  424. return false;
  425. }
  426. decimal JHwt = 0;
  427. decimal IndexWt = Convert.ToDecimal(ultraGMain.ActiveRow.Cells[5].Value); // ?
  428. //int Gswt = 0;
  429. foreach (UltraGridRow urow in ultraGMain.Rows)
  430. {
  431. if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
  432. {
  433. JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
  434. }
  435. }
  436. decimal sumWtx = (JHwt - IndexWt) + Convert.ToDecimal(uNCount.Value);
  437. if (sumWtx > Convert.ToDecimal(numWt))
  438. {
  439. MessageBox.Show("请确认是否超出交货总量" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  440. return false;
  441. }
  442. return true;
  443. }
  444. /// <summary>
  445. /// 合同交货行的交货总量必须等于合同行的订货量
  446. /// </summary>
  447. /// <returns></returns>
  448. private bool validSumWt()
  449. {
  450. if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt))
  451. {
  452. MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  453. return false;
  454. }
  455. decimal JHwt = 0;
  456. //int Gswt = 0;
  457. foreach (UltraGridRow urow in ultraGMain.Rows)
  458. {
  459. if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
  460. {
  461. JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
  462. }
  463. }
  464. decimal sumWtx = (JHwt - Convert.ToDecimal(numWt));
  465. if (sumWtx < 0)
  466. {
  467. MessageBox.Show("请确认是否满足交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  468. return false;
  469. }
  470. if (sumWtx > 0)
  471. {
  472. MessageBox.Show("请确认是否超出交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  473. return false;
  474. }
  475. return true;
  476. }
  477. /// <summary>
  478. /// 合同交货行的交货总量刷新功能
  479. /// </summary>
  480. /// <returns></returns>
  481. private decimal validLoadSumWt()
  482. {
  483. decimal JHwt = 0;
  484. foreach (UltraGridRow urow in ultraGMain.Rows)
  485. {
  486. if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
  487. {
  488. JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
  489. }
  490. }
  491. decimal sumWtx = (JHwt - Convert.ToDecimal(numWt));
  492. if (sumWtx < 0)
  493. {
  494. sumWtx = -sumWtx;
  495. }
  496. return sumWtx;
  497. }
  498. /// <summary>
  499. /// 修改
  500. /// </summary>
  501. private bool doUpdate()
  502. {
  503. //交货期变更不验证重量--存在修改合同订单量情况
  504. if (this.FromForm != "2")
  505. {
  506. if (!validUpWt())
  507. {
  508. return false;
  509. }
  510. }
  511. //确定是否有选中项。
  512. if (ultraGMain.ActiveRow == null)
  513. {
  514. MessageBox.Show("请选择需要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  515. return false;
  516. }
  517. if (this.FromForm != "2" && this.FromForm != "4")
  518. {
  519. //合同状态
  520. string ordLnStateMsg = ValidState();
  521. if (ordLnStateMsg != "")
  522. {
  523. MessageUtil.ShowWarning(ordLnStateMsg);
  524. return false;
  525. }
  526. }
  527. if (FromForm != "4")
  528. {
  529. if (Convert.ToDateTime(uDTDeliveryEnd.Value) < DateTime.Now)
  530. {
  531. MessageUtil.ShowWarning("最迟交货期日期[" + Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString() + "]不合理!");
  532. return false;
  533. }
  534. }
  535. //验证交货时间差
  536. //只有一行时 不用验证时间差。
  537. if (ultraGMain.Rows.Count >= 2)
  538. {
  539. //if (!this.delEnd())
  540. //{
  541. // return false;
  542. //}
  543. }
  544. //无效数据不允许修改。
  545. //验证非空项
  546. if (ValidInput())
  547. {
  548. //直接修改交货信息。
  549. ArrayList parms = new ArrayList();
  550. //交货结束日期,改为最迟交货日期
  551. parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToString("yyyy-MM-dd"));
  552. //两次交货日期之间必须大于31天
  553. //交货量
  554. parms.Add(uNCount.Value.ToString());
  555. //计量单位(从主界面接收的参数)
  556. parms.Add(OrderUnit);
  557. //估算重量(留空)
  558. parms.Add(uNEstimate.Value.ToString());
  559. //保总长
  560. parms.Add(uNLen.Value.ToString());
  561. //收货单位编码
  562. parms.Add(cmbUnit.Value == null ? "" : cmbUnit.Value.ToString());
  563. //收获单位名称
  564. parms.Add(cmbUnit.Text);
  565. ////交货地点DELVRY_ADDR
  566. parms.Add(cmbDeliveryAddress.Text);
  567. //是否代办,如果非代办,则没有运输方案、总运费。
  568. parms.Add(ckbTpcoAgency.Checked ? "1" : "0");
  569. //地点,允许为空。
  570. parms.Add(utxtAddress.Text.Trim());
  571. //运输方案。长沙-北京 方案1.
  572. parms.Add("");
  573. //总运费
  574. parms.Add(transitMny);
  575. parms.Add(UserInfo.GetUserName());
  576. parms.Add(cmbFactoryType.Value == null ? "" : cmbFactoryType.Value.ToString());
  577. parms.Add(chkExtra.Checked ? "1" : "0");
  578. string deliveryNo = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
  579. string seq = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString();
  580. //管理卡号
  581. parms.Add(ManageNo);
  582. //合同号
  583. parms.Add(OrderNo);
  584. //合同行号
  585. parms.Add(seq);
  586. string name = UserInfo.GetUserName();
  587. if (this.FromForm == "2")
  588. { //来自于合同变更时 请求修改交货行信息
  589. FormOrderChangeManage foc = new FormOrderChangeManage(this.ob);
  590. if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2")
  591. {
  592. MessageUtil.ShowWarning("此合同行已存在非交货行变更的变更单,不能修改!");
  593. return false;
  594. }
  595. string chanStatus = GetExistsApplyNo(this.OrderNo);
  596. if (chanStatus != "W" && chanStatus != "S" && chanStatus != "F")
  597. {
  598. DeleteApplyNo(this.OrderNo);
  599. }
  600. else
  601. {
  602. if (chanStatus == "W")
  603. {
  604. MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能修改!");
  605. return false;
  606. }
  607. }
  608. if (MessageUtil.ShowYesNoAndQuestion("是否确认修改数据!") == DialogResult.No) return false;
  609. string ordLnDlyPk = "";
  610. string chmaxOrdLnDlyPk = GetMaxOrdLnPk();
  611. if (seq == maxOrdLnDlyPk) //变更修改行PK等于合同最大
  612. {
  613. if (maxOrdLnDlyPk == chmaxOrdLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxOrdLnDlyPk) < 0)
  614. {
  615. ordLnDlyPk = chmaxOrdLnDlyPk;
  616. }
  617. else
  618. {
  619. ordLnDlyPk = maxOrdLnDlyPk;
  620. }
  621. }
  622. else if (string.Compare(seq, maxOrdLnDlyPk) < 0) //变更修改行PK小于合同最大
  623. {
  624. if (maxOrdLnDlyPk == chmaxOrdLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxOrdLnDlyPk) < 0)
  625. {
  626. ordLnDlyPk = chmaxOrdLnDlyPk;
  627. }
  628. else
  629. {
  630. ordLnDlyPk = maxOrdLnDlyPk;
  631. }
  632. }
  633. else //变更修改行PK大于合同最大
  634. {
  635. ordLnDlyPk = "";
  636. }
  637. CoreClientParam ccp = new CoreClientParam();
  638. ccp.IfShowErrMsg = false;
  639. ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage";
  640. ccp.MethodName = "doUpdateOrderDlyLine";
  641. ccp.ServerParams = new object[] { parms, ordLnDlyPk, this.OrderNo };
  642. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  643. if (ccp == null)
  644. return false;
  645. else
  646. {
  647. if (ccp.ReturnCode == -1)
  648. {
  649. MessageUtil.ShowWarning(ccp.ReturnInfo);
  650. return false;
  651. }
  652. }
  653. //修改信息头
  654. UltraGridRow ugr = ultraGMain.ActiveRow;
  655. if (ugr.Cells["DELVRY_EDATE"].Value.ToString() != Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString())
  656. chanVal = "交货日期:" + ugr.Cells["DELVRY_EDATE"].Value.ToString() + " 修改为 " + Convert.ToDateTime(uDTDeliveryEnd.Value).ToString("yyyy-MM-dd")+ "\r\n";
  657. if (ugr.Cells["RECEIV_NO"].Value.ToString() != cmbUnit.Value.ToString())
  658. chanVal = chanVal + "收货单位:" + ugr.Cells["RECEIV_NM"].Value.ToString() + " 修改为 " + cmbUnit.Text + "\r\n";
  659. if (ugr.Cells["DELVRY_QTY"].Value.ToString() != uNCount.Value.ToString())
  660. chanVal = chanVal + "交货量:" + ugr.Cells["DELVRY_QTY"].Value.ToString() + " 修改为 " + uNCount.Value.ToString() + "\r\n";
  661. if (ugr.Cells["DELVRY_ADDR"].Value.ToString() != cmbDeliveryAddress.Text.Trim())
  662. chanVal = chanVal + "交货地点:" + ugr.Cells["DELVRY_ADDR"].Value.ToString() + " 修改为 " + cmbDeliveryAddress.Text.Trim() + "\r\n";
  663. if (ugr.Cells["RECEIV_ADDR"].Value.ToString() != utxtAddress.Text.Trim())
  664. chanVal = chanVal + "指定地址:" + ugr.Cells["RECEIV_ADDR"].Value.ToString() + " 修改为 " + utxtAddress.Text.Trim() + "\r\n";
  665. if (ugr.Cells["TRANSIT_TYP_NM"].Value.ToString() != cmbFactoryType.Text)
  666. chanVal = chanVal + "出厂类型:" + ugr.Cells["TRANSIT_TYP_NM"].Value.ToString() + " 修改为 " + cmbFactoryType.Text.Trim() + "\r\n";
  667. if (ugr.Cells["AGENCY_FL"].Value.ToString().ToUpper() != ckbTpcoAgency.Checked.ToString().ToUpper())
  668. {
  669. string tpco = "";
  670. string tpco1 = "";
  671. if (ugr.Cells["AGENCY_FL"].Value.ToString().ToUpper() == "TRUE")
  672. tpco = "有";
  673. else
  674. tpco = "无";
  675. if (ckbTpcoAgency.Checked)
  676. tpco1 = "有";
  677. else
  678. tpco1 = "无";
  679. chanVal = chanVal + "TPCO代办:" + tpco + " 修改为 " + tpco1 + "\r\n";
  680. }
  681. if (chanVal == "")
  682. isUpdate = false;
  683. else
  684. {
  685. isUpdate = true;
  686. chanVal = "交货行 " + deliveryNo + "\r\n" + chanVal;
  687. }
  688. if (dic.ContainsKey(deliveryNo))
  689. {
  690. if (chanVal != "")
  691. {
  692. chanVal = dic[deliveryNo] + chanVal;
  693. dic[deliveryNo] = chanVal;
  694. }
  695. }
  696. else
  697. {
  698. dic.Add(deliveryNo, chanVal);
  699. }
  700. MessageUtil.ShowTips("修改成功!");
  701. //刷新数据源
  702. doQuery();
  703. foreach (UltraGridRow urow in ultraGMain.Rows)
  704. {
  705. if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
  706. {
  707. urow.Activate();
  708. break;
  709. }
  710. }
  711. uNCount.Value = validLoadSumWt();
  712. GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] });
  713. return true;
  714. }
  715. else
  716. {
  717. if (MessageUtil.ShowYesNoAndQuestion("是否确认修改数据!") == DialogResult.No) return false;
  718. CoreClientParam ccp = new CoreClientParam();
  719. ccp.IfShowErrMsg = false;
  720. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  721. ccp.MethodName = "doUpdate";
  722. ccp.ServerParams = new object[] { parms, name, this.ManageNo, this.FromForm };
  723. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  724. if (ccp == null)
  725. return false;
  726. else
  727. {
  728. if (ccp.ReturnCode == -1)
  729. {
  730. MessageUtil.ShowWarning(ccp.ReturnInfo);
  731. return false;
  732. }
  733. }
  734. MessageUtil.ShowTips("修改成功!");
  735. //刷新数据源
  736. doQuery();
  737. //新增子表记录,运输线路。
  738. //addOrderDeliveryTransit(deliveryNo);
  739. Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
  740. for (int i = 0; i < ultraGMain.Rows.Count; i++)
  741. {
  742. urow = ultraGMain.Rows[i];
  743. if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
  744. {
  745. urow.Activate();
  746. break;
  747. }
  748. }
  749. uNCount.Value = validLoadSumWt();
  750. GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] });
  751. return true;
  752. }
  753. }
  754. else
  755. {
  756. return false;
  757. }
  758. }
  759. /// <summary>
  760. /// 单击编辑区控件时,执行的修改。
  761. /// </summary>
  762. private bool doUpdateDelivery()
  763. {
  764. //确定是否有选中项。
  765. if (ultraGMain.ActiveRow == null)
  766. {
  767. MessageBox.Show("请选择需要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  768. return false;
  769. }
  770. //无效数据不允许修改。
  771. //验证非空项
  772. if (ValidInput())
  773. {
  774. //直接修改交货信息。
  775. ArrayList parms = new ArrayList();
  776. //交货结束日期,改为最迟交货日期
  777. parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString());
  778. //两次交货日期之间必须大于31天
  779. //交货量
  780. parms.Add(uNCount.Value.ToString());
  781. //计量单位(从主界面接收的参数)
  782. parms.Add(OrderUnit);
  783. //估算重量(留空)
  784. parms.Add(uNEstimate.Value.ToString());
  785. //保总长
  786. parms.Add(uNLen.Value.ToString());
  787. //收货单位编码
  788. parms.Add(cmbUnit.Value.ToString());
  789. //收获单位名称
  790. parms.Add(cmbUnit.Text);
  791. ////交货地点DELVRY_ADDR
  792. parms.Add(cmbDeliveryAddress.Text);
  793. //是否代办
  794. parms.Add(1);
  795. //地点,允许为空。
  796. parms.Add(utxtAddress.Text.Trim());
  797. //运输方案。长沙-北京 方案1.
  798. parms.Add("");
  799. //总运费
  800. parms.Add(transitMny);
  801. parms.Add(UserInfo.GetUserName());
  802. string deliveryNo = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
  803. //管理卡号
  804. parms.Add(ManageNo);
  805. //合同号
  806. parms.Add(OrderNo);
  807. //合同行号
  808. parms.Add(OrderSeq);
  809. ////交货信息编号
  810. //parms.Add(deliveryNo);
  811. CoreClientParam ccp = new CoreClientParam();
  812. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  813. ccp.MethodName = "doUpdate";
  814. ccp.ServerParams = new object[] { parms };
  815. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  816. if (ccp.ReturnCode == -1) return false;
  817. //刷新数据源
  818. doQuery();
  819. //新增子表记录,运输线路。
  820. //addOrderDeliveryTransit(deliveryNo);
  821. Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
  822. for (int i = 0; i < ultraGMain.Rows.Count; i++)
  823. {
  824. urow = ultraGMain.Rows[i];
  825. if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
  826. {
  827. urow.Activate();
  828. break;
  829. }
  830. }
  831. GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
  832. ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
  833. });
  834. return true;
  835. }
  836. else
  837. {
  838. return false;
  839. }
  840. }
  841. /// <summary>
  842. /// 获取重量
  843. /// </summary>
  844. /// <returns></returns>
  845. private double validIntSumWt()
  846. {
  847. double JHwt = 0;
  848. foreach (UltraGridRow urow in ultraGMain.Rows)
  849. {
  850. if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals(""))
  851. {
  852. JHwt += Convert.ToDouble(urow.Cells["DELVRY_QTY"].Value);
  853. }
  854. }
  855. double sumWtx = (Convert.ToDouble(numWt) - JHwt);
  856. return sumWtx;
  857. }
  858. /// <summary>
  859. /// 删除
  860. /// </summary>
  861. private void doDelete()
  862. {
  863. if (ultraGMain.ActiveRow == null)
  864. {
  865. MessageBox.Show("请选择需要删除的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  866. return;
  867. }
  868. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdLnLikuState",
  869. new object[] { ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString() }, ob);
  870. if (dt.Rows.Count > 0)
  871. {
  872. MessageUtil.ShowWarning("交货行存在利库信息,不能进行删除操作!");
  873. return;
  874. }
  875. if (this.FromForm != "2")
  876. {
  877. //合同状态
  878. string ordLnStateMsg = ValidState();
  879. if (ordLnStateMsg != "")
  880. {
  881. MessageUtil.ShowWarning(ordLnStateMsg);
  882. return;
  883. }
  884. }
  885. if (MessageUtil.ShowYesNoAndQuestion("是否确认删除数据?") == DialogResult.No)
  886. {
  887. return;
  888. }
  889. if (this.FromForm == "2")
  890. {
  891. FormOrderChangeManage foc = new FormOrderChangeManage(this.ob);
  892. if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2")
  893. {
  894. MessageUtil.ShowWarning("此合同行已存非交货行类型的变更,不能删除!");
  895. return;
  896. }
  897. string chanStatus = GetExistsApplyNo(this.OrderNo);
  898. if (chanStatus != "W" && chanStatus != "S")
  899. {
  900. DeleteApplyNo(this.OrderNo);
  901. }
  902. else
  903. {
  904. if (chanStatus == "W")
  905. {
  906. MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能删除!");
  907. return;
  908. }
  909. }
  910. }
  911. UltraGridRow row = ultraGMain.ActiveRow;
  912. string deliveryNo = row.Cells["ORD_LN_DLY_PK"].Value.ToString();
  913. string dlyNo = row.Cells["DELIVERY_NO"].Value.ToString();
  914. DataRow[] dr = dataTable1.Select("ORD_LN_DLY_PK = '" + deliveryNo + "'", "");
  915. //获取当前选中行的管理卡号、合同头号、合同行号、交货信息编号,删除该编号对应的全部运输线路信息。
  916. clearTransit(deliveryNo);
  917. //删除当前交货信息。
  918. deleteDelivery(deliveryNo);
  919. if (this.FromForm == "0" || this.FromForm == "1" || this.FromForm == "3")
  920. {
  921. doQuery();
  922. }
  923. else
  924. {
  925. if (dic.ContainsKey(dlyNo))
  926. {
  927. isUpdate = false;
  928. }
  929. isDelete = true;
  930. dataTable1.Rows.Remove(dr[0]);
  931. ultraGMain.UpdateData();
  932. deliveryTransitTpcoSrc.Clear();
  933. deliveryTransitUserSrc.Clear();
  934. chanVal = "删除交货行 " + dlyNo;
  935. if (dic.ContainsKey(dlyNo))
  936. {
  937. chanVal = dic[dlyNo] + chanVal;
  938. dic[dlyNo] = chanVal;
  939. }
  940. else
  941. {
  942. dic.Add(dlyNo, chanVal);
  943. }
  944. SetpanelDlyChangeValue();
  945. }
  946. uNCount.Value = validLoadSumWt();
  947. }
  948. /// <summary>
  949. /// 删除当前选中交货信息行
  950. /// </summary>
  951. /// <param name="deliveryNo"></param>
  952. private void deleteDelivery(string deliveryNo)
  953. {
  954. ArrayList parms = new ArrayList();
  955. parms.Add(deliveryNo);
  956. CoreClientParam ccp = new CoreClientParam();
  957. ccp.IfShowErrMsg = false;
  958. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  959. ccp.MethodName = "deleteDelivery";
  960. ccp.ServerParams = new object[] { parms, UserInfo.GetUserName(), this.ManageNo, this.FromForm };
  961. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  962. if (ccp == null)
  963. return;
  964. else
  965. {
  966. if (ccp.ReturnCode == -1)
  967. {
  968. MessageUtil.ShowWarning(ccp.ReturnInfo);
  969. return;
  970. }
  971. MessageUtil.ShowTips("删除成功!");
  972. }
  973. }
  974. /// <summary>
  975. /// 删除全部线路
  976. /// </summary>
  977. private void clearTransit(string deliveryNo)
  978. {
  979. ArrayList parms = new ArrayList();
  980. parms.Add(deliveryNo);
  981. CoreClientParam ccp = new CoreClientParam();
  982. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  983. ccp.MethodName = "clearTransit";
  984. ccp.ServerParams = new object[] { parms, this.FromForm };
  985. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  986. if (ccp.ReturnCode == -1) return;
  987. }
  988. /// <summary>
  989. /// 新增交货信息
  990. /// </summary>
  991. private bool doAddDelivery()
  992. {
  993. if (ValidInput())
  994. {
  995. //验证交货时间差
  996. if (!this.delEnd())
  997. {
  998. return false;
  999. }
  1000. //两次交货日期必须大于31天。
  1001. //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
  1002. //存储新增时的交货信息编码,用于传递给运输线路信息界面。
  1003. DeliveryNo = autoCode();
  1004. //直接新增交货信息。
  1005. ArrayList parms = new ArrayList();
  1006. //管理卡号
  1007. parms.Add(ManageNo);
  1008. //合同号
  1009. parms.Add(OrderNo);
  1010. parms.Add(OrderNo);
  1011. //合同行号
  1012. parms.Add(OrderNo);
  1013. //交货信息编号
  1014. parms.Add(deliveryNo);
  1015. //交货结束日期,改为最迟交货日期
  1016. parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString());
  1017. //两次交货日期之间必须大于31天。
  1018. //交货量
  1019. parms.Add(uNCount.Value);
  1020. //计量单位(从主界面接收的参数)
  1021. parms.Add(OrderUnit);
  1022. //估算重量(留空)
  1023. parms.Add(uNEstimate.Value.ToString());
  1024. //保总长
  1025. parms.Add(uNLen.Value);
  1026. //收货单位编码
  1027. parms.Add(cmbUnit.Value);
  1028. //收获单位名称
  1029. parms.Add(cmbUnit.Text);
  1030. ////交货地点DELVRY_ADDR
  1031. parms.Add(cmbDeliveryAddress.Text);
  1032. //代办=false。
  1033. //运输线路信息=“”
  1034. //吨运费=“”
  1035. //是一条全新的记录,如果有运输线路信息,那么,你在点击运输线路信息按钮时,会自动新增以及更新运费等信息。
  1036. //是否代办
  1037. parms.Add(0);
  1038. //地点,允许为空。
  1039. parms.Add(utxtAddress.Text.Trim());
  1040. //运输方案。长沙-北京 方案1.
  1041. parms.Add("");
  1042. //总运费
  1043. parms.Add(transitMny);
  1044. parms.Add(UserInfo.GetUserName());
  1045. CoreClientParam ccp = new CoreClientParam();
  1046. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  1047. ccp.MethodName = "doAdd";
  1048. ccp.ServerParams = new object[] { parms };
  1049. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1050. if (ccp.ReturnCode == -1) return false;
  1051. //刷新数据源
  1052. doQuery();
  1053. Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
  1054. for (int i = 0; i < ultraGMain.Rows.Count; i++)
  1055. {
  1056. urow = ultraGMain.Rows[i];
  1057. if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
  1058. {
  1059. urow.Activate();
  1060. break;
  1061. }
  1062. }
  1063. GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
  1064. ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
  1065. });
  1066. return true;
  1067. }
  1068. else
  1069. {
  1070. return false;
  1071. }
  1072. }
  1073. /// <summary>
  1074. /// 获取交货信息最新日期。
  1075. /// </summary>
  1076. /// <returns></returns>
  1077. private string GetDelEnd()
  1078. {
  1079. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetDelEnd", new Object[] { OrderNo }, this.ob);
  1080. if (dt.Rows.Count > 0)
  1081. {
  1082. return dt.Rows[0][0].ToString();
  1083. }
  1084. else
  1085. {
  1086. return "";
  1087. }
  1088. }
  1089. /// <summary>
  1090. /// 往DataSet数据集中新增一条记录。
  1091. /// </summary>
  1092. private void doAdd()
  1093. {
  1094. if (this.FromForm != "2")
  1095. {
  1096. //合同状态
  1097. string ordLnStateMsg = ValidState();
  1098. if (ordLnStateMsg != "")
  1099. {
  1100. MessageUtil.ShowWarning(ordLnStateMsg);
  1101. return;
  1102. }
  1103. }
  1104. //交货期变更暂时不验证重量
  1105. if (this.FromForm != "2")
  1106. {
  1107. if (!validWt())
  1108. {
  1109. return;
  1110. }
  1111. }
  1112. if (ValidInput())
  1113. {
  1114. //两次交货日期必须大于31天。
  1115. //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
  1116. //验证交货时间差
  1117. if (ultraGMain.Rows.Count >= 1)
  1118. {
  1119. //if (!this.delEnd())
  1120. //{
  1121. // return;
  1122. //}
  1123. }
  1124. if (Convert.ToDateTime(uDTDeliveryEnd.Value) < DateTime.Now)
  1125. {
  1126. MessageUtil.ShowWarning("最迟交货期日期[" + Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString() + "]不合理!");
  1127. return;
  1128. }
  1129. //存储新增时的交货信息编码,用于传递给运输线路信息界面。
  1130. DeliveryNo = autoCode();
  1131. //直接新增交货信息。
  1132. ArrayList parms = new ArrayList();
  1133. //管理卡号
  1134. parms.Add(ManageNo);
  1135. //合同行号
  1136. parms.Add(OrderNo);
  1137. if (this.FromForm == "2")
  1138. {
  1139. string chmaxLnDlyPk = GetMaxOrdLnPk();
  1140. if (maxOrdLnDlyPk == chmaxLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxLnDlyPk) < 0)
  1141. {
  1142. parms.Add(chmaxLnDlyPk);
  1143. parms.Add(OrderNo);
  1144. parms.Add(OrderNo);
  1145. parms.Add(chmaxLnDlyPk);
  1146. parms.Add(OrderNo);
  1147. parms.Add(OrderNo);
  1148. parms.Add(OrderNo);
  1149. parms.Add(OrderNo);
  1150. // parms.Add(chmaxLnDlyPk);
  1151. }
  1152. else
  1153. {
  1154. parms.Add(maxOrdLnDlyPk);
  1155. parms.Add(OrderNo);
  1156. parms.Add(OrderNo);
  1157. parms.Add(maxOrdLnDlyPk);
  1158. parms.Add(OrderNo);
  1159. parms.Add(OrderNo);
  1160. parms.Add(OrderNo);
  1161. parms.Add(OrderNo);
  1162. //parms.Add(maxOrdLnDlyPk);
  1163. }
  1164. }
  1165. else
  1166. {
  1167. parms.Add(OrderNo);
  1168. parms.Add(OrderNo);
  1169. parms.Add(OrderNo);
  1170. //parms.Add(OrderNo);
  1171. }
  1172. //交货信息编号
  1173. //交货结束日期,改为最迟交货日期
  1174. parms.Add(uDTDeliveryEnd.DateTime.ToString("yyyy-MM-dd"));
  1175. //两次交货日期之间必须大于31天。
  1176. //交货量
  1177. parms.Add(uNCount.Value.ToString());
  1178. //计量单位(从主界面接收的参数)
  1179. parms.Add(OrderUnit);
  1180. //估算重量(留空)
  1181. parms.Add(uNEstimate.Value.ToString());
  1182. //保总长
  1183. parms.Add(uNLen.Value.ToString());
  1184. //收货单位编码
  1185. parms.Add(cmbUnit.Value.ToString());
  1186. //收获单位名称
  1187. parms.Add(cmbUnit.Text);
  1188. ////交货地点DELVRY_ADDR
  1189. parms.Add(cmbDeliveryAddress.Text);
  1190. //只执行简单新增操作。
  1191. //代办=false。
  1192. //运输线路信息=“”
  1193. //吨运费=“”
  1194. //是一条全新的记录,如果有运输线路信息,那么,你在点击运输线路信息按钮时,会自动新增以及更新运费等信息。
  1195. parms.Add(ckbTpcoAgency.Checked ? "1" : "0");
  1196. //地点,允许为空。
  1197. parms.Add(utxtAddress.Text.Trim());
  1198. //运输方案。长沙-北京 方案1.
  1199. parms.Add("");
  1200. //总运费
  1201. parms.Add("");
  1202. parms.Add(UserInfo.GetUserName());
  1203. parms.Add(cmbFactoryType.Value == null ? "" : cmbFactoryType.Value.ToString());
  1204. parms.Add(chkExtra.Checked ? "1" : "0");
  1205. parms.Add(chkAdd.Checked ? "1" : "0");
  1206. if (this.OrdType.Equals("120102")) //现货合同 只允许一个交货行
  1207. {
  1208. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.queryDeliveyCount", new object[] { this.OrderNo }, this.ob);
  1209. if (dt != null && dt.Rows.Count > 0)
  1210. {
  1211. if (Convert.ToInt32(dt.Rows[0][0]) > 1)
  1212. {
  1213. MessageUtil.ShowWarning("现货合同的每个合同行下只允许存在一个交货行!");
  1214. return;
  1215. }
  1216. }
  1217. }
  1218. if (MessageUtil.ShowYesNoAndQuestion("是否确认新增数据!") == DialogResult.No) return;
  1219. if (this.FromForm == "2")
  1220. {
  1221. FormOrderChangeManage foc = new FormOrderChangeManage(this.ob);
  1222. if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2")
  1223. {
  1224. MessageUtil.ShowWarning("此合同行已存在非交货行类型的变更,不能新增!");
  1225. return;
  1226. }
  1227. string chanStatus = GetExistsApplyNo(this.OrderNo);
  1228. if (chanStatus != "W" && chanStatus != "S" && chanStatus != "F")
  1229. {
  1230. DeleteApplyNo(this.OrderNo);
  1231. }
  1232. else
  1233. {
  1234. if (chanStatus == "W")
  1235. {
  1236. MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能新增!");
  1237. return;
  1238. }
  1239. }
  1240. }
  1241. string name = UserInfo.GetUserName();
  1242. string dept = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob);
  1243. dept = dept + "-" + UserInfo.GetDepartment();
  1244. try
  1245. {
  1246. ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.doAdd", new object[] { parms, name, dept, this.ManageNo, this.FromForm }, ob);
  1247. }
  1248. catch (MESException e)
  1249. {
  1250. MessageUtil.ShowTips(e.ExceptionInfo);
  1251. return;
  1252. }
  1253. MessageUtil.ShowTips("新增成功!");
  1254. if (this.FromForm == "2")
  1255. {
  1256. chanVal = "新增交货行 " + DeliveryNo + " 交货量 " + uNCount.Value.ToString() + OrderUnit + " 收货单位 " + cmbUnit.Text;
  1257. if (dic.ContainsKey(DeliveryNo))
  1258. {
  1259. chanVal = dic[DeliveryNo] + "\r\n" + chanVal;
  1260. dic[DeliveryNo] = chanVal;
  1261. }
  1262. else
  1263. {
  1264. dic.Add(DeliveryNo, chanVal);
  1265. }
  1266. isAdd = true;
  1267. }
  1268. //刷新数据源
  1269. doQuery();
  1270. Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
  1271. for (int i = 0; i < ultraGMain.Rows.Count; i++)
  1272. {
  1273. urow = ultraGMain.Rows[i];
  1274. if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
  1275. {
  1276. urow.Activate();
  1277. break;
  1278. }
  1279. }
  1280. uNCount.Value = validLoadSumWt();
  1281. GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
  1282. ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
  1283. });
  1284. }
  1285. }
  1286. DataTable dtLine = new DataTable();
  1287. /// <summary>
  1288. /// 线路明细总数据源,DataTable2
  1289. /// </summary>
  1290. DataTable saveLine = new DataTable();
  1291. /// <summary>
  1292. /// 交货信息总数据源,DataTable1
  1293. /// </summary>
  1294. DataTable orderDelivery = new DataTable();
  1295. /// <summary>
  1296. /// 新增运输线路
  1297. /// </summary>
  1298. private void addOrderDeliveryTransit(string deliveryNo)
  1299. {
  1300. if (dtLine.Rows.Count > 0)
  1301. {
  1302. ArrayList paramS = new ArrayList();
  1303. foreach (DataRow row in dtLine.Rows)
  1304. {
  1305. ArrayList parms = new ArrayList();
  1306. parms.Add(ManageNo);
  1307. parms.Add(OrderNo);
  1308. parms.Add(OrderSeq);
  1309. parms.Add(row["DELIVERY_NO"].ToString());
  1310. parms.Add(row["INDEX_SEQ"].ToString());
  1311. //代办标识
  1312. if (Convert.ToBoolean(row["AGENCY_FL"]))
  1313. {
  1314. parms.Add(1);
  1315. }
  1316. else
  1317. {
  1318. parms.Add(0);
  1319. }
  1320. parms.Add(row["LV_FACTY_TYP"].ToString());
  1321. parms.Add(row["TRANSIT_TYP"].ToString());
  1322. parms.Add(row["DESTINATION"].ToString());
  1323. parms.Add(row["STATION_NO"].ToString());
  1324. parms.Add(row["STATION_NM"].ToString());
  1325. parms.Add(row["SPCL_LN_NO"].ToString());
  1326. parms.Add(row["SPCL_LN_NM"].ToString());
  1327. parms.Add(row["PORT_NO"].ToString());
  1328. parms.Add(row["PORT_DESC"].ToString());
  1329. parms.Add(row["CARRIER_UNIT"].ToString());
  1330. parms.Add(row["RECEIVOR"].ToString());
  1331. parms.Add(row["TRANSIT_LN_MNY"].ToString());
  1332. parms.Add(1);
  1333. parms.Add(UserInfo.GetUserName());
  1334. paramS.Add(parms);
  1335. }
  1336. CoreClientParam ccp = new CoreClientParam();
  1337. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  1338. ccp.MethodName = "addOrderDeliveryTransit";
  1339. ccp.ServerParams = new object[] { paramS };
  1340. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1341. if (ccp.ReturnCode == -1) return;
  1342. }
  1343. }
  1344. /// <summary>
  1345. /// 最大交货编码
  1346. /// </summary>
  1347. /// <returns></returns>
  1348. private string autoCode()
  1349. {
  1350. string maxStr = GetMaxDeliveryNo();
  1351. if ("".Equals(maxStr))
  1352. {
  1353. return "001";
  1354. }
  1355. else
  1356. {
  1357. int i = Convert.ToInt32(maxStr);
  1358. i++;
  1359. string str = i.ToString();
  1360. str = str.PadLeft(3, '0');
  1361. return str;
  1362. }
  1363. }
  1364. /// <summary>
  1365. /// 获取当前合同行号下最大编号
  1366. /// </summary>
  1367. /// <returns></returns>
  1368. private string GetMaxDeliveryNo()
  1369. {
  1370. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetMaxDeliveryNo", new Object[] { this.OrderNo, fromForm }, this.ob);
  1371. return dt.Rows[0][0].ToString();
  1372. }
  1373. /// <summary>
  1374. /// 查询(刷新数据)
  1375. /// </summary>
  1376. private void doQuery()
  1377. {
  1378. if (this.fromForm == "2")
  1379. {
  1380. try
  1381. {
  1382. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderDelivery", new object[] { this.ManageNo, this.OrderNo }, this.ob);
  1383. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  1384. GridHelper.RefreshAndAutoSize(ultraGMain);
  1385. }
  1386. catch (MESException e)
  1387. {
  1388. MessageUtil.ShowWarning(e.ExceptionInfo);
  1389. }
  1390. SetpanelDlyChangeValue();
  1391. }
  1392. else
  1393. {
  1394. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.doQuery", new Object[] { OrderNo }, this.ob);
  1395. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  1396. foreach (UltraGridRow row in ultraGMain.Rows)
  1397. {
  1398. if ("1".Equals(row.Cells["AGENCY_FL"].Value))
  1399. {
  1400. row.Cells["AGENCY_FL"].Value = true;
  1401. }
  1402. else
  1403. {
  1404. row.Cells["AGENCY_FL"].Value = false;
  1405. }
  1406. }
  1407. //列自适应
  1408. GridHelper.RefreshAndAutoSize(ultraGMain);
  1409. ultraGMain.UpdateData();
  1410. }
  1411. }
  1412. private void frmOrderDelivery_Load(object sender, EventArgs e)
  1413. {
  1414. ultraLabel18.Text = LenUnit;
  1415. BindDw();
  1416. InitTransitUi();
  1417. //从主界面接收过来的单位参数。
  1418. cmbDw.Text = OrderUnit;
  1419. //收货单位。
  1420. BindUnit();
  1421. //交货地点
  1422. BindAddress();
  1423. doQuery();
  1424. uNCount.Value = validIntSumWt();
  1425. uDTDeliveryEnd.Value = Convert.ToDateTime(this.DlyTime).ToString("yyyy-MM-dd");
  1426. if (this.FromForm == "2") //合同变更时
  1427. {
  1428. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getMaxOrdLnDlyPk", new object[] { this.OrderNo }, this.ob);
  1429. if (dt != null && dt.Rows.Count > 0)
  1430. {
  1431. this.maxOrdLnDlyPk = dt.Rows[0][0].ToString();
  1432. }
  1433. //2016.12.26
  1434. //if (NumWt == "0")
  1435. //{
  1436. // chkAdd.Checked = true;
  1437. // chkAdd.Enabled = false;
  1438. //}
  1439. }
  1440. else
  1441. {
  1442. ultraGMain.DisplayLayout.Bands[0].Columns["RCMD_DELVRY_EDATE"].Hidden = true;
  1443. ultraGMain.DisplayLayout.Bands[0].Columns["PRDCYC_MEET"].Hidden = true;
  1444. panelDlyChange.Visible = false;
  1445. }
  1446. //临时口子
  1447. if (FromForm == "4")
  1448. {
  1449. // 合同管理科
  1450. if (!"admin".Equals(UserInfo.GetUserName()) && !"002001042003005".Equals(UserInfo.GetDeptid()))
  1451. {
  1452. uDTDeliveryEnd.Enabled = false;
  1453. uNCount.Enabled = false;
  1454. }
  1455. //cmbFactoryType.Enabled = false;
  1456. this.ultraToolbarsManager1.Toolbars[0].Tools["doAdd"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
  1457. this.ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
  1458. }
  1459. }
  1460. /// <summary>
  1461. /// 绑定单位
  1462. /// </summary>
  1463. private void BindDw()
  1464. {
  1465. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.base.CoreBuyerOrder.GetQueryBaseInfo", new Object[] { "1215" }, ob);
  1466. cmbDw.DataSource = dt;
  1467. cmbDw.DisplayMember = "BASENAME";
  1468. cmbDw.ValueMember = "BASECODE";
  1469. }
  1470. /// <summary>
  1471. /// 刷新DataTable1数据源。
  1472. /// </summary>
  1473. private void BindOrderDelivery()
  1474. {
  1475. //依据管理卡号、合同号、合同行号,展示对应的信息。
  1476. DataView orderDv = new DataView(orderDelivery);
  1477. orderDv.RowFilter = "MANAG_NO=" + ManageNo + " AND ORDER_NO=" + OrderNo + " AND ORDER_SEQ=" + OrderSeq;
  1478. DataTable orderDt = orderDv.ToTable();
  1479. GridHelper.CopyDataToDatatable(ref orderDt, ref this.dataTable1, true);
  1480. }
  1481. private string ValidState()
  1482. {
  1483. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdLnState",
  1484. new object[] { OrderNo }, ob);
  1485. if (dt.Rows.Count > 0)
  1486. {
  1487. string ordLnState = dt.Rows[0][0].ToString();
  1488. try
  1489. {
  1490. if (Convert.ToInt32(ordLnState) >= 12020301)
  1491. {
  1492. return "当前合同行已经生效或者提报,不能进行此操作!";
  1493. }
  1494. }
  1495. catch (Exception e)
  1496. {
  1497. return e.Message;
  1498. }
  1499. }
  1500. return "";
  1501. }
  1502. /// <summary>
  1503. /// 验证非空项。
  1504. /// </summary>
  1505. /// <returns></returns>
  1506. private bool ValidInput()
  1507. {
  1508. if (string.IsNullOrEmpty(uDTDeliveryEnd.Value.ToString()))
  1509. {
  1510. MessageBox.Show("请输入最迟交货日期!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1511. uDTDeliveryEnd.Focus();
  1512. return false;
  1513. }
  1514. if (string.IsNullOrEmpty(uNCount.Value.ToString()))
  1515. {
  1516. MessageBox.Show("请输入交货量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1517. uNCount.Focus();
  1518. return false;
  1519. }
  1520. //交货量、保总长必须大于0.
  1521. if (Convert.ToDouble(uNCount.Value) <= 0)
  1522. {
  1523. MessageBox.Show("交货量必须大于0!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1524. uNCount.Focus();
  1525. return false;
  1526. }
  1527. if (string.IsNullOrEmpty(uNEstimate.Value.ToString()))
  1528. {
  1529. MessageBox.Show("请输入估算重量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1530. uNEstimate.Focus();
  1531. return false;
  1532. }
  1533. if (cmbUnit.Value == System.DBNull.Value || cmbUnit.Value == null)
  1534. {
  1535. MessageBox.Show("请输入收货单位!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1536. cmbUnit.Focus();
  1537. return false;
  1538. }
  1539. if (cmbUnit.IsItemInList(cmbUnit.Text) == false)
  1540. {
  1541. MessageUtil.ShowWarning("输入的收货单位不存在,请选择收货单位!");
  1542. cmbUnit.Focus();
  1543. return false;
  1544. }
  1545. if (cmbDeliveryAddress.Value == null || string.IsNullOrEmpty(cmbDeliveryAddress.Value.ToString()))
  1546. {
  1547. MessageBox.Show("请输入交货地点!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1548. cmbDeliveryAddress.Focus();
  1549. return false;
  1550. }
  1551. ////自提,则交货地址必填
  1552. if ("110603".Equals(cmbDeliveryAddress.Value.ToString()))
  1553. {
  1554. if ("".Equals(utxtAddress.Text))
  1555. {
  1556. MessageBox.Show("请输入地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1557. utxtAddress.Focus();
  1558. return false;
  1559. }
  1560. }
  1561. if ("110603".Equals(cmbDeliveryAddress.Value.ToString()))
  1562. {
  1563. if ("".Equals(utxtAddress.Text))
  1564. {
  1565. MessageBox.Show("请输入地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1566. utxtAddress.Focus();
  1567. return false;
  1568. }
  1569. }
  1570. if (cmbFactoryType.Value == null || cmbFactoryType.Value.ToString() == "")
  1571. {
  1572. MessageUtil.ShowWarning("请选择出厂类型!");
  1573. cmbFactoryType.Focus();
  1574. return false;
  1575. }
  1576. int validCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").Count();
  1577. if (ckbTpcoAgency.Checked == false)
  1578. {
  1579. if (validCnt > 0)
  1580. {
  1581. MessageUtil.ShowWarning("系统已存在Tpco代办(运输线路),不能取消Tpco代办!");
  1582. ckbTpcoAgency.Focus();
  1583. return false;
  1584. }
  1585. }
  1586. return true;
  1587. }
  1588. /// <summary>
  1589. /// 交货地点
  1590. /// </summary>
  1591. private void BindAddress()
  1592. {
  1593. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.BindAddress", new object[] { orderNo }, this.ob);
  1594. cmbDeliveryAddress.DataSource = dt;
  1595. cmbDeliveryAddress.DisplayMember = "BASENAME";
  1596. cmbDeliveryAddress.ValueMember = "BASECODE";
  1597. cmbDeliveryAddress.DataBind();
  1598. cmbDeliveryAddress.SelectedIndex = 0;
  1599. if (this.DlyAddress == "")
  1600. {
  1601. cmbDeliveryAddress.SelectedIndex = 0;
  1602. }
  1603. else
  1604. {
  1605. cmbDeliveryAddress.Text = this.DlyAddress;
  1606. }
  1607. foreach(DataRow dr in dt.Rows){
  1608. if (dr["BASECODE"].ToString() == "110610")
  1609. {
  1610. cmbDeliveryAddress.Value = "110610";
  1611. }
  1612. }
  1613. if (saleOrg == "100102")
  1614. {
  1615. cmbDeliveryAddress.Text = "TPCO库房车板";
  1616. }
  1617. }
  1618. /// <summary>
  1619. /// 绑定收货单位,需要传递参数,隶属于哪个销售组织,类型是收货单位还是最终用户。
  1620. /// </summary>
  1621. private void BindUnit()
  1622. {
  1623. string custmUse = "100203";
  1624. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.BindUnit", new Object[] { saleOrg, custmUse }, this.ob);
  1625. //起始地数据源绑定
  1626. cmbUnit.DataSource = dt;
  1627. cmbUnit.DisplayMember = "CUSTOMER_NM";
  1628. cmbUnit.ValueMember = "CUSTOMER_NO";
  1629. cmbUnit.DataBind();
  1630. cmbUnit.Text = shRow;
  1631. }
  1632. /// <summary>
  1633. /// 指定地点,utxtAddress非只读。
  1634. /// </summary>
  1635. /// <param name="sender"></param>
  1636. /// <param name="e"></param>
  1637. private void cmbDeliveryAddress_ValueChanged(object sender, EventArgs e)
  1638. {
  1639. if (cmbDeliveryAddress.Value == null)
  1640. return;
  1641. if ("110603".Equals(cmbDeliveryAddress.Value.ToString()))
  1642. {
  1643. utxtAddress.ReadOnly = false;
  1644. }
  1645. else
  1646. {
  1647. utxtAddress.ReadOnly = true;
  1648. utxtAddress.Text = "";
  1649. }
  1650. if ("110601".Equals(cmbDeliveryAddress.Value.ToString()))
  1651. {
  1652. if (ckbTpcoAgency.Checked)
  1653. {
  1654. chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  1655. chkExtra.Enabled = true;
  1656. chkExtra.Checked = true;
  1657. }
  1658. else
  1659. {
  1660. chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False;
  1661. chkExtra.Enabled = true;
  1662. chkExtra.Checked = false;
  1663. }
  1664. }
  1665. else
  1666. {
  1667. chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False;
  1668. chkExtra.Enabled = false;
  1669. chkExtra.Checked = false;
  1670. }
  1671. lblDeliveryType.Text = cmbDeliveryAddress.Text;
  1672. }
  1673. /// <summary>
  1674. /// 总运费
  1675. /// </summary>
  1676. private string transitMny = "";
  1677. /// <summary>
  1678. /// 验证两次交货日期之前必须大于31天
  1679. /// </summary>
  1680. private bool delEnd()
  1681. {
  1682. //两次交货日期必须大于31天。
  1683. //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
  1684. string delEnd = GetDelEnd();
  1685. if (!"".Equals(delEnd))
  1686. {
  1687. DateTime delEndDt = Convert.ToDateTime(delEnd);
  1688. TimeSpan tSpan = uDTDeliveryEnd.DateTime - delEndDt;
  1689. if (tSpan.Days < 31)
  1690. {
  1691. MessageBox.Show("两次交货日期之间必须大于31天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1692. return false;
  1693. }
  1694. }
  1695. return true;
  1696. }
  1697. /// <summary>
  1698. /// 验证两次交货日期之前必须大于45天
  1699. /// </summary>
  1700. private bool delUpEnd()
  1701. {
  1702. //两次交货日期必须大于45天。
  1703. //获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
  1704. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetDelEnd", new Object[] { OrderNo }, this.ob);
  1705. for (int i = 0; i < dt.Rows.Count; i++)
  1706. {
  1707. string delEnd = dt.Rows[i][0].ToString();
  1708. if (!"".Equals(delEnd))
  1709. {
  1710. DateTime delEndDt = Convert.ToDateTime(delEnd);
  1711. DateTime deletoDt = Convert.ToDateTime(dt.Rows[0][0].ToString());
  1712. TimeSpan tSpans = uDTDeliveryEnd.DateTime - deletoDt; //最迟交货期
  1713. TimeSpan tSpan = uDTDeliveryEnd.DateTime - delEndDt;
  1714. if (i == 0 && tSpans.Days > 0)
  1715. {
  1716. continue;
  1717. }
  1718. if (tSpan.Days == 0)
  1719. {
  1720. continue;
  1721. }
  1722. if (tSpan.Days >= -31 && tSpan.Days <= 31)
  1723. {
  1724. MessageBox.Show("两次交货日期之前必须大于45天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1725. return false;
  1726. }
  1727. if (tSpan.Days >= 0 && tSpan.Days <= 31)
  1728. {
  1729. MessageBox.Show("两次交货日期之前必须大于45天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1730. return false;
  1731. }
  1732. }
  1733. }
  1734. return true;
  1735. }
  1736. /// <summary>
  1737. /// 更新单击弹出运输线路窗体时,新增或修改交货信息行的吨运费和运输线路描述信息。
  1738. /// </summary>
  1739. /// <param name="ManageNo"></param>
  1740. /// <param name="OrderNo"></param>
  1741. /// <param name="deliveryNo"></param>
  1742. /// <param name="transitMny"></param>
  1743. /// <param name="p"></param>
  1744. private void UpdateTransitMnyDesc(string ManageNo, string OrderNo, string OrderSeq, string deliveryNo, string transitMny, string transitDesc)
  1745. {
  1746. ArrayList parms = new ArrayList();
  1747. //总运费
  1748. parms.Add(transitMny);
  1749. //运输方案。长沙-北京 方案1.
  1750. parms.Add(transitDesc);
  1751. if ("".Equals(transitDesc))
  1752. {
  1753. parms.Add(0);
  1754. }
  1755. else
  1756. {
  1757. parms.Add(1);
  1758. }
  1759. //合同行号
  1760. parms.Add(OrderNo);
  1761. //合同行号流水
  1762. parms.Add(OrderSeq);
  1763. CoreClientParam ccp = new CoreClientParam();
  1764. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  1765. ccp.MethodName = "UpdateTransitMnyDesc";
  1766. ccp.ServerParams = new object[] { parms };
  1767. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1768. if (ccp.ReturnCode == -1) return;
  1769. //刷新数据源
  1770. doQuery();
  1771. Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
  1772. for (int i = 0; i < ultraGMain.Rows.Count; i++)
  1773. {
  1774. urow = ultraGMain.Rows[i];
  1775. if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
  1776. {
  1777. urow.Activate();
  1778. break;
  1779. }
  1780. }
  1781. GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
  1782. ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
  1783. });
  1784. }
  1785. /// <summary>
  1786. /// 主UltraGrid行点击触发事件。
  1787. /// </summary>
  1788. /// <param name="sender"></param>
  1789. /// <param name="e"></param>
  1790. private void ultraGMain_AfterRowActivate(object sender, EventArgs e)
  1791. {
  1792. UltraGridRow row = ultraGMain.ActiveRow;
  1793. if (row == null)
  1794. {
  1795. return;
  1796. }
  1797. if (row.Cells["IS_ADD_CODE"].Value.ToString() == "1")
  1798. {
  1799. chkAdd.Checked = true;
  1800. ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
  1801. if (FromForm != "4")
  1802. {
  1803. ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
  1804. }
  1805. }
  1806. else
  1807. {
  1808. chkAdd.Checked = false;
  1809. if (numWt == "0")
  1810. {
  1811. ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
  1812. ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
  1813. }
  1814. else
  1815. {
  1816. ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
  1817. if (FromForm != "4")
  1818. {
  1819. ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
  1820. }
  1821. }
  1822. }
  1823. //交货开始日期
  1824. //uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value;
  1825. //交货结束日期,改为最迟交货日期
  1826. uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value);
  1827. //交货量
  1828. uNCount.Value = row.Cells["DELVRY_QTY"].Value;
  1829. //保总长
  1830. uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value;
  1831. //收货单位编码
  1832. cmbUnit.Value = row.Cells["RECEIV_NO"].Value;
  1833. if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
  1834. {
  1835. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
  1836. if (dt.Rows.Count > 0)
  1837. {
  1838. utxtAddress.Text = dt.Rows[0][0].ToString();
  1839. }
  1840. }
  1841. //交货方式
  1842. //cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString();
  1843. //交货地点
  1844. cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
  1845. lblDeliveryType.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
  1846. //地点,允许为空。
  1847. utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
  1848. lblAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
  1849. //交货编码
  1850. string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString();
  1851. //估算重量(留空)
  1852. //uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString();
  1853. cmbFactoryType.Value = row.Cells["TRANSIT_TYP"].Value.ToString();
  1854. cmbDeliveryAddress_ValueChanged(null, null);
  1855. ckbTpcoAgency.Checked = bool.Parse(row.Cells["AGENCY_FL"].Value.ToString());
  1856. if (row.Cells["EXTRA_FLAG"].Value.ToString() == "是")
  1857. chkExtra.Checked = true;
  1858. else
  1859. chkExtra.Checked = false;
  1860. //运输方案。长沙-北京 方案1.
  1861. SlmOrderDeliveryTransitEntity deliveryTransit = new SlmOrderDeliveryTransitEntity();
  1862. deliveryTransit.OrdPk = row.GetValue("ORD_PK");
  1863. deliveryTransit.OrdLnPk = row.GetValue("ORD_LN_PK");
  1864. deliveryTransit.OrdLnDlyPk = row.GetValue("ORD_LN_DLY_PK");
  1865. QueryTransit(deliveryTransit);
  1866. }
  1867. private void uNCount_ValueChanged(object sender, EventArgs e)
  1868. {
  1869. //if ("米".Equals(cmbDw.Text.Trim()))
  1870. //{
  1871. // uNLen.Value = Convert.ToInt32(uNCount.Value);
  1872. //}
  1873. //else if ("毫米".Equals(cmbDw.Text.Trim()))
  1874. //{
  1875. // uNLen.Value = Convert.ToInt32(uNCount.Value);
  1876. //}
  1877. //else if ("英尺".Equals(cmbDw.Text.Trim()))
  1878. //{
  1879. // uNLen.Value = (Convert.ToInt32(uNCount.Value));
  1880. //}
  1881. //else
  1882. //{
  1883. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdQtyAndEnLen", new object[] { this.OrderNo }, this.ob);
  1884. decimal qty = 0;
  1885. decimal enLen = 0;
  1886. if (dt != null && dt.Rows.Count > 0)
  1887. {
  1888. qty = Convert.ToDecimal(dt.Rows[0][0]);
  1889. enLen = Convert.ToDecimal(dt.Rows[0][1].ToString() == "" ? "0" : dt.Rows[0][1]);
  1890. }
  1891. //uNLen.Value = Convert.ToInt32(uNCount.Value);
  1892. if (enLen != 0)
  1893. {
  1894. uNLen.Value = (Convert.ToDecimal(uNCount.Value) * enLen) / qty;
  1895. }
  1896. //}
  1897. double lenWgt = 0;
  1898. OrderFunction.GetPrdctWgt(ref lenWgt, Convert.ToDouble(uNCount.Value), cmbDw.Text, spec_code, ob);
  1899. if (this.Produc_code.Equals("S000012"))
  1900. {
  1901. uNEstimate.Value = Convert.ToDouble(uNCount.Value) * this.Jg_weight;
  1902. }
  1903. else
  1904. {
  1905. uNEstimate.Value = Math.Round(lenWgt, 3);
  1906. }
  1907. }
  1908. private void cmbUnit_ValueChanged(object sender, EventArgs e)
  1909. {
  1910. //if (cmbUnit.Value!=null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
  1911. //{
  1912. // DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
  1913. // if (dt.Rows.Count > 0)
  1914. // {
  1915. // utxtAddress.Text = dt.Rows[0][0].ToString();
  1916. // }
  1917. //}
  1918. }
  1919. private void cmbUnit_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1920. {
  1921. FrmOrderCustomer spec = new FrmOrderCustomer(ob);
  1922. spec.SaleOrg = saleOrg;
  1923. spec.GetOrderCustomers += new FrmOrderCustomer.GetOrderCustomer(spec_GetOrderCustomers);
  1924. spec.ShowDialog();
  1925. }
  1926. void spec_GetOrderCustomers(string specName, UltraGridRow retunSpecRow)
  1927. {
  1928. BindUnit();
  1929. cmbUnit.Value = specName;
  1930. }
  1931. private void ultraGMain_DoubleClick(object sender, EventArgs e)
  1932. {
  1933. UltraGridRow row = ultraGMain.ActiveRow;
  1934. if (row == null)
  1935. return;
  1936. //交货开始日期
  1937. //uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value;
  1938. //交货结束日期,改为最迟交货日期
  1939. uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value);
  1940. //交货量
  1941. uNCount.Value = row.Cells["DELVRY_QTY"].Value;
  1942. //保总长
  1943. uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value;
  1944. //收货单位编码
  1945. cmbUnit.Value = row.Cells["RECEIV_NO"].Value;
  1946. if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
  1947. {
  1948. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
  1949. if (dt.Rows.Count > 0)
  1950. {
  1951. utxtAddress.Text = dt.Rows[0][0].ToString();
  1952. }
  1953. }
  1954. //交货方式
  1955. //cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString();
  1956. //交货地点
  1957. cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
  1958. //地点,允许为空。
  1959. utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
  1960. //交货编码
  1961. string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString();
  1962. //估算重量(留空)
  1963. uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString();
  1964. }
  1965. private void ultraGMain_ClickCell(object sender, ClickCellEventArgs e)
  1966. {
  1967. UltraGridRow row = ultraGMain.ActiveRow;
  1968. if (row == null)
  1969. return;
  1970. //交货开始日期
  1971. //uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value;
  1972. //交货结束日期,改为最迟交货日期
  1973. if (row.Cells["DELVRY_EDATE"].Value != null)
  1974. uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value);
  1975. //交货量
  1976. uNCount.Value = row.Cells["DELVRY_QTY"].Value;
  1977. //保总长
  1978. uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value;
  1979. //收货单位编码
  1980. cmbUnit.Value = row.Cells["RECEIV_NO"].Value;
  1981. if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
  1982. {
  1983. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
  1984. if (dt.Rows.Count > 0)
  1985. {
  1986. utxtAddress.Text = dt.Rows[0][0].ToString();
  1987. }
  1988. }
  1989. //交货方式
  1990. //cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString();
  1991. //交货地点
  1992. cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
  1993. //地点,允许为空。
  1994. utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
  1995. //交货编码
  1996. string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString();
  1997. //估算重量(留空)
  1998. //uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString();
  1999. }
  2000. private UltraComboEditor cmbCydw = new UltraComboEditor();
  2001. private UltraComboEditor cmbWater = new UltraComboEditor();
  2002. private UltraComboEditor cmbCollege = new UltraComboEditor();
  2003. private UltraComboEditor cmbStationName = new UltraComboEditor();
  2004. private UltraComboEditor cmbYsfs = new UltraComboEditor();
  2005. private void InitTransitUi()
  2006. {
  2007. cmbCydw.Visible = false;
  2008. this.Controls.Add(cmbCydw);
  2009. cmbWater.Visible = false;
  2010. this.Controls.Add(cmbWater);
  2011. cmbCollege.Visible = false;
  2012. this.Controls.Add(cmbCollege);
  2013. cmbStationName.Visible = false;
  2014. this.Controls.Add(cmbStationName);
  2015. cmbYsfs.Visible = false;
  2016. this.Controls.Add(cmbYsfs);
  2017. ultraGrid2.DisplayLayout.Bands[0].Columns["CarrierUnit"].EditorComponent = cmbCydw;
  2018. ultraGrid2.DisplayLayout.Bands[0].Columns["CarrierUnit"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2019. ultraGrid2.DisplayLayout.Bands[0].Columns["PortNo"].EditorComponent = cmbWater;
  2020. ultraGrid2.DisplayLayout.Bands[0].Columns["PortNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2021. ultraGrid2.DisplayLayout.Bands[0].Columns["SpclLnNo"].EditorComponent = cmbCollege;//SPCL_LN_NM
  2022. ultraGrid2.DisplayLayout.Bands[0].Columns["SpclLnNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2023. ultraGrid2.DisplayLayout.Bands[0].Columns["StationNo"].EditorComponent = cmbStationName;
  2024. ultraGrid2.DisplayLayout.Bands[0].Columns["StationNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2025. ultraGrid2.DisplayLayout.Bands[0].Columns["TransitTyp"].EditorComponent = cmbYsfs;
  2026. ultraGrid2.DisplayLayout.Bands[0].Columns["TransitTyp"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2027. ultraGrid3.DisplayLayout.Bands[0].Columns["CarrierUnit"].EditorComponent = cmbCydw;
  2028. ultraGrid3.DisplayLayout.Bands[0].Columns["CarrierUnit"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2029. ultraGrid3.DisplayLayout.Bands[0].Columns["PortNo"].EditorComponent = cmbWater;
  2030. ultraGrid3.DisplayLayout.Bands[0].Columns["PortNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2031. ultraGrid3.DisplayLayout.Bands[0].Columns["SpclLnNo"].EditorComponent = cmbCollege;//SPCL_LN_NM
  2032. ultraGrid3.DisplayLayout.Bands[0].Columns["SpclLnNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2033. ultraGrid3.DisplayLayout.Bands[0].Columns["StationNo"].EditorComponent = cmbStationName;
  2034. ultraGrid3.DisplayLayout.Bands[0].Columns["StationNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2035. ultraGrid3.DisplayLayout.Bands[0].Columns["TransitTyp"].EditorComponent = cmbYsfs;
  2036. ultraGrid3.DisplayLayout.Bands[0].Columns["TransitTyp"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2037. bindCydw();
  2038. bindCmbWater();
  2039. bindCmbCollege();
  2040. bindCmbStation();
  2041. bindYsfs();
  2042. bindFactoryType();
  2043. EntityHelper.ShowGridCaption<SlmOrderDeliveryTransitEntity>(ultraGrid2.DisplayLayout.Bands[0]);
  2044. ultraGrid2.DisplayLayout.Bands[0].Columns["AgencyFl2"].Header.Caption = "客户代办";
  2045. EntityHelper.ShowGridCaption<SlmOrderDeliveryTransitEntity>(ultraGrid3.DisplayLayout.Bands[0]);
  2046. ultraGrid3.DisplayLayout.Bands[0].Columns["AgencyFl2"].Header.Caption = " TPCO代办";
  2047. }
  2048. /// <summary>
  2049. /// 承运单位
  2050. /// </summary>
  2051. private void bindCydw()
  2052. {
  2053. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetCydw", null, this.ob);
  2054. //起始地数据源绑定
  2055. cmbCydw.DataSource = dt;
  2056. cmbCydw.DisplayMember = "BASENAME";
  2057. cmbCydw.ValueMember = "BASECODE";
  2058. ClsBaseInfo.SetComboItemHeight(cmbCydw);
  2059. }
  2060. /// <summary>
  2061. /// 港口、码头
  2062. /// </summary>
  2063. private void bindCmbWater()
  2064. {
  2065. //港口码头
  2066. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetPort", null, this.ob);
  2067. ComboBoxHelper.FillUlcmItemsAddEmpty(cmbWater, dt);
  2068. cmbWater.SelectedIndex = 0;
  2069. ClsBaseInfo.SetComboItemHeight(cmbWater);
  2070. }
  2071. /// <summary>
  2072. /// 专用线
  2073. /// </summary>
  2074. private void bindCmbCollege()
  2075. {
  2076. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetSpclNo", null, this.ob);
  2077. ComboBoxHelper.FillUlcmItemsAddEmpty(cmbCollege, dt);
  2078. cmbCollege.SelectedIndex = 0;
  2079. ClsBaseInfo.SetComboItemHeight(cmbCollege);
  2080. }
  2081. /// <summary>
  2082. /// 铁路到站
  2083. /// </summary>
  2084. private void bindCmbStation()
  2085. {
  2086. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.base.CoreSpeclLine.GetStation", null, this.ob);
  2087. ComboBoxHelper.FillUlcmItemsAddEmpty(cmbStationName, dt);
  2088. cmbStationName.SelectedIndex = 0;
  2089. ClsBaseInfo.SetComboItemHeight(cmbStationName);
  2090. }
  2091. /// <summary>
  2092. /// 运输方式
  2093. /// </summary>
  2094. private void bindYsfs()
  2095. {
  2096. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetYsfs", null, this.ob);
  2097. cmbYsfs.DataSource = dt;
  2098. cmbYsfs.DisplayMember = "BASENAME";
  2099. cmbYsfs.ValueMember = "BASECODE";
  2100. cmbYsfs.SelectedIndex = 0;
  2101. ClsBaseInfo.SetComboItemHeight(cmbYsfs);
  2102. }
  2103. private void bindFactoryType()
  2104. {
  2105. DataTable dt = ClsBaseInfo.GetComBaseInfo("1105", ob);
  2106. dt.DefaultView.RowFilter = "BASECODE IN ('110501', '110502')";
  2107. cmbFactoryType.DataSource = dt;
  2108. cmbFactoryType.DisplayMember = "BASENAME";
  2109. cmbFactoryType.ValueMember = "BASECODE";
  2110. if (cmbFactoryType.Items.Count > 0)
  2111. {
  2112. cmbFactoryType.SelectedIndex = 0;
  2113. }
  2114. ClsBaseInfo.SetComboItemHeight(cmbFactoryType);
  2115. }
  2116. private void ultraToolbarsManager2_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  2117. {
  2118. switch (e.Tool.Key)
  2119. {
  2120. case "保存":
  2121. SaveTranSit();
  2122. break;
  2123. case "删除":
  2124. DeleteTransit();
  2125. break;
  2126. }
  2127. }
  2128. private void SaveTranSit()
  2129. {
  2130. ultraGrid2.UpdateData();
  2131. ultraGrid3.UpdateData();
  2132. if (ultraGMain.ActiveRow == null) return;
  2133. UltraGridRow[] rows = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
  2134. UltraGridRow[] rows2 = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
  2135. if (rows.Length == 0 && rows2.Length == 0)
  2136. {
  2137. MessageUtil.ShowWarning("请选择一条运输线路!");
  2138. return;
  2139. }
  2140. UltraGridRow[] userValidRows = ultraGrid2.Rows.AsQueryable().Where("Validflag = '1'").ToArray();
  2141. UltraGridRow[] tpcoValidRows = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").ToArray();
  2142. int userValidCnt = userValidRows.Length;
  2143. int tpcoValidCnt = tpcoValidRows.Length;
  2144. if (ckbTpcoAgency.Checked == true)
  2145. {
  2146. if ((tpcoValidCnt + rows2.Length) == 0)
  2147. {
  2148. MessageUtil.ShowWarning("请至少维护一条两票制运输线路!");
  2149. return;
  2150. }
  2151. }
  2152. if (CheckStation() == false) return;
  2153. string transitType = ultraGMain.ActiveRow.GetValue("TRANSIT_TYP");
  2154. if ((userValidCnt + rows.Length) > 0)
  2155. {
  2156. if (userValidCnt > 0)
  2157. {
  2158. SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)userValidRows[0].ListObject;
  2159. if (deliveryTransit.TransitTyp.ToString() != transitType)
  2160. {
  2161. MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
  2162. userValidRows[0].Activate();
  2163. return;
  2164. }
  2165. }
  2166. else
  2167. {
  2168. SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)rows[0].ListObject;
  2169. if (deliveryTransit.TransitTyp.ToString() != transitType)
  2170. {
  2171. MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
  2172. rows[0].Activate();
  2173. return;
  2174. }
  2175. }
  2176. }
  2177. else if ((tpcoValidCnt + rows2.Length) > 0)
  2178. {
  2179. if (tpcoValidCnt > 0)
  2180. {
  2181. SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)tpcoValidRows[0].ListObject;
  2182. if (deliveryTransit.TransitTyp.ToString() != transitType)
  2183. {
  2184. MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
  2185. tpcoValidRows[0].Activate();
  2186. return;
  2187. }
  2188. }
  2189. else
  2190. {
  2191. SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)rows2[0].ListObject;
  2192. if (deliveryTransit.TransitTyp.ToString() != transitType)
  2193. {
  2194. MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
  2195. rows2[0].Activate();
  2196. return;
  2197. }
  2198. }
  2199. }
  2200. if (ultraGMain.GetActiveRowValue("AGENCY_FL") == "0" && rows2.Length > 0)
  2201. {
  2202. MessageUtil.ShowWarning("当前交货行未勾选Tpco代办,不能新增两票制运输线路!");
  2203. return;
  2204. }
  2205. ArrayList list = new ArrayList();
  2206. foreach (UltraGridRow row in rows)
  2207. {
  2208. SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity<SlmOrderDeliveryTransitEntity>(row.ListObject);
  2209. bool result = CheckTransit(deliveryTransit, row, 2);
  2210. if (result == false) return;
  2211. string strJSON = JSONFormat.Format(deliveryTransit);
  2212. list.Add(strJSON);
  2213. }
  2214. ArrayList list2 = new ArrayList();
  2215. foreach (UltraGridRow row in rows2)
  2216. {
  2217. SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity<SlmOrderDeliveryTransitEntity>(row.ListObject);
  2218. bool result = CheckTransit(deliveryTransit, row, 1);
  2219. if (result == false) return;
  2220. string strJSON = JSONFormat.Format(deliveryTransit);
  2221. list2.Add(strJSON);
  2222. }
  2223. if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == DialogResult.No) return;
  2224. ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.setDeliveryTransit", new object[] { list, list2, this.FromForm }, ob);
  2225. MessageUtil.ShowTips("保存成功!");
  2226. if (this.FromForm == "2")
  2227. {
  2228. string seq = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
  2229. if (list.Count > 0)
  2230. {
  2231. if (dic.ContainsKey(seq))
  2232. {
  2233. chanVal = dic[seq] + "\n保存了买方运输线路";
  2234. dic[seq] = chanVal;
  2235. }
  2236. else
  2237. {
  2238. dic.Add(seq, chanVal);
  2239. }
  2240. }
  2241. if (list2.Count > 0)
  2242. {
  2243. if (dic.ContainsKey(seq))
  2244. {
  2245. chanVal = dic[seq] + "\n保存了TPCO代办运输线路";
  2246. dic[seq] = chanVal;
  2247. }
  2248. else
  2249. {
  2250. dic.Add(seq, chanVal);
  2251. }
  2252. }
  2253. }
  2254. SlmOrderDeliveryTransitEntity deliveryTransit2 = new SlmOrderDeliveryTransitEntity();
  2255. deliveryTransit2.OrdPk = ultraGMain.ActiveRow.GetValue("ORD_PK");
  2256. deliveryTransit2.OrdLnPk = ultraGMain.ActiveRow.GetValue("ORD_LN_PK");
  2257. deliveryTransit2.OrdLnDlyPk = ultraGMain.ActiveRow.GetValue("ORD_LN_DLY_PK");
  2258. QueryTransit(deliveryTransit2);
  2259. }
  2260. private bool CheckStation()
  2261. {
  2262. if (utxtAddress.ReadOnly == false)
  2263. {
  2264. int userValidAdrCnt = ultraGrid2.Rows.AsQueryable().Where("Validflag = '1'").Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
  2265. int userChkAdrCnt = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'")
  2266. .Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
  2267. int tpcoValidAdrCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'")
  2268. .Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
  2269. int tpcoChkAdrCnt = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'")
  2270. .Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
  2271. if ((userValidAdrCnt + userChkAdrCnt + tpcoValidAdrCnt + tpcoChkAdrCnt) == 0)
  2272. {
  2273. MessageUtil.ShowWarning("请维护一条目的地为[" + utxtAddress.Text.Trim() + "]的运输线路!");
  2274. return false;
  2275. }
  2276. }
  2277. return true;
  2278. }
  2279. private bool CheckTransit(SlmOrderDeliveryTransitEntity deliveryTransit, UltraGridRow row, int tansitType)
  2280. {
  2281. UltraGridRow delivertyRow = ultraGMain.ActiveRow;
  2282. deliveryTransit.CreateName = UserInfo.GetUserName();
  2283. deliveryTransit.UpdateName = UserInfo.GetUserName();
  2284. deliveryTransit.DeleteName = UserInfo.GetUserName();
  2285. deliveryTransit.OrdPk = delivertyRow.GetValue("ORD_PK");
  2286. deliveryTransit.OrdLnPk = delivertyRow.GetValue("ORD_LN_PK");
  2287. deliveryTransit.OrdLnDlyPk = delivertyRow.GetValue("ORD_LN_DLY_PK");
  2288. if (deliveryTransit.TransitTyp.ToString() == "")
  2289. {
  2290. MessageUtil.ShowWarning("请选择运输方式!");
  2291. row.SetCellActive("TransitTyp");
  2292. return false;
  2293. }
  2294. switch (deliveryTransit.TransitTyp.ToString())
  2295. {
  2296. case "110501":
  2297. if (deliveryTransit.Destination.ToString() == "")
  2298. {
  2299. MessageUtil.ShowWarning("请输入目的地!");
  2300. row.SetCellActive("Destination");
  2301. return false;
  2302. }
  2303. break;
  2304. case "110502":
  2305. if (deliveryTransit.StationNo.ToString() == "")
  2306. {
  2307. MessageUtil.ShowWarning("请选择到站!");
  2308. row.SetCellActive("StationNo");
  2309. return false;
  2310. }
  2311. break;
  2312. case "110503":
  2313. if (deliveryTransit.PortNo.ToString() == "")
  2314. {
  2315. MessageUtil.ShowWarning("请选择港口/码头!");
  2316. row.SetCellActive("PortNo");
  2317. return false;
  2318. }
  2319. break;
  2320. case "110504":
  2321. if (deliveryTransit.Destination.ToString() == "")
  2322. {
  2323. MessageUtil.ShowWarning("请输入目的地!");
  2324. row.SetCellActive("Destination");
  2325. return false;
  2326. }
  2327. //if (deliveryTransit.SpclLnNo.ToString() == "")
  2328. //{
  2329. // MessageUtil.ShowWarning("请选择专用线!");火车
  2330. // row.SetCellActive("SpclLnNo");
  2331. // return false;
  2332. //}
  2333. break;
  2334. }
  2335. if (tansitType == 1)
  2336. {
  2337. deliveryTransit.AgencyFl = deliveryTransit.AgencyFl2 == true ? "1" : "0";
  2338. }
  2339. else
  2340. {
  2341. deliveryTransit.AgencyFl = deliveryTransit.AgencyFl2 == true ? "2" : "0";
  2342. }
  2343. return true;
  2344. }
  2345. private void DeleteTransit()
  2346. {
  2347. ultraGrid2.UpdateData();
  2348. ultraGrid3.UpdateData();
  2349. if (ultraGMain.ActiveRow == null) return;
  2350. UltraGridRow[] rows = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
  2351. UltraGridRow[] rows2 = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
  2352. if (rows.Length == 0 && rows2.Length == 0)
  2353. {
  2354. MessageUtil.ShowWarning("请选择一条运输线路!");
  2355. return;
  2356. }
  2357. ArrayList list = new ArrayList();
  2358. foreach (UltraGridRow row in rows)
  2359. {
  2360. SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity<SlmOrderDeliveryTransitEntity>(row.ListObject);
  2361. deliveryTransit.DeleteName = UserInfo.GetUserName();
  2362. string strJSON = JSONFormat.Format(deliveryTransit);
  2363. list.Add(strJSON);
  2364. }
  2365. ArrayList list2 = new ArrayList();
  2366. foreach (UltraGridRow row in rows2)
  2367. {
  2368. SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity<SlmOrderDeliveryTransitEntity>(row.ListObject);
  2369. deliveryTransit.DeleteName = UserInfo.GetUserName();
  2370. string strJSON = JSONFormat.Format(deliveryTransit);
  2371. list2.Add(strJSON);
  2372. }
  2373. if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.No) return;
  2374. ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.deleteDeliveryTransit", new object[] { list, list2, this.FromForm }, ob);
  2375. MessageUtil.ShowTips("删除成功!");
  2376. if (this.FromForm == "2")
  2377. {
  2378. string seq = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
  2379. if (list.Count > 0)
  2380. {
  2381. if (dic.ContainsKey(seq))
  2382. {
  2383. chanVal = dic[seq] + "\n删除了买方运输线路";
  2384. dic[seq] = chanVal;
  2385. }
  2386. else
  2387. {
  2388. dic.Add(seq, chanVal);
  2389. }
  2390. }
  2391. if (list2.Count > 0)
  2392. {
  2393. if (dic.ContainsKey(seq))
  2394. {
  2395. chanVal = dic[seq] + "\n删除了TPCO代办运输线路";
  2396. dic[seq] = chanVal;
  2397. }
  2398. else
  2399. {
  2400. dic.Add(seq, chanVal);
  2401. }
  2402. }
  2403. }
  2404. SlmOrderDeliveryTransitEntity deliveryTransit2 = new SlmOrderDeliveryTransitEntity();
  2405. deliveryTransit2.OrdPk = ultraGMain.ActiveRow.GetValue("ORD_PK");
  2406. deliveryTransit2.OrdLnPk = ultraGMain.ActiveRow.GetValue("ORD_LN_PK");
  2407. deliveryTransit2.OrdLnDlyPk = ultraGMain.ActiveRow.GetValue("ORD_LN_DLY_PK");
  2408. QueryTransit(deliveryTransit2);
  2409. }
  2410. private void QueryTransit(SlmOrderDeliveryTransitEntity deliveryTransit)
  2411. {
  2412. if (this.fromForm == "2") //合同变更流程 在CoreOrderChangeManage文件中
  2413. {
  2414. deliveryTransit.AgencyFl = "2";
  2415. string strJSON = JSONFormat.Format(deliveryTransit);
  2416. List<SlmOrderDeliveryTransitEntity> listSource = EntityHelper.GetData<SlmOrderDeliveryTransitEntity>(
  2417. "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryTransit", new object[] { strJSON }, ob);
  2418. deliveryTransitTpcoSrc.DataSource = listSource;
  2419. deliveryTransit.AgencyFl = "1";
  2420. strJSON = JSONFormat.Format(deliveryTransit);
  2421. List<SlmOrderDeliveryTransitEntity> listSource2 = EntityHelper.GetData<SlmOrderDeliveryTransitEntity>(
  2422. "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryTransit", new object[] { strJSON }, ob);
  2423. deliveryTransitUserSrc.DataSource = listSource2;
  2424. foreach (UltraGridRow row in ultraGrid2.Rows)
  2425. {
  2426. ControlGrid2Edit(row);
  2427. SetColor(row);
  2428. }
  2429. foreach (UltraGridRow row in ultraGrid3.Rows)
  2430. {
  2431. ControlGrid3Edit(row);
  2432. SetColor(row);
  2433. }
  2434. }
  2435. else
  2436. {
  2437. deliveryTransit.AgencyFl = "2";
  2438. string strJSON = JSONFormat.Format(deliveryTransit);
  2439. List<SlmOrderDeliveryTransitEntity> listSource = EntityHelper.GetData<SlmOrderDeliveryTransitEntity>(
  2440. "com.steering.pss.sale.order.CoreOrderDelivery.getDeliveryTransit", new object[] { strJSON }, ob);
  2441. deliveryTransitTpcoSrc.DataSource = listSource;
  2442. deliveryTransit.AgencyFl = "1";
  2443. strJSON = JSONFormat.Format(deliveryTransit);
  2444. List<SlmOrderDeliveryTransitEntity> listSource2 = EntityHelper.GetData<SlmOrderDeliveryTransitEntity>(
  2445. "com.steering.pss.sale.order.CoreOrderDelivery.getDeliveryTransit", new object[] { strJSON }, ob);
  2446. deliveryTransitUserSrc.DataSource = listSource2;
  2447. foreach (UltraGridRow row in ultraGrid2.Rows)
  2448. {
  2449. ControlGrid2Edit(row);
  2450. SetColor(row);
  2451. }
  2452. foreach (UltraGridRow row in ultraGrid3.Rows)
  2453. {
  2454. ControlGrid3Edit(row);
  2455. SetColor(row);
  2456. }
  2457. }
  2458. }
  2459. private void ControlGrid2Edit(UltraGridRow row)
  2460. {
  2461. if (row.GetValue("Chk") == "True")
  2462. {
  2463. foreach (UltraGridCell cell in row.Cells)
  2464. {
  2465. cell.Activation = Activation.AllowEdit;
  2466. }
  2467. }
  2468. else
  2469. {
  2470. foreach (UltraGridCell cell in row.Cells)
  2471. {
  2472. if (cell.Column.Key == "Chk") continue;
  2473. cell.Activation = Activation.ActivateOnly;
  2474. }
  2475. }
  2476. }
  2477. private void ControlGrid3Edit(UltraGridRow row)
  2478. {
  2479. if (row.GetValue("Chk") == "True")
  2480. {
  2481. foreach (UltraGridCell cell in row.Cells)
  2482. {
  2483. if (cell.Column.Key == "AgencyFl2") continue;
  2484. cell.Activation = Activation.AllowEdit;
  2485. }
  2486. }
  2487. else
  2488. {
  2489. foreach (UltraGridCell cell in row.Cells)
  2490. {
  2491. if (cell.Column.Key == "Chk") continue;
  2492. cell.Activation = Activation.ActivateOnly;
  2493. }
  2494. }
  2495. }
  2496. private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
  2497. {
  2498. SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Row.ListObject;
  2499. deliveryTransit.TransitTyp = ultraGMain.ActiveRow.GetValue("TRANSIT_TYP");
  2500. ControlGrid2Edit(e.Row);
  2501. }
  2502. private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e)
  2503. {
  2504. //ultraGrid3.UpdateData();
  2505. //SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Row.ListObject;
  2506. ControlGrid3Edit(e.Row);
  2507. }
  2508. private void ControlGridEditByTransitTyp(UltraGridCell cell)
  2509. {
  2510. UltraGridRow row = cell.Row;
  2511. if (row.GetValue("Chk") == "False") return;
  2512. switch (row.GetValue("TransitTyp"))
  2513. {
  2514. case "110501":
  2515. row.Cells["Destination"].Activation = Activation.AllowEdit;
  2516. row.Cells["StationNo"].Activation = Activation.ActivateOnly;//到站
  2517. row.Cells["PortNo"].Activation = Activation.ActivateOnly;//码头
  2518. row.Cells["SpclLnNo"].Activation = Activation.ActivateOnly;//专线
  2519. row.Cells["StationNo"].Value = "";
  2520. //row.Cells["PortNo"].Value = "";
  2521. //row.Cells["SpclLnNo"].Value = "";
  2522. break;
  2523. case "110502":
  2524. row.Cells["Destination"].Activation = Activation.AllowEdit;
  2525. row.Cells["StationNo"].Activation = Activation.AllowEdit;
  2526. row.Cells["PortNo"].Activation = Activation.ActivateOnly;
  2527. row.Cells["SpclLnNo"].Activation = Activation.AllowEdit;
  2528. //row.Cells["Destination"].Value = "";
  2529. row.Cells["PortNo"].Value = "";
  2530. //row.Cells["SpclLnNo"].Value = "";
  2531. break;
  2532. case "110503":
  2533. row.Cells["Destination"].Activation = Activation.AllowEdit;
  2534. row.Cells["StationNo"].Activation = Activation.ActivateOnly;
  2535. row.Cells["PortNo"].Activation = Activation.AllowEdit;
  2536. row.Cells["SpclLnNo"].Activation = Activation.ActivateOnly;
  2537. //row.Cells["Destination"].Value = "";
  2538. row.Cells["StationNo"].Value = "";
  2539. //row.Cells["SpclLnNo"].Value = "";
  2540. break;
  2541. case "110504":
  2542. row.Cells["Destination"].Activation = Activation.AllowEdit;
  2543. row.Cells["StationNo"].Activation = Activation.ActivateOnly;
  2544. row.Cells["PortNo"].Activation = Activation.ActivateOnly;
  2545. row.Cells["SpclLnNo"].Activation = Activation.AllowEdit;
  2546. //row.Cells["Destination"].Value = "";
  2547. //row.Cells["StationNo"].Value = "";
  2548. row.Cells["PortNo"].Value = "";
  2549. break;
  2550. }
  2551. }
  2552. private void SetColor(UltraGridRow row)
  2553. {
  2554. switch (row.GetValue("TransitTyp"))
  2555. {
  2556. case "110501":
  2557. row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2558. row.Cells["StationNo"].Appearance.BackColor = Color.White;
  2559. row.Cells["PortNo"].Appearance.BackColor = Color.White;
  2560. row.Cells["SpclLnNo"].Appearance.BackColor = Color.White;
  2561. break;
  2562. case "110502":
  2563. row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2564. row.Cells["StationNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2565. row.Cells["PortNo"].Appearance.BackColor = Color.White;
  2566. row.Cells["SpclLnNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2567. break;
  2568. case "110503":
  2569. row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2570. row.Cells["StationNo"].Appearance.BackColor = Color.White;
  2571. row.Cells["PortNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2572. row.Cells["SpclLnNo"].Appearance.BackColor = Color.White;
  2573. break;
  2574. case "110504":
  2575. row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2576. row.Cells["StationNo"].Appearance.BackColor = Color.White;
  2577. row.Cells["PortNo"].Appearance.BackColor = Color.White;
  2578. row.Cells["SpclLnNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2579. break;
  2580. }
  2581. }
  2582. private void ultraGrid2_CellChange(object sender, CellEventArgs e)
  2583. {
  2584. ultraGrid2.UpdateData();
  2585. ControlGrid2Edit(e.Cell.Row);
  2586. ControlGridEditByTransitTyp(e.Cell);
  2587. SetColor(e.Cell.Row);
  2588. ultraGrid2.UpdateData();
  2589. }
  2590. private void ultraGrid3_CellChange(object sender, CellEventArgs e)
  2591. {
  2592. ultraGrid3.UpdateData();
  2593. SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Cell.Row.ListObject;
  2594. deliveryTransit.AgencyFl2 = true;
  2595. ControlGrid3Edit(e.Cell.Row);
  2596. ControlGridEditByTransitTyp(e.Cell);
  2597. SetColor(e.Cell.Row);
  2598. ultraGrid3.UpdateData();
  2599. }
  2600. private void ultraGrid2_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e)
  2601. {
  2602. if (ultraGMain.ActiveRow == null)
  2603. {
  2604. e.Cancel = true;
  2605. MessageUtil.ShowWarning("请先维护交货行!");
  2606. }
  2607. else
  2608. {
  2609. //-----------------2015-11-18-----------------------新增发货运输控制------------------
  2610. string ordDlyLnPk = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString();
  2611. SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(ordDlyLnPk);
  2612. if (sol == null)
  2613. {
  2614. e.Cancel = true;
  2615. MessageUtil.ShowWarning("您选择的交货行已不存在!");
  2616. return;
  2617. }
  2618. // 这里之所以比较中文 当初数据库没有存代码(只能将错就错)
  2619. if (sol.DelvryAddr.ToString() == "指定地点")
  2620. {
  2621. }
  2622. else
  2623. {
  2624. e.Cancel = true;
  2625. MessageUtil.ShowWarning("交货地点不是指定地点,不能维护一票制运输路线!");
  2626. }
  2627. }
  2628. }
  2629. private void ultraGrid3_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e)
  2630. {
  2631. if (ultraGMain.ActiveRow == null)
  2632. {
  2633. e.Cancel = true;
  2634. MessageUtil.ShowWarning("请先维护交货行!");
  2635. }
  2636. else
  2637. {
  2638. string ordDlyLnPk = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString();
  2639. SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(ordDlyLnPk);
  2640. if (sol == null)
  2641. {
  2642. e.Cancel = true;
  2643. MessageUtil.ShowWarning("您选择的交货行已不存在!");
  2644. return;
  2645. }
  2646. if (sol.AgencyFl.ToString().Equals("1"))
  2647. {
  2648. if (sol.DelvryAddr.ToString() != "指定地点" && sol.DelvryAddr.ToString() != "TPCO库房" && sol.DelvryAddr.ToString() != "TPCO库房车板")
  2649. {
  2650. e.Cancel = true;
  2651. MessageUtil.ShowWarning("交货地点只有指定地点、TPCO库房、TPCO库房车板才可以维护二票制运输路线!");
  2652. }
  2653. }
  2654. else
  2655. {
  2656. e.Cancel = true;
  2657. MessageUtil.ShowWarning("您选择的交货行不是TPCO代办,不能新增两票制运输线路!");
  2658. return;
  2659. }
  2660. }
  2661. }
  2662. private void ckbTpcoAgency_BeforeCheckStateChanged(object sender, CancelEventArgs e)
  2663. {
  2664. //int validCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").Count();
  2665. //int chkCnt = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").Count();
  2666. //if (ckbTpcoAgency.Checked == true)
  2667. //{
  2668. // if (chkCnt > 0)
  2669. // {
  2670. // e.Cancel = true;
  2671. // MessageUtil.ShowWarning("已选择Tpco代办(运输线路),不能取消Tpco代办!");
  2672. // }
  2673. // else if (validCnt > 0)
  2674. // {
  2675. // e.Cancel = true;
  2676. // MessageUtil.ShowWarning("系统已存在Tpco代办(运输线路),不能取消Tpco代办!");
  2677. // }
  2678. //}
  2679. }
  2680. /// <summary>
  2681. /// 窗体关闭
  2682. /// </summary>
  2683. /// <param name="sender"></param>
  2684. /// <param name="e"></param>
  2685. private void frmOrderDelivery_FormClosing(object sender, FormClosingEventArgs e)
  2686. {
  2687. string err = CheckDlyTransit();
  2688. if (err != "")
  2689. {
  2690. MessageUtil.ShowWarning(err);
  2691. e.Cancel = true;
  2692. return;
  2693. }
  2694. if (e.CloseReason == CloseReason.UserClosing)
  2695. {
  2696. if (this.FromForm == "1")
  2697. {
  2698. if (ultraGMain.Rows.Count <= 0)
  2699. {
  2700. MessageUtil.ShowWarning("必须保留至少一行交货行!");
  2701. e.Cancel = true;
  2702. }
  2703. }
  2704. string errMsg = validSumWtNew();
  2705. if (isAffect == true)
  2706. errMsg = "";
  2707. if (errMsg != "")
  2708. {
  2709. if (MessageBox.Show(errMsg + "\n是否要退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
  2710. {
  2711. e.Cancel = true;
  2712. }
  2713. else
  2714. {
  2715. if (this.FromForm == "2")
  2716. {
  2717. if (isAdd == true || isDelete == true || isUpdate == true)
  2718. {
  2719. if (MessageBox.Show("检测到您做出了修改,若不生成变更单,将放弃修改,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
  2720. e.Cancel = true;
  2721. else
  2722. DeleteDlyChangeTable();
  2723. }
  2724. }
  2725. e.Cancel = false;
  2726. }
  2727. }
  2728. else
  2729. {
  2730. if (this.FromForm == "2")
  2731. {
  2732. if (isAdd == true || isDelete == true || isUpdate == true)
  2733. {
  2734. if (MessageBox.Show("检测到您做出了修改,若不生成变更单,将放弃修改,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
  2735. e.Cancel = true;
  2736. else
  2737. DeleteDlyChangeTable();
  2738. }
  2739. }
  2740. e.Cancel = false;
  2741. }
  2742. }
  2743. }
  2744. private String validSumWtNew()
  2745. {
  2746. //if (Convert.ToDouble(uNCount.Value) > Convert.ToDouble(numWt))
  2747. //{
  2748. // return "交货量不允许大于:" + numWt;
  2749. //}
  2750. decimal JHwt = 0;
  2751. foreach (UltraGridRow urow in ultraGMain.Rows)
  2752. {
  2753. if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
  2754. {
  2755. JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
  2756. }
  2757. }
  2758. decimal sumWtx = (JHwt - Convert.ToDecimal(numWt));
  2759. if (sumWtx < 0)
  2760. {
  2761. return "交货总量不满足:" + numWt;
  2762. }
  2763. if (sumWtx > 0)
  2764. {
  2765. return "交货总量超过:" + numWt;
  2766. }
  2767. return "";
  2768. }
  2769. private void frmOrderDelivery_Shown(object sender, EventArgs e)
  2770. {
  2771. if (this.fromForm == "2")
  2772. {
  2773. ultraToolbarsManager1.Toolbars[0].Tools["doOk"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; //确认
  2774. }
  2775. else
  2776. {
  2777. ultraToolbarsManager1.Toolbars[0].Tools["GenerateCh"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; //生成变更单
  2778. }
  2779. }
  2780. private void SetpanelDlyChangeValue()
  2781. {
  2782. labOrdQty.Text = this.NumWt;
  2783. decimal dty = ultraGMain.Rows.AsQueryable().Where(a => a.Cells["IS_ADD_CODE"].Value.ToString() != "1").Sum(a => Convert.ToDecimal(a.Cells["DELVRY_QTY"].Value));
  2784. decimal oty = Convert.ToDecimal(this.NumWt == "" ? "0" : this.NumWt);
  2785. labDlyQty.Text = dty.ToString();
  2786. if (dty < oty)
  2787. {
  2788. labTips.Text = "总交货量小于合同订单量";
  2789. labTips.Appearance.BackColor = Color.Red;
  2790. }
  2791. else if (dty == oty)
  2792. {
  2793. labTips.Text = "总交货量等于合同订单量";
  2794. labTips.Appearance.BackColor = Color.FromArgb(255, 255, 128);
  2795. }
  2796. else
  2797. {
  2798. labTips.Text = "总交货量大于合同订单量";
  2799. labTips.Appearance.BackColor = Color.Red;
  2800. }
  2801. }
  2802. //---------------------this.FromForm==2 来自合同变更管理的请求---------------------------------
  2803. bool isAffect = false; //是否影响合同的订单量
  2804. private void GenerateChangeTable()
  2805. {
  2806. if (isUpdate == false && isAdd == false && isDelete == false)
  2807. {
  2808. MessageUtil.ShowWarning("没有做出任何改变或者变更单已生成!");
  2809. return;
  2810. }
  2811. string err = CheckDlyTransit();
  2812. if (err != "")
  2813. {
  2814. MessageUtil.ShowWarning(err);
  2815. return;
  2816. }
  2817. string errMsg = validSumWtNew();
  2818. if (errMsg != "")
  2819. {
  2820. if (MessageUtil.ShowYesNoAndQuestion(errMsg + " 这将会影响合同行的订单量!\n您是否需要改变合同行的订单量?") == DialogResult.No)
  2821. return;
  2822. }
  2823. //是否满足交货期 不满足者不给生成变更单
  2824. if (ultraGMain.Rows.Count <= 0)
  2825. {
  2826. MessageUtil.ShowWarning("交货量将影响订单量,订单量不能为0!");
  2827. return;
  2828. }
  2829. isAffect = true;
  2830. chanVal = "";
  2831. foreach (var item in dic)
  2832. {
  2833. chanVal = chanVal + item.Value.ToString() + "\r\n";
  2834. }
  2835. MessageBox.Show(chanVal, "变更内容", MessageBoxButtons.OK, MessageBoxIcon.Information);
  2836. CoreClientParam ccp = new CoreClientParam();
  2837. ccp.IfShowErrMsg = false;
  2838. ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage";
  2839. ccp.MethodName = "castWell";
  2840. ccp.ServerParams = new object[] { this.OrderNo };
  2841. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  2842. if (ccp != null)
  2843. {
  2844. if (ccp.ReturnCode == -1) //直接报错
  2845. {
  2846. MessageBox.Show(ccp.ReturnInfo + "交货期不满足,不能生成变更单!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2847. doQuery();
  2848. return;
  2849. }
  2850. }
  2851. //查询状态表是否满足
  2852. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryPrdcycleMeet", new object[] { this.OrderNo }, this.ob);
  2853. List<string> list = new List<string>();
  2854. if (dt != null && dt.Rows.Count > 0)
  2855. {
  2856. for (int i = 0; i < dt.Rows.Count; i++)
  2857. {
  2858. list.Add(dt.Rows[i][0].ToString());
  2859. }
  2860. if (!list.Contains("W") && !list.Contains("F") && !list.Contains("") && list.Contains("S"))
  2861. {
  2862. //不做处理 生成变更单
  2863. }
  2864. else
  2865. {
  2866. MessageUtil.ShowWarning("交货期不满足,不能生成变更单!");
  2867. doQuery();
  2868. return;
  2869. }
  2870. }
  2871. else
  2872. {
  2873. MessageUtil.ShowWarning("交货期不满足,不能生成变更单!");
  2874. doQuery();
  2875. return;
  2876. }
  2877. dlgReviewMemo dlg = new dlgReviewMemo();
  2878. dlg.ReviewFlag = 3;
  2879. dlg.ReviewSatus = "合同变更说明";
  2880. dlg.ShowDialog();
  2881. if (dlg.DialogResult != DialogResult.OK)
  2882. return;
  2883. string reviewMemo = dlg.ReviewMemo;
  2884. ChgeSlmApplyMEntity csm = new ChgeSlmApplyMEntity();
  2885. csm.OrdPk = this.ManageNo;
  2886. csm.OrdLnPk = this.OrderNo;
  2887. csm.OrderNo = this.OrdNo;
  2888. csm.OrderSeq = this.OrdSeq;
  2889. csm.ChgeRsn = reviewMemo;
  2890. csm.ChgeType = "交货行变更";
  2891. csm.UnitCode = UserInfo.GetDeptid();
  2892. csm.UnitDesc = UserInfo.GetDepartment();
  2893. csm.DepartmentCode = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob);
  2894. csm.DepartmentDesc = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob);
  2895. csm.Chger = UserInfo.GetUserName();
  2896. csm.ChgeVal = chanVal;
  2897. csm.CreateName = UserInfo.GetUserName();
  2898. string json = JSONFormat.Format(csm);
  2899. try
  2900. {
  2901. int count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.generateSlmApply", new object[] { json }, this.ob);
  2902. if (count > 0)
  2903. {
  2904. MessageUtil.ShowTips("变更单生成成功!");
  2905. isAdd = false;
  2906. isUpdate = false;
  2907. isDelete = false;
  2908. this.Close();
  2909. }
  2910. }
  2911. catch (MESException e)
  2912. {
  2913. MessageUtil.ShowWarning(e.ExceptionInfo);
  2914. return;
  2915. }
  2916. }
  2917. private void DeleteDlyChangeTable()
  2918. {
  2919. foreach (UltraGridRow row in ultraGMain.Rows)
  2920. {
  2921. string deliveryNo = row.Cells["ORD_LN_DLY_PK"].Value.ToString();
  2922. clearTransit(deliveryNo);
  2923. DeleteDly(deliveryNo);
  2924. }
  2925. }
  2926. private void DeleteDesignMscSts(string ordLnDlyPk)
  2927. {
  2928. CoreClientParam ccp = new CoreClientParam();
  2929. ccp.IfShowErrMsg = false;
  2930. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  2931. ccp.MethodName = "deleteDesignMscSts";
  2932. ccp.ServerParams = new object[] { ordLnDlyPk };
  2933. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  2934. if (ccp == null)
  2935. return;
  2936. else
  2937. {
  2938. if (ccp.ReturnCode == -1)
  2939. {
  2940. MessageUtil.ShowWarning(ccp.ReturnInfo);
  2941. return;
  2942. }
  2943. }
  2944. }
  2945. private void DeleteDly(string deliveryNo)
  2946. {
  2947. ArrayList parms = new ArrayList();
  2948. parms.Add(deliveryNo);
  2949. CoreClientParam ccp = new CoreClientParam();
  2950. ccp.IfShowErrMsg = false;
  2951. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
  2952. ccp.MethodName = "deleteDelivery";
  2953. ccp.ServerParams = new object[] { parms, UserInfo.GetUserName(), this.ManageNo, this.FromForm };
  2954. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  2955. if (ccp == null)
  2956. return;
  2957. else
  2958. {
  2959. if (ccp.ReturnCode == -1)
  2960. {
  2961. MessageUtil.ShowWarning(ccp.ReturnInfo);
  2962. return;
  2963. }
  2964. //MessageUtil.ShowTips("删除成功!");
  2965. }
  2966. }
  2967. /// <summary>
  2968. /// 获取变更表下合同行的最大交货行PK值
  2969. /// </summary>
  2970. /// <returns></returns>
  2971. private string GetMaxOrdLnPk()
  2972. {
  2973. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getMaxOrdLnDlyPkCh", new object[] { this.OrderNo }, this.ob);
  2974. if (dt != null && dt.Rows.Count > 0)
  2975. {
  2976. return dt.Rows[0][0].ToString();
  2977. }
  2978. return "";
  2979. }
  2980. /// <summary>
  2981. /// 是否存在指定合同行的交货期变更单并取得其状态
  2982. /// </summary>
  2983. /// <param name="ordLnPk"></param>
  2984. /// <returns></returns>
  2985. private string GetExistsApplyNo(string ordLnPk)
  2986. {
  2987. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getExistsApplyNo", new object[] { ordLnPk }, this.ob);
  2988. if (dt != null && dt.Rows.Count > 0)
  2989. {
  2990. return dt.Rows[0][0].ToString();
  2991. }
  2992. return "";
  2993. }
  2994. /// <summary>
  2995. /// 删除已存在的变更单
  2996. /// </summary>
  2997. /// <param name="ordLnPk"></param>
  2998. /// <returns></returns>
  2999. private int DeleteApplyNo(string ordLnPk)
  3000. {
  3001. int count = 0;
  3002. count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.deleteApplyNo", new object[] { ordLnPk }, this.ob);
  3003. return count;
  3004. }
  3005. private void ckbTpcoAgency_CheckedChanged(object sender, EventArgs e)
  3006. {
  3007. if (ckbTpcoAgency.Checked)
  3008. {
  3009. if (cmbDeliveryAddress.Value != null && cmbDeliveryAddress.Value.ToString() == "110601")
  3010. {
  3011. chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  3012. chkExtra.Enabled = true;
  3013. chkExtra.Checked = true;
  3014. }
  3015. }
  3016. else
  3017. {
  3018. if (cmbDeliveryAddress.Value != null && cmbDeliveryAddress.Value.ToString() == "110601")
  3019. {
  3020. chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  3021. chkExtra.Enabled = true;
  3022. }
  3023. else
  3024. {
  3025. chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False;
  3026. chkExtra.Enabled = false;
  3027. chkExtra.Checked = false;
  3028. }
  3029. }
  3030. }
  3031. private void utxtAddress_ValueChanged(object sender, EventArgs e)
  3032. {
  3033. lblAddress.Text = utxtAddress.Text;
  3034. }
  3035. /// <summary>
  3036. /// 获取交货行实体类
  3037. /// </summary>
  3038. /// <param name="ordDlyLnPk">交货行PK值</param>
  3039. /// <returns></returns>
  3040. private SlmOrderLineDeliveryEntity GetOrderDlyLine(string ordDlyLnPk)
  3041. {
  3042. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrderDlyLine", new object[] { ordDlyLnPk, this.FromForm }, this.ob);
  3043. if (dt != null && dt.Rows.Count > 0)
  3044. {
  3045. SlmOrderLineDeliveryEntity sol = new SlmOrderLineDeliveryEntity();
  3046. sol.OrdPk = dt.Rows[0]["ORD_PK"].ToString();
  3047. sol.OrdLnPk = dt.Rows[0]["ORD_LN_PK"].ToString();
  3048. sol.OrdLnDlyPk = dt.Rows[0]["ORD_LN_DLY_PK"].ToString();
  3049. sol.DeliveryNo = dt.Rows[0]["DELIVERY_NO"].ToString();
  3050. sol.DelvryQty = dt.Rows[0]["DELVRY_QTY"].ToString();
  3051. sol.OrderUnit = dt.Rows[0]["ORDER_UNIT"].ToString();
  3052. sol.WgtEstmt = dt.Rows[0]["WGT_ESTMT"].ToString();
  3053. sol.EnsuTotlLen = dt.Rows[0]["ENSU_TOTL_LEN"].ToString();
  3054. sol.ReceivNo = dt.Rows[0]["RECEIV_NO"].ToString();
  3055. sol.ReceivNm = dt.Rows[0]["RECEIV_NM"].ToString();
  3056. sol.DelvryAddr = dt.Rows[0]["DELVRY_ADDR"].ToString();
  3057. sol.AgencyFl = dt.Rows[0]["AGENCY_FL"].ToString();
  3058. sol.ReceivAddr = dt.Rows[0]["RECEIV_ADDR"].ToString();
  3059. sol.TransitTyp = dt.Rows[0]["TRANSIT_TYP"].ToString();
  3060. sol.ExtraFlag = dt.Rows[0]["EXTRA_FLAG"].ToString();
  3061. return sol;
  3062. }
  3063. else
  3064. {
  3065. return null;
  3066. }
  3067. }
  3068. /// <summary>
  3069. /// 获取交货行的运输线路
  3070. /// </summary>
  3071. /// <param name="ordDlyLnPk"></param>
  3072. /// <returns></returns>
  3073. private List<string> GetOrderDlyTransit(string ordDlyLnPk)
  3074. {
  3075. List<string> list = new List<string>();
  3076. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrderDlyLineTransit", new object[] { ordDlyLnPk, this.FromForm }, this.ob);
  3077. foreach (DataRow dr in dt.Rows)
  3078. {
  3079. if (!list.Contains(dr["AGENCY_FL"].ToString()))
  3080. {
  3081. list.Add(dr["AGENCY_FL"].ToString());
  3082. }
  3083. }
  3084. return list;
  3085. }
  3086. /// <summary>
  3087. /// 验证交货行的运输路线的合理性
  3088. /// </summary>
  3089. /// <returns></returns>
  3090. private string CheckDlyTransit()
  3091. {
  3092. ultraGMain.UpdateData();
  3093. string errMsg = "";
  3094. foreach (UltraGridRow uRow in ultraGMain.Rows)
  3095. {
  3096. SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(uRow.Cells["ORD_LN_DLY_PK"].Value.ToString());
  3097. if (sol == null)
  3098. {
  3099. errMsg = "您确认的数据中存在无效数据,请刷新数据确保数据无误!";
  3100. return errMsg;
  3101. }
  3102. List<string> list = GetOrderDlyTransit(sol.OrdLnDlyPk.ToString());
  3103. if (sol.DelvryAddr.ToString() == "TPCO库房" || sol.DelvryAddr.ToString() == "TPCO库房车板")
  3104. {
  3105. if (sol.AgencyFl.ToString() == "1")
  3106. {
  3107. if (!list.Contains("1"))
  3108. {
  3109. errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且勾选了TPCO代办的必须维护两票制运输路线!";
  3110. return errMsg;
  3111. }
  3112. }
  3113. }
  3114. else if (sol.DelvryAddr.ToString() == "指定地点")
  3115. {
  3116. if (sol.AgencyFl.ToString() == "1")
  3117. {
  3118. if (!list.Contains("0") && !list.Contains("2") && !list.Contains("1"))
  3119. {
  3120. errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且勾选了TPCO代办的必须同时维护一票制运输路线和两票制运输路线!";
  3121. return errMsg;
  3122. }
  3123. }
  3124. else
  3125. {
  3126. if (!list.Contains("0") && !list.Contains("2"))
  3127. {
  3128. errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且无TPCO代办的必须维护一票制运输路线";
  3129. return errMsg;
  3130. }
  3131. }
  3132. }
  3133. }
  3134. return errMsg;
  3135. }
  3136. }
  3137. }