uo_workremind.sru 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. $PBExportHeader$uo_workremind.sru
  2. forward
  3. global type uo_workremind from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_workremind from nonvisualobject
  7. end type
  8. global uo_workremind uo_workremind
  9. type variables
  10. s_workrmd_info s_wrmd[] //工作提醒原始条件
  11. Long srmd_p = 0 //指针
  12. long scid[],storageid[]
  13. long srmd_sc,srmd_storage
  14. end variables
  15. forward prototypes
  16. public subroutine f_init_wrmd_info ()
  17. public function integer f_init ()
  18. public subroutine f_syntaxfromsql (long arg_scid, long arg_funcid, long arg_powerid, long arg_storageid, string arg_powername, string arg_sql, string arg_sc_str, string arg_storage_str)
  19. public function integer f_getwrmdrslt ()
  20. end prototypes
  21. public subroutine f_init_wrmd_info ();//f_init_wrmd_info
  22. //Atype=0:直接执行Asql
  23. //Atype=1:拼语句执行Asql
  24. //powerid=0:根权限无直接关系的提醒
  25. s_wrmd[1].powerid = 6
  26. s_wrmd[1].funcid = 102
  27. s_wrmd[1].dscrp = '销售订单审核'
  28. s_wrmd[1].Asql = 'select count(*) from u_saletask where status = 0'
  29. s_wrmd[1].Atype = 0
  30. s_wrmd[1].ifsc = TRUE
  31. s_wrmd[1].ifstorage = FALSE
  32. s_wrmd[2].powerid = 65
  33. s_wrmd[2].funcid = 104
  34. s_wrmd[2].dscrp = '销售单仓库审核'
  35. s_wrmd[2].Asql = 'select count(*) from u_outware where billtype = 1 and flag = 0'
  36. s_wrmd[2].Atype = 0
  37. s_wrmd[2].ifsc = TRUE
  38. s_wrmd[2].ifstorage = TRUE
  39. s_wrmd[3].powerid = 137
  40. s_wrmd[3].funcid = 104
  41. s_wrmd[3].dscrp = '销售单财务审核'
  42. s_wrmd[3].Asql = 'select count(*) from u_outware where billtype = 1 and flag = 1 and secflag = 0'
  43. s_wrmd[3].Atype = 0
  44. s_wrmd[3].ifsc = TRUE
  45. s_wrmd[3].ifstorage = TRUE
  46. s_wrmd[4].powerid = 23
  47. s_wrmd[4].funcid = 122
  48. s_wrmd[4].dscrp = '投诉单审核'
  49. s_wrmd[4].Asql = 'select count(*) from u_oppose where flag = 0 and billtype = 1'
  50. s_wrmd[4].Atype = 0
  51. s_wrmd[4].ifsc = FALSE
  52. s_wrmd[4].ifstorage = FALSE
  53. s_wrmd[5].powerid = 86
  54. s_wrmd[5].funcid = 204
  55. s_wrmd[5].dscrp = '产品工价表审核'
  56. s_wrmd[5].Asql = 'select count(*) from u_mtrldef where Auditflag = 0 and mtrlprp = 0'
  57. s_wrmd[5].Atype = 0
  58. s_wrmd[5].ifsc = FALSE
  59. s_wrmd[5].ifstorage = FALSE
  60. s_wrmd[6].powerid = 29
  61. s_wrmd[6].funcid = 304
  62. s_wrmd[6].dscrp = '工组完成时间调整审核'
  63. s_wrmd[6].Asql = 'select count(*) from u_orderworkgroup_time where flag = 0'
  64. s_wrmd[6].Atype = 0
  65. s_wrmd[6].ifsc = FALSE
  66. s_wrmd[6].ifstorage = FALSE
  67. s_wrmd[7].powerid = 36
  68. s_wrmd[7].funcid = 223
  69. s_wrmd[7].dscrp = '生产计划审核'
  70. s_wrmd[7].Asql = 'select count(*) from u_order_ml where status = 0'
  71. s_wrmd[7].Atype = 0
  72. s_wrmd[7].ifsc = TRUE
  73. s_wrmd[7].ifstorage = FALSE
  74. s_wrmd[8].powerid = 41
  75. s_wrmd[8].funcid = 213
  76. s_wrmd[8].dscrp = '外加工计划审核'
  77. s_wrmd[8].Asql = 'select count(*) from u_order_wfjg where status = 0'
  78. s_wrmd[8].Atype = 0
  79. s_wrmd[8].ifsc = TRUE
  80. s_wrmd[8].ifstorage = FALSE
  81. s_wrmd[9].powerid = 56
  82. s_wrmd[9].funcid = 202
  83. s_wrmd[9].dscrp = '产品结构审核'
  84. s_wrmd[9].Asql = 'select count(*) from u_mtrldef where SAuditflag = 0 and mtrlprp = 0'
  85. s_wrmd[9].Atype = 0
  86. s_wrmd[9].ifsc = FALSE
  87. s_wrmd[9].ifstorage = FALSE
  88. s_wrmd[10].powerid = 58
  89. s_wrmd[10].funcid = 219
  90. s_wrmd[10].dscrp = '工组交接单审核'
  91. s_wrmd[10].Asql = 'select count(*) from u_orderworkgroup_num where flag = 0'
  92. s_wrmd[10].Atype = 0
  93. s_wrmd[10].ifsc = FALSE
  94. s_wrmd[10].ifstorage = FALSE
  95. s_wrmd[11].powerid = 63
  96. s_wrmd[11].funcid = 207
  97. s_wrmd[11].dscrp = '生产进仓单审核'
  98. s_wrmd[11].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 3'
  99. s_wrmd[11].Atype = 0
  100. s_wrmd[11].ifsc = TRUE
  101. s_wrmd[11].ifstorage = TRUE
  102. s_wrmd[12].powerid = 64
  103. s_wrmd[12].funcid = 208
  104. s_wrmd[12].dscrp = '领料出仓单审核'
  105. s_wrmd[12].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 3'
  106. s_wrmd[12].Atype = 0
  107. s_wrmd[12].ifsc = TRUE
  108. s_wrmd[12].ifstorage = TRUE
  109. s_wrmd[13].powerid = 66
  110. s_wrmd[13].funcid = 403
  111. s_wrmd[13].dscrp = '采购收货单审核'
  112. s_wrmd[13].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 1'
  113. s_wrmd[13].Atype = 0
  114. s_wrmd[13].ifsc = TRUE
  115. s_wrmd[13].ifstorage = TRUE
  116. s_wrmd[14].powerid = 68
  117. s_wrmd[14].funcid = 304
  118. s_wrmd[14].dscrp = '其他进仓单审核'
  119. s_wrmd[14].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 8'
  120. s_wrmd[14].Atype = 0
  121. s_wrmd[14].ifsc = TRUE
  122. s_wrmd[14].ifstorage = TRUE
  123. s_wrmd[15].powerid = 70
  124. s_wrmd[15].funcid = 303
  125. s_wrmd[15].dscrp = '其他出仓单审核'
  126. s_wrmd[15].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 8'
  127. s_wrmd[15].Atype = 0
  128. s_wrmd[15].ifsc = TRUE
  129. s_wrmd[15].ifstorage = TRUE
  130. s_wrmd[16].powerid = 72
  131. s_wrmd[16].funcid = 305
  132. s_wrmd[16].dscrp = '盘盈单审核'
  133. s_wrmd[16].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 9'
  134. s_wrmd[16].Atype = 0
  135. s_wrmd[16].ifsc = TRUE
  136. s_wrmd[16].ifstorage = TRUE
  137. s_wrmd[17].powerid = 74
  138. s_wrmd[17].funcid = 306
  139. s_wrmd[17].dscrp = '盘亏单审核'
  140. s_wrmd[17].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 9'
  141. s_wrmd[17].Atype = 0
  142. s_wrmd[17].ifsc = TRUE
  143. s_wrmd[17].ifstorage = TRUE
  144. s_wrmd[18].powerid = 82
  145. s_wrmd[18].funcid = 313
  146. s_wrmd[18].dscrp = '仓库调拨审核'
  147. s_wrmd[18].Asql = 'select count(*) from u_outware_move where flag = 0'
  148. s_wrmd[18].Atype = 0
  149. s_wrmd[18].ifsc = FALSE
  150. s_wrmd[18].ifstorage = TRUE
  151. s_wrmd[19].powerid = 83
  152. s_wrmd[19].funcid = 214
  153. s_wrmd[19].dscrp = '外加工收货单审核'
  154. s_wrmd[19].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 4'
  155. s_wrmd[19].Atype = 0
  156. s_wrmd[19].ifsc = TRUE
  157. s_wrmd[19].ifstorage = TRUE
  158. s_wrmd[20].powerid = 85
  159. s_wrmd[20].funcid = 320
  160. s_wrmd[20].dscrp = '扣费品领用单审核'
  161. s_wrmd[20].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 10'
  162. s_wrmd[20].Atype = 0
  163. s_wrmd[20].ifsc = TRUE
  164. s_wrmd[20].ifstorage = TRUE
  165. s_wrmd[21].powerid = 94
  166. s_wrmd[21].funcid = 401
  167. s_wrmd[21].dscrp = '采购订单审核'
  168. s_wrmd[21].Asql = 'select count(*) from u_buytask where status = 0'
  169. s_wrmd[21].Atype = 0
  170. s_wrmd[21].ifsc = TRUE
  171. s_wrmd[21].ifstorage = FALSE
  172. s_wrmd[22].powerid = 111
  173. s_wrmd[22].funcid = 406
  174. s_wrmd[22].dscrp = '供应商投诉单审核'
  175. s_wrmd[22].Asql = 'select count(*) from u_oppose where flag = 0 and billtype = 1'
  176. s_wrmd[22].Atype = 0
  177. s_wrmd[22].ifsc = FALSE
  178. s_wrmd[22].ifstorage = FALSE
  179. s_wrmd[23].powerid = 198
  180. s_wrmd[23].funcid = 708
  181. s_wrmd[23].dscrp = '计件单审核'
  182. s_wrmd[23].Asql = 'select count(*) from u_sc_taskwork where AuditingFlag = 0'
  183. s_wrmd[23].Atype = 0
  184. s_wrmd[23].ifsc = FALSE
  185. s_wrmd[23].ifstorage = FALSE
  186. s_wrmd[24].powerid = 200
  187. s_wrmd[24].funcid = 709
  188. s_wrmd[24].dscrp = '异常计件单审核'
  189. s_wrmd[24].Asql = 'select count(*) from u_sc_abnormity where AuditingFlag = 0'
  190. s_wrmd[24].Atype = 0
  191. s_wrmd[24].ifsc = FALSE
  192. s_wrmd[24].ifstorage = FALSE
  193. s_wrmd[25].powerid = 203
  194. s_wrmd[25].funcid = 320
  195. s_wrmd[25].dscrp = '扣费品领用单工资审核'
  196. s_wrmd[25].Asql = 'select count(*) from u_outware where flag = 1 and secflag = 0 and billtype = 10'
  197. s_wrmd[25].Atype = 0
  198. s_wrmd[25].ifsc = true
  199. s_wrmd[25].ifstorage = true
  200. s_wrmd[26].powerid = 205
  201. s_wrmd[26].funcid = 721
  202. s_wrmd[26].dscrp = '借支单审核'
  203. s_wrmd[26].Asql = 'select count(*) from u_gz_loanwage where flag = 0'
  204. s_wrmd[26].Atype = 0
  205. s_wrmd[26].ifsc = FALSE
  206. s_wrmd[26].ifstorage = FALSE
  207. s_wrmd[27].powerid = 207
  208. s_wrmd[27].funcid = 722
  209. s_wrmd[27].dscrp = '返工返修赔偿单审核'
  210. s_wrmd[27].Asql = 'select count(*) from u_sc_abnormity_bill where flag = 0'
  211. s_wrmd[27].Atype = 0
  212. s_wrmd[27].ifsc = FALSE
  213. s_wrmd[27].ifstorage = FALSE
  214. s_wrmd[28].powerid = 210
  215. s_wrmd[28].funcid = 724
  216. s_wrmd[28].dscrp = '奖罚单审核'
  217. s_wrmd[28].Asql = 'select count(*) from u_gz_award_punish where flag = 0'
  218. s_wrmd[28].Atype = 0
  219. s_wrmd[28].ifsc = FALSE
  220. s_wrmd[28].ifstorage = FALSE
  221. s_wrmd[29].powerid = 212
  222. s_wrmd[29].funcid = 725
  223. s_wrmd[29].dscrp = '考勤单审核'
  224. s_wrmd[29].Asql = 'select count(*) from u_gz_cwork where flag = 0'
  225. s_wrmd[29].Atype = 0
  226. s_wrmd[29].ifsc = FALSE
  227. s_wrmd[29].ifstorage = FALSE
  228. s_wrmd[30].powerid = 213
  229. s_wrmd[30].funcid = 709
  230. s_wrmd[30].dscrp = '异常计件单确认'
  231. s_wrmd[30].Asql = 'select count(*) from u_sc_abnormity where Auditingflag = 1 and secAuditingflag = 0'
  232. s_wrmd[30].Atype = 0
  233. s_wrmd[30].ifsc = FALSE
  234. s_wrmd[30].ifstorage = FALSE
  235. srmd_p = 30
  236. end subroutine
  237. public function integer f_init ();Long ll_scid,ll_storageid
  238. srmd_sc = 0
  239. srmd_storage = 0
  240. DECLARE cur_scid CURSOR FOR
  241. SELECT u_scdef.ScID
  242. FROM u_scdef ;
  243. open cur_scid;
  244. fetch cur_scid into :ll_scid;
  245. do while sqlca.sqlcode = 0
  246. srmd_sc++
  247. scid[srmd_sc] = ll_scid
  248. fetch cur_scid into :ll_scid;
  249. loop
  250. close cur_scid;
  251. DECLARE cur_storageid CURSOR FOR
  252. SELECT u_storage.storageid
  253. FROM u_storage ;
  254. open cur_storageid;
  255. fetch cur_storageid into :ll_storageid;
  256. do while sqlca.sqlcode = 0
  257. srmd_storage++
  258. storageid[srmd_storage] = ll_storageid
  259. fetch cur_storageid into :ll_storageid;
  260. loop
  261. close cur_storageid;
  262. return 1
  263. end function
  264. public subroutine f_syntaxfromsql (long arg_scid, long arg_funcid, long arg_powerid, long arg_storageid, string arg_powername, string arg_sql, string arg_sc_str, string arg_storage_str);Long ll_powerqty
  265. String str_dwSQl,str_SyntaxFromSQL,ls_msg,ls_str
  266. String ls_powername
  267. datastore ds_powerqty
  268. ds_powerqty = CREATE datastore
  269. str_dwSQl = arg_sql + arg_sc_str + arg_storage_str
  270. str_SyntaxFromSQL = sqlca.SyntaxFromSQL(str_dwSQl,"style(type=grid)",ls_msg)
  271. IF ls_msg > '' THEN
  272. ls_powername = "dw语法生成失败,"+arg_powername
  273. GOTO ext
  274. END IF
  275. ds_powerqty.CREATE(str_SyntaxFromSQL,ls_msg)
  276. IF ls_msg <> '' THEN
  277. ls_powername = "建立相关DW失败,"+arg_powername
  278. GOTO ext
  279. END IF
  280. ds_powerqty.SetTransObject(sqlca)
  281. ds_powerqty.Retrieve()
  282. ll_powerqty = ds_powerqty.GetItemNumber(1,1)
  283. IF IsNull(ll_powerqty) THEN
  284. ll_powerqty = 0
  285. GOTO ext
  286. END IF
  287. ext:
  288. f_workremind(arg_scid,arg_funcid,arg_powerid,arg_storageid,arg_powername,ll_powerqty,TRUE,TRUE)
  289. destroy ds_powerqty
  290. end subroutine
  291. public function integer f_getwrmdrslt ();//f_getwrmdrslt
  292. Int rslt = 1
  293. f_init()
  294. f_init_wrmd_info()
  295. Long ll_i,ll_j
  296. Long ll_sc,ll_storage
  297. String ls_sc_str,ls_storage_str
  298. //OPEN(w_sys_wait_jdt) //初始化进度条
  299. //w_sys_wait_jdt.Show()
  300. //w_sys_wait_jdt.wf_accepttol(srmd_p)
  301. FOR ll_i = 1 TO srmd_p
  302. // w_sys_wait_jdt.st_msg.Text = "统计:"+s_wrmd[ll_i].dscrp //进度信息
  303. IF s_wrmd[ll_i].powerid = 0 THEN CONTINUE
  304. IF NOT f_power_ind(s_wrmd[ll_i].powerid) THEN CONTINUE
  305. IF s_wrmd[ll_i].ifsc THEN
  306. FOR ll_sc = 1 TO srmd_sc
  307. IF sys_user_scstr <> '0' AND Pos(sys_user_scstr,','+String(scid[ll_sc])+',') <= 0 THEN CONTINUE
  308. ls_sc_str = ' and scid = ' + String(scid[ll_sc])
  309. IF s_wrmd[ll_i].ifstorage THEN
  310. FOR ll_storage = 1 TO srmd_storage
  311. IF sys_user_storagestr <> '0' AND Pos(sys_user_storagestr,','+String(storageid[ll_storage])+',') <= 0 THEN CONTINUE
  312. ls_storage_str = ' and storageid = ' + String(storageid[ll_storage])
  313. f_syntaxfromsql(scid[ll_sc],s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,storageid[ll_storage],s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str)
  314. NEXT
  315. ELSE
  316. ls_storage_str = ''
  317. f_syntaxfromsql(scid[ll_sc],s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,-1,s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str)
  318. END IF
  319. NEXT
  320. ELSE
  321. ls_sc_str = ''
  322. IF s_wrmd[ll_i].ifstorage THEN
  323. FOR ll_storage = 1 TO srmd_storage
  324. IF sys_user_storagestr <> '0' AND Pos(sys_user_storagestr,','+String(storageid[ll_storage])+',') <= 0 THEN CONTINUE
  325. ls_storage_str = ' and storageid = ' + String(storageid[ll_storage])
  326. f_syntaxfromsql(-1,s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,storageid[ll_storage],s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str)
  327. NEXT
  328. ELSE
  329. ls_storage_str = ''
  330. f_syntaxfromsql(-1,s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,-1,s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str)
  331. END IF
  332. END IF
  333. // w_sys_wait_jdt.wf_inc(ll_i) //进度
  334. NEXT
  335. //CLOSE(w_sys_wait_jdt)
  336. RETURN rslt
  337. end function
  338. on uo_workremind.create
  339. call super::create
  340. TriggerEvent( this, "constructor" )
  341. end on
  342. on uo_workremind.destroy
  343. TriggerEvent( this, "destructor" )
  344. call super::destroy
  345. end on