uo_rs_wage_change.sru 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. $PBExportHeader$uo_rs_wage_change.sru
  2. forward
  3. global type uo_rs_wage_change from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_rs_wage_change from nonvisualobject
  7. end type
  8. global uo_rs_wage_change uo_rs_wage_change
  9. type variables
  10. PUBLIC PROTECTEDWRITE Long billid
  11. PUBLIC PROTECTEDWRITE String billcode
  12. PUBLIC PROTECTEDWRITE DateTime opdate
  13. PUBLIC PROTECTEDWRITE String opemp
  14. PUBLIC PROTECTEDWRITE DateTime moddate
  15. PUBLIC PROTECTEDWRITE String modemp
  16. PUBLIC PROTECTEDWRITE Int flag
  17. PUBLIC PROTECTEDWRITE Int pflag
  18. PUBLIC PROTECTEDWRITE DateTime auditingdate
  19. PUBLIC PROTECTEDWRITE String auditingrep
  20. Long scid
  21. DateTime billdate
  22. String dscrp
  23. String rep
  24. String relcode
  25. Long empid
  26. s_rs_wage_change_mx taskworkmx[]
  27. Transaction commit_transaction
  28. Long it_mxbt = 0
  29. Boolean it_newbegin = FALSE
  30. Boolean it_updatebegin = FALSE
  31. end variables
  32. forward prototypes
  33. public function integer p_clearmx ()
  34. public function integer p_reset ()
  35. public function integer updatebegin (long arg_billid, ref string arg_msg)
  36. public function integer save (ref string arg_msg, boolean arg_ifcommit)
  37. public function integer del (long arg_billid, ref string arg_msg)
  38. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit)
  39. public function integer p_getinfo (long arg_billid, ref string arg_msg)
  40. public function integer acceptmx (long arg_wageid, string arg_wagename, decimal arg_wageamt, string arg_mxdscrp, ref string arg_msg)
  41. public function integer getinfo (long arg_billid, ref string arg_msg)
  42. public function integer auditing (long arg_billid, string arg_opemp, boolean arg_ifcommit, ref string arg_msg)
  43. public function integer newbegin ()
  44. public function integer auditing_p (long arg_billid, string arg_opemp, boolean arg_ifcommit, ref string arg_msg)
  45. public function integer auditing_p_cancel (long arg_billid, boolean arg_ifcommit, ref string arg_msg)
  46. end prototypes
  47. public function integer p_clearmx ();//INT p_clearmx()
  48. //清除明细
  49. it_mxbt=0
  50. RETURN 1
  51. end function
  52. public function integer p_reset ();//INT p_RESET()
  53. //清除对象及其明细
  54. billid = 0
  55. billcode = ''
  56. opemp = ''
  57. auditingrep = ''
  58. flag = 0
  59. rep = ""
  60. empid = 0
  61. dscrp = ''
  62. relcode = ''
  63. it_newbegin = FALSE
  64. it_updatebegin = FALSE
  65. //清除明细
  66. P_CLEARMX()
  67. RETURN 1
  68. end function
  69. public function integer updatebegin (long arg_billid, ref string arg_msg);Int rslt = 1
  70. IF arg_billid <= 0 THEN
  71. rslt = 0
  72. GOTO ext
  73. END IF
  74. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  75. rslt = 0
  76. GOTO ext
  77. END IF
  78. IF flag = 1 THEN
  79. rslt = 0
  80. arg_msg = '单据已经审核,不可以修改'
  81. GOTO ext
  82. END IF
  83. billid = arg_billid
  84. p_clearmx()
  85. it_newbegin = FALSE
  86. it_updatebegin = TRUE
  87. ext:
  88. IF rslt = 0 THEN p_reset()
  89. RETURN rslt
  90. end function
  91. public function integer save (ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1,cnt = 0,i
  92. DateTime server_dt
  93. Long ls_newid
  94. String ls_sccode
  95. IF IsNull(empid) THEN empid = 0
  96. IF IsNull(relcode) THEN relcode = ''
  97. IF IsNull(rep) THEN rep = ''
  98. IF IsNull(scid) THEN scid = 0
  99. IF IsNull(dscrp) THEN dscrp = ''
  100. IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
  101. rslt = 0
  102. arg_msg = "非编辑状态不可以提交"
  103. GOTO ext
  104. END IF
  105. cnt = 0
  106. SELECT count(*) INTO :cnt
  107. FROM u_scdef
  108. Where scid = :scid USING commit_transaction;
  109. IF commit_transaction.SQLCode <> 0 THEN
  110. arg_msg = '查询项目资料失败,'+commit_transaction.SQLErrText
  111. rslt = 0
  112. GOTO ext
  113. END IF
  114. IF cnt <> 1 THEN
  115. arg_msg = '项目资料不存在或重复'
  116. rslt = 0
  117. GOTO ext
  118. END IF
  119. SELECT Top 1 getdate() INTO :server_dt FROM u_user USING commit_transaction;
  120. IF commit_transaction.SQLCode <> 0 THEN
  121. rslt = 0
  122. arg_msg = "查询操作失败,日期 "
  123. GOTO ext
  124. END IF
  125. IF rep = '' THEN
  126. rslt = 0
  127. arg_msg = '请输入经手人'
  128. GOTO ext
  129. END IF
  130. IF it_mxbt = 0 THEN //
  131. rslt = 0
  132. arg_msg = "没有明细"
  133. GOTO ext
  134. END IF
  135. IF Year(Date(billdate)) < 2000 OR IsNull(billdate) THEN
  136. rslt = 0
  137. arg_msg = "缺少计件时间或不合理"
  138. GOTO ext
  139. END IF
  140. SELECT count(*) INTO :cnt
  141. FROM u_rs_empinfo
  142. Where empid = :empid USING commit_transaction;
  143. IF commit_transaction.SQLCode <> 0 THEN
  144. rslt = 0
  145. arg_msg = "查询员工资料失败!"
  146. GOTO ext
  147. END IF
  148. IF cnt <> 1 THEN
  149. rslt = 0
  150. arg_msg = "不存在员工资料!"
  151. GOTO ext
  152. END IF
  153. ////////////////////////////////////////////// //开始区分:新建/更新 处理
  154. IF billid = 0 THEN //新建
  155. ls_newid = f_sys_scidentity(0,"u_rs_wage_change","billid",arg_msg,TRUE,id_sqlca)
  156. IF ls_newid < 0 THEN
  157. rslt = 0
  158. GOTO ext
  159. END IF
  160. IF f_get_sccode(scid,sqlca,ls_sccode,arg_msg) = 0 THEN
  161. rslt = 0
  162. GOTO ext
  163. END IF
  164. billcode = getid(0,ls_sccode + "RW",Date(server_dt),TRUE,commit_transaction) //取得新单据编号
  165. IF billcode = "err" THEN
  166. billcode = ''
  167. rslt = 0
  168. arg_msg = "无法获取单据编号"
  169. GOTO ext
  170. END IF
  171. INSERT INTO u_rs_wage_change (
  172. billid,
  173. billdate,
  174. empid,
  175. rep,
  176. relcode,
  177. dscrp,
  178. scid,
  179. billcode,
  180. opemp,
  181. opdate)
  182. VALUES (
  183. :ls_newid,
  184. :billdate,
  185. :empid,
  186. :rep,
  187. :relcode,
  188. :dscrp,
  189. :scid,
  190. :billcode,
  191. :publ_operator,
  192. :server_dt) USING commit_transaction;
  193. IF commit_transaction.SQLCode <> 0 THEN
  194. rslt = 0
  195. arg_msg = "因网络或其它原因导致插入操作失败>>"+"~n"+sqlca.SQLErrText
  196. GOTO ext
  197. END IF
  198. //
  199. billid = ls_newid
  200. FOR i = 1 TO it_mxbt
  201. INSERT INTO u_rs_wage_change_mx (
  202. billid,
  203. wageid,
  204. wageamt,
  205. mxdscrp)
  206. VALUES (
  207. :ls_newid,
  208. :taskworkmx[i].wageid,
  209. :taskworkmx[i].wageamt,
  210. :taskworkmx[i].mxdscrp) USING commit_transaction;
  211. IF commit_transaction.SQLCode <> 0 THEN
  212. billid = 0 //还原noticeid
  213. rslt = 0
  214. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
  215. ROLLBACK ;
  216. GOTO ext
  217. END IF
  218. NEXT
  219. ELSE //////////////////////////////////////////////// //更新
  220. UPDATE u_rs_wage_change
  221. SET billdate = :billdate,
  222. empid = :empid,
  223. rep = :rep,
  224. relcode = :relcode,
  225. dscrp = :dscrp,
  226. modemp = :publ_operator,
  227. moddate = :server_dt
  228. WHERE billid = :billid
  229. AND flag = 0 USING commit_transaction;
  230. IF commit_transaction.SQLCode <> 0 OR commit_transaction.SQLNRows <= 0 THEN
  231. rslt = 0
  232. arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
  233. GOTO ext
  234. END IF
  235. // 删除原有明细
  236. DELETE FROM u_rs_wage_change_mx
  237. Where billid = :billid USING commit_transaction;
  238. IF commit_transaction.SQLCode <> 0 THEN
  239. rslt = 0
  240. arg_msg = "删除旧有明细操作失败"+"~n"+sqlca.SQLErrText
  241. GOTO ext
  242. END IF
  243. FOR i = 1 TO it_mxbt
  244. INSERT INTO u_rs_wage_change_mx (
  245. billid,
  246. wageid,
  247. wageamt,
  248. mxdscrp)
  249. VALUES (
  250. :billid,
  251. :taskworkmx[i].wageid,
  252. :taskworkmx[i].wageamt,
  253. :taskworkmx[i].mxdscrp) USING commit_transaction;
  254. IF commit_transaction.SQLCode <> 0 THEN
  255. rslt = 0
  256. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
  257. GOTO ext
  258. END IF
  259. NEXT
  260. //
  261. END IF
  262. it_newbegin = FALSE
  263. it_updatebegin = FALSE
  264. ext:
  265. IF rslt = 0 THEN
  266. ROLLBACK;
  267. p_clearmx()
  268. ELSEIF rslt = 1 AND arg_ifcommit THEN
  269. COMMIT;
  270. END IF
  271. Return(rslt)
  272. end function
  273. public function integer del (long arg_billid, ref string arg_msg);Int rslt = 1
  274. IF arg_billid <= 0 THEN
  275. rslt = 0
  276. arg_msg = "没有删除对象,操作取消"
  277. GOTO ext
  278. END IF
  279. rslt = p_getinfo(arg_billid,arg_msg)
  280. IF rslt = 0 THEN GOTO ext
  281. IF flag = 1 THEN
  282. rslt = 0
  283. arg_msg = "单据已经审核,不可以删除"
  284. GOTO ext
  285. END IF
  286. DELETE FROM u_rs_wage_change
  287. WHERE u_rs_wage_change.billid = :arg_billid
  288. USING commit_transaction;
  289. IF commit_transaction.SQLCode <> 0 THEN
  290. rslt = 0
  291. arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
  292. GOTO ext
  293. END IF
  294. DELETE FROM u_rs_wage_change_mx
  295. WHERE u_rs_wage_change_mx.billid = :arg_billid
  296. USING commit_transaction;
  297. IF commit_transaction.SQLCode <> 0 THEN
  298. rslt = 0
  299. arg_msg = "删除单据明细操作失败"+"~n"+sqlca.SQLErrText
  300. GOTO ext
  301. END IF
  302. it_newbegin = FALSE
  303. it_updatebegin = FALSE
  304. IF rslt = 0 THEN
  305. ROLLBACK;
  306. p_reset()
  307. ELSEIF rslt = 1 THEN
  308. COMMIT;
  309. END IF
  310. ext:
  311. Return (rslt)
  312. end function
  313. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  314. arg_newdescppart = Trim(arg_newdescppart)
  315. IF arg_billid <= 0 THEN
  316. rslt = 0
  317. arg_msg = "没有删除对象,操作取消"
  318. GOTO ext
  319. END IF
  320. IF it_newbegin OR it_updatebegin THEN
  321. rslt = 0
  322. arg_msg = "编辑状态下不可以执行,操作取消"
  323. GOTO ext
  324. END IF
  325. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  326. rslt = 0
  327. GOTO ext
  328. END IF
  329. IF flag = 0 and pflag = 0 THEN
  330. rslt = 0
  331. arg_msg = "非审核状态下不可用"
  332. GOTO ext
  333. END IF
  334. UPDATE u_rs_wage_change
  335. SET dscrp = dscrp+' '+:arg_newdescppart
  336. WHERE u_rs_wage_change.billid = :billid
  337. USING commit_transaction;
  338. IF commit_transaction.SQLCode <> 0 THEN
  339. rslt = 0
  340. arg_msg = "因网络或其它原因导致添加单据备注操作失败"+"~n"+sqlca.SQLErrText
  341. GOTO ext
  342. END IF
  343. dscrp = dscrp+' '+arg_newdescppart
  344. ext:
  345. IF rslt = 0 THEN
  346. ROLLBACK;
  347. ELSEIF rslt = 1 AND arg_ifcommit THEN
  348. COMMIT;
  349. END IF
  350. RETURN rslt
  351. end function
  352. public function integer p_getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
  353. IF arg_billid <= 0 THEN
  354. rslt = 0
  355. arG_MSG = "非法的单据唯一码"
  356. GOTO ext
  357. END IF
  358. SELECT billid,
  359. billdate,
  360. rep,
  361. relcode,
  362. dscrp,
  363. scid,
  364. billcode,
  365. empid,
  366. flag,
  367. pflag,
  368. scid
  369. INTO
  370. :billid,
  371. :billdate,
  372. :rep,
  373. :relcode,
  374. :dscrp,
  375. :scid,
  376. :billcode,
  377. :empid,
  378. :flag,
  379. :pflag,
  380. :scid
  381. FROM u_rs_wage_change
  382. WHERE u_rs_wage_change.billid = :arg_billid
  383. USING commit_transaction;
  384. IF commit_transaction.SQLCode <> 0 THEN
  385. rslt = 0
  386. arG_MSG = "查询操作失败(错误单据唯一码),单据"+commit_transaction.SQLErrText
  387. GOTO ext
  388. END IF
  389. billid = arg_billid
  390. ext:
  391. IF rslt = 0 THEN p_reset()
  392. RETURN rslt
  393. end function
  394. public function integer acceptmx (long arg_wageid, string arg_wagename, decimal arg_wageamt, string arg_mxdscrp, ref string arg_msg);Int rslt = 1
  395. Long cnt = 0
  396. IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
  397. rslt = 0
  398. arg_msg = "非编辑状态不可以使用,操作取消"
  399. GOTO ext
  400. END IF
  401. IF IsNull(arg_wageid) THEN arg_wageid = 0
  402. IF IsNull(arg_wageamt) THEN arg_wageamt = 0
  403. IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
  404. IF arg_wageid = 0 THEN
  405. rslt = 1
  406. GOTO ext
  407. END IF
  408. SELECT count(*) INTO :cnt
  409. FROM u_gz_wageitem
  410. WHERE wageid = :arg_wageid
  411. USING commit_transaction;
  412. IF commit_transaction.SQLCode <> 0 THEN
  413. arg_msg = '查询工资项目:'+arg_wagename+',失败,'+commit_transaction.SQLErrText
  414. rslt = 0
  415. GOTO ext
  416. END IF
  417. IF cnt <> 1 THEN
  418. arg_msg = '工资项目:'+arg_wagename+',资料重复或不存在,请核对'
  419. rslt = 0
  420. GOTO ext
  421. END IF
  422. IF arg_wageamt < 0 THEN
  423. arg_msg = '错误的金额'
  424. rslt = 0
  425. GOTO ext
  426. END IF
  427. //写入内容
  428. it_mxbt++
  429. taskworkmx[it_mxbt].wageid = arg_wageid
  430. taskworkmx[it_mxbt].wageamt = arg_wageamt
  431. taskworkmx[it_mxbt].mxdscrp = arg_mxdscrp
  432. ext:
  433. IF rslt = 0 THEN p_clearmx()
  434. Return(rslt)
  435. end function
  436. public function integer getinfo (long arg_billid, ref string arg_msg);Int rslt = 1,i = 1,no_mxcheck = 0
  437. IF arg_billid <= 0 THEN
  438. rslt = 0
  439. arg_msg = '错误单据唯一码'
  440. GOTO ext
  441. END IF
  442. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  443. rslt = 0
  444. GOTO ext
  445. END IF
  446. //用游标读取明细
  447. DECLARE cur_inwaermx CURSOR FOR
  448. SELECT u_rs_wage_change_mx.wageid,
  449. u_rs_wage_change_mx.wageamt,
  450. u_gz_wageitem.wagename
  451. FROM u_rs_wage_change_mx,u_gz_wageitem
  452. WHERE u_rs_wage_change_mx.billid = :arg_billid
  453. AND u_rs_wage_change_mx.wageid = u_gz_wageitem.wageid
  454. USING commit_transaction;
  455. OPEN cur_inwaermx;
  456. FETCH cur_inwaermx INTO :taskworkmx[i].wageid,:taskworkmx[i].wageamt,
  457. :taskworkmx[i].wagename;
  458. DO WHILE sqlca.SQLCode = 0
  459. i++
  460. FETCH cur_inwaermx INTO :taskworkmx[i].wageid,:taskworkmx[i].wageamt,
  461. :taskworkmx[i].wagename;
  462. LOOP
  463. CLOSE cur_inwaermx;
  464. //检验明细是否读入完整
  465. SELECT count(*) INTO :no_mxcheck
  466. FROM u_rs_wage_change_mx
  467. WHERE u_rs_wage_change_mx.billid = :arg_billid
  468. USING commit_transaction;
  469. IF commit_transaction.SQLCode <> 0 THEN
  470. rslt = 0
  471. arg_msg = "查询操作失败,单据明细数量"
  472. GOTO ext
  473. END IF
  474. IF i <> (no_mxcheck+1) THEN
  475. rslt = 0
  476. arg_msg = "查询操作失败,单据明细"
  477. GOTO ext
  478. END IF
  479. it_mxbt = i - 1
  480. it_newbegin = FALSE
  481. it_updatebegin = FALSE
  482. ext:
  483. IF rslt = 0 THEN p_reset()
  484. RETURN rslt
  485. end function
  486. public function integer auditing (long arg_billid, string arg_opemp, boolean arg_ifcommit, ref string arg_msg);Long i
  487. Int rslt = 1
  488. IF arg_billid <= 0 THEN
  489. rslt = 0
  490. GOTO ext
  491. END IF
  492. IF getinfo(arg_billid,arg_msg) = 0 THEN
  493. rslt = 0
  494. GOTO ext
  495. END IF
  496. IF pflag = 0 THEN
  497. rslt = 0
  498. arg_msg = '单据未经初审,不可以再审核'
  499. GOTO ext
  500. END IF
  501. IF flag = 1 THEN
  502. rslt = 0
  503. arg_msg = '单据已经审核,不可以再审核'
  504. GOTO ext
  505. END IF
  506. UPDATE u_rs_wage_change
  507. SET u_rs_wage_change.flag = 1,
  508. u_rs_wage_change.auditingrep = :arg_opemp,
  509. u_rs_wage_change.auditingdate = getdate()
  510. WHERE u_rs_wage_change.billid = :arg_billid
  511. AND u_rs_wage_change.flag = 0
  512. AND u_rs_wage_change.pflag = 1
  513. USING commit_transaction;
  514. IF commit_transaction.SQLCode <> 0 THEN
  515. rslt = 0
  516. arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
  517. GOTO ext
  518. ELSEIF commit_transaction.SQLNRows = 0 THEN
  519. rslt = 0
  520. arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  521. GOTO ext
  522. END IF
  523. DELETE FROM u_rs_wagemx Where empid = :empid USING commit_transaction;
  524. IF commit_transaction.SQLCode <> 0 THEN
  525. arg_msg = '清除员工原标准薪酬失败,'+commit_transaction.SQLErrText
  526. rslt = 0
  527. GOTO ext
  528. END IF
  529. FOR i = 1 TO it_mxbt
  530. INSERT INTO u_rs_wagemx(empid,wageid,wageamt)
  531. VALUES(:empid,:taskworkmx[i].wageid,:taskworkmx[i].wageamt)
  532. USING commit_transaction;
  533. IF commit_transaction.SQLCode <> 0 THEN
  534. arg_msg = '设定员工工资项目:'+taskworkmx[i].wagename+',标准薪酬失败,'+commit_transaction.SQLErrText
  535. rslt = 0
  536. GOTO ext
  537. END IF
  538. NEXT
  539. ext:
  540. IF rslt = 0 THEN
  541. ROLLBACK USING commit_transaction;
  542. ELSEIF rslt = 1 AND arg_ifcommit THEN
  543. COMMIT USING commit_transaction;
  544. END IF
  545. RETURN rslt
  546. end function
  547. public function integer newbegin ();
  548. p_reset()
  549. it_newbegin=TRUE
  550. it_updatebegin=FALSE
  551. return 1
  552. end function
  553. public function integer auditing_p (long arg_billid, string arg_opemp, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  554. IF arg_billid <= 0 THEN
  555. rslt = 0
  556. GOTO ext
  557. END IF
  558. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  559. rslt = 0
  560. GOTO ext
  561. END IF
  562. IF pflag = 1 THEN
  563. rslt = 0
  564. arg_msg = '单据已经审核,不可以再审核'
  565. GOTO ext
  566. END IF
  567. UPDATE u_rs_wage_change
  568. SET u_rs_wage_change.pflag = 1,
  569. u_rs_wage_change.pauditemp = :arg_opemp,
  570. u_rs_wage_change.pauditdate = getdate()
  571. WHERE u_rs_wage_change.billid = :arg_billid
  572. AND u_rs_wage_change.pflag = 0
  573. USING commit_transaction;
  574. IF commit_transaction.SQLCode <> 0 THEN
  575. rslt = 0
  576. arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
  577. GOTO ext
  578. ELSEIF commit_transaction.SQLNRows = 0 THEN
  579. rslt = 0
  580. arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  581. GOTO ext
  582. END IF
  583. ext:
  584. IF rslt = 0 THEN
  585. ROLLBACK USING commit_transaction;
  586. ELSEIF rslt = 1 AND arg_ifcommit THEN
  587. COMMIT USING commit_transaction;
  588. END IF
  589. RETURN rslt
  590. end function
  591. public function integer auditing_p_cancel (long arg_billid, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  592. datetime null_dt
  593. setnull(null_dt)
  594. IF arg_billid <= 0 THEN
  595. rslt = 0
  596. GOTO ext
  597. END IF
  598. IF p_getinfo(arg_billid,arg_msg) = 0 THEN
  599. rslt = 0
  600. GOTO ext
  601. END IF
  602. IF flag = 1 THEN
  603. rslt = 0
  604. arg_msg = '单据已经人事审核,不可以撤审'
  605. GOTO ext
  606. END IF
  607. UPDATE u_rs_wage_change
  608. SET u_rs_wage_change.pflag = 0,
  609. u_rs_wage_change.pauditemp = '',
  610. u_rs_wage_change.pauditdate = :null_dt
  611. WHERE u_rs_wage_change.billid = :arg_billid
  612. AND u_rs_wage_change.pflag = 1
  613. and u_rs_wage_change.flag = 0
  614. USING commit_transaction;
  615. IF commit_transaction.SQLCode <> 0 THEN
  616. rslt = 0
  617. arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
  618. GOTO ext
  619. ELSEIF commit_transaction.SQLNRows = 0 THEN
  620. rslt = 0
  621. arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  622. GOTO ext
  623. END IF
  624. ext:
  625. IF rslt = 0 THEN
  626. ROLLBACK USING commit_transaction;
  627. ELSEIF rslt = 1 AND arg_ifcommit THEN
  628. COMMIT USING commit_transaction;
  629. END IF
  630. RETURN rslt
  631. end function
  632. on uo_rs_wage_change.create
  633. call super::create
  634. TriggerEvent( this, "constructor" )
  635. end on
  636. on uo_rs_wage_change.destroy
  637. TriggerEvent( this, "destructor" )
  638. call super::destroy
  639. end on