uo_inware_gh.sru 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662
  1. $PBExportHeader$uo_inware_gh.sru
  2. forward
  3. global type uo_inware_gh from uo_inware
  4. end type
  5. end forward
  6. global type uo_inware_gh from uo_inware
  7. end type
  8. global uo_inware_gh uo_inware_gh
  9. forward prototypes
  10. public function integer auditing (boolean arg_ifcommit, ref string arg_msg)
  11. public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg)
  12. public function integer uof_add_empmtrl_ly (integer arg_flag, boolean arg_ifcommit, ref string arg_msg)
  13. public function integer sec_auditing (boolean arg_ifcommit, ref string arg_msg)
  14. public function integer c_sec_auditing (boolean arg_ifcommit, ref string arg_msg)
  15. end prototypes
  16. public function integer auditing (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  17. Long cnt = 0,i,j,mx_barcode_cnt
  18. Long ll_sptid,ll_mtrlwareid_ref
  19. String ls_mtrlcuscode
  20. String ls_storagename
  21. Int li_outtype,li_storagetype
  22. s_inwaremx_assign_plan arg_s_ap,arg_s_ap_null
  23. s_inwaremx_barcode_fp arg_s_mxbarcode_fp
  24. uo_sqlpro uo_pro
  25. uo_pro = Create uo_sqlpro
  26. uo_pro.commit_transaction = commit_transaction
  27. IF uo_option_inout_type = -1000 THEN
  28. rslt = 0
  29. arg_msg = '选项:[142]进出仓高级选项,读取初始默认值失败,操作取消!'
  30. GOTO ext
  31. END IF
  32. IF uo_option_barcode_inwareother_paudit = -1000 THEN
  33. rslt = 0
  34. arg_msg = '选项:[206]仓库使用条码流程,读取初始默认值失败,操作取消!'
  35. GOTO ext
  36. END IF
  37. IF uo_option_barcode_inwarebuy_paudit = -1000 THEN
  38. rslt = 0
  39. arg_msg = '选项:[208]仓库使用条码流程,读取初始默认值失败,操作取消!'
  40. GOTO ext
  41. END IF
  42. IF uo_option_barcode_inwarecp_paudit = -1000 THEN
  43. rslt = 0
  44. arg_msg = '选项:[207]仓库使用条码流程,读取初始默认值失败,操作取消!'
  45. GOTO ext
  46. END IF
  47. uo_mtrlware_assign uo_ma
  48. uo_ma = Create uo_mtrlware_assign
  49. uo_ma.commit_transaction = commit_transaction
  50. IF inwareid = 0 THEN
  51. rslt = 0
  52. arg_msg = "没有进仓审核对象"
  53. GOTO ext
  54. END IF
  55. IF storageid = 0 THEN
  56. rslt = 0
  57. arg_msg = '没有正确的仓库'
  58. GOTO ext
  59. END IF
  60. IF billtype <> 9 THEN
  61. IF uof_check_warepdb_audit(storageid,arg_msg) = 0 THEN
  62. rslt = 0
  63. GOTO ext
  64. END IF
  65. END IF
  66. SELECT storagename,outtype,storagetype
  67. INTO :ls_storagename,:li_outtype,:li_storagetype
  68. FROM u_storage
  69. Where storageid = :storageid Using commit_transaction ;
  70. IF commit_transaction.SQLCode <> 0 THEN
  71. rslt = 0
  72. arg_msg = "查询操作失败,仓库"
  73. GOTO ext
  74. END IF
  75. //检查是否有该仓库的建立权限
  76. IF sys_user_storagestr_audit <> '0' THEN
  77. IF Pos(sys_user_storagestr_audit,','+String(storageid)+',') <= 0 THEN
  78. rslt = 0
  79. arg_msg = '没有仓库: '+ls_storagename+' 的审核权限,不允许审核该仓库的单据'
  80. GOTO ext
  81. END IF
  82. END IF
  83. //
  84. IF uo_option_inout_type = 2 And &
  85. ( uo_option_barcode_inwareother_paudit = 1 And billtype = 8 Or &
  86. uo_option_barcode_inwarebuy_paudit = 1 And billtype = 1 Or &
  87. uo_option_barcode_inwarecp_paudit = 1 And billtype = 3 ) THEN
  88. IF priceflag = 0 THEN
  89. arg_msg = '单据未确认,不能审核'
  90. rslt = 0
  91. GOTO ext
  92. END IF
  93. END IF
  94. IF flag = 1 THEN
  95. rslt = 0
  96. arg_msg = "单据已经审核"
  97. GOTO ext
  98. END IF
  99. //检查条码数量是否匹配
  100. IF li_outtype = 2 THEN
  101. IF uof_check_barcodeqty(arg_msg) = 0 THEN
  102. rslt = 0
  103. GOTO ext
  104. END IF
  105. END IF
  106. UPDATE u_inware
  107. SET auditingrep = :publ_operator,
  108. auditingdate = getdate(),
  109. flag = 1
  110. WHERE u_inware.inwareid = :inwareid
  111. AND flag = 0
  112. And scid = :scid Using commit_transaction;
  113. IF commit_transaction.SQLCode <> 0 THEN
  114. rslt = 0
  115. arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText
  116. GOTO ext
  117. ELSEIF commit_transaction.SQLNRows = 0 THEN
  118. rslt = 0
  119. arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  120. GOTO ext
  121. END IF
  122. FOR i = 1 To it_mxbt
  123. IF f_power_ind(2203,sys_msg_pow) And Not sys_power_issuper And billtype <> 23 THEN
  124. IF inwaremx[i].uprice = 0 THEN
  125. rslt = 0
  126. arg_msg = '行:'+String(i)+',没有单价,请检查'
  127. GOTO ext
  128. END IF
  129. END IF
  130. //yyx20100814
  131. IF li_storagetype = 1 THEN
  132. ll_sptid = 0
  133. ls_mtrlcuscode = ''
  134. ELSE
  135. IF billtype = 4 THEN
  136. ll_sptid = 0
  137. ELSE
  138. ll_sptid = inwaremx[i].sptid
  139. END IF
  140. ls_mtrlcuscode = inwaremx[i].mtrlcuscode
  141. END IF
  142. //yyx20100814_end
  143. IF sys_option_inout_procedure = 0 THEN
  144. IF billtype <> 20 And billtype <> 21 THEN
  145. IF p_update_mtrlware(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,&
  146. storageid,inwaremx[i].plancode,inwaremx[i].status,&
  147. inwaremx[i].qty,inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,&
  148. ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,&
  149. inwaremx[i].pcode,ls_mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,inwaremx[i].ifvqty,arg_msg) = 0 THEN
  150. arg_msg = '更新行:'+String(i)+','+arg_msg
  151. rslt = 0
  152. GOTO ext
  153. END IF
  154. ELSE
  155. IF p_update_mtrlware_ws(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,&
  156. storageid,inwaremx[i].plancode,inwaremx[i].status,&
  157. inwaremx[i].qty,inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,&
  158. ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,&
  159. inwaremx[i].pcode,ls_mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,arg_msg) = 0 THEN
  160. arg_msg = '更新行:'+String(i)+','+arg_msg
  161. rslt = 0
  162. GOTO ext
  163. END IF
  164. END IF
  165. ELSE
  166. IF uo_pro.p_inware_update_mtrlware(scid,inwareid,inwaremx[i].printid,inwaremx[i].mtrlid,&
  167. inwaremx[i].mtrlcode,storageid,inwaremx[i].plancode,inwaremx[i].status,inwaremx[i].qty,&
  168. inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,ll_sptid,inwaremx[i].dxflag,&
  169. inwaremx[i].woodcode,inwaremx[i].pcode,ls_mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,arg_msg) = 0 THEN
  170. arg_msg = '更新行:'+String(i)+','+arg_msg
  171. rslt = 0
  172. GOTO ext
  173. END IF
  174. END IF
  175. //yyx20100814
  176. //库存分配
  177. IF li_storagetype = 1 And billtype <> 23 THEN
  178. //取库存信息
  179. ll_mtrlwareid_ref = 0
  180. IF uof_ref_mtrlwareid(scid,storageid,inwaremx[i].mtrlid,&
  181. inwaremx[i].status,inwaremx[i].woodcode,inwaremx[i].pcode,inwaremx[i].plancode,&
  182. inwaremx[i].Location,ll_sptid,ls_mtrlcuscode,ll_mtrlwareid_ref,arg_msg) = 0 THEN
  183. arg_msg = '行:'+String(i)+','+arg_msg
  184. rslt = 0
  185. GOTO ext
  186. END IF
  187. //取分配计划
  188. arg_s_ap = arg_s_ap_null
  189. IF uof_ref_assign_plan(scid,ll_mtrlwareid_ref,inwaremx[i].qty,arg_s_ap,arg_msg) = 0 THEN
  190. arg_msg = '行:'+String(i)+','+arg_msg
  191. rslt = 0
  192. GOTO ext
  193. END IF
  194. FOR j = 1 To UpperBound(arg_s_ap.planid)
  195. IF uo_ma.uof_assign_add(arg_s_ap.scid[j],arg_s_ap.mtrlwareid[j],&
  196. arg_s_ap.assigntype[j],arg_s_ap.relbillid[j],arg_s_ap.relprintid[j],&
  197. arg_s_ap.notassignqty[j],inwaremx[i].cost,ls_mtrlcuscode,inwaremx[i].mtrlwaredscrp,&
  198. inwarecode,inwaremx[i].printid,arg_s_ap.fpgrade[j],publ_operator,arg_msg,False) = 0 THEN
  199. arg_msg = '行:'+String(i)+','+arg_msg
  200. rslt = 0
  201. GOTO ext
  202. END IF
  203. IF arg_s_ap.planid[j] > 0 THEN
  204. IF uo_ma.uof_plan_addassignqty(arg_s_ap.planid[j],arg_s_ap.notassignqty[j],&
  205. inwarecode,inwaremx[i].printid,arg_msg,False) = 0 THEN
  206. arg_msg = '行:'+String(i)+','+arg_msg
  207. rslt = 0
  208. GOTO ext
  209. END IF
  210. END IF
  211. NEXT
  212. END IF
  213. //yyx20100814_end
  214. IF li_outtype = 2 And inwaremx[i].outtype = 2 THEN mx_barcode_cnt++
  215. NEXT
  216. //更新条码
  217. IF li_outtype = 2 And mx_barcode_cnt > 0 THEN
  218. IF uof_p_barcode(1,arg_msg,arg_s_mxbarcode_fp) = 0 THEN
  219. rslt = 0
  220. GOTO ext
  221. END IF
  222. END IF
  223. //更新人员 领用物料信息
  224. IF uof_add_empmtrl_ly(0, False, arg_msg) = 0 THEN
  225. rslt = 0
  226. GOTO ext
  227. END IF
  228. flag = 1
  229. ext:
  230. IF rslt = 0 THEN
  231. ROLLBACK Using commit_transaction;
  232. ELSEIF rslt = 1 And arg_ifcommit THEN
  233. COMMIT Using commit_transaction;
  234. END IF
  235. Destroy uo_ma
  236. Destroy uo_pro
  237. RETURN rslt
  238. end function
  239. public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  240. Long cnt = 0,i,j,mx_barcode_cnt
  241. Long ll_sptid
  242. String ls_mtrlcuscode
  243. String ls_storagename
  244. Int li_outtype,li_storagetype
  245. s_inwaremx_assign_plan arg_s_ap,arg_s_ap_null
  246. s_inwaremx_assign arg_s_a,arg_s_a_null
  247. s_inwaremx_barcode_fp arg_s_mxbarcode_fp
  248. uo_sqlpro uo_pro
  249. uo_pro = Create uo_sqlpro
  250. uo_pro.commit_transaction = commit_transaction
  251. uo_mtrlware_assign uo_ma
  252. uo_ma = Create uo_mtrlware_assign
  253. uo_ma.commit_transaction = commit_transaction
  254. DateTime null_dt
  255. SetNull(null_dt)
  256. IF storageid = 0 THEN
  257. rslt = 0
  258. arg_msg = '没有正确的仓库'
  259. GOTO ext
  260. END IF
  261. IF billtype <> 9 THEN
  262. IF uof_check_warepdb_audit(storageid,arg_msg) = 0 THEN
  263. rslt = 0
  264. GOTO ext
  265. END IF
  266. END IF
  267. SELECT storagename,outtype,storagetype
  268. INTO :ls_storagename,:li_outtype,:li_storagetype
  269. FROM u_storage
  270. Where storageid = :storageid Using commit_transaction ;
  271. IF commit_transaction.SQLCode <> 0 THEN
  272. rslt = 0
  273. arg_msg = "查询操作失败,仓库"
  274. GOTO ext
  275. END IF
  276. //检查是否有该仓库的建立权限
  277. IF sys_user_storagestr_audit <> '0' THEN
  278. IF Pos(sys_user_storagestr_audit,','+String(storageid)+',') <= 0 THEN
  279. rslt = 0
  280. arg_msg = '没有仓库: '+ls_storagename+' 的审核权限,不允许撤审该仓库的单据'
  281. GOTO ext
  282. END IF
  283. END IF
  284. //
  285. IF inwareid = 0 THEN
  286. rslt = 0
  287. arg_msg = "没有出仓撤审对象"
  288. GOTO ext
  289. END IF
  290. IF ctmint > 0 THEN
  291. arg_msg = '单据已截数,不能操作'
  292. rslt = 0
  293. GOTO ext
  294. END IF
  295. IF flag = 0 THEN
  296. rslt = 0
  297. arg_msg = "单据还未审核"
  298. GOTO ext
  299. END IF
  300. IF balcflag = 1 THEN
  301. rslt = 0
  302. arg_msg = "单据已经结存,不能撤审"
  303. GOTO ext
  304. END IF
  305. IF billtype = 26 THEN
  306. cnt = 0
  307. SELECT count(*) INTO :cnt
  308. FROM u_inwaremx_mx,u_inware
  309. WHERE u_inware.scid = u_inwaremx_mx.scid
  310. AND u_inware.inwareid = u_inwaremx_mx.inwareid
  311. AND u_inware.billtype = 27
  312. And u_inwaremx_mx.ptinwareid = :inwareid Using commit_transaction;
  313. IF commit_transaction.SQLCode <> 0 THEN
  314. arg_msg = '查询单据是否已开配套结算单失败,'+commit_transaction.SQLErrText
  315. rslt = 0
  316. GOTO ext
  317. END IF
  318. IF cnt > 0 THEN
  319. arg_msg = '单据已开配套结算单,不能撤审'
  320. rslt = 0
  321. GOTO ext
  322. END IF
  323. END IF
  324. UPDATE u_inware
  325. SET auditingrep = '',
  326. auditingdate = :null_dt,
  327. flag = 0
  328. WHERE u_inware.inwareid = :inwareid
  329. And flag = 1 And scid = :scid Using commit_transaction;
  330. IF commit_transaction.SQLCode <> 0 THEN
  331. rslt = 0
  332. arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText
  333. GOTO ext
  334. ELSEIF commit_transaction.SQLNRows = 0 THEN
  335. rslt = 0
  336. arg_msg = "单据正在撤审,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  337. GOTO ext
  338. END IF
  339. FOR i = 1 To it_mxbt
  340. //yyx20100814
  341. IF li_storagetype = 1 THEN
  342. ll_sptid = 0
  343. ls_mtrlcuscode = ''
  344. ELSE
  345. IF billtype = 4 THEN
  346. ll_sptid = 0
  347. ELSE
  348. ll_sptid = inwaremx[i].sptid
  349. END IF
  350. ls_mtrlcuscode = inwaremx[i].mtrlcuscode
  351. END IF
  352. //yyx20100814_end
  353. IF sys_option_inout_procedure = 0 THEN
  354. IF billtype <> 20 And billtype <> 21 THEN
  355. IF p_update_mtrlware(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,&
  356. storageid,inwaremx[i].plancode,inwaremx[i].status,&
  357. 0 - inwaremx[i].qty,0 - inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,&
  358. ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,&
  359. inwaremx[i].pcode,ls_mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,inwaremx[i].ifvqty,arg_msg) = 0 THEN
  360. arg_msg = '更新行:'+String(i)+','+arg_msg
  361. rslt = 0
  362. GOTO ext
  363. END IF
  364. ELSE
  365. IF p_update_mtrlware_ws(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,&
  366. storageid,inwaremx[i].plancode,inwaremx[i].status,&
  367. 0 - inwaremx[i].qty,0 - inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,&
  368. ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,&
  369. inwaremx[i].pcode,ls_mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,arg_msg) = 0 THEN
  370. arg_msg = '更新行:'+String(i)+','+arg_msg
  371. rslt = 0
  372. GOTO ext
  373. END IF
  374. END IF
  375. ELSE
  376. IF uo_pro.p_inware_update_mtrlware(scid,inwareid,inwaremx[i].printid,inwaremx[i].mtrlid,&
  377. inwaremx[i].mtrlcode,storageid,inwaremx[i].plancode,inwaremx[i].status,0 - inwaremx[i].qty,&
  378. 0 - inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,ll_sptid,inwaremx[i].dxflag,&
  379. inwaremx[i].woodcode,inwaremx[i].pcode,ls_mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,arg_msg) = 0 THEN
  380. arg_msg = '更新行:'+String(i)+','+arg_msg
  381. rslt = 0
  382. GOTO ext
  383. END IF
  384. END IF
  385. //yyx20100814
  386. //库存分配
  387. IF li_storagetype = 1 And billtype <> 23 THEN
  388. //取消分配
  389. arg_s_a = arg_s_a_null
  390. IF uof_ref_assign_cancel(inwarecode,inwaremx[i].printid,arg_s_a,arg_msg) = 0 THEN
  391. arg_msg = '行:'+String(i)+','+arg_msg
  392. rslt = 0
  393. GOTO ext
  394. END IF
  395. FOR j = 1 To UpperBound(arg_s_a.assignid)
  396. IF uo_ma.uof_assign_del(arg_s_a.assignid[j],arg_s_a.assignqty[j],&
  397. arg_msg,False) = 0 THEN
  398. arg_msg = '行:'+String(i)+','+arg_msg
  399. rslt = 0
  400. GOTO ext
  401. END IF
  402. NEXT
  403. //取消分配计划
  404. arg_s_ap = arg_s_ap_null
  405. IF uof_ref_assign_plan_cancel(inwarecode,inwaremx[i].printid,arg_s_ap,arg_msg) = 0 THEN
  406. arg_msg = '行:'+String(i)+','+arg_msg
  407. rslt = 0
  408. GOTO ext
  409. END IF
  410. FOR j = 1 To UpperBound(arg_s_ap.planid)
  411. IF uo_ma.uof_plan_addassignqty(arg_s_ap.planid[j],0 - arg_s_ap.notassignqty[j],&
  412. inwarecode,inwaremx[i].printid,arg_msg,False) = 0 THEN
  413. arg_msg = '行:'+String(i)+','+arg_msg
  414. rslt = 0
  415. GOTO ext
  416. END IF
  417. NEXT
  418. END IF
  419. //yyx20100814_end
  420. IF li_outtype = 2 And inwaremx[i].outtype = 2 THEN mx_barcode_cnt++
  421. NEXT
  422. IF li_outtype = 2 And mx_barcode_cnt > 0 THEN
  423. IF uof_p_barcode(0,arg_msg,arg_s_mxbarcode_fp) = 0 THEN
  424. rslt = 0
  425. GOTO ext
  426. END IF
  427. END IF
  428. //更新人员 领用物料信息
  429. IF uof_add_empmtrl_ly(1, False, arg_msg) = 0 THEN
  430. rslt = 0
  431. GOTO ext
  432. END IF
  433. flag = 0
  434. ext:
  435. IF rslt = 0 THEN
  436. ROLLBACK Using commit_transaction;
  437. ELSEIF rslt = 1 And arg_ifcommit THEN
  438. COMMIT Using commit_transaction;
  439. END IF
  440. Destroy uo_ma
  441. Destroy uo_pro
  442. RETURN rslt
  443. end function
  444. public function integer uof_add_empmtrl_ly (integer arg_flag, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  445. Long i
  446. uo_empinfo uo_emp
  447. uo_emp = Create uo_empinfo
  448. IF arg_flag = 0 THEN //审核
  449. FOR i = 1 To it_mxbt
  450. IF uo_emp.uof_add_empmtrl_gh(sptid, inwaremx[i].mtrlid, inwaremx[i].status, inwaremx[i].woodcode, inwaremx[i].pcode, inwaremx[i].qty,inwaremx[i].cost, False, arg_msg) = 0 THEN
  451. rslt = 0
  452. GOTO ext
  453. END IF
  454. NEXT
  455. ELSE
  456. FOR i = 1 To it_mxbt
  457. IF uo_emp.uof_add_empmtrl_gh(sptid, inwaremx[i].mtrlid, inwaremx[i].status, inwaremx[i].woodcode, inwaremx[i].pcode, 0 - inwaremx[i].qty,inwaremx[i].cost, False, arg_msg) = 0 THEN
  458. rslt = 0
  459. GOTO ext
  460. END IF
  461. NEXT
  462. END IF
  463. ext:
  464. Destroy uo_emp
  465. RETURN rslt
  466. end function
  467. public function integer sec_auditing (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  468. Long cnt = 0,i
  469. Decimal ls_emp_sumwage
  470. uo_wage u_wage
  471. u_wage = CREATE uo_wage
  472. Long ll_wagemth
  473. //IF getinfo(arg_scid,arg_billid,arg_msg) = 0 THEN
  474. // rslt = 0
  475. // GOTO ext
  476. //END IF
  477. IF secflag = 1 THEN
  478. rslt = 0
  479. arg_msg = '单据还已经财审,操作取消'
  480. GOTO ext
  481. END IF
  482. UPDATE u_inware SET
  483. secflag = 1,
  484. secauditingrep = :publ_operator,
  485. secAuditingdate = getdate()
  486. WHERE scid = :scid
  487. AND inwareid = :inwareid
  488. AND flag = 1
  489. AND secflag = 0;
  490. IF sqlca.SQLCode <> 0 THEN
  491. arg_msg = '财审员工归还单失败,原因>>'+sqlca.SQLErrText
  492. rslt = 0
  493. GOTO ext
  494. END IF
  495. secflag = 1
  496. ext:
  497. IF rslt = 0 THEN
  498. ROLLBACK;
  499. ELSEIF rslt = 1 AND arg_ifcommit THEN
  500. COMMIT;
  501. END IF
  502. DESTROY u_wage
  503. RETURN rslt
  504. end function
  505. public function integer c_sec_auditing (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  506. Long cnt = 0,i
  507. Decimal ls_emp_sumwage
  508. DateTime null_server_dt
  509. SetNull(null_server_dt)
  510. //IF getinfo(arg_scid,arg_billid,arg_msg) = 0 THEN
  511. // rslt = 0
  512. // GOTO ext
  513. //END IF
  514. IF secflag = 0 THEN
  515. rslt = 0
  516. arg_msg = '单据还没有财审,操作取消'
  517. GOTO ext
  518. END IF
  519. UPDATE u_inware SET
  520. secflag = 0,
  521. secauditingrep = '',
  522. secAuditingdate = :null_server_dt
  523. WHERE scid = :scid
  524. and inwareid = :inwareid
  525. AND flag = 1
  526. AND secflag = 1;
  527. IF sqlca.SQLCode <> 0 THEN
  528. arg_msg = '财审员工归还单失败,原因>>'+sqlca.SQLErrText
  529. rslt = 0
  530. GOTO ext
  531. END IF
  532. secflag = 0
  533. ext:
  534. IF rslt = 0 THEN
  535. ROLLBACK;
  536. ELSEIF rslt = 1 AND arg_ifcommit THEN
  537. COMMIT;
  538. END IF
  539. RETURN rslt
  540. end function
  541. on uo_inware_gh.create
  542. call super::create
  543. end on
  544. on uo_inware_gh.destroy
  545. call super::destroy
  546. end on