f_create_cred.srf 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. $PBExportHeader$f_create_cred.srf
  2. global type f_create_cred from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_create_cred (s_credence arg_s_cred, boolean arg_ifcommit, ref string arg_msg, ref long arg_ref_credid, ref long arg_ref_credno)
  6. end prototypes
  7. global function integer f_create_cred (s_credence arg_s_cred, boolean arg_ifcommit, ref string arg_msg, ref long arg_ref_credid, ref long arg_ref_credno);Int rslt = 1
  8. Long i,ll_itmxt
  9. uo_credence uo_cred
  10. uo_cred = Create uo_credence
  11. ll_itmxt = UpperBound(arg_s_cred.arg_s_credmx)
  12. IF ll_itmxt = 0 THEN
  13. arg_msg = '没有凭证明细'
  14. rslt = 0
  15. GOTO ext
  16. END IF
  17. IF uo_cred.newbegin() = 0 THEN
  18. arg_msg = '凭证建立失败'
  19. rslt = 0
  20. GOTO ext
  21. END IF
  22. uo_cred.creddate = arg_s_cred.creddate
  23. uo_cred.reldate = arg_s_cred.reldate
  24. uo_cred.reldcode = arg_s_cred.relcode
  25. IF arg_ref_credno = 0 THEN
  26. uo_cred.credno = uo_cred.get_new_credno(0,arg_s_cred.credtype,sys_curyearmon,arg_msg)
  27. ELSE
  28. uo_cred.credno = arg_ref_credno
  29. END IF
  30. uo_cred.subaccsetid = sys_subaccsetid
  31. uo_cred.readtype = arg_s_cred.readtype
  32. uo_cred.cmonth = sys_curyearmon
  33. uo_cred.credtype = arg_s_cred.credtype
  34. uo_cred.ifauto = arg_s_cred.ifauto
  35. FOR i = 1 To ll_itmxt
  36. IF uo_cred.acceptmx(i,arg_s_cred.arg_s_credmx[i].subid,&
  37. arg_s_cred.arg_s_credmx[i].brief,arg_s_cred.arg_s_credmx[i].rate,&
  38. arg_s_cred.arg_s_credmx[i].rawdebit,arg_s_cred.arg_s_credmx[i].rawcredit,&
  39. arg_s_cred.arg_s_credmx[i].debit,arg_s_cred.arg_s_credmx[i].credit,&
  40. arg_s_cred.arg_s_credmx[i].amount,arg_s_cred.arg_s_credmx[i].price,&
  41. arg_s_cred.arg_s_credmx[i].deptid,arg_s_cred.arg_s_credmx[i].itemid,&
  42. arg_s_cred.arg_s_credmx[i].billdate,arg_s_cred.arg_s_credmx[i].billid,&
  43. arg_s_cred.arg_s_credmx[i].billno,arg_s_cred.arg_s_credmx[i].cropbillid,&
  44. arg_s_cred.arg_s_credmx[i].ifreadonly,arg_s_cred.arg_s_credmx[i].cusid,&
  45. arg_s_cred.arg_s_credmx[i].sptid,0,arg_msg) = 0 THEN
  46. rslt = 0
  47. GOTO ext
  48. END IF
  49. NEXT
  50. String ls_opemp
  51. IF arg_s_cred.ifauto = 1 THEN
  52. ls_opemp = publ_operator
  53. ELSE
  54. ls_opemp = '机制'
  55. END IF
  56. IF uo_cred.Save(ls_opemp,arg_msg,arg_ifcommit) = 0 THEN
  57. rslt = 0
  58. GOTO ext
  59. END IF
  60. arg_ref_credid = uo_cred.credid
  61. arg_ref_credno = uo_cred.credno
  62. ext:
  63. Destroy uo_cred
  64. RETURN rslt
  65. end function