uo_mtrldef_adjust.sru 31 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361
  1. $PBExportHeader$uo_mtrldef_adjust.sru
  2. forward
  3. global type uo_mtrldef_adjust from nonvisualobject
  4. end type
  5. type s_mtrldef from structure within uo_mtrldef_adjust
  6. end type
  7. end forward
  8. TYPE s_mtrldef FROM structure
  9. Long billid[]
  10. String mtrlcode[]
  11. Long mtrlid[]
  12. String zxmtrlmode[]
  13. Decimal { 5 } rate[]
  14. String unit_buy[]
  15. Decimal { 5 } rate_buy[]
  16. String unit_scll[]
  17. Decimal { 5 } rate_scll[]
  18. String unit_sale[]
  19. Decimal { 5 } rate_sale[]
  20. Decimal { 5 } net_weight[]
  21. Decimal { 5 } gross_weight[]
  22. String zxmtrlmode1[]
  23. Decimal { 5 } rate1[]
  24. String unit_buy1[]
  25. Decimal { 5 } rate_buy1[]
  26. String unit_scll1[]
  27. Decimal { 5 } rate_scll1[]
  28. String unit_sale1[]
  29. Decimal { 5 } rate_sale1[]
  30. Decimal { 5 } net_weight1[]
  31. Decimal { 5 } gross_weight1[]
  32. END TYPE
  33. global type uo_mtrldef_adjust from nonvisualobject
  34. end type
  35. global uo_mtrldef_adjust uo_mtrldef_adjust
  36. type variables
  37. PUBLIC PROTECTEDWRITE Long scid = 0
  38. PUBLIC PROTECTEDWRITE Long billid = 0
  39. PUBLIC PROTECTEDWRITE String billcode = ''
  40. PUBLIC PROTECTEDWRITE DateTime opdate
  41. PUBLIC PROTECTEDWRITE String operator = ''
  42. PUBLIC PROTECTEDWRITE DateTime Accomplishdate
  43. PUBLIC PROTECTEDWRITE String Permit_emp = ''
  44. Int billtype
  45. DateTime billdate
  46. Int flag,secflag
  47. Long relid = 0
  48. Int Kind = 0
  49. Long empid = 0
  50. String dscrp
  51. String relcode
  52. Transaction commit_transaction
  53. PRIVATE:
  54. s_mtrldef_adjust s_mx
  55. Long it_MXBT = 0 //明细结构数组末指针
  56. Boolean IT_NEWBEGIN = TRUE //新建标志
  57. Boolean IT_UPDATEBEGIN = FALSE//修改标志
  58. end variables
  59. forward prototypes
  60. public function integer p_reset ()
  61. PUBLIC FUNCTION Integer p_clearmx ()
  62. public function integer savesubmit (string arg_operator, ref string arg_msg, boolean arg_ifcommit)
  63. public function integer getinfo (long arg_taskid, ref string arg_msg)
  64. PUBLIC FUNCTION Integer newbegin (Long arg_scid, REF String arg_msg)
  65. public function integer p_getinfo (long arg_billid, ref string arg_msg)
  66. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit)
  67. public function integer cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  68. PUBLIC FUNCTION Integer updatebegin (Long arg_billid, REF String arg_msg)
  69. public function integer cancelpermit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  70. public function integer auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  71. public function integer c_auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  72. PUBLIC FUNCTION Integer secauditing (Long arg_billid, REF String arg_msg, Boolean arg_ifcommit)
  73. PUBLIC FUNCTION Integer c_secauditing (Long arg_billid, REF String arg_msg, Boolean arg_ifcommit)
  74. public function integer acceptmx (s_mtrldef_adjust arg_mx, ref string arg_msg)
  75. end prototypes
  76. public function integer p_reset ();
  77. //INT p_RESET()
  78. //清除对象及其明细
  79. billid = 0
  80. billcode = ''
  81. operator = ''
  82. relcode = ''
  83. SetNull(opdate)
  84. SetNull(Accomplishdate)
  85. Permit_emp = ''
  86. flag = 0
  87. secflag = 0
  88. IT_NEWBEGIN = FALSE
  89. IT_UPDATEBEGIN = FALSE
  90. //清除明细
  91. P_CLEARMX()
  92. RETURN 1
  93. end function
  94. PUBLIC FUNCTION Integer p_clearmx ();
  95. //INT p_clearmx()
  96. //清除明细
  97. it_MXBT = 0
  98. RETURN 1
  99. END FUNCTION
  100. public function integer savesubmit (string arg_operator, ref string arg_msg, boolean arg_ifcommit);
  101. Integer rslt = 1,cnt = 0,i
  102. Long LS_NEWbillid
  103. DateTime server_datetime
  104. String ls_sccode
  105. Long ll_billid
  106. If IsNull(dscrp) Then dscrp = ''
  107. If IsNull(arg_operator) Then arg_operator = ''
  108. //====================================================================
  109. // Script - save ( ref string arg_msg, boolean arg_ifcommit )
  110. // Reason:
  111. //--------------------------------------------------------------------
  112. // Modified By: yyx Date: 2004.02.20
  113. //--------------------------------------------------------------------
  114. If Len(dscrp) > 0 Then dscrp = ' ' + dscrp
  115. //====================================================================
  116. operator = arg_operator
  117. If IT_NEWBEGIN = False And IT_UPDATEBEGIN = False Then
  118. rslt = 0
  119. arg_msg = "非编辑状态不可以提交"
  120. Goto ext
  121. End If
  122. cnt = 0
  123. Select count(*) Into :cnt
  124. From u_rs_empinfo
  125. Where empid = :empid Using commit_transaction;
  126. If commit_transaction.SQLCode <> 0 Then
  127. rslt = 0
  128. arg_msg = "查询操作失败,员工资料"
  129. Goto ext
  130. End If
  131. If cnt = 0 Then
  132. rslt = 0
  133. arg_msg = "员工资料未定义或错误"
  134. Goto ext
  135. End If
  136. Select Top 1 getdate() Into :server_datetime From u_user Using commit_transaction;
  137. //取得系统时间,借用操作员表
  138. If commit_transaction.SQLCode <> 0 Then
  139. rslt = 0
  140. arg_msg = "查询操作失败,日期 "
  141. Goto ext
  142. End If
  143. If it_MXBT = 0 Then //如果输入物料资料错则已经清空
  144. rslt = 0
  145. arg_msg = "没有正确调整单明细内容"
  146. Goto ext
  147. End If
  148. cnt = 0
  149. Select count(*) Into :cnt
  150. From u_user
  151. Where username = :operator Using commit_transaction ;
  152. If commit_transaction.SQLCode <> 0 Then
  153. rslt = 0
  154. arg_msg = "查询操作失败,操作员!"
  155. Goto ext
  156. End If
  157. If cnt = 0 Then
  158. rslt = 0
  159. arg_msg = "操作员姓名未登记或已取消!"
  160. Goto ext
  161. End If
  162. opdate = server_datetime //填写单据建立时间(最近修改时间)
  163. ////////////////////////////////////////////// //开始区分:新建/更新 处理
  164. If billid = 0 Then //新建
  165. ll_billid = f_sys_scidentity(0,"u_mtrldef_adjust","billid",arg_msg,False, commit_transaction) //数据commit事务)
  166. If ll_billid <= 0 Then
  167. rslt = 0
  168. Goto ext
  169. End If
  170. If f_get_sccode(0,commit_transaction,ls_sccode,arg_msg) = 0 Then
  171. rslt = 0
  172. Goto ext
  173. End If
  174. billcode = getid(0,ls_sccode + 'MG',Date(server_datetime),False,commit_transaction)
  175. If billcode = "err" Then
  176. billcode = ''
  177. rslt = 0
  178. arg_msg = "无法获取调整单编号"+"~n"+commit_transaction.SQLErrText
  179. Goto ext
  180. End If
  181. Insert Into u_mtrldef_adjust
  182. (
  183. billid,
  184. billcode,
  185. empid,
  186. Opemp,
  187. Dscrp,
  188. opdate,
  189. relcode,
  190. relid,
  191. billdate,
  192. billtype)
  193. Values (
  194. :ll_billid,
  195. :billcode,
  196. :empid,
  197. :Operator,
  198. :Dscrp,
  199. :opdate,
  200. :relcode,
  201. :relid,
  202. :billdate,
  203. :billtype) Using commit_transaction ;
  204. If commit_transaction.SQLCode <> 0 Then
  205. rslt = 0
  206. arg_msg = "因网络或其它原因导致插入调整单操作失败"+"~n"+commit_transaction.SQLErrText
  207. Rollback Using commit_transaction;
  208. Goto ext
  209. End If
  210. //读取新billid
  211. billid = ll_billid
  212. Else //////////////////////////////////////////////// //更新
  213. Update u_mtrldef_adjust
  214. Set modemp = :publ_operator ,
  215. Dscrp = :Dscrp,
  216. moddate = getdate(),
  217. relid = :relid,
  218. relcode = :relcode,
  219. billdate = :billdate,
  220. billtype = :billtype
  221. Where u_mtrldef_adjust.billid = :billid
  222. And flag = 0 Using commit_transaction;
  223. If commit_transaction.SQLCode <> 0 Or sqlca.SQLNRows <= 0 Then
  224. rslt = 0
  225. arg_msg = "因网络或其它原因导致更新调整单操作失败"+"~n"+commit_transaction.SQLErrText
  226. Rollback Using commit_transaction;
  227. Goto ext
  228. End If
  229. //删除原有明细
  230. Delete From u_mtrldef_adjustmx
  231. Where u_mtrldef_adjustmx.billid = :billid Using commit_transaction;
  232. If commit_transaction.SQLCode <> 0 Then
  233. rslt = 0
  234. arg_msg = "删除旧有明细操作失败"+"~n"+commit_transaction.SQLErrText
  235. Rollback Using commit_transaction;
  236. Goto ext
  237. End If
  238. End If
  239. For i = 1 To it_MXBT
  240. Insert Into u_mtrldef_adjustmx
  241. (
  242. billid,
  243. mtrlid,
  244. zxmtrlmode,
  245. unit_buy,
  246. rate_buy,
  247. unit_scll,
  248. rate_scll,
  249. unit_sale,
  250. rate_sale,
  251. net_weight,
  252. gross_weight,
  253. zxmtrlmode1,
  254. unit_buy1,
  255. rate_buy1,
  256. unit_scll1,
  257. rate_scll1,
  258. unit_sale1,
  259. rate_sale1,
  260. net_weight1,
  261. gross_weight1,
  262. dftsptid,
  263. dftsptid1,
  264. billtype,
  265. buydays1,
  266. buydays,
  267. wfjgdays1,
  268. wfjgdays,
  269. rebuylot,
  270. buy_autoday,
  271. rebuytype,
  272. minbuyqty,
  273. ifsendlot,
  274. upbuyqty,
  275. buydec,
  276. buy_ceiling,
  277. cubage,
  278. rebuylot1,
  279. buy_autoday1,
  280. rebuytype1,
  281. minbuyqty1,
  282. ifsendlot1,
  283. upbuyqty1,
  284. buydec1,
  285. buy_ceiling1,
  286. cubage1,
  287. expday,
  288. expday1,
  289. orderdays,
  290. orderdays1,
  291. maxzjday,
  292. maxzjday1,
  293. wfjgdays_bx,
  294. wfjgdays_bx1,
  295. buydays_bx,
  296. buydays_bx1,
  297. buyer,buyer1,
  298. mtrlarea,
  299. mtrlarea1,
  300. mtrlarea2
  301. )
  302. Values (
  303. :billid,
  304. :s_mx.mtrlid[i],
  305. :s_mx.zxmtrlmode[i],
  306. :s_mx.unit_buy[i],
  307. :s_mx.rate_buy[i],
  308. :s_mx.unit_scll[i],
  309. :s_mx.rate_scll[i],
  310. :s_mx.unit_sale[i],
  311. :s_mx.rate_sale[i],
  312. :s_mx.net_weight[i],
  313. :s_mx.gross_weight[i],
  314. :s_mx.zxmtrlmode1[i],
  315. :s_mx.unit_buy1[i],
  316. :s_mx.rate_buy1[i],
  317. :s_mx.unit_scll1[i],
  318. :s_mx.rate_scll1[i],
  319. :s_mx.unit_sale1[i],
  320. :s_mx.rate_sale1[i],
  321. :s_mx.net_weight1[i],
  322. :s_mx.gross_weight1[i],
  323. :s_mx.dftsptid[i],
  324. :s_mx.dftsptid1[i],
  325. :s_mx.billtype[i],
  326. :s_mx.buydays1[i],
  327. :s_mx.buydays[i],
  328. :s_mx.wfjgdays1[i],
  329. :s_mx.wfjgdays[i],
  330. :s_mx.rebuylot[i],
  331. :s_mx.buy_autoday[i],
  332. :s_mx.rebuytype[i],
  333. :s_mx.minbuyqty[i],
  334. :s_mx.ifsendlot[i],
  335. :s_mx.upbuyqty[i],
  336. :s_mx.buydec[i],
  337. :s_mx.buy_ceiling[i],
  338. :s_mx.cubage[i],
  339. :s_mx.rebuylot1[i],
  340. :s_mx.buy_autoday1[i],
  341. :s_mx.rebuytype1[i],
  342. :s_mx.minbuyqty1[i],
  343. :s_mx.ifsendlot1[i],
  344. :s_mx.upbuyqty1[i],
  345. :s_mx.buydec1[i],
  346. :s_mx.buy_ceiling1[i],
  347. :s_mx.cubage1[i],
  348. :s_mx.expday[i],
  349. :s_mx.expday1[i],
  350. :s_mx.orderdays[i],
  351. :s_mx.orderdays1[i],
  352. :s_mx.maxzjday[i],
  353. :s_mx.maxzjday1[i],
  354. :s_mx.wfjgdays_bx[i],
  355. :s_mx.wfjgdays_bx1[i],
  356. :s_mx.buydays_bx[i],
  357. :s_mx.buydays_bx1[i],
  358. :s_mx.buyer[i],
  359. :s_mx.buyer1[i],
  360. :s_mx.mtrlarea[i],
  361. :s_mx.mtrlarea1[i],
  362. :s_mx.mtrlarea2[i]) Using commit_transaction;
  363. If commit_transaction.SQLCode <> 0 Then
  364. If IT_NEWBEGIN Then billid = 0 //还原billid
  365. rslt = 0
  366. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
  367. Rollback Using commit_transaction;
  368. Goto ext
  369. End If
  370. Next
  371. IT_NEWBEGIN = False
  372. IT_UPDATEBEGIN = False
  373. ext:
  374. If rslt = 0 Then
  375. p_clearmx()
  376. Rollback Using commit_transaction;
  377. ElseIf arg_ifcommit And rslt = 1 Then
  378. Commit Using commit_transaction;
  379. End If
  380. Return(rslt)
  381. end function
  382. public function integer getinfo (long arg_taskid, ref string arg_msg);
  383. //getinfo(long arg_taskid,string arg_msg)
  384. //0 失败 1成功
  385. Int rslt = 1,i = 1,NO_MXCHECK = 0
  386. IF arg_taskid <= 0 THEN
  387. rslt = 0
  388. arg_msg = '错误调整单唯一码'
  389. GOTO ext
  390. END IF
  391. IF p_getinfo(arg_taskid,arg_msg) = 0 THEN
  392. rslt = 0
  393. GOTO ext
  394. END IF
  395. //用游标读取明细
  396. DECLARE CUR_INWAERMX CURSOR FOR
  397. SELECT
  398. u_mtrldef_adjustmx.billid,
  399. u_mtrldef_adjustmx.mtrlid,
  400. u_mtrldef_adjustmx.zxmtrlmode,
  401. u_mtrldef_adjustmx.unit_buy,
  402. u_mtrldef_adjustmx.rate_buy,
  403. u_mtrldef_adjustmx.unit_scll,
  404. u_mtrldef_adjustmx.rate_scll,
  405. u_mtrldef_adjustmx.unit_sale,
  406. u_mtrldef_adjustmx.rate_sale,
  407. u_mtrldef_adjustmx.net_weight,
  408. u_mtrldef_adjustmx.gross_weight,
  409. u_mtrldef_adjustmx.zxmtrlmode1,
  410. u_mtrldef_adjustmx.unit_buy1,
  411. u_mtrldef_adjustmx.rate_buy1,
  412. u_mtrldef_adjustmx.unit_scll1,
  413. u_mtrldef_adjustmx.rate_scll1,
  414. u_mtrldef_adjustmx.unit_sale1,
  415. u_mtrldef_adjustmx.rate_sale1,
  416. u_mtrldef_adjustmx.net_weight1,
  417. u_mtrldef_adjustmx.gross_weight1,
  418. u_mtrldef_adjustmx.dftsptid1,
  419. u_mtrldef_adjustmx.dftsptid,
  420. u_mtrldef_adjustmx.billtype,
  421. u_mtrldef_adjustmx.buydays1,
  422. u_mtrldef_adjustmx.buydays,
  423. u_mtrldef_adjustmx.wfjgdays1,
  424. u_mtrldef_adjustmx.wfjgdays
  425. FROM u_mtrldef_adjustmx INNER JOIN
  426. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  427. WHERE u_mtrldef_adjustmx.billid = :arg_taskid USING commit_transaction;
  428. OPEN CUR_INWAERMX;
  429. FETCH CUR_INWAERMX INTO :s_mx.billid[i],
  430. :s_mx.mtrlid[i],
  431. :s_mx.zxmtrlmode[i],
  432. :s_mx.unit_buy[i],
  433. :s_mx.rate_buy[i],
  434. :s_mx.unit_scll[i],
  435. :s_mx.rate_scll[i],
  436. :s_mx.unit_sale[i],
  437. :s_mx.rate_sale[i],
  438. :s_mx.net_weight[i],
  439. :s_mx.gross_weight[i],
  440. :s_mx.zxmtrlmode1[i],
  441. :s_mx.unit_buy1[i],
  442. :s_mx.rate_buy1[i],
  443. :s_mx.unit_scll1[i],
  444. :s_mx.rate_scll1[i],
  445. :s_mx.unit_sale1[i],
  446. :s_mx.rate_sale1[i],
  447. :s_mx.net_weight1[i],
  448. :s_mx.gross_weight1[i],
  449. :s_mx.dftsptid1[i],
  450. :s_mx.dftsptid[i],
  451. :s_mx.billtype[i],
  452. :s_mx.buydays1[i],
  453. :s_mx.buydays[i],
  454. :s_mx.wfjgdays1[i],
  455. :s_mx.wfjgdays[i];
  456. DO WHILE commit_transaction.SQLCode = 0
  457. i++
  458. FETCH CUR_INWAERMX INTO :s_mx.billid[i],
  459. :s_mx.mtrlid[i],
  460. :s_mx.zxmtrlmode[i],
  461. :s_mx.unit_buy[i],
  462. :s_mx.rate_buy[i],
  463. :s_mx.unit_scll[i],
  464. :s_mx.rate_scll[i],
  465. :s_mx.unit_sale[i],
  466. :s_mx.rate_sale[i],
  467. :s_mx.net_weight[i],
  468. :s_mx.gross_weight[i],
  469. :s_mx.zxmtrlmode1[i],
  470. :s_mx.unit_buy1[i],
  471. :s_mx.rate_buy1[i],
  472. :s_mx.unit_scll1[i],
  473. :s_mx.rate_scll1[i],
  474. :s_mx.unit_sale1[i],
  475. :s_mx.rate_sale1[i],
  476. :s_mx.net_weight1[i],
  477. :s_mx.gross_weight1[i],
  478. :s_mx.dftsptid1[i],
  479. :s_mx.dftsptid[i],
  480. :s_mx.billtype[i],
  481. :s_mx.buydays1[i],
  482. :s_mx.buydays[i],
  483. :s_mx.wfjgdays1[i],
  484. :s_mx.wfjgdays[i];
  485. LOOP
  486. CLOSE CUR_INWAERMX;
  487. //检验明细是否读入完整
  488. SELECT COUNT(*) INTO :NO_MXCHECK
  489. FROM u_mtrldef_adjustmx INNER JOIN
  490. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  491. Where u_mtrldef_adjustmx.billid = :arg_taskid USING commit_transaction;
  492. IF commit_transaction.SQLCode <> 0 THEN
  493. rslt = 0
  494. arg_msg = "查询操作失败,调整单明细数量"
  495. GOTO ext
  496. END IF
  497. IF i <> (NO_MXCHECK+1) THEN
  498. rslt = 0
  499. arg_msg = "查询操作失败,调整单明细"
  500. GOTO ext
  501. END IF
  502. it_MXBT = i - 1
  503. IT_NEWBEGIN = FALSE
  504. IT_UPDATEBEGIN = FALSE
  505. ext:
  506. IF rslt = 0 THEN p_reset()
  507. RETURN rslt
  508. end function
  509. PUBLIC FUNCTION Integer newbegin (Long arg_scid, REF String arg_msg);
  510. //重置对象,设定业务类型与关联ID,准备建立新单
  511. //0 fail 1 success
  512. Long rslt = 1,cnt = 0
  513. IF arg_scid < 0 THEN
  514. arg_msg = '请选择分部'
  515. rslt = 0
  516. GOTO ext
  517. END IF
  518. p_reset()
  519. IT_NEWBEGIN = TRUE
  520. IT_UPDATEBEGIN = FALSE
  521. scid = arg_scid
  522. ext:
  523. IF rslt = 0 THEN p_reset()
  524. RETURN rslt
  525. END FUNCTION
  526. public function integer p_getinfo (long arg_billid, ref string arg_msg);
  527. Int rslt = 1
  528. SELECT billid,
  529. billCode,
  530. empid,
  531. Dscrp,
  532. relcode,
  533. flag,
  534. secflag
  535. INTO :billid,
  536. :billCode,
  537. :empid,
  538. :Dscrp,
  539. :relcode,
  540. :flag,
  541. :secflag
  542. FROM u_mtrldef_adjust
  543. Where u_mtrldef_adjust.billid = :arg_billid USING commit_transaction;
  544. IF commit_transaction.SQLCode <> 0 THEN
  545. rslt = 0
  546. arg_msg = '查询订单内容失败(错误订单唯一码)'
  547. GOTO ext
  548. END IF
  549. ext:
  550. RETURN rslt
  551. end function
  552. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit);
  553. //add_dscrp(string arg_newdescppart)
  554. //0 fail 1 SUCCESS
  555. Int rslt = 1
  556. arg_newdescppart = Trim(arg_newdescppart)
  557. IF IT_UPDATEBEGIN OR IT_NEWBEGIN THEN
  558. rslt = 0
  559. arg_msg = "编辑状态下不可用"
  560. GOTO ext
  561. END IF
  562. IF arg_newdescppart = '' THEN
  563. rslt = 0
  564. arg_msg = "要添加内容为空,操作取消"
  565. GOTO ext
  566. END IF
  567. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  568. rslt = 0
  569. GOTO ext
  570. END IF
  571. IF flag = 0 THEN
  572. rslt = 0
  573. arg_msg = "待审核状态下不可用"
  574. GOTO ext
  575. END IF
  576. UPDATE u_mtrldef_adjust
  577. SET DSCRP = DSCRP+' '+:arg_newdescppart
  578. Where u_mtrldef_adjust.billid = :arg_billid USING commit_transaction;
  579. IF commit_transaction.SQLCode <> 0 THEN
  580. rslt = 0
  581. arg_msg = "因网络或其它原因导致添加单据备注操作失败"+"~n"+commit_transaction.SQLErrText
  582. ROLLBACK USING commit_transaction;
  583. GOTO ext
  584. END IF
  585. dscrp = dscrp+' '+arg_newdescppart
  586. IT_NEWBEGIN = FALSE
  587. IT_UPDATEBEGIN = FALSE
  588. ext:
  589. IF arg_ifcommit AND rslt = 1 THEN
  590. COMMIT USING commit_transaction;
  591. END IF
  592. p_reset()
  593. Return (rslt)
  594. end function
  595. public function integer cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
  596. //删除未审核的单据
  597. //0 FAIL, 1 SUCCESS
  598. Int rslt = 1
  599. IF arg_billid <= 0 THEN
  600. rslt = 0
  601. arg_msg = '错误单据唯一码'
  602. GOTO ext
  603. END IF
  604. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  605. rslt = 0
  606. GOTO ext
  607. END IF
  608. if flag <> 0 then
  609. rslt = 0
  610. arg_msg = "单据已经审核,不可以删除"
  611. GOTO ext
  612. end if
  613. Long cnt
  614. cnt = 0
  615. DELETE FROM u_mtrldef_adjust
  616. Where u_mtrldef_adjust.billid = :arg_billid USING commit_transaction;
  617. IF commit_transaction.SQLCode <> 0 THEN
  618. rslt = 0
  619. arg_msg = "删除单据操作失败"+"~n"+commit_transaction.SQLErrText
  620. ROLLBACK USING commit_transaction;
  621. GOTO ext
  622. END IF
  623. DELETE FROM u_mtrldef_adjustmx
  624. Where u_mtrldef_adjustmx.billid = :arg_billid USING commit_transaction;
  625. IF commit_transaction.SQLCode <> 0 THEN
  626. rslt = 0
  627. arg_msg = "删除单据明细操作失败"+"~n"+sqlca.SQLErrText
  628. ROLLBACK USING commit_transaction;
  629. GOTO ext
  630. END IF
  631. IT_NEWBEGIN = FALSE
  632. IT_UPDATEBEGIN = FALSE
  633. IF arg_ifcommit AND rslt = 1 THEN
  634. COMMIT USING commit_transaction;
  635. END IF
  636. ext:
  637. p_reset()
  638. Return (rslt)
  639. end function
  640. PUBLIC FUNCTION Integer updatebegin (Long arg_billid, REF String arg_msg);
  641. //UPDATEbegin(long arg_billid,ref string arg_msg)
  642. //从置对象,设定业务类型与关联ID,准备更新进仓单
  643. //0 fail 1 success
  644. Long rslt = 1,cnt = 0
  645. IF arg_billid <= 0 THEN
  646. rslt = 0
  647. arg_msg = '错误单据唯一码'
  648. GOTO ext
  649. END IF
  650. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  651. rslt = 0
  652. GOTO ext
  653. END IF
  654. IF flag <> 0 THEN
  655. rslt = 0
  656. arg_msg = '已经处于审核或完成等状态,不可以修改,如果订单未完成并要修改请先撤销审核'
  657. GOTO ext
  658. END IF
  659. IT_NEWBEGIN = FALSE
  660. IT_UPDATEBEGIN = TRUE
  661. p_clearmx() //清除明细
  662. ext:
  663. IF rslt = 0 THEN p_reset()
  664. RETURN rslt
  665. END FUNCTION
  666. public function integer cancelpermit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
  667. Int rslt = 1,cnt = 0
  668. DateTime NULLDT
  669. SetNull(NULLDT)
  670. IF arg_billid <= 0 THEN
  671. rslt = 0
  672. arg_msg = '错误单据唯一码'
  673. GOTO ext
  674. END IF
  675. IF getinfo(arg_billid,arg_msg) = 0 THEN
  676. rslt = 0
  677. GOTO ext
  678. END IF
  679. IF flag <> 1 THEN
  680. rslt = 0
  681. arg_msg = "订单只有在已审核状态才可以执行撤消审核,请核对"
  682. GOTO ext
  683. END IF
  684. UPDATE u_mtrldef_adjust
  685. SET Status = 0,Permit_date = :NULLDT,
  686. Permit_Emp = ''
  687. Where billid = :arg_billid AND status = 1 USING commit_transaction ;
  688. IF commit_transaction.SQLCode <> 0 THEN
  689. rslt = 0
  690. arg_msg = "因网络或其它原因导致单据撤消审核操作失败"+"~n"+commit_transaction.SQLErrText
  691. GOTO ext
  692. END IF
  693. IT_NEWBEGIN = FALSE
  694. IT_UPDATEBEGIN = FALSE
  695. ext:
  696. IF rslt = 0 THEN
  697. ROLLBACK USING commit_transaction;
  698. ELSEIF arg_ifcommit AND rslt = 1 THEN
  699. COMMIT USING commit_transaction;
  700. END IF
  701. p_reset()
  702. Return (rslt)
  703. end function
  704. public function integer auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
  705. Int rslt = 1,i
  706. IF arg_billid <= 0 THEN
  707. rslt = 0
  708. arg_msg = '错误单据唯一码'
  709. GOTO ext
  710. END IF
  711. IF getinfo( arg_billid, arg_msg) = 0 THEN
  712. rslt = 0
  713. GOTO ext
  714. END IF
  715. IF flag = 1 THEN
  716. rslt = 0
  717. arg_msg = "调价单还没有审核,请核对"
  718. GOTO ext
  719. END IF
  720. //更新审核标记
  721. UPDATE u_mtrldef_adjust
  722. SET auditingrep = :publ_operator ,
  723. Auditingdate = getdate(),
  724. flag = 1
  725. WHERE billid = :arg_billid
  726. AND flag = 0;
  727. IF sqlca.SQLCode <> 0 THEN
  728. rslt = 0
  729. arg_msg = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
  730. GOTO ext
  731. END IF
  732. UPDATE u_mtrldef SET
  733. zxmtrlmode = u_mtrldef_adjustmx.zxmtrlmode,
  734. unit_buy = u_mtrldef_adjustmx.unit_buy,
  735. rate_buy = u_mtrldef_adjustmx.rate_buy,
  736. unit_scll = u_mtrldef_adjustmx.unit_scll,
  737. rate_scll = u_mtrldef_adjustmx.rate_scll,
  738. unit_sale = u_mtrldef_adjustmx.unit_sale,
  739. rate_sale = u_mtrldef_adjustmx.rate_sale,
  740. net_weight = u_mtrldef_adjustmx.net_weight,
  741. gross_weight = u_mtrldef_adjustmx.gross_weight,
  742. dftsptid = u_mtrldef_adjustmx.dftsptid,
  743. mtrlarea = u_mtrldef_adjustmx.mtrlarea,
  744. mtrlarea1 = u_mtrldef_adjustmx.mtrlarea1,
  745. mtrlarea2 = u_mtrldef_adjustmx.mtrlarea2
  746. FROM u_mtrldef_adjustmx INNER JOIN
  747. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  748. Where u_mtrldef_adjustmx.billid = :arg_billid AND u_mtrldef_adjustmx.billtype = 0;
  749. IF sqlca.SQLCode <> 0 THEN
  750. rslt = 0
  751. arg_msg = '更新物料/产品资料常规属性失败'+sqlca.SQLErrText
  752. GOTO ext
  753. END IF
  754. UPDATE u_mtrldef SET
  755. wfjgdays = u_mtrldef_adjustmx.wfjgdays,
  756. expday = u_mtrldef_adjustmx.expday,
  757. orderdays = u_mtrldef_adjustmx.orderdays,
  758. maxzjday = u_mtrldef_adjustmx.maxzjday,
  759. wfjgdays_bx = u_mtrldef_adjustmx.wfjgdays_bx
  760. FROM u_mtrldef_adjustmx INNER JOIN
  761. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  762. Where u_mtrldef_adjustmx.billid = :arg_billid AND u_mtrldef_adjustmx.billtype = 1;
  763. IF sqlca.SQLCode <> 0 THEN
  764. rslt = 0
  765. arg_msg = '更新物料/产品资料生产属性失败'+sqlca.SQLErrText
  766. GOTO ext
  767. END IF
  768. UPDATE u_mtrldef SET
  769. net_weight = u_mtrldef_adjustmx.net_weight,
  770. gross_weight = u_mtrldef_adjustmx.gross_weight,
  771. dftsptid = u_mtrldef_adjustmx.dftsptid,
  772. buydays = u_mtrldef_adjustmx.buydays,
  773. rebuylot = u_mtrldef_adjustmx.rebuylot,
  774. buy_autoday = u_mtrldef_adjustmx.buy_autoday,
  775. rebuytype = u_mtrldef_adjustmx.rebuytype,
  776. minbuyqty = u_mtrldef_adjustmx.minbuyqty,
  777. ifsendlot = u_mtrldef_adjustmx.ifsendlot,
  778. upbuyqty = u_mtrldef_adjustmx.upbuyqty,
  779. buydec = u_mtrldef_adjustmx.buydec,
  780. buy_ceiling = u_mtrldef_adjustmx.buy_ceiling,
  781. cubage = u_mtrldef_adjustmx.cubage,
  782. buydays_bx = u_mtrldef_adjustmx.buydays_bx,
  783. buyer = u_mtrldef_adjustmx.buyer
  784. FROM u_mtrldef_adjustmx INNER JOIN
  785. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  786. Where u_mtrldef_adjustmx.billid = :arg_billid AND u_mtrldef_adjustmx.billtype = 2;
  787. IF sqlca.SQLCode <> 0 THEN
  788. rslt = 0
  789. arg_msg = '更新物料/产品资料采购属性失败'+sqlca.SQLErrText
  790. GOTO ext
  791. END IF
  792. ext:
  793. IF rslt = 0 THEN
  794. ROLLBACK;
  795. ELSEIF rslt = 1 AND arg_ifcommit THEN
  796. COMMIT;
  797. END IF
  798. RETURN rslt
  799. end function
  800. public function integer c_auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
  801. Int rslt = 1,i
  802. Long cnt
  803. DateTime ls_null
  804. SetNull(ls_null)
  805. IF arg_billid <= 0 THEN
  806. rslt = 0
  807. arg_msg = '错误单据唯一码'
  808. GOTO ext
  809. END IF
  810. IF getinfo( arg_billid, arg_msg) = 0 THEN
  811. rslt = 0
  812. GOTO ext
  813. END IF
  814. IF flag = 0 THEN
  815. rslt = 0
  816. arg_msg = "调价单还没有审核,请核对"
  817. GOTO ext
  818. END IF
  819. //更新审核标记
  820. UPDATE u_mtrldef_adjust
  821. SET auditingrep = '' ,
  822. Auditingdate = :ls_null,
  823. flag = 0
  824. WHERE billid = :arg_billid
  825. AND flag = 1;
  826. IF sqlca.SQLCode <> 0 THEN
  827. rslt = 0
  828. arg_msg = "因网络或其它原因导致单据撤审操作失败"+"~n"+sqlca.SQLErrText
  829. GOTO ext
  830. END IF
  831. cnt = 0
  832. SELECT count(1) INTO :cnt
  833. FROM u_mtrldef_adjustmx INNER JOIN
  834. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  835. WHERE u_mtrldef_adjustmx.billid = :arg_billid AND
  836. u_mtrldef_adjustmx.BILLTYPE = 0 AND
  837. (u_mtrldef.zxmtrlmode <> u_mtrldef_adjustmx.zxmtrlmode OR
  838. u_mtrldef.unit_buy <> u_mtrldef_adjustmx.unit_buy OR
  839. u_mtrldef.rate_buy <> u_mtrldef_adjustmx.rate_buy OR
  840. u_mtrldef.unit_scll <> u_mtrldef_adjustmx.unit_scll OR
  841. u_mtrldef.rate_scll <> u_mtrldef_adjustmx.rate_scll OR
  842. u_mtrldef.unit_sale <> u_mtrldef_adjustmx.unit_sale OR
  843. u_mtrldef.rate_sale <> u_mtrldef_adjustmx.rate_sale OR
  844. u_mtrldef.net_weight <> u_mtrldef_adjustmx.net_weight OR
  845. u_mtrldef.gross_weight <> u_mtrldef_adjustmx.gross_weight OR
  846. u_mtrldef.dftsptid <> u_mtrldef_adjustmx.dftsptid );
  847. IF sqlca.SQLCode <> 0 THEN
  848. rslt = 0
  849. arg_msg = '查询物料/产品资料失败'+sqlca.SQLErrText
  850. GOTO ext
  851. END IF
  852. IF cnt > 0 THEN
  853. rslt = 0
  854. arg_msg = '部分资料数据与当前物料资料数据已不同,不能撤审'
  855. GOTO ext
  856. END IF
  857. cnt = 0
  858. SELECT count(1) INTO :cnt
  859. FROM u_mtrldef_adjustmx INNER JOIN
  860. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  861. WHERE u_mtrldef_adjustmx.billid = :arg_billid AND
  862. u_mtrldef_adjustmx.BILLTYPE = 1 AND
  863. ( u_mtrldef_adjustmx.wfjgdays <> u_mtrldef.wfjgdays );
  864. IF sqlca.SQLCode <> 0 THEN
  865. rslt = 0
  866. arg_msg = '查询物料/产品资料失败'+sqlca.SQLErrText
  867. GOTO ext
  868. END IF
  869. IF cnt > 0 THEN
  870. rslt = 0
  871. arg_msg = '部分资料数据与当前物料资料数据已不同,不能撤审'
  872. GOTO ext
  873. END IF
  874. //检查采购属性
  875. cnt = 0
  876. SELECT count(1) INTO :cnt
  877. FROM u_mtrldef_adjustmx INNER JOIN
  878. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  879. WHERE u_mtrldef_adjustmx.billid = :arg_billid AND
  880. u_mtrldef_adjustmx.BILLTYPE = 2 AND
  881. ( u_mtrldef_adjustmx.buydays <> u_mtrldef.buydays or
  882. u_mtrldef.net_weight <> u_mtrldef_adjustmx.net_weight OR
  883. u_mtrldef.gross_weight <> u_mtrldef_adjustmx.gross_weight OR
  884. u_mtrldef.dftsptid <> u_mtrldef_adjustmx.dftsptid OR
  885. u_mtrldef.rebuylot <> u_mtrldef_adjustmx.rebuylot OR
  886. u_mtrldef.buy_autoday <> u_mtrldef_adjustmx.buy_autoday OR
  887. u_mtrldef.rebuytype <> u_mtrldef_adjustmx.rebuytype OR
  888. u_mtrldef.minbuyqty <> u_mtrldef_adjustmx.minbuyqty OR
  889. u_mtrldef.ifsendlot <> u_mtrldef_adjustmx.ifsendlot OR
  890. u_mtrldef.upbuyqty <> u_mtrldef_adjustmx.upbuyqty OR
  891. u_mtrldef.buydec <> u_mtrldef_adjustmx.buydec OR
  892. u_mtrldef.buy_ceiling <> u_mtrldef_adjustmx.buy_ceiling OR
  893. u_mtrldef.cubage <> u_mtrldef_adjustmx.cubage);
  894. IF sqlca.SQLCode <> 0 THEN
  895. rslt = 0
  896. arg_msg = '查询物料/产品资料失败'+sqlca.SQLErrText
  897. GOTO ext
  898. END IF
  899. IF cnt > 0 THEN
  900. rslt = 0
  901. arg_msg = '部分资料数据与当前物料资料数据已不同,不能撤审'
  902. GOTO ext
  903. END IF
  904. UPDATE u_mtrldef SET
  905. zxmtrlmode = u_mtrldef_adjustmx.zxmtrlmode1,
  906. unit_buy = u_mtrldef_adjustmx.unit_buy1,
  907. rate_buy = u_mtrldef_adjustmx.rate_buy1,
  908. unit_scll = u_mtrldef_adjustmx.unit_scll1,
  909. rate_scll = u_mtrldef_adjustmx.rate_scll1,
  910. unit_sale = u_mtrldef_adjustmx.unit_sale1,
  911. rate_sale = u_mtrldef_adjustmx.rate_sale1
  912. FROM u_mtrldef_adjustmx INNER JOIN
  913. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  914. Where u_mtrldef_adjustmx.billid = :arg_billid and u_mtrldef_adjustmx.billtype=0;
  915. IF sqlca.SQLCode <> 0 THEN
  916. rslt = 0
  917. arg_msg = '更新物料/产品资料失败'+sqlca.SQLErrText
  918. GOTO ext
  919. END IF
  920. UPDATE u_mtrldef SET
  921. wfjgdays = u_mtrldef_adjustmx.wfjgdays1
  922. FROM u_mtrldef_adjustmx INNER JOIN
  923. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  924. Where u_mtrldef_adjustmx.billid = :arg_billid and u_mtrldef_adjustmx.billtype=1;
  925. IF sqlca.SQLCode <> 0 THEN
  926. rslt = 0
  927. arg_msg = '更新物料/产品资料失败'+sqlca.SQLErrText
  928. GOTO ext
  929. END IF
  930. UPDATE u_mtrldef SET
  931. net_weight = u_mtrldef_adjustmx.net_weight1,
  932. gross_weight = u_mtrldef_adjustmx.gross_weight1,
  933. dftsptid = u_mtrldef_adjustmx.dftsptid,
  934. buydays = u_mtrldef_adjustmx.buydays1,
  935. rebuylot = u_mtrldef_adjustmx.rebuylot1,
  936. buy_autoday = u_mtrldef_adjustmx.buy_autoday1,
  937. rebuytype = u_mtrldef_adjustmx.rebuytype1,
  938. minbuyqty = u_mtrldef_adjustmx.minbuyqty1,
  939. ifsendlot = u_mtrldef_adjustmx.ifsendlot1,
  940. upbuyqty = u_mtrldef_adjustmx.upbuyqty1,
  941. buydec = u_mtrldef_adjustmx.buydec1,
  942. buy_ceiling = u_mtrldef_adjustmx.buy_ceiling1,
  943. cubage = u_mtrldef_adjustmx.cubage1,
  944. buyer = u_mtrldef_adjustmx.buyer1
  945. FROM u_mtrldef_adjustmx INNER JOIN
  946. u_mtrldef ON u_mtrldef_adjustmx.mtrlid = u_mtrldef.mtrlid
  947. Where u_mtrldef_adjustmx.billid = :arg_billid AND u_mtrldef_adjustmx.billtype = 2;
  948. IF sqlca.SQLCode <> 0 THEN
  949. rslt = 0
  950. arg_msg = '更新物料/产品资料采购属性失败'+sqlca.SQLErrText
  951. GOTO ext
  952. END IF
  953. ext:
  954. IF rslt = 0 THEN
  955. ROLLBACK;
  956. ELSEIF rslt = 1 AND arg_ifcommit THEN
  957. COMMIT;
  958. END IF
  959. RETURN rslt
  960. end function
  961. PUBLIC FUNCTION Integer secauditing (Long arg_billid, REF String arg_msg, Boolean arg_ifcommit);
  962. Int rslt = 1,i
  963. IF arg_billid <= 0 THEN
  964. rslt = 0
  965. arg_msg = '错误单据唯一码'
  966. GOTO ext
  967. END IF
  968. IF getinfo( arg_billid, arg_msg) = 0 THEN
  969. rslt = 0
  970. GOTO ext
  971. END IF
  972. IF flag = 2 THEN
  973. rslt = 0
  974. arg_msg = "调价单已高审,请核对"
  975. GOTO ext
  976. END IF
  977. //更新审核标记
  978. UPDATE u_mtrldef_adjust
  979. SET secauditingrep = :publ_operator ,
  980. secauditingdate = getdate(),
  981. flag = 2
  982. WHERE billid = :arg_billid
  983. AND flag = 1;
  984. IF sqlca.SQLCode <> 0 THEN
  985. rslt = 0
  986. arg_msg = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
  987. GOTO ext
  988. END IF
  989. ext:
  990. IF rslt = 0 THEN
  991. ROLLBACK;
  992. ELSEIF rslt = 1 AND arg_ifcommit THEN
  993. COMMIT;
  994. END IF
  995. RETURN rslt
  996. END FUNCTION
  997. PUBLIC FUNCTION Integer c_secauditing (Long arg_billid, REF String arg_msg, Boolean arg_ifcommit);
  998. Int rslt = 1,i
  999. DateTime ls_null
  1000. SetNull(ls_null)
  1001. IF arg_billid <= 0 THEN
  1002. rslt = 0
  1003. arg_msg = '错误单据唯一码'
  1004. GOTO ext
  1005. END IF
  1006. IF getinfo( arg_billid, arg_msg) = 0 THEN
  1007. rslt = 0
  1008. GOTO ext
  1009. END IF
  1010. IF flag <> 2 THEN
  1011. rslt = 0
  1012. arg_msg = "调价单未高审,不能撤审,请核对"
  1013. GOTO ext
  1014. END IF
  1015. //更新审核标记
  1016. UPDATE u_mtrldef_adjust
  1017. SET secauditingrep = '' ,
  1018. secauditingdate = :ls_null,
  1019. flag = 1
  1020. WHERE billid = :arg_billid
  1021. AND flag = 2;
  1022. IF sqlca.SQLCode <> 0 THEN
  1023. rslt = 0
  1024. arg_msg = "因网络或其它原因导致单据撤审操作失败"+"~n"+sqlca.SQLErrText
  1025. GOTO ext
  1026. END IF
  1027. ext:
  1028. IF rslt = 0 THEN
  1029. ROLLBACK;
  1030. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1031. COMMIT;
  1032. END IF
  1033. RETURN rslt
  1034. END FUNCTION
  1035. public function integer acceptmx (s_mtrldef_adjust arg_mx, ref string arg_msg);Long rslt = 1,cnt = 0,LS_i
  1036. //写入内容
  1037. For LS_i = 1 To UpperBound(arg_mx.mtrlid)
  1038. If arg_mx.mtrlid[LS_i] = 0 Then Continue
  1039. it_mxbt++
  1040. s_mx.mtrlid[it_mxbt] = arg_mx.mtrlid[LS_i]
  1041. s_mx.zxmtrlmode[it_mxbt] = arg_mx.zxmtrlmode[LS_i]
  1042. s_mx.unit_buy[it_mxbt] = arg_mx.unit_buy[LS_i]
  1043. s_mx.rate_buy[it_mxbt] = arg_mx.rate_buy[LS_i]
  1044. s_mx.unit_scll[it_mxbt] = arg_mx.unit_scll[LS_i]
  1045. s_mx.rate_scll[it_mxbt] = arg_mx.rate_scll[LS_i]
  1046. s_mx.unit_sale[it_mxbt] = arg_mx.unit_sale[LS_i]
  1047. s_mx.rate_sale[it_mxbt] = arg_mx.rate_sale[LS_i]
  1048. s_mx.zxmtrlmode1[it_mxbt] = arg_mx.zxmtrlmode1[LS_i]
  1049. s_mx.unit_buy1[it_mxbt] = arg_mx.unit_buy1[LS_i]
  1050. s_mx.rate_buy1[it_mxbt] = arg_mx.rate_buy1[LS_i]
  1051. s_mx.unit_scll1[it_mxbt] = arg_mx.unit_scll1[LS_i]
  1052. s_mx.rate_scll1[it_mxbt] = arg_mx.rate_scll1[LS_i]
  1053. s_mx.unit_sale1[it_mxbt] = arg_mx.unit_sale1[LS_i]
  1054. s_mx.rate_sale1[it_mxbt] = arg_mx.rate_sale1[LS_i]
  1055. s_mx.wfjgdays1[it_mxbt] = arg_mx.wfjgdays1[LS_i]
  1056. s_mx.wfjgdays[it_mxbt] = arg_mx.wfjgdays[LS_i]
  1057. s_mx.billtype[it_mxbt] = arg_mx.billtype[LS_i]
  1058. s_mx.mtrlarea[it_mxbt] = arg_mx.mtrlarea[LS_i]
  1059. s_mx.mtrlarea1[it_mxbt] = arg_mx.mtrlarea1[LS_i]
  1060. s_mx.mtrlarea2[it_mxbt] = arg_mx.mtrlarea2[LS_i]
  1061. //采购属性
  1062. s_mx.buydays1[it_mxbt] = arg_mx.buydays1[LS_i]
  1063. s_mx.buydays[it_mxbt] = arg_mx.buydays[LS_i]
  1064. s_mx.net_weight[it_mxbt] = arg_mx.net_weight[LS_i]
  1065. s_mx.gross_weight[it_mxbt] = arg_mx.gross_weight[LS_i]
  1066. s_mx.dftsptid[it_mxbt] = arg_mx.dftsptid[LS_i]
  1067. s_mx.net_weight1[it_mxbt] = arg_mx.net_weight1[LS_i]
  1068. s_mx.gross_weight1[it_mxbt] = arg_mx.gross_weight1[LS_i]
  1069. s_mx.dftsptid1[it_mxbt] = arg_mx.dftsptid1[LS_i]
  1070. s_mx.rebuylot[it_mxbt] = arg_mx.rebuylot[LS_i]
  1071. s_mx.rebuylot1[it_mxbt] = arg_mx.rebuylot1[LS_i]
  1072. s_mx.buy_autoday[it_mxbt] = arg_mx.buy_autoday[LS_i]
  1073. s_mx.buy_autoday1[it_mxbt] = arg_mx.buy_autoday1[LS_i]
  1074. s_mx.rebuytype[it_mxbt] = arg_mx.rebuytype[LS_i]
  1075. s_mx.rebuytype1[it_mxbt] = arg_mx.rebuytype1[LS_i]
  1076. s_mx.minbuyqty[it_mxbt] = arg_mx.minbuyqty[LS_i]
  1077. s_mx.minbuyqty1[it_mxbt] = arg_mx.minbuyqty1[LS_i]
  1078. s_mx.ifsendlot[it_mxbt] = arg_mx.ifsendlot[LS_i]
  1079. s_mx.ifsendlot1[it_mxbt] = arg_mx.ifsendlot1[LS_i]
  1080. s_mx.upbuyqty[it_mxbt] = arg_mx.upbuyqty[LS_i]
  1081. s_mx.upbuyqty1[it_mxbt] = arg_mx.upbuyqty1[LS_i]
  1082. s_mx.buydec[it_mxbt] = arg_mx.buydec[LS_i]
  1083. s_mx.buydec1[it_mxbt] = arg_mx.buydec1[LS_i]
  1084. s_mx.buy_ceiling[it_mxbt] = arg_mx.buy_ceiling[LS_i]
  1085. s_mx.buy_ceiling1[it_mxbt] = arg_mx.buy_ceiling1[LS_i]
  1086. s_mx.cubage[it_mxbt] = arg_mx.cubage[LS_i]
  1087. s_mx.cubage1[it_mxbt] = arg_mx.cubage1[LS_i]
  1088. s_mx.expday[it_mxbt] = arg_mx.expday[LS_i]
  1089. s_mx.expday1[it_mxbt] = arg_mx.expday1[LS_i]
  1090. s_mx.orderdays[it_mxbt] = arg_mx.orderdays[LS_i]
  1091. s_mx.orderdays1[it_mxbt] = arg_mx.orderdays1[LS_i]
  1092. s_mx.maxzjday[it_mxbt] = arg_mx.maxzjday[LS_i]
  1093. s_mx.maxzjday1[it_mxbt] = arg_mx.maxzjday1[LS_i]
  1094. s_mx.wfjgdays_bx[it_mxbt] = arg_mx.wfjgdays_bx[LS_i]
  1095. s_mx.wfjgdays_bx1[it_mxbt] = arg_mx.wfjgdays_bx1[LS_i]
  1096. s_mx.buydays_bx[it_mxbt] = arg_mx.buydays_bx[LS_i]
  1097. s_mx.buydays_bx1[it_mxbt] = arg_mx.buydays_bx1[LS_i]
  1098. s_mx.buyer1[it_mxbt] = arg_mx.buyer1[LS_i]
  1099. s_mx.buyer[it_mxbt] = arg_mx.buyer[LS_i]
  1100. Next
  1101. //ext:
  1102. If rslt = 0 Then p_clearmx()
  1103. Return(rslt)
  1104. end function
  1105. on uo_mtrldef_adjust.create
  1106. call super::create
  1107. TriggerEvent( this, "constructor" )
  1108. end on
  1109. on uo_mtrldef_adjust.destroy
  1110. TriggerEvent( this, "destructor" )
  1111. call super::destroy
  1112. end on