uo_basewage.sru 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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, ref string arg_msg, boolean arg_ifcommit)
  11. public function integer uof_laborbasepay_init (long arg_empid, string arg_empname, decimal arg_basepay, decimal arg_hotamt, ref string arg_msg, boolean arg_ifcommit)
  12. end prototypes
  13. public function integer uof_basepay_init (long arg_empid, string arg_empname, decimal arg_basepay, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  14. Long cnt
  15. IF arg_empid = 0 THEN
  16. arg_msg = '员工:'+arg_empname+',错误的员工ID'
  17. rslt = 0
  18. GOTO ext
  19. END IF
  20. SELECT count(*) INTO :cnt
  21. FROM u_rs_empinfo
  22. Where empid = :arg_empid;
  23. IF sqlca.SQLCode <> 0 THEN
  24. arg_msg = '查询员工:'+arg_empname+',基本资料失败,'+sqlca.SQLErrText
  25. rslt = 0
  26. GOTO ext
  27. END IF
  28. IF cnt = 0 THEN
  29. arg_msg = '员工:'+arg_empname+',基本资料不存在,请检查'
  30. rslt = 0
  31. GOTO ext
  32. ELSEIF cnt > 1 THEN
  33. arg_msg = '员工:'+arg_empname+',基本资料重复,请检查'
  34. rslt = 0
  35. GOTO ext
  36. END IF
  37. IF arg_basepay < 0 THEN
  38. arg_msg = '请输入正确的基本工资'
  39. rslt = 0
  40. GOTO ext
  41. END IF
  42. UPDATE u_basepay
  43. SET basepay = :arg_basepay
  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,moddate)
  49. Values(:arg_empid,:arg_basepay,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. public function integer uof_laborbasepay_init (long arg_empid, string arg_empname, decimal arg_basepay, decimal arg_hotamt, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  70. Long cnt
  71. IF arg_empid = 0 THEN
  72. arg_msg = '员工:'+arg_empname+',错误的员工ID'
  73. rslt = 0
  74. GOTO ext
  75. END IF
  76. SELECT count(*) INTO :cnt
  77. FROM u_rs_empinfo
  78. Where empid = :arg_empid;
  79. IF sqlca.SQLCode <> 0 THEN
  80. arg_msg = '查询员工:'+arg_empname+',基本资料失败,'+sqlca.SQLErrText
  81. rslt = 0
  82. GOTO ext
  83. END IF
  84. IF cnt = 0 THEN
  85. arg_msg = '员工:'+arg_empname+',基本资料不存在,请检查'
  86. rslt = 0
  87. GOTO ext
  88. ELSEIF cnt > 1 THEN
  89. arg_msg = '员工:'+arg_empname+',基本资料重复,请检查'
  90. rslt = 0
  91. GOTO ext
  92. END IF
  93. IF arg_basepay < 0 THEN
  94. arg_msg = '请输入正确的劳动法基本工资'
  95. rslt = 0
  96. GOTO ext
  97. END IF
  98. IF arg_hotamt < 0 THEN
  99. arg_msg = '请输入正确的劳动法高温补贴'
  100. rslt = 0
  101. GOTO ext
  102. END IF
  103. UPDATE u_basepay
  104. SET laborbasepay = :arg_basepay,
  105. laborhotamt = :arg_hotamt
  106. Where empid = :arg_empid;
  107. IF sqlca.SQLCode = 0 THEN
  108. IF sqlca.SQLNRows = 0 THEN
  109. INSERT INTO u_basepay
  110. (empid,laborbasepay, laborhotamt,moddate)
  111. Values(:arg_empid,:arg_basepay,:arg_hotamt, getdate());
  112. IF sqlca.SQLCode <> 0 THEN
  113. arg_msg = '新增员工:'+arg_empname+',劳动法基本工资及高温补贴失败,'+sqlca.SQLErrText
  114. rslt = 0
  115. GOTO ext
  116. END IF
  117. END IF
  118. ELSE
  119. arg_msg = '更新员工:'+arg_empname+',劳动法基本工资及高温补贴失败,'+sqlca.SQLErrText
  120. rslt = 0
  121. GOTO ext
  122. END IF
  123. ext:
  124. IF rslt = 0 THEN
  125. ROLLBACK;
  126. ELSEIF rslt = 1 AND arg_ifcommit THEN
  127. COMMIT;
  128. END IF
  129. RETURN rslt
  130. end function
  131. on uo_basewage.create
  132. call super::create
  133. TriggerEvent( this, "constructor" )
  134. end on
  135. on uo_basewage.destroy
  136. TriggerEvent( this, "destructor" )
  137. call super::destroy
  138. end on