uo_wfjg_waste.sru 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235
  1. $PBExportHeader$uo_wfjg_waste.sru
  2. forward
  3. global type uo_wfjg_waste from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_wfjg_waste from nonvisualobject
  7. end type
  8. global uo_wfjg_waste uo_wfjg_waste
  9. type variables
  10. PUBLIC PROTECTEDWRITE Long scid = 0
  11. PUBLIC PROTECTEDWRITE Long wasteid
  12. PUBLIC PROTECTEDWRITE String wastecode
  13. PUBLIC PROTECTEDWRITE DateTime opdate
  14. PUBLIC PROTECTEDWRITE String opemp
  15. PUBLIC PROTECTEDWRITE DateTime moddate
  16. PUBLIC PROTECTEDWRITE String modemp
  17. PUBLIC PROTECTEDWRITE Int flag = 0
  18. PUBLIC PROTECTEDWRITE Int balcflag = 0
  19. PUBLIC PROTECTEDWRITE DateTime auditingdate
  20. PUBLIC PROTECTEDWRITE String auditingrep
  21. Long relid = 0
  22. DateTime waste_date
  23. String waste_rep = ''
  24. String relcode = ''
  25. String dscrp = ''
  26. Long sptid = 0
  27. String sptname = ''
  28. Boolean if_getid_ture = TRUE
  29. Transaction commit_transaction
  30. s_waste s_waste_mx[]
  31. Long it_mxbt = 0
  32. s_waste_spt s_waste_mx_spt[]
  33. Long it_mxbt_spt = 0
  34. Boolean it_newbegin = FALSE
  35. Boolean it_updatebegin = FALSE
  36. end variables
  37. forward prototypes
  38. public function integer newbegin (long arg_scid, integer arg_billtype, ref string arg_msg)
  39. public function integer save (boolean arg_ifcommit, ref string arg_msg)
  40. public function integer auditing (boolean arg_ifcommit, ref string arg_msg)
  41. public function integer del (long arg_scid, long arg_inwareid, ref string arg_msg, boolean arg_ifcommit)
  42. public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg)
  43. public function integer p_clearmx ()
  44. public function integer p_reset ()
  45. public function integer p_getinfo (long arg_scid, long arg_wasteid, ref string arg_msg)
  46. public function integer updatebegin (long arg_scid, long arg_wasteid, ref string arg_msg)
  47. public function integer add_dscrp (long arg_scid, long arg_wasteid, string arg_newdescrppart, ref string arg_msg)
  48. public function integer getinfo (long arg_scid, long arg_wasteid, ref string arg_msg)
  49. public function integer acceptmx (long arg_printid, long arg_orderprintid, long arg_mtrlid, string arg_mtrlcode, decimal arg_qty, string arg_mxdscrp, ref string arg_msg, long arg_relid, long arg_orderid, string arg_status, string arg_woodcode, string arg_pcode)
  50. public function integer acceptmx_bef (long arg_mtrlwareid, decimal arg_qty, string arg_mxdscrp, long arg_printid, ref string arg_msg)
  51. end prototypes
  52. public function integer newbegin (long arg_scid, integer arg_billtype, ref string arg_msg);//====================================================================
  53. // Function: newbegin(long arg_scid,int arg_billtype,ref string arg_msg)
  54. //--------------------------------------------------------------------
  55. // Description: 从置对象,设定业务类型,准备建立新进仓单
  56. //--------------------------------------------------------------------
  57. // Arguments:
  58. // value long arg_scid
  59. // value integer arg_billtype
  60. // reference string arg_msg
  61. //--------------------------------------------------------------------
  62. // Returns: integer
  63. //--------------------------------------------------------------------
  64. // Author: yyx Date: 2003.11.12
  65. //--------------------------------------------------------------------
  66. // Modify History:
  67. //
  68. //====================================================================
  69. int rslt=1
  70. if arg_scid < 0 then
  71. arg_msg = '请选择分部'
  72. rslt = 0
  73. goto ext
  74. end if
  75. //if not (arg_billtype=1 or arg_billtype=2 or arg_billtype=3 or arg_billtype=4 or arg_billtype=8 or arg_billtype=9 or arg_billtype=12 or arg_billtype=15) then
  76. // rslt=0
  77. // arg_msg='此单据类型必须为:'
  78. // arg_msg=arg_msg+'1-采购进仓[记帐模式],'
  79. // arg_msg=arg_msg+'2-采购进仓[不记帐模式],'
  80. // arg_msg=arg_msg+'3-成品进仓,'
  81. // arg_msg=arg_msg+'4-外发加工进仓,'
  82. // arg_msg=arg_msg+'8-其他进仓,'
  83. // arg_msg=arg_msg+'9-盘盈进仓,'
  84. // arg_msg=arg_msg+'12-调拨进仓'
  85. // arg_msg=arg_msg+'15-拆装进仓'
  86. // goto ext
  87. //end if
  88. p_reset()
  89. //billtype=arg_billtype
  90. scid=arg_scid
  91. it_newbegin=true
  92. it_updatebegin=false
  93. ext:
  94. if rslt=0 then p_reset()
  95. return rslt
  96. end function
  97. public function integer save (boolean arg_ifcommit, ref string arg_msg);Integer rslt = 1,cnt = 0,i
  98. DateTime server_dt
  99. Long ls_newid
  100. String ls_sccode
  101. IF IsNull(relid) THEN relid = 0
  102. IF IsNull(waste_rep) THEN waste_rep = ''
  103. IF IsNull(dscrp) THEN dscrp = ''
  104. IF IsNull(sptid) THEN sptid = 0
  105. IF IsNull(sptname) THEN sptname = ''
  106. IF IsNull(relcode) THEN relcode = ''
  107. IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
  108. rslt = 0
  109. arg_msg = "非编辑状态不可以提交"
  110. GOTO ext
  111. END IF
  112. SELECT Top 1 getdate() INTO :server_dt FROM u_user USING commit_transaction ;
  113. IF commit_transaction.SQLCode <> 0 THEN
  114. rslt = 0
  115. arg_msg = "查询操作失败,日期 "
  116. GOTO ext
  117. END IF
  118. IF it_mxbt = 0 and it_mxbt_spt = 0 THEN
  119. rslt = 0
  120. arg_msg = "没有明细内容"
  121. GOTO ext
  122. END IF
  123. cnt = 0
  124. //检查供应商
  125. SELECT count(*)
  126. INTO :cnt
  127. FROM u_spt
  128. Where u_spt.sptid = :sptid USING commit_transaction ;
  129. IF commit_transaction.SQLCode <> 0 THEN
  130. rslt = 0
  131. arg_msg = "查询操作失败,供应商"
  132. GOTO ext
  133. END IF
  134. IF cnt = 0 THEN
  135. rslt = 0
  136. arg_msg = "供应商资料错误!"
  137. GOTO ext
  138. END IF
  139. IF f_check_inoutdate(0,waste_date,false,arG_MSG) = 0 THEN
  140. rslt = 0
  141. GOTO ext
  142. END IF
  143. IF f_check_inoutdate_wfjg(scid,sptid,waste_date,arg_msg) = 0 THEN
  144. rslt = 0
  145. GOTO ext
  146. END IF
  147. ////////////////////////////////////////////////开始区分:新建/更新 处理
  148. IF wasteid = 0 THEN //新建
  149. ls_newid = f_sys_scidentity(scid,"u_order_wfjg_waste","wasteid",arg_msg,TRUE,id_sqlca)
  150. IF ls_newid <= 0 THEN
  151. rslt = 0
  152. GOTO ext
  153. END IF
  154. //取分部代号
  155. IF f_get_sccode(scid,commit_transaction,ls_sccode,arg_msg) = 0 THEN
  156. rslt = 0
  157. GOTO ext
  158. END IF
  159. //取得新单据编号
  160. wastecode = getid(scid,ls_sccode + 'SH',Date(server_dt),if_getid_ture,commit_transaction)
  161. IF wastecode = "err" THEN
  162. wastecode = ''
  163. rslt = 0
  164. arg_msg = "无法获取损耗单编号"+"~n"+commit_transaction.SQLErrText
  165. GOTO ext
  166. END IF
  167. INSERT INTO u_order_wfjg_waste (
  168. scid,
  169. wasteid,
  170. wastecode,
  171. sptid,
  172. wastedate,
  173. assign_emp,
  174. relcode,
  175. dscrp,
  176. opemp,
  177. opdate
  178. )
  179. VALUES (
  180. :scid,
  181. :ls_newid,
  182. :wastecode,
  183. :sptid,
  184. :waste_date,
  185. :waste_rep,
  186. :relcode,
  187. :dscrp,
  188. :publ_operator,
  189. :server_dt
  190. ) USING commit_transaction ;
  191. IF commit_transaction.SQLCode <> 0 THEN
  192. rslt = 0
  193. arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+commit_transaction.SQLErrText
  194. GOTO ext
  195. END IF
  196. //读取新inwareid
  197. wasteid = ls_newid
  198. FOR i = 1 TO it_mxbt
  199. INSERT INTO u_order_wfjg_wastemx
  200. (scid,
  201. wasteid,
  202. printid,
  203. mtrlid,
  204. status,
  205. qty,
  206. price,
  207. wastedscrp,
  208. wfjg_orderid,
  209. wfjg_ordercode,
  210. orderid,
  211. orderprintid,
  212. woodcode,
  213. pcode)
  214. VALUES (
  215. :scid,
  216. :ls_newid,
  217. :s_waste_mx[i].printid,
  218. :s_waste_mx[i].mtrlid,
  219. :s_waste_mx[i].status,
  220. :s_waste_mx[i].qty,
  221. :s_waste_mx[i].jgprice,
  222. :s_waste_mx[i].mxdscrp,
  223. :s_waste_mx[i].relid,
  224. :s_waste_mx[i].relcode,
  225. :s_waste_mx[i].orderid,
  226. :s_waste_mx[i].orderprintid,
  227. :s_waste_mx[i].woodcode,
  228. :s_waste_mx[i].pcode) USING commit_transaction;
  229. IF commit_transaction.SQLCode <> 0 THEN
  230. wasteid = 0 //wasteid
  231. rslt = 0
  232. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
  233. GOTO ext
  234. END IF
  235. NEXT
  236. FOR i = 1 TO it_mxbt_spt
  237. INSERT INTO u_order_wfjg_wasteMx_spt
  238. (scid,
  239. wasteid,
  240. mtrlwareid,
  241. mtrlid,
  242. status,
  243. woodcode,
  244. pcode,
  245. plancode,
  246. qty,
  247. fprice,
  248. printid,
  249. mxdscrp)
  250. VALUES (
  251. :scid,
  252. :ls_newid,
  253. :s_waste_mx_spt[i].mtrlwareid,
  254. :s_waste_mx_spt[i].mtrlid,
  255. :s_waste_mx_spt[i].status,
  256. :s_waste_mx_spt[i].woodcode,
  257. :s_waste_mx_spt[i].pcode,
  258. :s_waste_mx_spt[i].plancode,
  259. :s_waste_mx_spt[i].qty,
  260. :s_waste_mx_spt[i].fprice,
  261. :s_waste_mx_spt[i].printid,
  262. :s_waste_mx_spt[i].mxdscrp
  263. ) USING commit_transaction;
  264. IF commit_transaction.SQLCode <> 0 THEN
  265. wasteid = 0 //还原inwareid
  266. rslt = 0
  267. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
  268. GOTO ext
  269. END IF
  270. NEXT
  271. ELSE //////////////////////////////////////////////////更新
  272. UPDATE u_order_wfjg_waste
  273. SET sptid = :sptid,
  274. wastedate = :waste_date,
  275. assign_emp = :waste_rep,
  276. relcode = :relcode,
  277. dscrp = :dscrp,
  278. moddate = :server_dt,
  279. modemp = :publ_operator
  280. WHERE u_order_wfjg_waste.wasteid = :wasteid
  281. AND u_order_wfjg_waste.scid = :scid
  282. AND u_order_wfjg_waste.flag = 0 USING commit_transaction;
  283. IF commit_transaction.SQLCode <> 0 OR commit_transaction.SQLNRows <= 0 THEN
  284. rslt = 0
  285. arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+commit_transaction.SQLErrText
  286. GOTO ext
  287. END IF
  288. //删除原有明细
  289. DELETE FROM u_order_wfjg_wastemx
  290. WHERE u_order_wfjg_wastemx.wasteid = :wasteid
  291. AND u_order_wfjg_wastemx.scid = :scid USING commit_transaction;
  292. IF commit_transaction.SQLCode <> 0 THEN
  293. rslt = 0
  294. arg_msg = "删除旧有明细操作失败"+"~n"+commit_transaction.SQLErrText
  295. GOTO ext
  296. END IF
  297. DELETE FROM u_order_wfjg_wastemx_spt
  298. WHERE u_order_wfjg_wastemx_spt.wasteid = :wasteid
  299. AND u_order_wfjg_wastemx_spt.scid = :scid USING commit_transaction;
  300. IF commit_transaction.SQLCode <> 0 THEN
  301. rslt = 0
  302. arg_msg = "删除旧有明细操作(外协库存)失败"+"~n"+commit_transaction.SQLErrText
  303. GOTO ext
  304. END IF
  305. FOR i = 1 TO it_mxbt
  306. INSERT INTO u_order_wfjg_wastemx
  307. (scid,
  308. wasteid,
  309. printid,
  310. mtrlid,
  311. status,
  312. qty,
  313. price,
  314. wastedscrp,
  315. wfjg_orderid,
  316. wfjg_ordercode,
  317. orderid,
  318. orderprintid,
  319. woodcode,
  320. pcode)
  321. VALUES (
  322. :scid,
  323. :wasteid,
  324. :s_waste_mx[i].printid,
  325. :s_waste_mx[i].mtrlid,
  326. :s_waste_mx[i].status,
  327. :s_waste_mx[i].qty,
  328. :s_waste_mx[i].jgprice,
  329. :s_waste_mx[i].mxdscrp,
  330. :s_waste_mx[i].relid,
  331. :s_waste_mx[i].relcode,
  332. :s_waste_mx[i].orderid,
  333. :s_waste_mx[i].orderprintid,
  334. :s_waste_mx[i].woodcode,
  335. :s_waste_mx[i].pcode) USING commit_transaction;
  336. IF commit_transaction.SQLCode <> 0 THEN
  337. rslt = 0
  338. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
  339. GOTO ext
  340. END IF
  341. NEXT
  342. FOR i = 1 TO it_mxbt_spt
  343. INSERT INTO u_order_wfjg_wasteMx_spt
  344. (scid,
  345. wasteid,
  346. mtrlwareid,
  347. mtrlid,
  348. status,
  349. woodcode,
  350. pcode,
  351. plancode,
  352. qty,
  353. fprice,
  354. printid,
  355. mxdscrp)
  356. VALUES (
  357. :scid,
  358. :wasteid,
  359. :s_waste_mx_spt[i].mtrlwareid,
  360. :s_waste_mx_spt[i].mtrlid,
  361. :s_waste_mx_spt[i].status,
  362. :s_waste_mx_spt[i].woodcode,
  363. :s_waste_mx_spt[i].pcode,
  364. :s_waste_mx_spt[i].plancode,
  365. :s_waste_mx_spt[i].qty,
  366. :s_waste_mx_spt[i].fprice,
  367. :s_waste_mx_spt[i].printid,
  368. :s_waste_mx_spt[i].mxdscrp
  369. ) USING commit_transaction;
  370. IF commit_transaction.SQLCode <> 0 THEN
  371. wasteid = 0 //还原inwareid
  372. rslt = 0
  373. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
  374. GOTO ext
  375. END IF
  376. NEXT
  377. END IF
  378. it_newbegin = FALSE
  379. it_updatebegin = FALSE
  380. ext:
  381. IF rslt = 0 THEN
  382. ROLLBACK USING commit_transaction;
  383. p_clearmx()
  384. ELSEIF rslt = 1 AND arg_ifcommit THEN
  385. COMMIT USING commit_transaction;
  386. END IF
  387. RETURN rslt
  388. end function
  389. public function integer auditing (boolean arg_ifcommit, ref string arg_msg);
  390. Long rslt = 1,cnt = 0,i
  391. IF wasteid = 0 THEN
  392. rslt = 0
  393. arg_msg = "没有审核对象"
  394. GOTO ext
  395. END IF
  396. IF it_newbegin OR it_updatebegin THEN
  397. rslt = 0
  398. arg_msg = "编辑状态下不可以执行审核"
  399. GOTO ext
  400. END IF
  401. uo_order_wfjg uo_wfjg
  402. uo_wfjg = CREATE uo_order_wfjg
  403. uo_wfjg.commit_transaction = commit_transaction
  404. IF flag = 1 THEN
  405. rslt = 0
  406. arg_msg = "单据已经审核"
  407. GOTO ext
  408. END IF
  409. UPDATE u_order_wfjg_waste
  410. SET auditingrep = :publ_operator,
  411. auditingdate = getdate(),
  412. flag = 1
  413. WHERE u_order_wfjg_waste.wasteid = :wasteid
  414. AND flag = 0 AND scid = :scid USING commit_transaction;
  415. IF commit_transaction.SQLCode <> 0 THEN
  416. rslt = 0
  417. arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText
  418. GOTO ext
  419. ELSEIF commit_transaction.SQLNRows = 0 THEN
  420. rslt = 0
  421. arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  422. GOTO ext
  423. END IF
  424. FOR i = 1 TO it_mxbt_spt
  425. IF f_update_mtrlware_spt_in(10,&
  426. 0,&
  427. scid,&
  428. s_waste_mx_spt[i].mtrlwareid,&
  429. s_waste_mx_spt[i].mtrlid,&
  430. s_waste_mx_spt[i].mtrlcode,&
  431. s_waste_mx_spt[i].plancode,&
  432. s_waste_mx_spt[i].status,&
  433. s_waste_mx_spt[i].qty,&
  434. s_waste_mx_spt[i].fprice,&
  435. sptid,&
  436. s_waste_mx_spt[i].woodcode,&
  437. s_waste_mx_spt[i].pcode,&
  438. arg_msg,FALSE,commit_transaction) = 0 THEN
  439. rslt = 0
  440. GOTO ext
  441. END IF
  442. NEXT
  443. FOR i = 1 TO it_mxbt
  444. IF uo_wfjg.wasteqty(scid,s_waste_mx[i].qty,&
  445. s_waste_mx[i].relid,&
  446. s_waste_mx[i].orderprintid,&
  447. s_waste_mx[i].mtrlcode,&
  448. arg_msg,&
  449. FALSE) = 0 THEN
  450. rslt = 0
  451. GOTO ext
  452. END IF
  453. IF uo_wfjg.trycmplbuytask(scid,s_waste_mx[i].relid,arg_msg,FALSE) = 0 THEN
  454. rslt = 0
  455. GOTO ext
  456. END IF
  457. NEXT
  458. flag = 1
  459. ext:
  460. IF rslt = 0 THEN
  461. ROLLBACK USING commit_transaction;
  462. ELSEIF rslt = 1 AND arg_ifcommit THEN
  463. COMMIT USING commit_transaction;
  464. END IF
  465. DESTROY uo_wfjg
  466. RETURN rslt
  467. end function
  468. public function integer del (long arg_scid, long arg_inwareid, ref string arg_msg, boolean arg_ifcommit);//del(arg_scid,arg_inwareid,arg_msg)
  469. //如果单据还没有审核删除单据极其明细
  470. //0 fail, 1 success
  471. int rslt = 1
  472. if arg_inwareid = 0 then
  473. rslt = 0
  474. arg_msg = "没有删除对象,操作取消"
  475. goto ext
  476. end if
  477. rslt = p_getinfo(arg_scid,arg_inwareid,arg_msg)
  478. if rslt = 0 then goto ext
  479. if flag = 1 then
  480. rslt = 0
  481. arg_msg = "单据已经审核,不可以删除"
  482. goto ext
  483. end if
  484. delete from u_order_wfjg_wastemx
  485. where u_order_wfjg_wastemx.wasteid = :arg_inwareid
  486. and scid = :arg_scid using commit_transaction;
  487. if commit_transaction.sqlcode <> 0 then
  488. rslt = 0
  489. arg_msg = "删除损耗单明细操作失败"+"~n"+commit_transaction.sqlerrtext
  490. goto ext
  491. end if
  492. delete from u_order_wfjg_wastemx_spt
  493. where wasteid = :arg_inwareid
  494. and scid = :arg_scid using commit_transaction;
  495. if commit_transaction.sqlcode <> 0 then
  496. rslt = 0
  497. arg_msg = "删除损耗单明细(外协库存)操作失败"+"~n"+commit_transaction.sqlerrtext
  498. goto ext
  499. end if
  500. delete from u_order_wfjg_waste
  501. where u_order_wfjg_waste.wasteid = :arg_inwareid
  502. and scid = :arg_scid using commit_transaction;
  503. if commit_transaction.sqlcode <> 0 then
  504. rslt = 0
  505. arg_msg = "删除进仓单操作失败"+"~n"+commit_transaction.sqlerrtext
  506. goto ext
  507. end if
  508. it_newbegin = false
  509. it_updatebegin = false
  510. ext:
  511. if rslt=0 then
  512. rollback using commit_transaction;
  513. elseif rslt=1 and arg_ifcommit then
  514. commit using commit_transaction;
  515. end if
  516. p_reset()
  517. return rslt
  518. end function
  519. public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);Long rslt = 1,cnt = 0,i
  520. DateTime null_dt
  521. SetNull(null_dt)
  522. IF wasteid = 0 THEN
  523. rslt = 0
  524. arg_msg = "没有撤审对象"
  525. GOTO ext
  526. END IF
  527. IF it_newbegin OR it_updatebegin THEN
  528. rslt = 0
  529. arg_msg = "编辑状态下不可以执行撤核"
  530. GOTO ext
  531. END IF
  532. IF flag = 0 THEN
  533. rslt = 0
  534. arg_msg = "单据还未审核"
  535. GOTO ext
  536. END IF
  537. uo_order_wfjg uo_wfjg
  538. uo_wfjg = CREATE uo_order_wfjg
  539. uo_wfjg.commit_transaction = commit_transaction
  540. UPDATE u_order_wfjg_waste
  541. SET auditingrep = '',
  542. auditingdate = :null_dt,
  543. flag = 0
  544. WHERE u_order_wfjg_waste.wasteid = :wasteid
  545. AND flag = 1 AND scid = :scid USING commit_transaction;
  546. IF commit_transaction.SQLCode <> 0 THEN
  547. rslt = 0
  548. arg_msg = "因网络或其它原因导致撤核单据操作失败"+"~n"+commit_transaction.SQLErrText
  549. GOTO ext
  550. ELSEIF commit_transaction.SQLNRows = 0 THEN
  551. rslt = 0
  552. arg_msg = "单据正在撤审,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  553. GOTO ext
  554. END IF
  555. FOR i = 1 TO it_mxbt_spt
  556. IF f_update_mtrlware_spt_in(10,&
  557. 0,&
  558. scid,&
  559. s_waste_mx_spt[i].mtrlwareid,&
  560. s_waste_mx_spt[i].mtrlid,&
  561. s_waste_mx_spt[i].mtrlcode,&
  562. s_waste_mx_spt[i].plancode,&
  563. s_waste_mx_spt[i].status,&
  564. 0 - s_waste_mx_spt[i].qty,&
  565. s_waste_mx_spt[i].fprice,&
  566. sptid,&
  567. s_waste_mx_spt[i].woodcode,&
  568. s_waste_mx_spt[i].pcode,&
  569. arg_msg,false,commit_transaction) = 0 THEN
  570. rslt = 0
  571. GOTO ext
  572. END IF
  573. next
  574. FOR i = 1 TO it_mxbt
  575. IF uo_wfjg.wasteqty(scid,0 - s_waste_mx[i].qty,&
  576. s_waste_mx[i].relid,&
  577. s_waste_mx[i].orderprintid,&
  578. s_waste_mx[i].mtrlcode,&
  579. arg_msg,&
  580. false) = 0 THEN
  581. rslt = 0
  582. GOTO ext
  583. END IF
  584. IF uo_wfjg.trycmplbuytask(scid,s_waste_mx[i].relid,arg_msg,FALSE) = 0 THEN
  585. rslt = 0
  586. GOTO ext
  587. END IF
  588. NEXT
  589. flag = 0
  590. ext:
  591. IF rslt = 0 THEN
  592. ROLLBACK USING commit_transaction;
  593. ELSEIF rslt = 1 AND arg_ifcommit THEN
  594. COMMIT USING commit_transaction;
  595. END IF
  596. DESTROY uo_wfjg
  597. RETURN rslt
  598. end function
  599. public function integer p_clearmx ();//int p_clearmx()
  600. //清除明细
  601. it_mxbt = 0
  602. it_mxbt_spt = 0
  603. RETURN 1
  604. end function
  605. public function integer p_reset ();//int p_reset()
  606. //清除对象及其明细
  607. scid=0
  608. wasteid=0
  609. wastecode=''
  610. opemp=''
  611. modemp=''
  612. auditingrep=''
  613. flag=0
  614. relid=0
  615. relcode=''
  616. waste_rep=''
  617. dscrp=''
  618. sptid=0
  619. sptname=''
  620. it_newbegin=false
  621. it_updatebegin=false
  622. //清除明细
  623. p_clearmx()
  624. return 1
  625. end function
  626. public function integer p_getinfo (long arg_scid, long arg_wasteid, ref string arg_msg);//p_getinfo(arg_scid,arg_inwareid,arg_msg)
  627. //0 失败 1成功
  628. Int rslt = 1
  629. IF arg_wasteid <= 0 THEN
  630. rslt = 0
  631. arG_MSG = "非法进仓单唯一码"
  632. GOTO ext
  633. END IF
  634. SELECT wastecode,
  635. sptid,
  636. wastedate,
  637. assign_emp,
  638. relcode,
  639. dscrp,
  640. flag
  641. INTO :wastecode,
  642. :sptid,
  643. :waste_date,
  644. :waste_rep,
  645. :relcode,
  646. :dscrp,
  647. :flag
  648. FROM u_order_wfjg_waste
  649. WHERE u_order_wfjg_waste.wasteid = :arg_wasteid
  650. AND scid = :arg_scid
  651. USING commit_transaction;
  652. IF commit_transaction.SQLCode <> 0 THEN
  653. rslt = 0
  654. arG_MSG = "查询操作失败(错误损耗单唯一码),损耗单"+commit_transaction.SQLErrText
  655. GOTO ext
  656. END IF
  657. wasteid = arg_wasteid
  658. scid = arg_scid
  659. ext:
  660. IF rslt = 0 THEN p_reset()
  661. RETURN rslt
  662. end function
  663. public function integer updatebegin (long arg_scid, long arg_wasteid, ref string arg_msg);long rslt=1
  664. if arg_scid < 0 then
  665. arg_msg = '请选择分部'
  666. rslt = 0
  667. goto ext
  668. end if
  669. if arg_wasteid<=0 then
  670. rslt=0
  671. goto ext
  672. end if
  673. rslt=p_getinfo(arg_scid,arg_wasteid,arg_msg)
  674. if rslt=0 then goto ext
  675. if flag=1 then
  676. rslt=0
  677. arg_msg='单据已经审核,不可以修改'
  678. goto ext
  679. end if
  680. wasteid=arg_wasteid
  681. scid=arg_scid
  682. it_newbegin=false
  683. it_updatebegin=true
  684. p_clearmx() //清除明细
  685. ext:
  686. if rslt=0 then p_reset()
  687. return rslt
  688. end function
  689. public function integer add_dscrp (long arg_scid, long arg_wasteid, string arg_newdescrppart, ref string arg_msg);//add_dscrp(string arg_newdescppart)
  690. //0 fail 1 success
  691. int rslt=1
  692. arg_newdescrppart=trim(arg_newdescrppart)
  693. if arg_newdescrppart='' then
  694. rslt=0
  695. arg_msg="要添加内容为空,操作取消"
  696. goto ext
  697. end if
  698. //rslt=p_getinfo(arg_scid,arg_wasteid,arg_msg)
  699. if rslt=0 then goto ext
  700. if flag=0 then
  701. rslt=0
  702. arg_msg="非审核状态下不可用"
  703. goto ext
  704. end if
  705. update u_order_wfjg_waste
  706. set dscrp = dscrp+' '+:arg_newdescrppart
  707. where u_order_wfjg_waste.wasteid = :arg_wasteid
  708. and scid=:scid using commit_transaction;
  709. if commit_transaction.sqlcode<>0 then
  710. rollback using commit_transaction;
  711. rslt=0
  712. arg_msg="因网络或其它原因导致添加单据备注操作失败"+"~n"+commit_transaction.sqlerrtext
  713. goto ext
  714. end if
  715. commit using commit_transaction;
  716. dscrp = dscrp+' '+arg_newdescrppart
  717. ext: return (rslt)
  718. end function
  719. public function integer getinfo (long arg_scid, long arg_wasteid, ref string arg_msg);//getinfo(arg_scid,arg_inwareid,arg_msg)
  720. //0 失败 1成功
  721. Int rslt = 1,i = 1,no_mxcheck = 0,j = 1,no_mxcheck_bef = 0
  722. IF arg_wasteid <= 0 THEN
  723. rslt = 0
  724. arg_msg = "非法损耗单唯一码"
  725. GOTO ext
  726. END IF
  727. rslt = p_getinfo(arg_scid,arg_wasteid,arg_msg)
  728. IF rslt = 0 THEN GOTO ext
  729. //用游标读取明细
  730. DECLARE cur_wastemx CURSOR FOR
  731. SELECT u_order_wfjg_wastemx.printid,
  732. u_order_wfjg_wastemx.mtrlid,
  733. u_order_wfjg_wastemx.status,
  734. u_order_wfjg_wastemx.qty,
  735. u_order_wfjg_wastemx.wastedscrp,
  736. u_order_wfjg_wastemx.price,
  737. u_order_wfjg_wastemx.wfjg_orderid,
  738. u_order_wfjg_wastemx.wfjg_ordercode,
  739. u_order_wfjg_wastemx.orderid,
  740. u_order_wfjg_wastemx.orderprintid,
  741. u_order_wfjg_wastemx.woodcode,
  742. u_order_wfjg_wastemx.pcode
  743. FROM u_order_wfjg_wastemx,u_mtrldef
  744. WHERE u_order_wfjg_wastemx.wasteid = :arg_wasteid AND
  745. u_order_wfjg_wastemx.mtrlid = u_mtrldef.mtrlid AND
  746. u_order_wfjg_wastemx.scid = :arg_scid USING commit_transaction;
  747. OPEN cur_wastemx;
  748. FETCH cur_wastemx INTO :s_waste_mx[i].printid,:s_waste_mx[i].mtrlid,
  749. :s_waste_mx[i].status,:s_waste_mx[i].qty,
  750. :s_waste_mx[i].mxdscrp,:s_waste_mx[i].jgprice,
  751. :s_waste_mx[i].relid,:s_waste_mx[i].relcode,
  752. :s_waste_mx[i].orderid,:s_waste_mx[i].orderprintid,
  753. :s_waste_mx[i].woodcode,:s_waste_mx[i].pcode;
  754. DO WHILE commit_transaction.SQLCode = 0
  755. i++
  756. FETCH cur_wastemx INTO :s_waste_mx[i].printid,:s_waste_mx[i].mtrlid,
  757. :s_waste_mx[i].status,:s_waste_mx[i].qty,
  758. :s_waste_mx[i].mxdscrp,:s_waste_mx[i].jgprice,
  759. :s_waste_mx[i].relid,:s_waste_mx[i].relcode,
  760. :s_waste_mx[i].orderid,:s_waste_mx[i].orderprintid,
  761. :s_waste_mx[i].woodcode,:s_waste_mx[i].pcode;
  762. LOOP
  763. CLOSE cur_wastemx;
  764. //检验明细是否读入完整
  765. SELECT count(*) INTO :no_mxcheck
  766. FROM u_order_wfjg_wastemx
  767. WHERE wasteid = :arg_wasteid
  768. AND scid = :arg_scid USING commit_transaction;
  769. IF commit_transaction.SQLCode <> 0 THEN
  770. rslt = 0
  771. arg_msg = "查询操作失败,外协损耗单明细数量"+commit_transaction.SQLErrText
  772. GOTO ext
  773. END IF
  774. IF i <> (no_mxcheck+1) THEN
  775. rslt = 0
  776. arg_msg = "查询操作失败,外协损耗单明细"
  777. GOTO ext
  778. END IF
  779. //
  780. //用游标读取明细
  781. DECLARE cur_wastemx_spt CURSOR FOR
  782. SELECT u_order_wfjg_wasteMx_spt.mtrlwareid,
  783. u_order_wfjg_wasteMx_spt.printid,
  784. u_order_wfjg_wasteMx_spt.mtrlid,
  785. u_order_wfjg_wasteMx_spt.plancode,
  786. u_order_wfjg_wasteMx_spt.status,
  787. u_order_wfjg_wasteMx_spt.qty,
  788. u_order_wfjg_wasteMx_spt.fprice,
  789. u_order_wfjg_wasteMx_spt.mxdscrp,
  790. u_mtrldef.mtrlcode,
  791. u_order_wfjg_wasteMx_spt.woodcode,
  792. u_order_wfjg_wasteMx_spt.pcode,
  793. u_order_wfjg_wasteMx_spt.plancode
  794. FROM u_order_wfjg_wasteMx_spt,u_mtrldef,u_order_wfjg_waste
  795. WHERE u_order_wfjg_waste.wasteid = :arg_wasteid AND
  796. u_order_wfjg_wasteMx_spt.mtrlid = u_mtrldef.mtrlid AND
  797. u_order_wfjg_waste.scid = :arg_scid AND
  798. u_order_wfjg_waste.wasteid = u_order_wfjg_wasteMx_spt.wasteid AND
  799. u_order_wfjg_waste.scid = u_order_wfjg_wasteMx_spt.scid
  800. USING commit_transaction;
  801. OPEN cur_wastemx_spt;
  802. FETCH cur_wastemx_spt INTO :s_waste_mx_spt[j].mtrlwareid,
  803. :s_waste_mx_spt[j].printid,
  804. :s_waste_mx_spt[j].mtrlid,:s_waste_mx_spt[j].plancode,
  805. :s_waste_mx_spt[j].status,:s_waste_mx_spt[j].qty,:s_waste_mx_spt[j].fprice,
  806. :s_waste_mx_spt[j].mxdscrp,
  807. :s_waste_mx_spt[j].mtrlcode,:s_waste_mx_spt[j].woodcode,
  808. :s_waste_mx_spt[j].pcode,:s_waste_mx_spt[j].plancode;
  809. DO WHILE commit_transaction.SQLCode = 0
  810. j++
  811. FETCH cur_wastemx_spt INTO :s_waste_mx_spt[j].mtrlwareid,
  812. :s_waste_mx_spt[j].printid,
  813. :s_waste_mx_spt[j].mtrlid,:s_waste_mx_spt[j].plancode,
  814. :s_waste_mx_spt[j].status,:s_waste_mx_spt[j].qty,:s_waste_mx_spt[j].fprice,
  815. :s_waste_mx_spt[j].mxdscrp,
  816. :s_waste_mx_spt[j].mtrlcode,:s_waste_mx_spt[j].woodcode,
  817. :s_waste_mx_spt[j].pcode,:s_waste_mx_spt[j].plancode;
  818. LOOP
  819. CLOSE cur_wastemx_spt;
  820. //检验明细是否读入完整
  821. SELECT count(*) INTO :no_mxcheck_bef
  822. FROM u_order_wfjg_wasteMx_spt
  823. WHERE u_order_wfjg_wasteMx_spt.wasteid = :arg_wasteid
  824. AND scid = :arg_scid USING commit_transaction;
  825. IF commit_transaction.SQLCode <> 0 THEN
  826. rslt = 0
  827. arg_msg = "查询操作失败,外协收货单相关发外明细数量"+commit_transaction.SQLErrText
  828. GOTO ext
  829. END IF
  830. IF j <> (no_mxcheck_bef+1) THEN
  831. rslt = 0
  832. arg_msg = "查询操作失败,外协收货单相关发外明细"
  833. GOTO ext
  834. END IF
  835. wasteid = arg_wasteid
  836. scid = arg_scid
  837. it_mxbt = i - 1
  838. it_mxbt_spt = j - 1
  839. it_newbegin = FALSE
  840. it_updatebegin = FALSE
  841. ext:
  842. IF rslt = 0 THEN p_reset()
  843. RETURN rslt
  844. end function
  845. public function integer acceptmx (long arg_printid, long arg_orderprintid, long arg_mtrlid, string arg_mtrlcode, decimal arg_qty, string arg_mxdscrp, ref string arg_msg, long arg_relid, long arg_orderid, string arg_status, string arg_woodcode, string arg_pcode);Long rslt = 1,cnt = 0,ls_i
  846. String ls_relcode
  847. IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
  848. rslt = 0
  849. arg_msg = "非编辑状态不可以使用,操作取消"
  850. GOTO ext
  851. END IF
  852. //清除空值
  853. IF IsNull(arg_printid) THEN arg_printid = 0
  854. IF IsNull(arg_orderprintid) THEN arg_orderprintid = 0
  855. IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
  856. IF IsNull(arg_mtrlcode) THEN arg_mtrlcode = ''
  857. IF IsNull(arg_status) THEN arg_status = ''
  858. IF IsNull(arg_woodcode) THEN arg_woodcode = ''
  859. IF IsNull(arg_pcode) THEN arg_pcode = ''
  860. IF IsNull(arg_qty) THEN arg_qty = 0
  861. IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
  862. IF IsNull(arg_relid) THEN arg_relid = 0
  863. IF IsNull(arg_orderid) THEN arg_orderid = 0
  864. IF arg_mtrlid = 0 OR arg_qty = 0 THEN
  865. rslt = 1
  866. GOTO ext
  867. END IF
  868. //检查物料id
  869. SELECT COUNT(*)
  870. INTO :cnt
  871. FROM u_mtrldef
  872. Where u_mtrldef.mtrlid = :arg_mtrlid USING commit_transaction ;
  873. IF commit_transaction.SQLCode <> 0 THEN
  874. rslt = 0
  875. arg_msg = "查询操作失败,物料编码"+String(arg_mtrlcode)
  876. GOTO ext
  877. END IF
  878. IF cnt = 0 THEN
  879. rslt = 0
  880. arg_msg = "错误的产品编码: "+String(arg_mtrlcode)
  881. GOTO ext
  882. END IF
  883. cnt = 0
  884. //检查生产计划ID
  885. IF arg_orderid > 0 THEN
  886. SELECT count(*)
  887. INTO :cnt
  888. FROM u_order_ml
  889. WHERE u_order_ml.orderid = :arg_orderid
  890. AND u_order_ml.scid = :scid USING commit_transaction ;
  891. IF commit_transaction.SQLCode <> 0 THEN
  892. rslt = 0
  893. arg_msg = "查询操作失败,生产计划编号,在物料"+String(arg_mtrlcode)
  894. GOTO ext
  895. END IF
  896. IF cnt = 0 THEN
  897. rslt = 0
  898. arg_msg = "错误的生产计划编号, 在物料"+String(arg_mtrlcode)
  899. GOTO ext
  900. END IF
  901. END IF
  902. //检查外加工计划明细,该物料记录是否存在
  903. IF arg_relid = 0 THEN
  904. arg_msg = '请先择相应的外协计划'
  905. rslt = 0
  906. GOTO ext
  907. END IF
  908. SELECT taskcode INTO :ls_relcode
  909. FROM u_order_wfjgmx,u_order_wfjg
  910. WHERE u_order_wfjgmx.wfjgid = :arg_relid
  911. AND u_order_wfjgmx.printid = :arg_orderprintid
  912. AND u_order_wfjgmx.wfjgid = u_order_wfjg.wfjgid
  913. AND u_order_wfjgmx.scid = u_order_wfjg.scid
  914. AND u_order_wfjgmx.scid = :scid
  915. USING commit_transaction;
  916. IF commit_transaction.SQLCode <> 0 THEN
  917. arg_msg = '查询加工计划是否有加工产品:'+arg_mtrlcode+'失败'
  918. rslt = 0
  919. GOTO ext
  920. END IF
  921. IF ls_relcode = '' THEN
  922. rslt = 0
  923. arg_msg = "错误的外加工产品编号 "
  924. GOTO ext
  925. END IF
  926. //写入内容
  927. it_mxbt++
  928. s_waste_mx[it_mxbt].printid = arg_printid
  929. s_waste_mx[it_mxbt].orderprintid = arg_orderprintid
  930. s_waste_mx[it_mxbt].mtrlid = arg_mtrlid
  931. s_waste_mx[it_mxbt].status = arg_status
  932. s_waste_mx[it_mxbt].woodcode = arg_woodcode
  933. s_waste_mx[it_mxbt].pcode = arg_pcode
  934. s_waste_mx[it_mxbt].qty = arg_qty
  935. s_waste_mx[it_mxbt].mxdscrp = arg_mxdscrp
  936. s_waste_mx[it_mxbt].jgprice = 0
  937. s_waste_mx[it_mxbt].relid = arg_relid
  938. s_waste_mx[it_mxbt].relcode = ls_relcode
  939. s_waste_mx[it_mxbt].orderid = arg_orderid //生产计划ID
  940. ext:
  941. IF rslt = 0 THEN p_clearmx()
  942. Return(rslt)
  943. end function
  944. public function integer acceptmx_bef (long arg_mtrlwareid, decimal arg_qty, string arg_mxdscrp, long arg_printid, ref string arg_msg);Long rslt = 1,cnt = 0,LS_i
  945. Long i_mtrlid,i_sptid
  946. String i_plancode,i_mtrlcode,i_status,i_woodcode,i_pcode
  947. Double i_cost,i_newprice
  948. Decimal i_allouseqty
  949. String ls_relcode
  950. Decimal ld_rate = 1
  951. IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
  952. rslt = 0
  953. arg_msg = "非编辑状态不可以使用,操作取消"
  954. GOTO ext
  955. END IF
  956. IF IsNull(arg_mtrlwareid) THEN arg_mtrlwareid = 0
  957. IF IsNull(arg_printid) THEN arg_printid = 0
  958. IF IsNull(arg_qty) THEN arg_qty = 0
  959. IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
  960. IF arg_mtrlwareid = 0 OR arg_qty = 0 THEN
  961. rslt = 1
  962. GOTO ext
  963. END IF
  964. SELECT ow_wfjgware.mtrlid,
  965. ow_wfjgware.sptid,
  966. ow_wfjgware.plancode,
  967. ow_wfjgware.status,
  968. ow_wfjgware.cost,
  969. u_mtrldef.mtrlcode,
  970. ow_wfjgware.woodcode,
  971. ow_wfjgware.pcode,
  972. ow_wfjgware.noallocqty
  973. INTO :i_mtrlid,
  974. :i_sptid,
  975. :i_plancode,
  976. :i_status,
  977. :i_cost,
  978. :i_mtrlcode,
  979. :i_woodcode,
  980. :i_pcode,
  981. :i_allouseqty
  982. FROM ow_wfjgware ,u_mtrldef
  983. WHERE ( ow_wfjgware.mtrlwareid = :arg_mtrlwareid )
  984. AND ( ow_wfjgware.mtrlid = u_mtrldef.mtrlid )
  985. And ( ow_wfjgware.scid = :scid ) USING commit_transaction;
  986. IF commit_transaction.SQLCode <> 0 THEN
  987. rslt = 0
  988. arg_msg = "查询操作失败,库存编号错误"
  989. GOTO ext
  990. END IF
  991. IF IsNull(i_cost) THEN i_cost = 0
  992. IF IsNull(i_plancode) THEN i_plancode = ''
  993. IF IsNull(i_status) THEN i_status = ''
  994. IF IsNull(i_mtrlid) THEN i_mtrlid = 0
  995. IF IsNull(i_sptid) THEN i_sptid = 0
  996. IF IsNull(i_woodcode) THEN i_woodcode = ''
  997. IF IsNull(i_pcode) THEN i_pcode = ''
  998. IF sptid <> i_sptid THEN
  999. arg_msg = "物料:" + String(i_mtrlcode) + '所属加工商资料不对应'
  1000. rslt = 0
  1001. GOTO ext
  1002. END IF
  1003. IF i_cost < 0 THEN //检查进仓价
  1004. rslt = 0
  1005. arg_msg = "物料:" + String(i_mtrlcode)+" 单价错误"
  1006. GOTO ext
  1007. END IF
  1008. //写入内容
  1009. it_mxbt_spt++
  1010. s_waste_mx_spt[it_mxbt_spt].mtrlwareid = arg_mtrlwareid
  1011. s_waste_mx_spt[it_mxbt_spt].mtrlid = i_mtrlid
  1012. s_waste_mx_spt[it_mxbt_spt].status = i_status
  1013. s_waste_mx_spt[it_mxbt_spt].qty = arg_qty
  1014. s_waste_mx_spt[it_mxbt_spt].sptid = i_sptid
  1015. s_waste_mx_spt[it_mxbt_spt].cost = i_cost
  1016. s_waste_mx_spt[it_mxbt_spt].costamt = Round(i_cost * arg_qty,2)
  1017. s_waste_mx_spt[it_mxbt_spt].plancode = i_plancode
  1018. s_waste_mx_spt[it_mxbt_spt].mtrlcode = i_mtrlcode
  1019. s_waste_mx_spt[it_mxbt_spt].mxdscrp = arg_mxdscrp
  1020. s_waste_mx_spt[it_mxbt_spt].printid = arg_printid
  1021. s_waste_mx_spt[it_mxbt_spt].fprice = i_cost
  1022. s_waste_mx_spt[it_mxbt_spt].woodcode = i_woodcode
  1023. s_waste_mx_spt[it_mxbt_spt].pcode = i_pcode
  1024. ext:
  1025. IF rslt = 0 THEN p_clearmx()
  1026. RETURN rslt
  1027. end function
  1028. on uo_wfjg_waste.create
  1029. call super::create
  1030. TriggerEvent( this, "constructor" )
  1031. end on
  1032. on uo_wfjg_waste.destroy
  1033. TriggerEvent( this, "destructor" )
  1034. call super::destroy
  1035. end on