uo_employ.sru 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. $PBExportHeader$uo_employ.sru
  2. forward
  3. global type uo_employ from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_employ from nonvisualobject
  7. end type
  8. global uo_employ uo_employ
  9. type variables
  10. Long employid
  11. String employcode
  12. String employname
  13. String duty
  14. DateTime employdate
  15. String firsttestor
  16. String retestor
  17. Long ifemploy
  18. String employway
  19. string dscrp
  20. Long flag
  21. String opemp
  22. DateTime opdate
  23. String modemp
  24. DateTime moddate
  25. String auditrep
  26. DateTime auditdate
  27. string dscrp2
  28. Long addempid
  29. Boolean it_newbegin = False //新建标志
  30. Boolean it_updatebegin = False //修改标志
  31. end variables
  32. forward prototypes
  33. public function integer p_reset ()
  34. public function integer p_getinfo (long arg_employid, ref string arg_msg)
  35. public function integer newbegin ()
  36. public function integer updatebegin (long arg_employid, ref string arg_msg)
  37. public function integer save (ref string arg_msg, boolean arg_ifcommit)
  38. public function integer del (long arg_employid, ref string arg_msg)
  39. public function integer auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit)
  40. public function integer c_auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit)
  41. end prototypes
  42. public function integer p_reset ();employid = 0
  43. employcode = ''
  44. employname = ''
  45. duty = ''
  46. firsttestor = ''
  47. retestor = ''
  48. ifemploy = 0
  49. employway = ''
  50. flag = 0
  51. dscrp2 = ''
  52. dscrp = ''
  53. it_newbegin=false
  54. it_updatebegin=false
  55. return 1
  56. end function
  57. public function integer p_getinfo (long arg_employid, ref string arg_msg);long rslt = 1
  58. SELECT u_employ.employname,
  59. u_employ.duty,
  60. u_employ.employdate,
  61. u_employ.employway,
  62. u_employ.firsttestor,
  63. u_employ.retestor,
  64. u_employ.ifemploy,
  65. u_employ.employcode,
  66. u_employ.flag,
  67. u_employ.opemp,
  68. u_employ.opdate,
  69. u_employ.modemp,
  70. u_employ.moddate,
  71. u_employ.auditrep,
  72. u_employ.auditdate ,
  73. u_employ.dscrp2
  74. INTO :employname,
  75. :duty,
  76. :employdate,
  77. :employway,
  78. :firsttestor,
  79. :retestor,
  80. :ifemploy,
  81. :employcode,
  82. :flag,
  83. :opemp,
  84. :opdate,
  85. :modemp,
  86. :moddate,
  87. :auditrep,
  88. :auditdate,
  89. :dscrp2
  90. FROM u_employ
  91. WHERE u_employ.employid = :arg_employid ;
  92. if sqlca.sqlcode <> 0 then
  93. rslt = 0
  94. arg_msg = '查询应聘人员登记表失败(错误单据唯一码)'+sqlca.sqlerrtext
  95. goto ext
  96. end if
  97. employid = arg_employid
  98. ext:
  99. return rslt
  100. end function
  101. public function integer newbegin ();p_reset()
  102. it_newbegin = true
  103. it_updatebegin = false
  104. return 1
  105. end function
  106. public function integer updatebegin (long arg_employid, ref string arg_msg);int rslt = 1
  107. if arg_employid < 0 then
  108. rslt = 0
  109. arg_msg = '错误的应聘人员登记表唯一码'
  110. goto ext
  111. end if
  112. if p_getinfo(arg_employid,arg_msg) = 0 then
  113. rslt = 0
  114. goto ext
  115. end if
  116. if flag = 1 then
  117. rslt = 0
  118. arg_msg = "该应聘人员登记表已审核,不能修改"
  119. goto ext
  120. end if
  121. employid = arg_employid
  122. it_newbegin = false
  123. it_updatebegin = true
  124. ext:
  125. if rslt = 0 then p_reset()
  126. return rslt
  127. end function
  128. public function integer save (ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  129. DateTime server_dt
  130. Long ls_newid
  131. IF IsNull(employname) THEN employname = ''
  132. IF IsNull(duty) THEN duty = ''
  133. IF IsNull(firsttestor) THEN firsttestor = ''
  134. IF IsNull(retestor) THEN retestor = ''
  135. IF IsNull(ifemploy) THEN ifemploy = 0
  136. IF IsNull(employway) THEN employway = ''
  137. IF IsNull(dscrp) THEN dscrp = ''
  138. IF IsNull(dscrp2) THEN dscrp2 = ''
  139. IF it_newbegin = False And it_updatebegin = False THEN
  140. rslt = 0
  141. arg_msg = "非编辑状态不可以提交"
  142. GOTO ext
  143. END IF
  144. SELECT Top 1 getdate() Into :server_dt From u_user;
  145. //取得系统时间,借用操作员表
  146. IF sqlca.SQLCode <> 0 THEN
  147. rslt = 0
  148. arg_msg = "查询操作失败,日期 "
  149. GOTO ext
  150. END IF
  151. IF addempid = 0 THEN
  152. rslt = 0
  153. arg_msg = '请选择人员增补申请单'
  154. GOTO ext
  155. END IF
  156. IF employid = 0 THEN //新建
  157. ls_newid = f_sys_scidentity(0,"u_employ","employid",arg_msg,True,id_sqlca)
  158. IF ls_newid < 0 THEN
  159. rslt = 0
  160. GOTO ext
  161. END IF
  162. employcode = getid(0,"YP",Date(server_dt),False,sqlca) //取得新单据编号
  163. IF employcode = "err" THEN
  164. employcode = ''
  165. rslt = 0
  166. arg_msg = "无法获取应聘人员登记表编号"
  167. GOTO ext
  168. END IF
  169. INSERT INTO u_employ(
  170. u_employ.employid,
  171. u_employ.employcode,
  172. u_employ.employname,
  173. u_employ.duty,
  174. u_employ.employdate,
  175. u_employ.firsttestor,
  176. u_employ.retestor,
  177. u_employ.ifemploy,
  178. u_employ.dscrp,
  179. u_employ.employway,
  180. u_employ.flag,
  181. u_employ.opemp,
  182. u_employ.opdate,
  183. u_employ.dscrp2,
  184. u_employ.addempid)
  185. VALUES ( :ls_newid,
  186. :employcode,
  187. :employname,
  188. :duty,
  189. :employdate,
  190. :firsttestor,
  191. :retestor,
  192. :ifemploy,
  193. :dscrp,
  194. :employway,
  195. 0,
  196. :publ_operator,
  197. :server_dt,
  198. :dscrp2,
  199. :addempid);
  200. IF sqlca.SQLCode <> 0 THEN
  201. rslt = 0
  202. arg_msg = "因网络或其它原因导致插入操作失败>>"+"~n"+sqlca.SQLErrText
  203. GOTO ext
  204. END IF
  205. employid = ls_newid
  206. ELSE //////// //更新
  207. UPDATE u_employ
  208. SET employname = :employname,
  209. duty = :duty,
  210. employdate = :employdate,
  211. firsttestor = :firsttestor,
  212. retestor = :retestor,
  213. ifemploy = :ifemploy,
  214. employway = :employway,
  215. dscrp = :dscrp,
  216. modemp = :publ_operator,
  217. moddate = :server_dt,
  218. dscrp2 = :dscrp2,
  219. addempid = :addempid
  220. WHERE u_employ.employid = :employid AND
  221. u_employ.flag = 0 ;
  222. IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
  223. rslt = 0
  224. arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
  225. GOTO ext
  226. END IF
  227. END IF
  228. it_newbegin = False
  229. it_updatebegin = False
  230. ext:
  231. IF rslt = 0 THEN
  232. ROLLBACK;
  233. ELSEIF rslt = 1 And arg_ifcommit THEN
  234. COMMIT;
  235. END IF
  236. Return(rslt)
  237. end function
  238. public function integer del (long arg_employid, ref string arg_msg);long rslt = 1
  239. if arg_employid <= 0 then
  240. rslt = 0
  241. arg_msg = '没有删除对象'
  242. goto ext
  243. end if
  244. if p_getinfo(arg_employid,arg_msg) = 0 then
  245. rslt = 0
  246. goto ext
  247. end if
  248. if flag = 1 then
  249. rslt = 0
  250. arg_msg = "该应聘人员登记表已经审核,不能删除"
  251. goto ext
  252. end if
  253. if it_newbegin or it_updatebegin then
  254. rslt=0
  255. arg_msg="编辑状态下不可以执行,操作取消"
  256. goto ext
  257. end if
  258. delete from u_employ where u_employ.employid = :arg_employid ;
  259. if sqlca.sqlcode <> 0 then
  260. rslt = 0
  261. arg_msg = "删除人员登记表操作失败"+"~n"+sqlca.sqlerrtext
  262. goto ext
  263. end if
  264. commit;
  265. it_newbegin = false
  266. it_updatebegin = false
  267. if rslt = 0 then
  268. rollback;
  269. p_reset()
  270. end if
  271. ext:
  272. return (rslt)
  273. end function
  274. public function integer auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit);long rslt = 1 ,cnt
  275. if arg_employid <= 0 then
  276. rslt = 0
  277. arg_msg = "错误应聘人员登记表唯一码"
  278. goto ext
  279. end if
  280. if p_getinfo(arg_employid,arg_msg) = 0 then
  281. rslt = 0
  282. goto ext
  283. end if
  284. if flag = 1 then
  285. rslt = 0
  286. arg_msg = "该应聘人员登记表已经审核,操作取消"
  287. goto ext
  288. end if
  289. cnt=0
  290. SELECT count(*) INTO :cnt
  291. FROM u_user
  292. WHERE username=:publ_operator using sqlca;
  293. if sqlca.sqlcode<>0 then
  294. rslt=0
  295. arG_MSG="查询操作失败,操作员!"
  296. goto ext
  297. end if
  298. if cnt=0 then
  299. rslt=0
  300. arG_MSG="操作员姓名未登记或已取消!"
  301. goto ext
  302. end if
  303. update u_employ
  304. set u_employ.flag = 1,
  305. u_employ.auditrep = :publ_operator,
  306. u_employ.auditdate = getdate()
  307. where u_employ.employid = :arg_employid ;
  308. if sqlca.sqlcode<>0 then
  309. ARG_msg='更新应聘人员登记表审核状态失败,原因>>'+sqlca.sqlerrtext
  310. rslt=0
  311. goto ext
  312. end if
  313. ext:
  314. if rslt=0 then
  315. rollback;
  316. elseif rslt=1 and arg_ifcommit then
  317. commit;
  318. end if
  319. return rslt
  320. end function
  321. public function integer c_auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit);long rslt = 1,cnt = 0
  322. datetime null_dt
  323. setnull(null_dt)
  324. if arg_employid <= 0 then
  325. rslt = 0
  326. arg_msg = "错误应聘人员登记表唯一码"
  327. goto ext
  328. end if
  329. if p_getinfo(arg_employid,arg_msg) = 0 then
  330. rslt = 0
  331. goto ext
  332. end if
  333. if flag = 0 then
  334. rslt = 0
  335. arg_msg = "该应聘人员登记表还未审核,操作取消"
  336. goto ext
  337. end if
  338. update u_employ
  339. set u_employ.flag = 0,
  340. u_employ.auditrep = '',
  341. u_employ.auditdate = :null_dt
  342. where u_employ.employid = :arg_employid;
  343. if sqlca.sqlcode<>0 then
  344. rslt=0
  345. arg_Msg='更新应聘人员登记表状态失败!原因:'+sqlca.sqlerrtext
  346. goto ext
  347. end if
  348. ext:
  349. if rslt=0 then
  350. rollback;
  351. elseif rslt=1 and arg_ifcommit then
  352. commit;
  353. end if
  354. return rslt
  355. end function
  356. on uo_employ.create
  357. call super::create
  358. TriggerEvent( this, "constructor" )
  359. end on
  360. on uo_employ.destroy
  361. TriggerEvent( this, "destructor" )
  362. call super::destroy
  363. end on