uo_basewage.sru 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. $PBExportHeader$uo_basewage.sru
  2. forward
  3. global type uo_basewage from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_basewage from nonvisualobject
  7. end type
  8. global uo_basewage uo_basewage
  9. forward prototypes
  10. public function integer uof_basepay_init (long arg_empid, string arg_empname, decimal arg_basepay, string arg_dscrp, ref string arg_msg, boolean arg_ifcommit)
  11. end prototypes
  12. public function integer uof_basepay_init (long arg_empid, string arg_empname, decimal arg_basepay, string arg_dscrp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  13. Long cnt
  14. IF arg_empid = 0 THEN
  15. arg_msg = '员工:'+arg_empname+',错误的员工ID'
  16. rslt = 0
  17. GOTO ext
  18. END IF
  19. SELECT count(*) INTO :cnt
  20. FROM u_rs_empinfo
  21. Where empid = :arg_empid;
  22. IF sqlca.SQLCode <> 0 THEN
  23. arg_msg = '查询员工:'+arg_empname+',基本资料失败,'+sqlca.SQLErrText
  24. rslt = 0
  25. GOTO ext
  26. END IF
  27. IF cnt = 0 THEN
  28. arg_msg = '员工:'+arg_empname+',基本资料不存在,请检查'
  29. rslt = 0
  30. GOTO ext
  31. ELSEIF cnt > 1 THEN
  32. arg_msg = '员工:'+arg_empname+',基本资料重复,请检查'
  33. rslt = 0
  34. GOTO ext
  35. END IF
  36. IF arg_basepay < 0 THEN
  37. arg_msg = '请输入正确的基本工资'
  38. rslt = 0
  39. GOTO ext
  40. END IF
  41. UPDATE u_basepay
  42. SET basepay = :arg_basepay,
  43. dscrp = :arg_dscrp
  44. Where empid = :arg_empid;
  45. IF sqlca.SQLCode = 0 THEN
  46. IF sqlca.SQLNRows = 0 THEN
  47. INSERT INTO u_basepay
  48. (empid,basepay,dscrp,moddate)
  49. Values(:arg_empid,:arg_basepay,:arg_dscrp,getdate());
  50. IF sqlca.SQLCode <> 0 THEN
  51. arg_msg = '新增员工:'+arg_empname+',基本工资失败,'+sqlca.SQLErrText
  52. rslt = 0
  53. GOTO ext
  54. END IF
  55. END IF
  56. ELSE
  57. arg_msg = '更新员工:'+arg_empname+',基本工资失败,'+sqlca.SQLErrText
  58. rslt = 0
  59. GOTO ext
  60. END IF
  61. ext:
  62. IF rslt = 0 THEN
  63. ROLLBACK;
  64. ELSEIF rslt = 1 AND arg_ifcommit THEN
  65. COMMIT;
  66. END IF
  67. RETURN rslt
  68. end function
  69. on uo_basewage.create
  70. call super::create
  71. TriggerEvent( this, "constructor" )
  72. end on
  73. on uo_basewage.destroy
  74. TriggerEvent( this, "destructor" )
  75. call super::destroy
  76. end on