uo_rap_money_import.sru 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566
  1. $PBExportHeader$uo_rap_money_import.sru
  2. forward
  3. global type uo_rap_money_import from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_rap_money_import from nonvisualobject
  7. end type
  8. global uo_rap_money_import uo_rap_money_import
  9. type variables
  10. Long uo_pkid
  11. end variables
  12. forward prototypes
  13. public function integer save (s_rap_money_import arg_s_import, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  14. public function integer p_getinfo (long arg_pkid, ref s_rap_money_import arg_s_import, ref string arg_msg)
  15. public function integer add_dscrp (long arg_pkid, string arg_newdescppart, ref string arg_msg)
  16. public function integer del (long arg_pkid, ref string arg_msg, boolean arg_ifcommit)
  17. public function integer updatebegin (long arg_pkid, ref string arg_msg)
  18. public function integer audit (long arg_pkid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  19. public function integer caudit (long arg_pkid, ref string arg_msg, boolean arg_ifcommit)
  20. end prototypes
  21. public function integer save (s_rap_money_import arg_s_import, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1
  22. DateTime server_dt
  23. Long ll_pkid
  24. Long cnt
  25. IF IsNull(arg_s_import.scid) THEN arg_s_import.scid = 0
  26. IF IsNull(arg_s_import.pkid) THEN arg_s_import.pkid = 0
  27. IF IsNull(arg_s_import.relcode) THEN arg_s_import.relcode = ''
  28. IF IsNull(arg_s_import.banktypeid) THEN arg_s_import.banktypeid = 0
  29. IF IsNull(arg_s_import.accountsid) THEN arg_s_import.accountsid = 0
  30. IF IsNull(arg_s_import.moneyid) THEN arg_s_import.moneyid = 0
  31. IF IsNull(arg_s_import.mrate) THEN arg_s_import.mrate = 1
  32. IF IsNull(arg_s_import.importdscrp) THEN arg_s_import.importdscrp = ''
  33. IF IsNull(arg_s_import.dscrp) THEN arg_s_import.dscrp = ''
  34. IF IsNull(arg_s_import.debit) THEN arg_s_import.debit = 0
  35. IF IsNull(arg_s_import.credit) THEN arg_s_import.credit = 0
  36. IF IsNull(arg_s_import.billtype) THEN arg_s_import.billtype = 0
  37. IF IsNull(arg_s_import.cusid_sptid) THEN arg_s_import.cusid_sptid = 0
  38. IF IsNull(arg_s_import.itemid) THEN arg_s_import.itemid = 0
  39. SELECT Top 1 getdate() INTO :server_dt FROM u_user;
  40. IF sqlca.SQLCode <> 0 THEN
  41. rslt = 0
  42. arg_msg = "查询操作失败,日期 "
  43. GOTO ext
  44. END IF
  45. IF arg_s_import.pkid = 0 THEN
  46. ll_pkid = f_sys_scidentity(0,"u_rap_money_import","pkid",arg_msg,TRUE,id_sqlca)
  47. IF ll_pkid <= 0 THEN
  48. rslt = 0
  49. GOTO ext
  50. END IF
  51. INSERT INTO u_rap_money_import
  52. (scid, pkid, accountsid, moneyid, mrate, importdscrp, dscrp, debit, credit, billtype,
  53. billdate, cusid_sptid, itemid, opemp, opdate, relcode, banktypeid)
  54. VALUES (:arg_s_import.scid,
  55. :ll_pkid,
  56. :arg_s_import.accountsid,
  57. :arg_s_import.moneyid,
  58. :arg_s_import.mrate,
  59. :arg_s_import.importdscrp,
  60. :arg_s_import.dscrp,
  61. :arg_s_import.debit,
  62. :arg_s_import.credit,
  63. :arg_s_import.billtype,
  64. :arg_s_import.billdate,
  65. :arg_s_import.cusid_sptid,
  66. :arg_s_import.itemid,
  67. :arg_opemp,
  68. getdate(),
  69. :arg_s_import.relcode,
  70. :arg_s_import.banktypeid) ;
  71. IF sqlca.SQLCode <> 0 THEN
  72. rslt = 0
  73. arg_msg = "因网络或其它原因导致建立单据操作失败"+"~n"+sqlca.SQLErrText
  74. GOTO ext
  75. END IF
  76. uo_pkid = ll_pkid
  77. ELSE
  78. UPDATE u_rap_money_import
  79. SET accountsid = :arg_s_import.accountsid,
  80. moneyid = :arg_s_import.moneyid,
  81. mrate = :arg_s_import.mrate,
  82. importdscrp = :arg_s_import.importdscrp,
  83. dscrp = :arg_s_import.dscrp,
  84. debit = :arg_s_import.debit,
  85. credit = :arg_s_import.credit,
  86. billtype = :arg_s_import.billtype,
  87. billdate = :arg_s_import.billdate,
  88. cusid_sptid = :arg_s_import.cusid_sptid,
  89. itemid = :arg_s_import.itemid,
  90. relcode = :arg_s_import.relcode,
  91. banktypeid = :arg_s_import.banktypeid,
  92. moddate = getdate(),
  93. modemp = :arg_opemp
  94. WHERE pkid = :arg_s_import.pkid
  95. AND flag = 0;
  96. IF sqlca.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN
  97. rslt = 0
  98. arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
  99. GOTO ext
  100. END IF
  101. uo_pkid = arg_s_import.pkid
  102. END IF
  103. ext:
  104. IF rslt = 0 THEN
  105. ROLLBACK;
  106. ELSEIF arg_ifcommit AND rslt = 1 THEN
  107. COMMIT;
  108. END IF
  109. RETURN rslt
  110. end function
  111. public function integer p_getinfo (long arg_pkid, ref s_rap_money_import arg_s_import, ref string arg_msg);Int rslt = 1
  112. IF arg_pkid <= 0 THEN
  113. rslt = 0
  114. ARG_MSG = '错误单据唯一码'
  115. GOTO ext
  116. END IF
  117. SELECT scid, pkid, accountsid, moneyid, mrate, importdscrp, dscrp, debit, credit, billtype,
  118. billdate, cusid_sptid, itemid, opemp, opdate, relcode, banktypeid,flag,relbillid
  119. INTO :arg_s_import.scid,
  120. :arg_s_import.pkid,
  121. :arg_s_import.accountsid,
  122. :arg_s_import.moneyid,
  123. :arg_s_import.mrate,
  124. :arg_s_import.importdscrp,
  125. :arg_s_import.dscrp,
  126. :arg_s_import.debit,
  127. :arg_s_import.credit,
  128. :arg_s_import.billtype,
  129. :arg_s_import.billdate,
  130. :arg_s_import.cusid_sptid,
  131. :arg_s_import.itemid,
  132. :arg_s_import.opemp,
  133. :arg_s_import.opdate,
  134. :arg_s_import.relcode,
  135. :arg_s_import.banktypeid,
  136. :arg_s_import.flag,
  137. :arg_s_import.relbillid
  138. FROM u_rap_money_import
  139. Where u_rap_money_import.pkid = :arg_pkid;
  140. IF sqlca.SQLCode <> 0 THEN
  141. rslt = 0
  142. ARG_MSG = '查询单据内容失败(错误单据唯一码)'
  143. GOTO ext
  144. END IF
  145. ext:
  146. RETURN rslt
  147. end function
  148. public function integer add_dscrp (long arg_pkid, string arg_newdescppart, ref string arg_msg);Int rslt = 1
  149. s_rap_money_import arg_s_import
  150. IF arg_pkid <= 0 THEN
  151. rslt = 0
  152. arg_msg = '错误单据唯一码'
  153. GOTO ext
  154. END IF
  155. IF arg_newdescppart = '' THEN
  156. rslt = 0
  157. arg_msg = "要添加内容为空,操作取消"
  158. GOTO ext
  159. END IF
  160. IF p_getinfo(arg_pkid,arg_s_import,arg_msg) = 0 THEN
  161. rslt = 0
  162. GOTO ext
  163. END IF
  164. IF arg_s_import.flag = 0 THEN
  165. rslt = 0
  166. arg_msg = '单据未审核,不可以增加备注'
  167. GOTO ext
  168. END IF
  169. UPDATE u_rap_money_import
  170. SET DSCRP = DSCRP+' '+:arg_newdescppart
  171. WHERE u_rap_money_import.pkid = :arg_pkid
  172. AND flag = 1;
  173. IF SQLCA.SQLCode <> 0 THEN
  174. rslt = 0
  175. arg_msg = "因网络或其它原因导致添加备注操作失败"+"~n"+SQLCA.SQLErrText
  176. GOTO ext
  177. END IF
  178. ext:
  179. IF rslt = 1 THEN
  180. COMMIT;
  181. ELSE
  182. ROLLBACK;
  183. END IF
  184. Return (rslt)
  185. end function
  186. public function integer del (long arg_pkid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  187. s_rap_money_import arg_s_import
  188. IF arg_pkid <= 0 THEN
  189. rslt = 0
  190. ARG_MSG = '错误单据唯一码'
  191. GOTO ext
  192. END IF
  193. IF p_getinfo(arg_pkid,arg_s_import,ARG_MSG) = 0 THEN
  194. rslt = 0
  195. GOTO ext
  196. END IF
  197. IF arg_s_import.flag = 1 THEN
  198. rslt = 0
  199. ARG_MSG = '单据已经审核,不可以删除'
  200. GOTO ext
  201. END IF
  202. DELETE FROM u_rap_money_import Where pkid = :arg_pkid;
  203. IF sqlca.SQLCode <> 0 THEN
  204. rslt = 0
  205. arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
  206. GOTO ext
  207. END IF
  208. ext:
  209. IF rslt = 0 THEN
  210. ROLLBACK;
  211. ELSEIF rslt = 1 AND arg_ifcommit THEN
  212. COMMIT;
  213. END IF
  214. RETURN rslt
  215. end function
  216. public function integer updatebegin (long arg_pkid, ref string arg_msg);Int rslt = 1
  217. s_rap_money_import arg_s_import
  218. IF arg_pkid <= 0 THEN
  219. rslt = 0
  220. ARG_MSG = '错误单据唯一码'
  221. GOTO ext
  222. END IF
  223. IF p_getinfo(arg_pkid,arg_s_import,ARG_MSG) = 0 THEN
  224. rslt = 0
  225. GOTO ext
  226. END IF
  227. IF arg_s_import.flag = 1 THEN
  228. rslt = 0
  229. ARG_MSG = '单据已经审核,不可以修改,要修改请先撤销审核'
  230. GOTO ext
  231. END IF
  232. ext:
  233. RETURN rslt
  234. end function
  235. public function integer audit (long arg_pkid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  236. Long it_mxbt
  237. uo_cusamt uo_take
  238. uo_income_expenses uo_ie
  239. uo_take = Create uo_cusamt
  240. uo_ie = Create uo_income_expenses
  241. uo_ie.commit_transaction = sqlca
  242. s_rap_money_import arg_s_import
  243. Long ll_relbillid
  244. IF arg_pkid <= 0 THEN
  245. rslt = 0
  246. ARG_MSG = '错误单据唯一码'
  247. GOTO ext
  248. END IF
  249. IF p_getinfo(arg_pkid,arg_s_import,ARG_MSG) = 0 THEN
  250. rslt = 0
  251. GOTO ext
  252. END IF
  253. IF arg_s_import.flag = 1 THEN
  254. rslt = 0
  255. ARG_MSG = '单据已经审核,不可以再审'
  256. GOTO ext
  257. END IF
  258. //更新审核标记
  259. UPDATE u_rap_money_import
  260. SET auditemp = :arg_opemp,
  261. auditdate = getdate(),
  262. flag = 1
  263. WHERE pkid = :arg_pkid
  264. And flag = 0;
  265. IF sqlca.SQLCode <> 0 THEN
  266. rslt = 0
  267. ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
  268. GOTO ext
  269. END IF
  270. IF arg_s_import.billtype = 0 THEN
  271. ARG_MSG = "请选择单据类型"
  272. rslt = 0
  273. GOTO ext
  274. END IF
  275. IF arg_s_import.scid < 0 THEN
  276. ARG_MSG = "请设置分部"
  277. rslt = 0
  278. GOTO ext
  279. END IF
  280. IF arg_s_import.accountsid = 0 THEN
  281. ARG_MSG = "请设置账号"
  282. rslt = 0
  283. GOTO ext
  284. END IF
  285. IF arg_s_import.banktypeid = 0 THEN
  286. ARG_MSG = "请选择结算方式"
  287. rslt = 0
  288. GOTO ext
  289. END IF
  290. IF arg_s_import.itemid = 0 THEN
  291. ARG_MSG = "请选择费用项目"
  292. rslt = 0
  293. GOTO ext
  294. END IF
  295. IF arg_s_import.moneyid = 0 THEN
  296. ARG_MSG = "请选择币种"
  297. rslt = 0
  298. GOTO ext
  299. END IF
  300. IF arg_s_import.billtype = 1 Or arg_s_import.billtype = 2 THEN //客户收款单 //供应商付款单
  301. IF arg_s_import.cusid_sptid < 0 THEN
  302. ARG_MSG = "请选择客户或供应商"
  303. rslt = 0
  304. GOTO ext
  305. END IF
  306. uo_take.scid = arg_s_import.scid
  307. uo_take.accountid = arg_s_import.accountsid
  308. uo_take.cusid = arg_s_import.cusid_sptid
  309. uo_take.dscrp = arg_s_import.dscrp
  310. uo_take.cusdate = DateTime(Today())
  311. uo_take.banktypeid = arg_s_import.banktypeid
  312. uo_take.itemid = arg_s_import.itemid
  313. uo_take.moneyid = arg_s_import.moneyid
  314. uo_take.mrate = arg_s_import.mrate
  315. uo_take.cusrep = publ_operator
  316. uo_take.viewdate = arg_s_import.billdate
  317. uo_take.relcode = arg_s_import.relcode
  318. IF arg_s_import.billtype = 1 THEN
  319. uo_take.billtype = 0
  320. uo_take.cusamt = arg_s_import.debit
  321. ELSEIF arg_s_import.billtype = 2 THEN
  322. uo_take.billtype = 1
  323. uo_take.cusamt = arg_s_import.credit
  324. END IF
  325. IF uo_take.Save(ARG_MSG,False) = 0 THEN
  326. rslt = 0
  327. GOTO ext
  328. END IF
  329. ll_relbillid = uo_take.cusmonid
  330. ELSEIF arg_s_import.billtype = 3 THEN
  331. IF uo_ie.newbegin(ARG_MSG) = 0 THEN
  332. rslt = 0
  333. GOTO ext
  334. END IF
  335. uo_ie.credencecode = arg_s_import.relcode
  336. uo_ie.banktypeid = arg_s_import.banktypeid
  337. IF arg_s_import.debit <> 0 And arg_s_import.credit = 0 THEN
  338. uo_ie.amt = arg_s_import.debit
  339. ELSEIF arg_s_import.debit = 0 And arg_s_import.credit <> 0 THEN
  340. uo_ie.amt = arg_s_import.credit
  341. END IF
  342. uo_ie.accountsid = arg_s_import.accountsid
  343. uo_ie.outdate = arg_s_import.billdate
  344. uo_ie.Descrp = arg_s_import.dscrp
  345. uo_ie.rep = publ_operator
  346. uo_ie.itemid = arg_s_import.itemid
  347. uo_ie.billtype = 0
  348. IF uo_ie.Save(publ_operator,ARG_MSG,False) = 0 THEN
  349. rslt = 0
  350. GOTO ext
  351. END IF
  352. ll_relbillid = uo_ie.billid
  353. END IF
  354. UPDATE u_rap_money_import
  355. SET relbillid = :ll_relbillid
  356. Where pkid = :arg_pkid;
  357. IF sqlca.SQLCode <> 0 THEN
  358. rslt = 0
  359. ARG_MSG = "因网络或其它原因导致更新单据相关资料失败操作失败"+"~n"+sqlca.SQLErrText
  360. GOTO ext
  361. END IF
  362. ext:
  363. IF rslt = 0 THEN
  364. ROLLBACK;
  365. ELSEIF rslt = 1 And arg_ifcommit THEN
  366. COMMIT;
  367. END IF
  368. Destroy uo_take
  369. Destroy uo_ie
  370. RETURN rslt
  371. end function
  372. public function integer caudit (long arg_pkid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  373. DateTime null_dt
  374. uo_cusamt uo_take
  375. uo_income_expenses uo_ie
  376. uo_take = Create uo_cusamt
  377. uo_ie = Create uo_income_expenses
  378. uo_ie.commit_transaction = sqlca
  379. s_rap_money_import arg_s_import
  380. SetNull(null_dt)
  381. IF arg_pkid <= 0 THEN
  382. rslt = 0
  383. arg_msg = '错误单据唯一码'
  384. GOTO ext
  385. END IF
  386. IF p_getinfo(arg_pkid,arg_s_import,arg_msg) = 0 THEN
  387. rslt = 0
  388. GOTO ext
  389. END IF
  390. IF arg_s_import.flag = 0 THEN
  391. rslt = 0
  392. arg_msg = '单据未审核,不可以撤审'
  393. GOTO ext
  394. END IF
  395. UPDATE u_rap_money_import
  396. SET flag = 0,
  397. auditemp = '',
  398. auditdate = :null_dt
  399. WHERE pkid = :arg_pkid
  400. And flag = 1;
  401. IF sqlca.SQLCode <> 0 THEN
  402. rslt = 0
  403. arg_msg = "因网络或其它原因导致单据撤消审核操作失败"+"~n"+sqlca.SQLErrText
  404. GOTO ext
  405. END IF
  406. IF arg_s_import.billtype = 1 Or arg_s_import.billtype = 2 THEN
  407. // //客户收款单
  408. IF uo_take.del(arg_s_import.scid, arg_s_import.relbillid,arg_msg) = 0 THEN
  409. IF arg_s_import.billtype = 0 THEN
  410. arg_msg = '删除客户收款单失败!~n' + arg_msg
  411. ELSE
  412. arg_msg = '删除供应商付款单失败!~n' + arg_msg
  413. END IF
  414. rslt = 0
  415. GOTO ext
  416. END IF
  417. ELSEIF arg_s_import.billtype = 3 THEN
  418. // //其他收入支出单
  419. IF uo_ie.Cancel(arg_s_import.relbillid,arg_msg,False) = 0 THEN
  420. arg_msg = '删除相关其他收入支出单失败!~n' + arg_msg
  421. rslt = 0
  422. GOTO ext
  423. END IF
  424. END IF
  425. UPDATE u_rap_money_import
  426. SET relbillid = 0
  427. Where pkid = :arg_pkid;
  428. IF sqlca.SQLCode <> 0 THEN
  429. rslt = 0
  430. arg_msg = "因网络或其它原因导致更新单据相关资料失败操作失败"+"~n"+sqlca.SQLErrText
  431. GOTO ext
  432. END IF
  433. ext:
  434. IF rslt = 0 THEN
  435. ROLLBACK;
  436. ELSEIF rslt = 1 And arg_ifcommit THEN
  437. COMMIT;
  438. END IF
  439. Destroy uo_take
  440. Destroy uo_ie
  441. RETURN rslt
  442. end function
  443. on uo_rap_money_import.create
  444. call super::create
  445. TriggerEvent( this, "constructor" )
  446. end on
  447. on uo_rap_money_import.destroy
  448. TriggerEvent( this, "destructor" )
  449. call super::destroy
  450. end on
  451. global type uo_incase from nonvisualobject
  452. end type