uo_ljmail_box.sru 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. $PBExportHeader$uo_ljmail_box.sru
  2. forward
  3. global type uo_ljmail_box from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_ljmail_box from nonvisualobject
  7. end type
  8. global uo_ljmail_box uo_ljmail_box
  9. forward prototypes
  10. public function integer uf_getchildboxs (long arg_parentid, ref s_ljmail_box arg_child[], ref string arg_msg)
  11. public function integer uf_save (ref s_ljmail_box s_box, ref string arg_msg)
  12. public function integer uf_getinfo (long arg_boxid, ref s_ljmail_box arg_s_box, ref string arg_msg)
  13. public function integer uf_rename (long arg_boxid, string arg_newname, ref string arg_msg)
  14. public function long uf_getboxid (long arg_empid, long arg_boxtype, ref string arg_msg)
  15. public function integer uf_initbox (long arg_empid, ref string arg_msg, boolean if_commit)
  16. public function integer uf_getparentid (long arg_boxid, ref long arg_parentid, ref string arg_msg)
  17. public function integer uf_getboxtype (long arg_boxid, ref long arg_boxtype, ref string arg_msg)
  18. end prototypes
  19. public function integer uf_getchildboxs (long arg_parentid, ref s_ljmail_box arg_child[], ref string arg_msg);Int rslt = 1
  20. s_ljmail_box arg_rslt[]
  21. Long ll_cnt = 0
  22. Long ll_boxid
  23. String ls_boxname
  24. Long ll_boxtype
  25. DECLARE cur1 Cursor FOR SELECT boxid, boxname, boxtype From u_ljmail_box Where empid = :sys_empid And parentid = :arg_parentid;
  26. OPEN cur1;
  27. FETCH cur1 Into :ll_boxid, :ls_boxname, :ll_boxtype;
  28. DO WHILE sqlca.SQLCode = 0
  29. ll_cnt++
  30. arg_rslt[ll_cnt].boxid = ll_boxid
  31. arg_rslt[ll_cnt].boxname = ls_boxname
  32. arg_rslt[ll_cnt].empid = sys_empid
  33. arg_rslt[ll_cnt].parentid = arg_parentid
  34. arg_rslt[ll_cnt].boxtype = ll_boxtype
  35. FETCH cur1 Into :ll_boxid, :ls_boxname, :ll_boxtype;
  36. LOOP
  37. CLOSE cur1;
  38. arg_child = arg_rslt
  39. RETURN rslt
  40. end function
  41. public function integer uf_save (ref s_ljmail_box s_box, ref string arg_msg);Int rslt = 1
  42. IF s_box.boxid = 0 THEN
  43. Long ll_boxid
  44. ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca)
  45. IF ll_boxid <= 0 THEN
  46. rslt = 0
  47. GOTO ext
  48. END IF
  49. INSERT INTO u_ljmail_box(boxid,
  50. boxname,
  51. empid,
  52. parentid,
  53. boxtype)
  54. VALUES(:ll_boxid,
  55. :s_box.boxname,
  56. :s_box.empid,
  57. :s_box.parentid,
  58. :s_box.boxtype);
  59. IF sqlca.SQLCode <> 0 THEN
  60. rslt = 0
  61. arg_msg = '插入LE邮箱失败,' + sqlca.SQLErrText
  62. GOTO ext
  63. END IF
  64. s_box.boxid = ll_boxid
  65. ELSE
  66. UPDATE u_ljmail_box SET
  67. boxname = :s_box.boxname,
  68. empid = :s_box.empid,
  69. parentid = :s_box.parentid,
  70. boxtype = :s_box.boxtype
  71. Where boxid = :s_box.boxid;
  72. IF sqlca.SQLCode <> 0 THEN
  73. rslt = 0
  74. arg_msg = '更改LE邮箱失败,' + sqlca.SQLErrText
  75. GOTO ext
  76. END IF
  77. IF sqlca.SQLNRows = 0 THEN
  78. rslt = 0
  79. arg_msg = 'LE邮箱已经被删除,请刷新后再试'
  80. GOTO ext
  81. END IF
  82. END IF
  83. ext:
  84. IF rslt = 0 THEN
  85. ROLLBACK;
  86. ELSE
  87. COMMIT;
  88. END IF
  89. RETURN rslt
  90. end function
  91. public function integer uf_getinfo (long arg_boxid, ref s_ljmail_box arg_s_box, ref string arg_msg);Int rslt = 1
  92. Long ll_cnt
  93. SELECT COUNT(0)
  94. INTO :ll_cnt
  95. FROM u_ljmail_box
  96. Where boxid = :arg_boxid;
  97. IF sqlca.SQLCode <> 0 THEN
  98. rslt = 0
  99. arg_msg = '查询LE邮箱失败,' + sqlca.SQLErrText
  100. GOTO ext
  101. END IF
  102. IF ll_cnt = 0 THEN
  103. rslt = 0
  104. arg_msg = 'LE邮箱不存在,请刷新后再试'
  105. GOTO ext
  106. END IF
  107. SELECT boxid, boxname, empid, parentid, boxtype
  108. INTO :arg_s_box.boxid, :arg_s_box.boxname, :arg_s_box.empid, :arg_s_box.parentid, :arg_s_box.boxtype
  109. From u_ljmail_box Where boxid = :arg_boxid;
  110. IF sqlca.SQLCode <> 0 THEN
  111. rslt = 0
  112. arg_msg = '查询LE邮箱失败,' + sqlca.SQLErrText
  113. GOTO ext
  114. END IF
  115. ext:
  116. RETURN rslt
  117. end function
  118. public function integer uf_rename (long arg_boxid, string arg_newname, ref string arg_msg);Int rslt = 1
  119. Long ll_cnt
  120. SELECT COUNT(0)
  121. INTO :ll_cnt
  122. FROM u_ljmail_box
  123. Where boxid = :arg_boxid;
  124. IF sqlca.SQLCode <> 0 THEN
  125. rslt = 0
  126. arg_msg = '查询LE邮箱失败,' + sqlca.SQLErrText
  127. GOTO ext
  128. END IF
  129. IF ll_cnt = 0 THEN
  130. rslt = 0
  131. arg_msg = 'LE邮箱不存在,请刷新后再试'
  132. GOTO ext
  133. END IF
  134. UPDATE u_ljmail_box Set boxname = :arg_newname Where boxid = :arg_boxid;
  135. IF sqlca.SQLCode <> 0 THEN
  136. rslt = 0
  137. arg_msg = '更新LE邮箱失败,' + sqlca.SQLErrText
  138. GOTO ext
  139. END IF
  140. ext:
  141. IF rslt = 1 THEN
  142. COMMIT;
  143. ELSE
  144. ROLLBACK;
  145. END IF
  146. RETURN rslt
  147. end function
  148. public function long uf_getboxid (long arg_empid, long arg_boxtype, ref string arg_msg);Long ll_boxid = 0
  149. Long ll_cnt
  150. SELECT count(0)
  151. INTO :ll_cnt
  152. FROM u_ljmail_box
  153. WHERE empid = :arg_empid
  154. AND parentid = 0
  155. And boxtype = :arg_boxtype;
  156. IF sqlca.SQLCode <> 0 THEN
  157. arg_msg = '查询龙嘉邮件箱失败,' + sqlca.SQLErrText
  158. GOTO ext
  159. END IF
  160. IF ll_cnt <= 0 THEN
  161. arg_msg = '帐号龙嘉邮件箱未初始化'
  162. GOTO ext
  163. END IF
  164. SELECT top 1 boxid
  165. INTO :ll_boxid
  166. FROM u_ljmail_box
  167. WHERE empid = :arg_empid
  168. AND parentid = 0
  169. And boxtype = :arg_boxtype;
  170. IF sqlca.SQLCode <> 0 THEN
  171. ll_boxid = 0
  172. arg_msg = '查询龙嘉邮箱失败,' + sqlca.SQLErrText
  173. GOTO ext
  174. END IF
  175. ext:
  176. RETURN ll_boxid
  177. end function
  178. public function integer uf_initbox (long arg_empid, ref string arg_msg, boolean if_commit);Int rslt = 1
  179. Long ll_cnt
  180. SELECT count(0)
  181. INTO :ll_cnt
  182. FROM u_ljmail_box
  183. WHERE empid = :arg_empid
  184. And parentid = 0;
  185. IF sqlca.SQLCode <> 0 THEN
  186. rslt = 0
  187. arg_msg = '查询龙嘉邮件箱失败,' + sqlca.SQLErrText
  188. GOTO ext
  189. END IF
  190. Long ll_boxid
  191. IF ll_cnt = 0 THEN
  192. // 收件箱
  193. ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca)
  194. IF ll_boxid <= 0 THEN
  195. rslt = 0
  196. GOTO ext
  197. END IF
  198. INSERT INTO u_ljmail_box(boxid,
  199. boxname,
  200. empid,
  201. parentid,
  202. boxtype)
  203. VALUES(:ll_boxid,
  204. '收件箱',
  205. :arg_empid,
  206. 0,
  207. 1);
  208. IF sqlca.SQLCode <> 0 THEN
  209. rslt = 0
  210. arg_msg = '初始化收件箱失败,' + sqlca.SQLErrText
  211. GOTO ext
  212. END IF
  213. // 发件箱
  214. ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca)
  215. IF ll_boxid <= 0 THEN
  216. rslt = 0
  217. GOTO ext
  218. END IF
  219. INSERT INTO u_ljmail_box(boxid,
  220. boxname,
  221. empid,
  222. parentid,
  223. boxtype)
  224. VALUES(:ll_boxid,
  225. '发件箱',
  226. :arg_empid,
  227. 0,
  228. 2);
  229. IF sqlca.SQLCode <> 0 THEN
  230. rslt = 0
  231. arg_msg = '初始化发件箱失败,' + sqlca.SQLErrText
  232. GOTO ext
  233. END IF
  234. // 已发件箱
  235. ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca)
  236. IF ll_boxid <= 0 THEN
  237. rslt = 0
  238. GOTO ext
  239. END IF
  240. INSERT INTO u_ljmail_box(boxid,
  241. boxname,
  242. empid,
  243. parentid,
  244. boxtype)
  245. VALUES(:ll_boxid,
  246. '已发件箱',
  247. :arg_empid,
  248. 0,
  249. 3);
  250. IF sqlca.SQLCode <> 0 THEN
  251. rslt = 0
  252. arg_msg = '初始化已发件箱失败,' + sqlca.SQLErrText
  253. GOTO ext
  254. END IF
  255. // 废件箱
  256. ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca)
  257. IF ll_boxid <= 0 THEN
  258. rslt = 0
  259. GOTO ext
  260. END IF
  261. INSERT INTO u_ljmail_box(boxid,
  262. boxname,
  263. empid,
  264. parentid,
  265. boxtype)
  266. VALUES(:ll_boxid,
  267. '废件箱',
  268. :arg_empid,
  269. 0,
  270. 4);
  271. IF sqlca.SQLCode <> 0 THEN
  272. rslt = 0
  273. arg_msg = '初始化废件箱失败,' + sqlca.SQLErrText
  274. GOTO ext
  275. END IF
  276. END IF
  277. ext:
  278. IF if_commit THEN
  279. IF rslt = 1 THEN
  280. COMMIT;
  281. ELSE
  282. ROLLBACK;
  283. END IF
  284. END IF
  285. RETURN rslt
  286. end function
  287. public function integer uf_getparentid (long arg_boxid, ref long arg_parentid, ref string arg_msg);Int rslt = 1
  288. SELECT parentid
  289. INTO :arg_parentid
  290. FROM u_ljmail_box
  291. Where boxid = :arg_boxid;
  292. IF sqlca.SQLCode <> 0 THEN
  293. rslt = 0
  294. arg_msg = '查询父邮箱失败,ID:' + String(arg_boxid) + sqlca.SQLErrText
  295. GOTO ext
  296. END IF
  297. ext:
  298. RETURN rslt
  299. end function
  300. public function integer uf_getboxtype (long arg_boxid, ref long arg_boxtype, ref string arg_msg);Int rslt = 1
  301. SELECT boxtype
  302. INTO :arg_boxtype
  303. FROM u_ljmail_box
  304. Where boxid = :arg_boxid;
  305. IF sqlca.SQLCode <> 0 THEN
  306. rslt = 0
  307. arg_msg = '查询邮箱类型失败,ID:' + String(arg_boxid) + sqlca.SQLErrText
  308. GOTO ext
  309. END IF
  310. ext:
  311. RETURN rslt
  312. end function
  313. on uo_ljmail_box.create
  314. call super::create
  315. TriggerEvent( this, "constructor" )
  316. end on
  317. on uo_ljmail_box.destroy
  318. TriggerEvent( this, "destructor" )
  319. call super::destroy
  320. end on