uo_transmsg.sru 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667
  1. $PBExportHeader$uo_transmsg.sru
  2. forward
  3. global type uo_transmsg from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_transmsg from nonvisualobject autoinstantiate
  7. end type
  8. type variables
  9. Long uo_msgid
  10. end variables
  11. forward prototypes
  12. public function integer f_trycreate_sys_admsg (ref string arg_msg)
  13. public function integer f_redeal_admsg (long arg_msgid, string arg_redealemp, ref string arg_msg, boolean ifcommit)
  14. public function integer f_del_admsg (long arg_msgid, string arg_del_emp, ref string arg_msg, boolean ifcommit)
  15. public function integer f_deal_admsg (long arg_msgid, long arg_sentdtint, long arg_empid, ref string arg_msg, boolean ifcommit)
  16. public function integer f_redeal_admsg (long arg_msgid, long arg_sentdtint, long arg_empid, ref string arg_msg, boolean ifcommit)
  17. public function long f_create_admsg (long arg_sendempid, string arg_sendemp, string arg_objdpm, string arg_msgtitle, string arg_s_msg, ref string arg_msg, long arg_scid, string arg_billcode, boolean ifcommit)
  18. public function integer f_save_fj (long arg_msgid, string arg_fjname, blob arg_blob, decimal arg_filesize, integer arg_filetype, ref string arg_msg, boolean arg_ifcommit)
  19. public function integer f_down_fj (long arg_fjid, string arg_fjname, ref blob arg_fjdata, ref string arg_msg)
  20. public function long f_create_empmsg (long arg_sendempid, string arg_sendemp, long arg_msgempid, string arg_msgtitle, string arg_s_msg, ref string arg_msg, long arg_scid, string arg_billcode, boolean ifcommit)
  21. public function long f_create_empmsg (long arg_sendempid, string arg_sendemp, long arg_msgempid, string arg_msgtitle, string arg_s_msg, ref string arg_msg, long arg_scid, string arg_billcode, integer arg_updateflag, boolean ifcommit)
  22. public function integer f_set_read (long arg_msgid, long arg_senddtint, long arg_empid, long arg_read_flag)
  23. end prototypes
  24. public function integer f_trycreate_sys_admsg (ref string arg_msg);
  25. /////f_trycreate_Sys_admsg(arg_msg)
  26. long cnt,rslt=1
  27. string createsql_string,t_str
  28. createsql_string="CREATE TABLE Sys_admsg (msgid int not null PRIMARY KEY, senddt datetime NOT NULL DEFAULT (getdate()) , sendemp char (10) NOT NULL DEFAULT ('') ,dealflag tinyint NOT NULL DEFAULT (0) ,dealdt datetime NULL,dealemp char(10) NOT NULL DEFAULT (''),redealdt datetime NULL,objdpm char(30) NOT NULL DEFAULT ('') ,s_msg varchar(254) NOT NULL DEFAULT ('') ,rel_code varchar (50) NOT NULL DEFAULT ('') )"
  29. t_str="select count(*) from Sys_admsg"
  30. Execute immediate :t_str;
  31. if sqlca.sqlcode<>0 then //不存在该表,建立
  32. Execute immediate :createsql_string ;
  33. if sqlca.sqlcode<>0 then
  34. arg_msg='建立表Sys_admsg失败>>'+sqlca.sqlerrtext
  35. rollback ;
  36. rslt=0
  37. goto ext
  38. else
  39. commit ;
  40. end if
  41. end if
  42. ///
  43. ext:
  44. return rslt
  45. end function
  46. public function integer f_redeal_admsg (long arg_msgid, string arg_redealemp, ref string arg_msg, boolean ifcommit);////f_redeal_admsg
  47. ////状态为已处理:1,才可以设为完成
  48. ////
  49. ////
  50. long rslt=1,dealflag
  51. //string sendemp=''
  52. //if arg_msgid<=0 then
  53. // arg_msg='非有效消息ID'
  54. // rslt=0
  55. // goto ext
  56. //end if
  57. //
  58. // SELECT sys_admsg.dealflag ,sendemp
  59. // INTO :dealflag ,:sendemp
  60. // FROM sys_admsg
  61. // WHERE sys_admsg.msgid =:arg_msgid ;
  62. //
  63. //if sqlca.sqlcode<>0 then
  64. // arg_msg='查询消息ID失败>>'+sqlca.sqlerrtext
  65. // rslt=0
  66. // goto ext
  67. //end if
  68. //
  69. //if dealflag<>1 then
  70. // arg_msg='非[已处理]下不可以设为[完成]。'
  71. // rslt=0
  72. // goto ext
  73. //end if
  74. //if trim(arg_redealemp)<>trim(sendemp) and not sys_power_issuper then
  75. // arg_msg='非消息发起人或非超级用户不可以设为[完成]。'
  76. // rslt=0
  77. // goto ext
  78. //end if
  79. //
  80. // update sys_admsg
  81. // set dealflag=9,redealdt=getdate()
  82. // WHERE sys_admsg.msgid =:arg_msgid ;
  83. //
  84. //if sqlca.sqlcode<>0 then
  85. // arg_msg='更新消息状态(完成)失败>>'+sqlca.sqlerrtext
  86. // rollback;
  87. // rslt=0
  88. // goto ext
  89. //end if
  90. //
  91. //ext:
  92. //if ifCOMMIT and rslt=1 then
  93. // commit;
  94. //end if
  95. return rslt
  96. end function
  97. public function integer f_del_admsg (long arg_msgid, string arg_del_emp, ref string arg_msg, boolean ifcommit);//f_del_admsg(arg_msgid,arg_del_emp,arg_msg,ifcommit)
  98. //状态为完成:9,才可以删除
  99. //
  100. //
  101. Long rslt = 1,cnt = 0
  102. String sendemp
  103. IF arg_msgid <= 0 THEN
  104. arg_msg = '非有效消息ID'
  105. rslt = 0
  106. GOTO ext
  107. END IF
  108. SELECT count(*)
  109. INTO :cnt
  110. FROM sys_admsgmx
  111. Where sys_admsgmx.msgid = :arg_msgid AND sys_admsgmx.dealflag = 1 ;
  112. IF sqlca.SQLCode <> 0 THEN
  113. arg_msg = '查询消息ID失败>>'+sqlca.SQLErrText
  114. rslt = 0
  115. GOTO ext
  116. END IF
  117. IF cnt > 0 THEN
  118. arg_msg = '消息已有人确认不可以删除消息。'
  119. rslt = 0
  120. GOTO ext
  121. END IF
  122. DELETE FROM sys_admsg
  123. Where sys_admsg.msgid = :arg_msgid;
  124. IF sqlca.SQLCode <> 0 THEN
  125. arg_msg = '删除消息失败>>'+sqlca.SQLErrText
  126. ROLLBACK;
  127. rslt = 0
  128. GOTO ext
  129. END IF
  130. ext:
  131. IF ifCOMMIT AND rslt = 1 THEN
  132. COMMIT;
  133. END IF
  134. RETURN rslt
  135. end function
  136. public function integer f_deal_admsg (long arg_msgid, long arg_sentdtint, long arg_empid, ref string arg_msg, boolean ifcommit);//f_deal_admsg
  137. //状态为待处理:0,才可以设为已处理
  138. //
  139. //
  140. long rslt=1,dealflag
  141. if arg_msgid<=0 then
  142. arg_msg='非有效消息ID'
  143. rslt=0
  144. goto ext
  145. end if
  146. SELECT sys_admsgmx.dealflag
  147. INTO :dealflag
  148. FROM sys_admsgmx
  149. WHERE sys_admsgmx.msgid =:arg_msgid
  150. and sys_admsgmx.empid =:arg_empid
  151. and sys_admsgmx.senddtint =:arg_sentdtint;
  152. if sqlca.sqlcode<>0 then
  153. arg_msg='查询消息ID失败>>'+sqlca.sqlerrtext
  154. rslt=0
  155. goto ext
  156. end if
  157. if dealflag<>0 then
  158. arg_msg='非[待处理]下不可以设为[已处理]。'
  159. rslt=0
  160. goto ext
  161. end if
  162. update sys_admsgmx
  163. set dealflag=1,dealdt=getdate()
  164. WHERE sys_admsgmx.msgid =:arg_msgid
  165. and sys_admsgmx.empid =:arg_empid
  166. and sys_admsgmx.senddtint =:arg_sentdtint;
  167. if sqlca.sqlcode<>0 then
  168. arg_msg='更新消息状态(为已处理)失败>>'+sqlca.sqlerrtext
  169. rollback;
  170. rslt=0
  171. goto ext
  172. end if
  173. ext:
  174. if ifCOMMIT and rslt=1 then
  175. commit;
  176. end if
  177. return rslt
  178. end function
  179. public function integer f_redeal_admsg (long arg_msgid, long arg_sentdtint, long arg_empid, ref string arg_msg, boolean ifcommit);//f_deal_admsg
  180. //状态为待处理:0,才可以设为已处理
  181. //
  182. //
  183. long rslt=1,dealflag
  184. if arg_msgid<=0 then
  185. arg_msg='非有效消息ID'
  186. rslt=0
  187. goto ext
  188. end if
  189. SELECT sys_admsgmx.dealflag
  190. INTO :dealflag
  191. FROM sys_admsgmx
  192. WHERE sys_admsgmx.msgid =:arg_msgid
  193. and sys_admsgmx.empid =:arg_empid
  194. and sys_admsgmx.senddtint =:arg_sentdtint;
  195. if sqlca.sqlcode<>0 then
  196. arg_msg='查询消息ID失败>>'+sqlca.sqlerrtext
  197. rslt=0
  198. goto ext
  199. end if
  200. if dealflag<>0 then
  201. arg_msg='非[待处理]下不可以设为[已处理]。'
  202. rslt=0
  203. goto ext
  204. end if
  205. update sys_admsgmx
  206. set dealflag=1,dealdt=getdate()
  207. WHERE sys_admsgmx.msgid =:arg_msgid
  208. and sys_admsgmx.empid =:arg_empid
  209. and sys_admsgmx.senddtint =:arg_sentdtint;
  210. if sqlca.sqlcode<>0 then
  211. arg_msg='更新消息状态(为已处理)失败>>'+sqlca.sqlerrtext
  212. rollback;
  213. rslt=0
  214. goto ext
  215. end if
  216. ext:
  217. if ifCOMMIT and rslt=1 then
  218. commit;
  219. end if
  220. return rslt
  221. end function
  222. public function long f_create_admsg (long arg_sendempid, string arg_sendemp, string arg_objdpm, string arg_msgtitle, string arg_s_msg, ref string arg_msg, long arg_scid, string arg_billcode, boolean ifcommit);//f_create_admsg(arg_sendempid,arg_sendemp,arg_objdpm,arg_msgtitle,arg_s_msg,arg_msg,ifcommit)
  223. //新建
  224. //
  225. //
  226. Long rslt = 1
  227. Long msgid,ls_newid
  228. Long msgempid[]
  229. Long i,senddtint
  230. DateTime server_datetime
  231. uo_usergroup uo_ugp
  232. Boolean if_exist_super = False
  233. Long arr_mxt
  234. uo_phone_push uo_push
  235. uo_push = Create uo_phone_push
  236. uo_ugp = Create uo_usergroup
  237. SELECT Top 1 getdate() Into :server_datetime From u_user ;
  238. //取得系统时间,借用操作员表
  239. IF sqlca.SQLCode <> 0 THEN
  240. rslt = 0
  241. arG_MSG = "查询操作失败,日期 "
  242. GOTO ext
  243. END IF
  244. senddtint = Long(String(server_datetime,'yyyymmddhhmmss'))
  245. IF IsNull(arg_objdpm) THEN arg_objdpm = ''
  246. IF IsNull(arg_msgtitle) THEN arg_msgtitle = ''
  247. IF IsNull(arg_s_msg) THEN arg_s_msg = ''
  248. IF Trim(arg_objdpm) = '' THEN
  249. arG_MSG = '缺乏消息的发送对象'
  250. rslt = 0
  251. GOTO ext
  252. END IF
  253. uo_ugp.f_rst_msgemp_arr(sys_scid,arg_objdpm,msgempid[])
  254. IF UpperBound(msgempid) = 0 THEN
  255. arG_MSG = '缺乏消息的发送对象'
  256. rslt = 0
  257. GOTO ext
  258. //ELSE
  259. // IF arg_sendempid <> 0 THEN
  260. // arr_mxt = UpperBound(msgempid)
  261. // FOR i = 1 TO arr_mxt
  262. // IF msgempid[i] = 0 THEN
  263. // if_exist_super = TRUE
  264. // EXIT
  265. // END IF
  266. // NEXT
  267. // IF NOT if_exist_super THEN
  268. // arr_mxt++
  269. // msgempid[arr_mxt] = 0
  270. // END IF
  271. // END IF
  272. END IF
  273. IF Trim(arg_msgtitle) = '' THEN
  274. arG_MSG = '缺乏消息标题'
  275. rslt = 0
  276. GOTO ext
  277. END IF
  278. IF Trim(arg_s_msg) = '' THEN
  279. arG_MSG = '缺乏消息内容'
  280. rslt = 0
  281. GOTO ext
  282. END IF
  283. rslt = f_trycreate_Sys_admsg(arG_MSG)
  284. IF rslt = 0 THEN
  285. GOTO ext
  286. END IF
  287. ls_newid = f_sys_scidentity(sys_scid,"sys_admsg","msgid",arG_MSG,True,id_sqlca)
  288. IF ls_newid <= 0 THEN
  289. rslt = 0
  290. GOTO ext
  291. END IF
  292. msgid = ls_newid
  293. INSERT INTO sys_admsg
  294. ( msgid,
  295. senddt,
  296. sendemp,
  297. sendempid,
  298. objdpm,
  299. s_msgtitle,
  300. s_msg,
  301. scid,
  302. billcode)
  303. VALUES ( :msgid,
  304. getdate(),
  305. :arg_sendemp,
  306. :arg_sendempid,
  307. :arg_objdpm,
  308. :arg_msgtitle,
  309. :arg_s_msg,
  310. :arg_scid,
  311. :arg_billcode) ;
  312. IF sqlca.SQLCode <> 0 THEN
  313. arG_MSG = '新建消息失败>>'+sqlca.SQLErrText
  314. rslt = 0
  315. GOTO ext
  316. END IF
  317. FOR i = 1 To UpperBound(msgempid)
  318. INSERT INTO sys_admsgmx
  319. ( msgid,
  320. empid,
  321. s_msgtitle,
  322. dealflag,
  323. s_msg,
  324. senddtint,
  325. scid,
  326. billcode,
  327. read_flag)
  328. VALUES ( :msgid,
  329. :msgempid[i],
  330. :arg_msgtitle,
  331. 0,
  332. :arg_s_msg,
  333. :senddtint,
  334. :arg_scid,
  335. :arg_billcode,
  336. 0) ;
  337. IF sqlca.SQLCode <> 0 THEN
  338. arG_MSG = '发送消息失败>>'+sqlca.SQLErrText
  339. rslt = 0
  340. GOTO ext
  341. END IF
  342. NEXT
  343. Long ll_pushid
  344. IF uo_push.uf_add(msgempid, '内部消息来自' + arg_sendemp, arg_msgtitle, 'msg', string(ls_newid), ll_pushid, arg_msg, False) <> 1 THEN
  345. rslt = 0
  346. goto ext
  347. END IF
  348. uo_msgid = ls_newid
  349. ext:
  350. Destroy uo_push
  351. IF rslt = 0 THEN
  352. ROLLBACK;
  353. ELSEIF ifCOMMIT And rslt = 1 THEN
  354. COMMIT;
  355. END IF
  356. RETURN rslt
  357. end function
  358. public function integer f_save_fj (long arg_msgid, string arg_fjname, blob arg_blob, decimal arg_filesize, integer arg_filetype, ref string arg_msg, boolean arg_ifcommit);//保存附件
  359. Long rslt = 1
  360. Long ls_newid
  361. IF arg_msgid <= 0 THEN
  362. rslt = 0
  363. arg_msg = '保存附件失败(消息ID)'
  364. GOTO ext
  365. END IF
  366. IF IsNull(arg_fjname) OR arg_fjname = '' THEN
  367. rslt = 0
  368. arg_msg = '保存附件失败(附件名)'
  369. GOTO ext
  370. END IF
  371. ls_newid = f_sys_scidentity(0,"Sys_admsg_fj","fjid",arg_msg,TRUE,id_sqlca)
  372. IF ls_newid <= 0 THEN
  373. rslt = 0
  374. GOTO ext
  375. END IF
  376. INSERT INTO Sys_admsg_fj
  377. (fjid,
  378. msgid,
  379. filename,
  380. filesize,
  381. filetype)
  382. VALUES (
  383. :ls_newid,
  384. :arg_msgid,
  385. :arg_fjname,
  386. :arg_filesize,
  387. :arg_filetype);
  388. IF sqlca.SQLCode <> 0 THEN
  389. rslt = 0
  390. arg_msg = '因网络或其它原因保存附件失败>>'+sqlca.SQLErrText
  391. GOTO ext
  392. END IF
  393. commit;
  394. updateblob Sys_admsg_fj
  395. set fileblob = :arg_blob
  396. where fjid = :ls_newid;
  397. IF sqlca.SQLCode <> 0 THEN
  398. rslt = 0
  399. arg_msg = '因网络或其它原因保存附件失败>>'+sqlca.SQLErrText
  400. GOTO ext
  401. END IF
  402. ext:
  403. IF rslt = 0 THEN
  404. ROLLBACK;
  405. ELSEIF arg_ifcommit AND rslt = 1 THEN
  406. COMMIT;
  407. END IF
  408. RETURN rslt
  409. end function
  410. public function integer f_down_fj (long arg_fjid, string arg_fjname, ref blob arg_fjdata, ref string arg_msg);Long rslt = 1,cnt
  411. Blob ls_filedata
  412. IF arg_fjid <= 0 THEN
  413. rslt = 0
  414. arg_msg = '下载附件失败(错误附件ID)'
  415. GOTO ext
  416. END IF
  417. IF arg_fjname = '' THEN
  418. rslt = 0
  419. arg_msg = '下载附件失败(错误附件名)'
  420. GOTO ext
  421. END IF
  422. SELECT count(*)
  423. INTO :cnt
  424. FROM Sys_admsg_fj
  425. Where (fjid = :arg_fjid);
  426. IF sqlca.SQLCode <> 0 THEN
  427. rslt = 0
  428. arg_msg = '查询附件信息失败>>'+sqlca.SQLErrText
  429. GOTO ext
  430. END IF
  431. SELECTBLOB Fileblob
  432. INTO :ls_filedata
  433. FROM Sys_admsg_fj
  434. Where (fjid = :arg_fjid);
  435. IF sqlca.SQLCode <> 0 THEN
  436. rslt = 0
  437. arg_msg = '下载附件失败>>'+sqlca.SQLErrText
  438. GOTO ext
  439. END IF
  440. arg_fjdata = ls_filedata
  441. ext:
  442. RETURN rslt
  443. end function
  444. public function long f_create_empmsg (long arg_sendempid, string arg_sendemp, long arg_msgempid, string arg_msgtitle, string arg_s_msg, ref string arg_msg, long arg_scid, string arg_billcode, boolean ifcommit);Int rslt = 1
  445. Long ll_cnt
  446. SELECT COUNT(0)
  447. INTO :ll_cnt
  448. FROM u_user
  449. Where empid = :arg_msgempid;
  450. IF sqlca.SQLCode <> 0 THEN
  451. GOTO ext
  452. END IF
  453. IF ll_cnt <= 0 THEN
  454. GOTO ext
  455. END IF
  456. String ls_msgemp
  457. SELECT TOP 1 username
  458. INTO :ls_msgemp
  459. FROM u_user
  460. Where empid = :arg_msgempid;
  461. IF sqlca.SQLCode <> 0 THEN
  462. GOTO ext
  463. END IF
  464. IF f_create_admsg(arg_sendempid, arg_sendemp, ls_msgemp, arg_msgtitle, arg_s_msg, arg_msg, arg_scid, arg_billcode, False) <> 1 THEN
  465. rslt = 0
  466. GOTO ext
  467. END IF
  468. ext:
  469. IF ifcommit THEN
  470. IF rslt = 1 THEN
  471. COMMIT;
  472. ELSE
  473. ROLLBACK;
  474. END IF
  475. END IF
  476. RETURN rslt
  477. end function
  478. public function long f_create_empmsg (long arg_sendempid, string arg_sendemp, long arg_msgempid, string arg_msgtitle, string arg_s_msg, ref string arg_msg, long arg_scid, string arg_billcode, integer arg_updateflag, boolean ifcommit);Int rslt = 1
  479. Long senddtint
  480. DateTime server_datetime
  481. SELECT Top 1 getdate() Into :server_datetime From u_user ;
  482. //取得系统时间,借用操作员表
  483. IF sqlca.SQLCode <> 0 THEN
  484. rslt = 0
  485. arG_MSG = "查询操作失败,日期 "
  486. GOTO ext
  487. END IF
  488. senddtint = Long(String(server_datetime,'yyyymmddhhmmss'))
  489. IF f_create_empmsg(arg_sendempid, arg_sendemp, arg_msgempid, arg_msgtitle, arg_s_msg, arG_MSG, arg_scid, arg_billcode, False) <> 1 THEN
  490. rslt = 0
  491. GOTO ext
  492. END IF
  493. String ls_find
  494. IF arg_updateflag = 1 THEN
  495. IF arg_billcode <> '' THEN
  496. IF Pos(arg_s_msg,',要求必须回复!') > 0 THEN
  497. ls_find = '%,要求必须回复!%'
  498. ELSEIF Pos(arg_s_msg,',紧急事件!') > 0 THEN
  499. ls_find = '%,紧急事件!%'
  500. ELSEIF Pos(arg_s_msg,',强制要求查阅!') > 0 THEN
  501. ls_find = '%,强制要求查阅!%'
  502. END IF
  503. UPDATE sys_admsgmx
  504. SET dealflag = 1,dealdt = getdate()
  505. WHERE sys_admsgmx.empid = :arg_msgempid
  506. AND sys_admsgmx.senddtint < :senddtint
  507. AND sys_admsgmx.billcode = :arg_billcode
  508. AND ((PATINDEX('%,要求必须回复!%',sys_admsgmx.s_msg) = 0 AND PATINDEX('%,紧急事件!%',sys_admsgmx.s_msg) = 0 AND PATINDEX('%,强制要求查阅!%',sys_admsgmx.s_msg) = 0) OR (PATINDEX(:ls_find,sys_admsgmx.s_msg) > 0 AND :ls_find <> ''))
  509. And sys_admsgmx.dealflag = 0;
  510. IF sqlca.SQLCode <> 0 THEN
  511. arG_MSG = '更新消息状态(为已处理)失败>>'+sqlca.SQLErrText
  512. rslt = 0
  513. GOTO ext
  514. END IF
  515. END IF
  516. END IF
  517. ext:
  518. IF ifcommit THEN
  519. IF rslt = 1 THEN
  520. COMMIT;
  521. ELSE
  522. ROLLBACK;
  523. END IF
  524. END IF
  525. RETURN rslt
  526. end function
  527. public function integer f_set_read (long arg_msgid, long arg_senddtint, long arg_empid, long arg_read_flag);Int rslt = 1
  528. UPDATE sys_admsgmx
  529. SET read_flag = :arg_read_flag
  530. WHERE msgid = :arg_msgid
  531. AND senddtint = :arg_senddtint
  532. And empid = :arg_empid;
  533. IF sqlca.SQLCode <> 0 THEN
  534. rslt = 0
  535. GOTO ext
  536. END IF
  537. IF sqlca.SQLNRows <= 0 THEN
  538. rslt = 0
  539. GOTO ext
  540. END IF
  541. ext:
  542. IF rslt = 1 THEN
  543. COMMIT;
  544. ELSE
  545. ROLLBACK;
  546. END IF
  547. RETURN rslt
  548. end function
  549. on uo_transmsg.create
  550. call super::create
  551. TriggerEvent( this, "constructor" )
  552. end on
  553. on uo_transmsg.destroy
  554. TriggerEvent( this, "destructor" )
  555. call super::destroy
  556. end on