uo_rap_money_transfer.sru 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. $PBExportHeader$uo_rap_money_transfer.sru
  2. forward
  3. global type uo_rap_money_transfer from nonvisualobject
  4. end type
  5. type s_saleplanmx from structure within uo_rap_money_transfer
  6. end type
  7. end forward
  8. type s_saleplanmx from structure
  9. long mtrlid
  10. string mtrlcode
  11. long printid
  12. decimal { 10 } planqty
  13. string mxdscrp
  14. end type
  15. global type uo_rap_money_transfer from nonvisualobject
  16. end type
  17. global uo_rap_money_transfer uo_rap_money_transfer
  18. type variables
  19. Long uo_billid
  20. end variables
  21. forward prototypes
  22. public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  23. public function integer updatebegin (long arg_billid, ref string arg_msg)
  24. public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  25. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg)
  26. public function integer p_getinfo (long arg_billid, ref s_rap_money_transfer arg_s_rap_money_transfer, ref string arg_msg)
  27. public function integer save (s_rap_money_transfer arg_s_transfer, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  28. public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  29. public function integer caudit2 (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  30. public function integer audit2 (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  31. end prototypes
  32. public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  33. s_rap_money_transfer arg_s_rap_money_transfer
  34. IF arg_billid <= 0 THEN
  35. rslt = 0
  36. ARG_MSG = '错误单据唯一码'
  37. GOTO ext
  38. END IF
  39. IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN
  40. rslt = 0
  41. GOTO ext
  42. END IF
  43. IF arg_s_rap_money_transfer.flag = 1 THEN
  44. rslt = 0
  45. ARG_MSG = '单据已经审核,不可以删除'
  46. GOTO ext
  47. END IF
  48. DELETE FROM u_rap_money_transfer Where billid = :arg_billid;
  49. IF sqlca.SQLCode <> 0 THEN
  50. rslt = 0
  51. arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
  52. GOTO ext
  53. END IF
  54. ext:
  55. IF rslt = 0 THEN
  56. ROLLBACK;
  57. ELSEIF rslt = 1 AND arg_ifcommit THEN
  58. COMMIT;
  59. END IF
  60. RETURN rslt
  61. end function
  62. public function integer updatebegin (long arg_billid, ref string arg_msg);Int rslt = 1
  63. s_rap_money_transfer arg_s_rap_money_transfer
  64. IF arg_billid <= 0 THEN
  65. rslt = 0
  66. ARG_MSG = '错误单据唯一码'
  67. GOTO ext
  68. END IF
  69. IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN
  70. rslt = 0
  71. GOTO ext
  72. END IF
  73. IF arg_s_rap_money_transfer.flag = 1 THEN
  74. rslt = 0
  75. ARG_MSG = '单据已经审核,不可以修改,要修改请先撤销审核'
  76. GOTO ext
  77. END IF
  78. ext:
  79. RETURN rslt
  80. end function
  81. public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  82. Long it_mxbt
  83. Long ll_moneyid_out,ll_moneyid_in
  84. Long ll_native_out,ll_native_in
  85. Long ll_rapmoneyid_out,ll_rapmoneyid_in
  86. s_rap_money_transfer arg_s_rap_money_transfer
  87. uo_rapmoney uo_rap
  88. uo_rap = Create uo_rapmoney
  89. IF arg_billid <= 0 THEN
  90. rslt = 0
  91. ARG_MSG = '错误单据唯一码'
  92. GOTO ext
  93. END IF
  94. IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN
  95. rslt = 0
  96. GOTO ext
  97. END IF
  98. IF arg_s_rap_money_transfer.flag = 1 THEN
  99. rslt = 0
  100. ARG_MSG = '单据已经审核,不可以再审'
  101. GOTO ext
  102. END IF
  103. SELECT moneyid INTO :ll_moneyid_out
  104. FROM u_accounts
  105. Where accountsid = :arg_s_rap_money_transfer.accountid_out;
  106. IF sqlca.SQLCode <> 0 THEN
  107. rslt = 0
  108. ARG_MSG = '查询转出帐号币种失败,'+sqlca.SQLErrText
  109. GOTO ext
  110. END IF
  111. SELECT native INTO :ll_native_out
  112. FROM cw_currency
  113. Where moneyid = :ll_moneyid_out;
  114. IF sqlca.SQLCode <> 0 THEN
  115. rslt = 0
  116. ARG_MSG = '查询转出帐号币种属性失败,'+sqlca.SQLErrText
  117. GOTO ext
  118. END IF
  119. SELECT moneyid INTO :ll_moneyid_in
  120. FROM u_accounts
  121. Where accountsid = :arg_s_rap_money_transfer.accountid_in;
  122. IF sqlca.SQLCode <> 0 THEN
  123. rslt = 0
  124. ARG_MSG = '查询转入帐号币种失败,'+sqlca.SQLErrText
  125. GOTO ext
  126. END IF
  127. SELECT native INTO :ll_native_in
  128. FROM cw_currency
  129. Where moneyid = :ll_moneyid_in;
  130. IF sqlca.SQLCode <> 0 THEN
  131. rslt = 0
  132. ARG_MSG = '查询转入帐号币种属性失败,'+sqlca.SQLErrText
  133. GOTO ext
  134. END IF
  135. //更新审核标记
  136. UPDATE u_rap_money_transfer
  137. SET permit_emp = :arg_opemp,
  138. permit_date = getdate(),
  139. flag = 1
  140. WHERE billid = :arg_billid
  141. And flag = 0;
  142. IF sqlca.SQLCode <> 0 THEN
  143. rslt = 0
  144. ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
  145. GOTO ext
  146. END IF
  147. s_rap_money s_rap_out,s_rap_in
  148. //转出
  149. s_rap_out.accountsid = arg_s_rap_money_transfer.accountid_out
  150. s_rap_out.rapid = 0
  151. s_rap_out.takedate = arg_s_rap_money_transfer.checkdate
  152. s_rap_out.billcode = arg_s_rap_money_transfer.billcode
  153. s_rap_out.relcode = arg_s_rap_money_transfer.relcode
  154. s_rap_out.dscrp = '转帐单号:'+arg_s_rap_money_transfer.billcode+',备注:'+arg_s_rap_money_transfer.dscrp
  155. s_rap_out.msttakeamt = 0
  156. s_rap_out.takeamt = arg_s_rap_money_transfer.transferamt
  157. s_rap_out.inrep = arg_s_rap_money_transfer.checkemp
  158. s_rap_out.banktypeid = arg_s_rap_money_transfer.banktypeid
  159. s_rap_out.opemp = arg_opemp
  160. s_rap_out.buildtype = 2
  161. s_rap_out.dcflag = 0
  162. s_rap_out.relid = arg_s_rap_money_transfer.billid
  163. IF uo_rap.add_raprec(s_rap_out,ARG_MSG,False) = 0 THEN
  164. ARG_MSG = '增加(转出)出纳明细帐失败!~n' + ARG_MSG
  165. rslt = 0
  166. GOTO ext
  167. END IF
  168. ll_rapmoneyid_out = uo_rap.ref_rapid
  169. IF ll_rapmoneyid_out = 0 THEN
  170. ARG_MSG = '增加(转出)出纳明细帐失败!'
  171. rslt = 0
  172. GOTO ext
  173. END IF
  174. //转入
  175. s_rap_in.accountsid = arg_s_rap_money_transfer.accountid_in
  176. s_rap_in.rapid = 0
  177. s_rap_in.takedate = arg_s_rap_money_transfer.checkdate2
  178. s_rap_in.billcode = arg_s_rap_money_transfer.billcode
  179. s_rap_in.relcode = arg_s_rap_money_transfer.relcode
  180. s_rap_in.dscrp = '转帐单号:'+arg_s_rap_money_transfer.billcode+',备注:'+arg_s_rap_money_transfer.dscrp
  181. IF ll_native_out = 1 And ll_native_in = 0 THEN
  182. s_rap_in.msttakeamt = Round(arg_s_rap_money_transfer.transferamt/arg_s_rap_money_transfer.mrate,2)
  183. ELSE
  184. s_rap_in.msttakeamt = Round(arg_s_rap_money_transfer.transferamt * arg_s_rap_money_transfer.mrate,2)
  185. END IF
  186. s_rap_in.takeamt = 0
  187. s_rap_in.inrep = arg_s_rap_money_transfer.checkemp
  188. s_rap_in.banktypeid = arg_s_rap_money_transfer.banktypeid
  189. s_rap_in.opemp = arg_opemp
  190. s_rap_in.buildtype = 2
  191. s_rap_in.dcflag = 0
  192. s_rap_in.relid = arg_s_rap_money_transfer.billid
  193. IF uo_rap.add_raprec(s_rap_in,ARG_MSG,False) = 0 THEN
  194. ARG_MSG = '增加(转入)出纳明细帐失败!~n' + ARG_MSG
  195. rslt = 0
  196. GOTO ext
  197. END IF
  198. ll_rapmoneyid_in = uo_rap.ref_rapid
  199. IF ll_rapmoneyid_in = 0 THEN
  200. ARG_MSG = '增加(转入)出纳明细帐失败!'
  201. rslt = 0
  202. GOTO ext
  203. END IF
  204. UPDATE u_rap_money_transfer
  205. SET rapmoneyid_in = :ll_rapmoneyid_in,
  206. rapmoneyid_out = :ll_rapmoneyid_out
  207. Where billid = :arg_billid;
  208. IF sqlca.SQLCode <> 0 THEN
  209. rslt = 0
  210. ARG_MSG = "因网络或其它原因导致更新单据转出转入相关资料失败操作失败"+"~n"+sqlca.SQLErrText
  211. GOTO ext
  212. END IF
  213. ext:
  214. IF rslt = 0 THEN
  215. ROLLBACK;
  216. ELSEIF rslt = 1 And arg_ifcommit THEN
  217. COMMIT;
  218. END IF
  219. Destroy uo_rap
  220. RETURN rslt
  221. end function
  222. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg);Int rslt = 1
  223. s_rap_money_transfer arg_s_rap_money_transfer
  224. IF arg_billid <= 0 THEN
  225. rslt = 0
  226. arg_msg = '错误单据唯一码'
  227. GOTO ext
  228. END IF
  229. IF arg_newdescppart = '' THEN
  230. rslt = 0
  231. arg_msg = "要添加内容为空,操作取消"
  232. GOTO ext
  233. END IF
  234. IF p_getinfo(arg_billid,arg_s_rap_money_transfer,arg_msg) = 0 THEN
  235. rslt = 0
  236. GOTO ext
  237. END IF
  238. IF arg_s_rap_money_transfer.flag = 0 THEN
  239. rslt = 0
  240. arg_msg = '单据未审核,不可以增加备注'
  241. GOTO ext
  242. END IF
  243. UPDATE u_rap_money_transfer
  244. SET DSCRP = DSCRP+' '+:arg_newdescppart
  245. WHERE u_rap_money_transfer.billid = :arg_billid
  246. AND flag = 1;
  247. IF SQLCA.SQLCode <> 0 THEN
  248. rslt = 0
  249. arg_msg = "因网络或其它原因导致添加备注操作失败"+"~n"+SQLCA.SQLErrText
  250. GOTO ext
  251. END IF
  252. ext:
  253. IF rslt = 1 THEN
  254. COMMIT;
  255. ELSE
  256. ROLLBACK;
  257. END IF
  258. Return (rslt)
  259. end function
  260. public function integer p_getinfo (long arg_billid, ref s_rap_money_transfer arg_s_rap_money_transfer, ref string arg_msg);Int rslt = 1
  261. IF arg_billid <= 0 THEN
  262. rslt = 0
  263. ARG_MSG = '错误单据唯一码'
  264. GOTO ext
  265. END IF
  266. SELECT u_rap_money_transfer.flag,
  267. u_rap_money_transfer.secflag,
  268. u_rap_money_transfer.relcode,
  269. u_rap_money_transfer.banktypeid,
  270. u_rap_money_transfer.accountid_out,
  271. u_rap_money_transfer.accountid_in,
  272. u_rap_money_transfer.transferamt,
  273. u_rap_money_transfer.checkemp,
  274. u_rap_money_transfer.dscrp,
  275. u_rap_money_transfer.rapmoneyid_out,
  276. u_rap_money_transfer.rapmoneyid_in,
  277. u_rap_money_transfer.billcode,
  278. u_rap_money_transfer.checkdate,
  279. u_rap_money_transfer.checkdate2,
  280. u_rap_money_transfer.mrate
  281. INTO :arg_s_rap_money_transfer.flag,
  282. :arg_s_rap_money_transfer.secflag,
  283. :arg_s_rap_money_transfer.relcode,
  284. :arg_s_rap_money_transfer.banktypeid,
  285. :arg_s_rap_money_transfer.accountid_out,
  286. :arg_s_rap_money_transfer.accountid_in,
  287. :arg_s_rap_money_transfer.transferamt,
  288. :arg_s_rap_money_transfer.checkemp,
  289. :arg_s_rap_money_transfer.dscrp,
  290. :arg_s_rap_money_transfer.rapmoneyid_out,
  291. :arg_s_rap_money_transfer.rapmoneyid_in,
  292. :arg_s_rap_money_transfer.billcode,
  293. :arg_s_rap_money_transfer.checkdate,
  294. :arg_s_rap_money_transfer.checkdate2,
  295. :arg_s_rap_money_transfer.mrate
  296. FROM u_rap_money_transfer
  297. Where u_rap_money_transfer.billid = :arg_billid;
  298. IF sqlca.SQLCode <> 0 THEN
  299. rslt = 0
  300. ARG_MSG = '查询单据内容失败(错误单据唯一码)'
  301. GOTO ext
  302. END IF
  303. ext:
  304. RETURN rslt
  305. end function
  306. public function integer save (s_rap_money_transfer arg_s_transfer, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1
  307. DateTime server_dt
  308. Long ll_billid
  309. String ls_billcode
  310. Long cnt
  311. IF IsNull(arg_s_transfer.billid) THEN arg_s_transfer.billid = 0
  312. IF IsNull(arg_s_transfer.relcode) THEN arg_s_transfer.relcode = ''
  313. IF IsNull(arg_s_transfer.banktypeid) THEN arg_s_transfer.banktypeid = 0
  314. IF IsNull(arg_s_transfer.accountid_out) THEN arg_s_transfer.accountid_out = 0
  315. IF IsNull(arg_s_transfer.accountid_in) THEN arg_s_transfer.accountid_in = 0
  316. IF IsNull(arg_s_transfer.transferamt) THEN arg_s_transfer.transferamt = 0
  317. IF IsNull(arg_s_transfer.dscrp) THEN arg_s_transfer.dscrp = ''
  318. IF IsNull(arg_s_transfer.checkemp) THEN arg_s_transfer.checkemp = ''
  319. IF IsNull(arg_s_transfer.mrate) THEN arg_s_transfer.mrate = 1
  320. cnt = 0
  321. SELECT count(*) INTO :cnt
  322. FROM u_accounts
  323. Where accountsid = :arg_s_transfer.accountid_out;
  324. IF sqlca.SQLCode <> 0 THEN
  325. arg_msg = '查询转出帐号资料失败,请检查'
  326. rslt = 0
  327. GOTO ext
  328. END IF
  329. IF cnt <> 1 THEN
  330. arg_msg = '转出帐号资料不存在或重复,请检查'
  331. rslt = 0
  332. GOTO ext
  333. END IF
  334. cnt = 0
  335. SELECT count(*) INTO :cnt
  336. FROM u_accounts
  337. Where accountsid = :arg_s_transfer.accountid_in;
  338. IF sqlca.SQLCode <> 0 THEN
  339. arg_msg = '查询转入帐号资料失败,请检查'
  340. rslt = 0
  341. GOTO ext
  342. END IF
  343. IF cnt <> 1 THEN
  344. arg_msg = '转入帐号资料不存在或重复,请检查'
  345. rslt = 0
  346. GOTO ext
  347. END IF
  348. cnt = 0
  349. SELECT count(*) INTO :cnt
  350. FROM cw_banktype
  351. Where banktypeid = :arg_s_transfer.banktypeid;
  352. IF sqlca.SQLCode <> 0 THEN
  353. arg_msg = '查询结算方式资料失败,请检查'
  354. rslt = 0
  355. GOTO ext
  356. END IF
  357. IF cnt <> 1 THEN
  358. arg_msg = '结算方式资料不存在或重复,请检查'
  359. rslt = 0
  360. GOTO ext
  361. END IF
  362. if arg_s_transfer.checkemp = '' then
  363. arg_msg = '请输入经手人'
  364. rslt = 0
  365. goto ext
  366. end if
  367. if arg_s_transfer.transferamt <= 0 then
  368. arg_msg = '请输入正确的转帐金额'
  369. rslt = 0
  370. goto ext
  371. end if
  372. IF arg_s_transfer.mrate <= 0 THEN
  373. arg_msg = '请输入正确的汇率'
  374. rslt = 0
  375. GOTO ext
  376. END IF
  377. SELECT Top 1 getdate() INTO :server_dt FROM u_user;
  378. IF sqlca.SQLCode <> 0 THEN
  379. rslt = 0
  380. arg_msg = "查询操作失败,日期 "
  381. GOTO ext
  382. END IF
  383. IF arg_s_transfer.billid = 0 THEN
  384. ll_billid = f_sys_scidentity(0,"u_rap_money_transfer","billid",arg_msg,TRUE,id_sqlca)
  385. IF ll_billid <= 0 THEN
  386. rslt = 0
  387. GOTO ext
  388. END IF
  389. ls_billcode = getid(0,'TF',Date(server_dt),TRUE,sqlca)
  390. IF ls_billcode = "err" THEN
  391. rslt = 0
  392. arg_msg = "无法获取单据编号"+"~n"+sqlca.SQLErrText
  393. GOTO ext
  394. END IF
  395. INSERT INTO u_rap_money_transfer
  396. (billid,
  397. billcode,
  398. checkdate,
  399. checkdate2,
  400. opdate,
  401. opemp,
  402. relcode,
  403. transferamt,
  404. banktypeid,
  405. accountid_out,
  406. checkemp,
  407. accountid_in,
  408. dscrp,
  409. mrate)
  410. VALUES (
  411. :ll_billid,
  412. :ls_billcode,
  413. :arg_s_transfer.checkdate,
  414. :arg_s_transfer.checkdate2,
  415. getdate(),
  416. :arg_opemp,
  417. :arg_s_transfer.relcode,
  418. :arg_s_transfer.transferamt,
  419. :arg_s_transfer.banktypeid,
  420. :arg_s_transfer.accountid_out,
  421. :arg_s_transfer.checkemp,
  422. :arg_s_transfer.accountid_in,
  423. :arg_s_transfer.dscrp,
  424. :arg_s_transfer.mrate) ;
  425. IF sqlca.SQLCode <> 0 THEN
  426. rslt = 0
  427. arg_msg = "因网络或其它原因导致建立单据操作失败"+"~n"+sqlca.SQLErrText
  428. GOTO ext
  429. END IF
  430. uo_billid = ll_billid
  431. ELSE
  432. UPDATE u_rap_money_transfer
  433. SET checkdate = :arg_s_transfer.checkdate,
  434. checkdate2 = :arg_s_transfer.checkdate2,
  435. moddate = getdate(),
  436. modemp = :arg_opemp,
  437. relcode = :arg_s_transfer.relcode,
  438. accountid_in = :arg_s_transfer.accountid_in,
  439. transferamt = :arg_s_transfer.transferamt,
  440. banktypeid = :arg_s_transfer.banktypeid,
  441. checkemp = :arg_s_transfer.checkemp,
  442. dscrp = :arg_s_transfer.dscrp,
  443. accountid_out = :arg_s_transfer.accountid_out,
  444. mrate = :arg_s_transfer.mrate
  445. WHERE billid = :arg_s_transfer.billid
  446. AND flag = 0;
  447. IF sqlca.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN
  448. rslt = 0
  449. arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
  450. GOTO ext
  451. END IF
  452. uo_billid = arg_s_transfer.billid
  453. END IF
  454. ext:
  455. IF rslt = 0 THEN
  456. ROLLBACK;
  457. ELSEIF arg_ifcommit AND rslt = 1 THEN
  458. COMMIT;
  459. END IF
  460. RETURN rslt
  461. end function
  462. public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  463. DateTime null_dt
  464. uo_rapmoney uo_rap
  465. uo_rap = CREATE uo_rapmoney
  466. s_rap_money_transfer arg_s_rap_money_transfer
  467. SetNull(null_dt)
  468. IF arg_billid <= 0 THEN
  469. rslt = 0
  470. arg_msg = '错误单据唯一码'
  471. GOTO ext
  472. END IF
  473. IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN
  474. rslt = 0
  475. GOTO ext
  476. END IF
  477. IF arg_s_rap_money_transfer.flag = 0 THEN
  478. rslt = 0
  479. arg_msg = '单据未审核,不可以撤审'
  480. GOTO ext
  481. END IF
  482. IF arg_s_rap_money_transfer.secflag = 1 THEN
  483. rslt = 0
  484. arg_msg = '单据已财务确认,不可以撤审'
  485. GOTO ext
  486. END IF
  487. UPDATE u_rap_money_transfer
  488. SET flag = 0,
  489. permit_emp = '',
  490. permit_date = :null_dt
  491. WHERE billid = :arg_billid
  492. AND flag = 1;
  493. IF sqlca.SQLCode <> 0 THEN
  494. rslt = 0
  495. arg_msg = "因网络或其它原因导致单据撤消审核操作失败"+"~n"+sqlca.SQLErrText
  496. GOTO ext
  497. END IF
  498. //转出
  499. IF uo_rap.del_raprec(arg_s_rap_money_transfer.rapmoneyid_out,arg_s_rap_money_transfer.accountid_out,1,arg_msg,FALSE) = 0 THEN
  500. arg_msg = '删除(转出)出纳明细帐失败!~n' + arg_msg
  501. rslt = 0
  502. GOTO ext
  503. END IF
  504. //转入
  505. IF uo_rap.del_raprec(arg_s_rap_money_transfer.rapmoneyid_in,arg_s_rap_money_transfer.accountid_in,1,arg_msg,FALSE) = 0 THEN
  506. arg_msg = '删除(转入)出纳明细帐失败!~n' + arg_msg
  507. rslt = 0
  508. GOTO ext
  509. END IF
  510. ext:
  511. IF rslt = 0 THEN
  512. ROLLBACK;
  513. ELSEIF rslt = 1 AND arg_ifcommit THEN
  514. COMMIT;
  515. END IF
  516. destroy uo_rap
  517. RETURN rslt
  518. end function
  519. public function integer caudit2 (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  520. DateTime null_dt
  521. s_rap_money_transfer arg_s_rap_money_transfer
  522. SetNull(null_dt)
  523. IF arg_billid <= 0 THEN
  524. rslt = 0
  525. arg_msg = '错误单据唯一码'
  526. GOTO ext
  527. END IF
  528. IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN
  529. rslt = 0
  530. GOTO ext
  531. END IF
  532. IF arg_s_rap_money_transfer.secflag = 0 THEN
  533. rslt = 0
  534. arg_msg = '单据未财务确认,不可以财务反确认'
  535. GOTO ext
  536. END IF
  537. UPDATE u_rap_money_transfer
  538. SET secflag = 0,
  539. secauditemp = '',
  540. secauditdate = :null_dt
  541. WHERE billid = :arg_billid
  542. AND secflag = 1;
  543. IF sqlca.SQLCode <> 0 THEN
  544. rslt = 0
  545. arg_msg = "因网络或其它原因导致单据财务反确认操作失败"+"~n"+sqlca.SQLErrText
  546. GOTO ext
  547. END IF
  548. ext:
  549. IF rslt = 0 THEN
  550. ROLLBACK;
  551. ELSEIF rslt = 1 AND arg_ifcommit THEN
  552. COMMIT;
  553. END IF
  554. RETURN rslt
  555. end function
  556. public function integer audit2 (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  557. s_rap_money_transfer arg_s_rap_money_transfer
  558. IF arg_billid <= 0 THEN
  559. rslt = 0
  560. ARG_MSG = '错误单据唯一码'
  561. GOTO ext
  562. END IF
  563. IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN
  564. rslt = 0
  565. GOTO ext
  566. END IF
  567. IF arg_s_rap_money_transfer.flag = 0 THEN
  568. rslt = 0
  569. ARG_MSG = '单据未审核,不可以财务确认'
  570. GOTO ext
  571. END IF
  572. IF arg_s_rap_money_transfer.secflag = 1 THEN
  573. rslt = 0
  574. ARG_MSG = '单据已经财务确认,不可以再财务确认'
  575. GOTO ext
  576. END IF
  577. //更新审核标记
  578. UPDATE u_rap_money_transfer
  579. SET secauditemp = :arg_opemp,
  580. secauditdate = getdate(),
  581. secflag = 1
  582. WHERE billid = :arg_billid
  583. AND flag = 1;
  584. IF sqlca.SQLCode <> 0 THEN
  585. rslt = 0
  586. ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
  587. GOTO ext
  588. END IF
  589. ext:
  590. IF rslt = 0 THEN
  591. ROLLBACK;
  592. ELSEIF rslt = 1 AND arg_ifcommit THEN
  593. COMMIT;
  594. END IF
  595. RETURN rslt
  596. end function
  597. on uo_rap_money_transfer.create
  598. call super::create
  599. TriggerEvent( this, "constructor" )
  600. end on
  601. on uo_rap_money_transfer.destroy
  602. TriggerEvent( this, "destructor" )
  603. call super::destroy
  604. end on
  605. global type uo_incase from nonvisualobject
  606. end type