uo_wage.sru 31 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361
  1. $PBExportHeader$uo_wage.sru
  2. forward
  3. global type uo_wage from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_wage from nonvisualobject
  7. end type
  8. global uo_wage uo_wage
  9. forward prototypes
  10. public function integer f_delone (long arg_mth, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
  11. public function integer f_setwagemxdata (long arg_mth, long arg_empid, long arg_wageid, decimal arg_wageamt, ref string arg_msg, boolean arg_ifcommit)
  12. public function integer f_addemp (long arg_wagemth, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
  13. public function integer f_delemp (long arg_wagemth, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
  14. public function integer f_init_wagemx_0 (long arg_scid, long arg_mth, long arg_wageid, ref string arg_msg, boolean arg_ifcommit)
  15. public function integer f_uninit (long arg_scid, long arg_mth, ref string arg_msg)
  16. public function integer f_auditing (long arg_mth, long arg_scid, long arg_empid, string arg_ademp, ref string arg_msg)
  17. public function integer f_wage_cmpl (long arg_scid, long arg_mth, ref string arg_msg, boolean arg_ifcommit)
  18. public function integer f_unauditing (long arg_mth, long arg_scid, long arg_empid, string arg_ademp, ref string arg_msg)
  19. public function integer f_init (long arg_scid, long arg_mth, integer arg_ifall, ref string arg_msg)
  20. public function integer f_wage_clear (long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit)
  21. public function integer f_check_noaudit (long arg_wagemth, long arg_scid, long arg_empid, ref string arg_msg)
  22. end prototypes
  23. public function integer f_delone (long arg_mth, long arg_empid, ref string arg_msg, boolean arg_ifcommit);//f_delone
  24. //1,删除一工资记录
  25. //2.删除对应工资明细记录
  26. long rslt=1,cnt
  27. string ls_msg
  28. select count(*)
  29. into :cnt
  30. from u_gz_wage
  31. where u_gz_wage.wagemth=:arg_mth
  32. and Auditingflag = 0 and empid=:arg_empid;
  33. if sqlca.sqlcode<>0 then
  34. ls_msg=sqlca.sqlerrtext
  35. rslt=0
  36. arg_msg="查询工资记录是否已经审核失败>>"+ls_msg
  37. goto ext
  38. end if
  39. if cnt=0 then
  40. rslt=0
  41. arg_msg="目标工资记录已经审核!"
  42. goto ext
  43. end if
  44. //1,删除一工资记录
  45. delete u_gz_wage where wagemth=:arg_mth and empid=:arg_empid;
  46. if sqlca.sqlcode<>0 then
  47. ls_msg=sqlca.sqlerrtext
  48. rslt=0
  49. arg_msg="删除个人工资记录失败>>"+ls_msg
  50. goto ext
  51. end if
  52. //2.删除工资明细记录
  53. delete u_gz_wagemx where wagemth=:arg_mth and empid=:arg_empid ;
  54. if sqlca.sqlcode<>0 then
  55. ls_msg=sqlca.sqlerrtext
  56. rslt=0
  57. arg_msg="删除个人工资对应项目明细记录失败>>"+ls_msg
  58. goto ext
  59. end if
  60. ext:
  61. if rslt=0 then
  62. rollback;
  63. else
  64. if arg_ifcommit then
  65. commit;
  66. end if
  67. end if
  68. return rslt
  69. end function
  70. public function integer f_setwagemxdata (long arg_mth, long arg_empid, long arg_wageid, decimal arg_wageamt, ref string arg_msg, boolean arg_ifcommit);//f_setwagemxdata(arg_mth,arg_empid,arg_wageid,arg_wageamt,arg_msg,arg_ifcommit)
  71. //审核检查
  72. //删除旧的
  73. //插入新的
  74. Long rslt = 1,cnt,ls_wagetype
  75. String ls_msg,ls_wagename
  76. String ls_empcode,ls_empname
  77. SELECT empcode,Empname INTO :ls_empcode,:ls_empname
  78. FROM u_rs_empinfo
  79. Where empid = :arg_empid;
  80. IF sqlca.SQLCode <> 0 THEN
  81. rslt = 0
  82. arg_msg = '查询员工资料失败:'+String(arg_empid)
  83. GOTO ext
  84. END IF
  85. SELECT count(*)
  86. INTO :cnt
  87. FROM u_gz_wage
  88. WHERE u_gz_wage.wagemth = :arg_mth
  89. AND Auditingflag = 0 AND empid = :arg_empid;
  90. IF sqlca.SQLCode <> 0 THEN
  91. ls_msg = sqlca.SQLErrText
  92. rslt = 0
  93. arg_msg = "查询员工:"+String(ls_empcode+ls_empname)+"月份:"+String(arg_mth)+"工资记录是否已经审核失败>>"+ls_msg
  94. GOTO ext
  95. END IF
  96. IF cnt = 0 THEN
  97. rslt = 0
  98. arg_msg = "员工:"+String(ls_empcode+ls_empname)+"月份:"+String(arg_mth)+"目标工资记录已经审核或还没有初始化!"
  99. GOTO ext
  100. END IF
  101. SELECT u_gz_wageitem.wagetype,u_gz_wageitem.wagename
  102. INTO :ls_wagetype,:ls_wagename
  103. FROM u_gz_wageitem
  104. Where u_gz_wageitem.wageid = :arg_wageid ;
  105. IF sqlca.SQLCode <> 0 THEN
  106. ls_msg = sqlca.SQLErrText
  107. rslt = 0
  108. arg_msg = "查询工资项目增减类型失败>>"+ls_msg
  109. GOTO ext
  110. END IF
  111. UPDATE u_gz_wagemx
  112. SET Wagename = :ls_wagename,
  113. wagetype = :ls_wagetype,
  114. Wageamt = Wageamt + :arg_wageamt
  115. Where wageid = :arg_wageid AND empid = :arg_empid AND wagemth = :arg_mth ;
  116. IF sqlca.SQLCode = 0 AND sqlca.SQLNRows = 0 THEN
  117. INSERT INTO u_gz_wagemx
  118. ( wageid,
  119. empid,
  120. wagemth,
  121. Wagename,
  122. wagetype,
  123. Wageamt )
  124. VALUES ( :arg_wageid,
  125. :arg_empid,
  126. :arg_mth,
  127. :ls_wagename,
  128. :ls_wagetype,
  129. :arg_wageamt ) ;
  130. IF sqlca.SQLCode <> 0 THEN
  131. ls_msg = sqlca.SQLErrText
  132. rslt = 0
  133. arg_msg = "插入新工资明细数据记录失败>>"+ls_msg
  134. GOTO ext
  135. END IF
  136. ELSEIF sqlca.SQLCode <> 0 THEN
  137. ls_msg = sqlca.SQLErrText
  138. rslt = 0
  139. arg_msg = "删除旧更新工资明细数据记录失败>>"+ls_msg
  140. GOTO ext
  141. END IF
  142. //delete from u_gz_wagemx
  143. // where wageid=:arg_wageid and empid=:arg_empid and wagemth=:arg_mth ;
  144. // if sqlca.sqlcode<>0 then
  145. // ls_msg=sqlca.sqlerrtext
  146. // rslt=0
  147. // arg_msg="删除旧工资明细数据记录失败>>"+ls_msg
  148. // goto ext
  149. // end if
  150. ext:
  151. IF rslt = 0 THEN
  152. ROLLBACK;
  153. ELSE
  154. IF arg_ifcommit THEN
  155. COMMIT;
  156. END IF
  157. END IF
  158. RETURN rslt
  159. end function
  160. public function integer f_addemp (long arg_wagemth, long arg_empid, ref string arg_msg, boolean arg_ifcommit);//f_addemp(long wagemth,long empid,ref string arg_msg,boolean arg_ifcommit)
  161. //在工资表中追加人员
  162. Int cnt = 0
  163. Int rslt = 1
  164. Long ll_deptid,ll_flag = 0
  165. String ls_empcode,ls_empname,ls_name
  166. SELECT empcode,empname
  167. INTO :ls_empcode,:ls_empname
  168. FROM u_rs_empinfo
  169. Where empid = :arg_empid;
  170. IF sqlca.SQLCode <> 0 THEN
  171. arg_msg = '查询员工资料失败,'+sqlca.SQLErrText
  172. rslt = 0
  173. GOTO ext
  174. END IF
  175. ls_name = ls_empcode + ' ' + ls_empname
  176. SELECT Top 1 Auditingflag INTO :ll_flag FROM u_gz_wage Where wagemth = :arg_wagemth;
  177. IF sqlca.SQLCode <> 0 THEN
  178. rslt = 0
  179. arg_msg = '查询工资表失败,原因:'+sqlca.SQLErrText
  180. GOTO ext
  181. END IF
  182. IF ll_flag = 1 THEN
  183. rslt = 0
  184. arg_msg = '该月工资表已审核,不能增加员工!'
  185. GOTO ext
  186. END IF
  187. SELECT count(*) INTO :cnt
  188. FROM u_gz_wage Where wagemth = :arg_wagemth
  189. AND empid = :arg_empid;
  190. IF sqlca.SQLCode <> 0 THEN
  191. rslt = 0
  192. arg_msg = '查询员工:'+ls_name+',工资表失败,原因:'+sqlca.SQLErrText
  193. GOTO ext
  194. END IF
  195. IF cnt > 0 THEN
  196. rslt = 0
  197. arg_msg = '该员工:'+ls_name+',已在该月工资表中存在,不能增加!'
  198. GOTO ext
  199. END IF
  200. SELECT deptid INTO :ll_deptid
  201. FROM u_rs_empinfo Where empid = :arg_empid;
  202. IF sqlca.SQLCode <> 0 THEN
  203. rslt = 0
  204. arg_msg = '查询员工:'+ls_name+',部门失败,原因:'+sqlca.SQLErrText
  205. GOTO ext
  206. END IF
  207. IF ll_deptid <= 0 THEN
  208. rslt = 0
  209. arg_msg = '非法部门唯一码'
  210. GOTO ext
  211. END IF
  212. INSERT INTO u_gz_wage
  213. (wagemth,
  214. empid,
  215. deptid)
  216. VALUES (:arg_wagemth,
  217. :arg_empid,
  218. :ll_deptid);
  219. IF sqlca.SQLCode <> 0 THEN
  220. rslt = 0
  221. arg_msg = '员工:'+ls_name+',插入工资表失败,原因:'+sqlca.SQLErrText
  222. GOTO ext
  223. END IF
  224. ext:
  225. IF rslt = 0 THEN
  226. ROLLBACK;
  227. ELSEIF rslt = 1 AND arg_ifcommit THEN
  228. COMMIT;
  229. END IF
  230. RETURN rslt
  231. end function
  232. public function integer f_delemp (long arg_wagemth, long arg_empid, ref string arg_msg, boolean arg_ifcommit);int rslt=1
  233. long ll_flag=0,cnt=0
  234. select top 1 Auditingflag into :ll_flag from u_gz_wage where wagemth=:arg_wagemth;
  235. if sqlca.sqlcode<>0 then
  236. rslt=0
  237. arg_msg='查询工资表失败,原因:'+sqlca.sqlerrtext
  238. goto ext
  239. end if
  240. if ll_flag=1 then
  241. rslt=0
  242. arg_msg='该月工资表已审核,不能增加员工!'
  243. goto ext
  244. end if
  245. select count(*) into :cnt from u_sc_taskworkmx,u_sc_taskwork
  246. where u_sc_taskworkmx.billid = u_sc_taskwork.billid
  247. and ( u_sc_taskwork.Wagemth = :arg_wagemth
  248. or u_sc_taskwork.wagemth = 0 )
  249. and empid=:arg_empid;
  250. if sqlca.sqlcode<>0 then
  251. rslt=0
  252. arg_msg='查询计件明细失败'+sqlca.sqlerrtext
  253. goto ext
  254. end if
  255. if cnt>0 then
  256. rslt=0
  257. arg_msg='该员工在该月的计件单中存在,不能删除!'
  258. goto ext
  259. end if
  260. delete from u_gz_wagemx where wagemth=:arg_wagemth and empid=:arg_empid;
  261. if sqlca.sqlcode<>0 then
  262. rslt=0
  263. arg_msg='删除失败!原因:'+sqlca.sqlerrtext
  264. goto ext
  265. end if
  266. delete from u_gz_wage where wagemth=:arg_wagemth and empid=:arg_empid;
  267. if sqlca.sqlcode<>0 then
  268. rslt=0
  269. arg_msg='删除失败!原因:'+sqlca.sqlerrtext
  270. goto ext
  271. end if
  272. ext:
  273. if rslt=0 then
  274. rollback;
  275. elseif rslt=1 and arg_ifcommit then
  276. commit;
  277. end if
  278. return rslt
  279. end function
  280. public function integer f_init_wagemx_0 (long arg_scid, long arg_mth, long arg_wageid, ref string arg_msg, boolean arg_ifcommit);//f_init_wagemx_0(arg_mth,arg_wageid,arg_msg,arg_ifcommit)
  281. //1,补充生成工资明细0项目记录
  282. //2.删除废弃记录
  283. Long rslt = 1
  284. String ls_msg
  285. //1 补充生成工资明细0项目记录
  286. INSERT INTO u_gz_wagemx
  287. ( wageid,
  288. empid,
  289. wagemth,
  290. Wagename,
  291. wagetype,
  292. Wageamt )
  293. SELECT u_gz_wageitem.wageid,
  294. u_gz_wage.empid,
  295. u_gz_wage.wagemth,
  296. u_gz_wageitem.Wagename,
  297. u_gz_wageitem.wagetype,
  298. 0 as amt
  299. FROM u_gz_wage,
  300. u_gz_wageitem,
  301. u_rs_empinfo
  302. WHERE ( u_gz_wageitem.useflag = 1 ) AND
  303. ( u_rs_empinfo.scid = :arg_scid ) AND
  304. ( u_rs_empinfo.empid = u_gz_wage.empid ) AND
  305. ( u_gz_wage.wagemth = :arg_mth ) AND
  306. ( u_gz_wageitem.wageid = :arg_wageid) AND
  307. ( u_gz_wage.empid NOT IN
  308. ( SELECT u_gz_wagemx.empid FROM u_gz_wagemx
  309. WHERE u_gz_wagemx.wagemth = :arg_mth AND
  310. u_gz_wagemx.wageid = :arg_wageid)) ;
  311. IF sqlca.SQLCode <> 0 THEN
  312. ls_msg = sqlca.SQLErrText
  313. rslt = 0
  314. arg_msg = "初始化工资[月直接输入]明细项目记录失败>"+String(arg_wageid)+">>"+ls_msg
  315. GOTO ext
  316. END IF
  317. DELETE FROM u_gz_wagemx WHERE
  318. u_gz_wagemx.wagemth = :arg_mth AND
  319. u_gz_wagemx.wageid = :arg_wageid AND
  320. u_gz_wagemx.empid NOT IN
  321. (SELECT u_gz_wage.empid FROM u_gz_wage WHERE
  322. ( u_gz_wage.wagemth = :arg_mth ) );
  323. IF sqlca.SQLCode <> 0 THEN
  324. ls_msg = sqlca.SQLErrText
  325. rslt = 0
  326. arg_msg = "删除无效工资[月直接输入]明细项目记录失败>"+String(arg_wageid)+">>"+ls_msg
  327. GOTO ext
  328. END IF
  329. ext:
  330. IF rslt = 0 THEN
  331. ROLLBACK;
  332. ELSEIF rslt = 1 AND arg_ifcommit THEN
  333. COMMIT;
  334. END IF
  335. RETURN rslt
  336. end function
  337. public function integer f_uninit (long arg_scid, long arg_mth, ref string arg_msg);//f_uninit
  338. //1,删除工资记录
  339. //2.删除工资明细记录
  340. Long rslt = 1,cnt
  341. String ls_msg
  342. cnt = 0
  343. select count(*) into :cnt
  344. from u_scdef
  345. where scid = :arg_scid;
  346. if sqlca.sqlcode <> 0 then
  347. arg_msg = '查询分部资料失败,可能分部不存在'
  348. rslt = 0
  349. goto ext
  350. end if
  351. if cnt <> 1 then
  352. arg_msg = '查询分部资料失败,可能分部不存在'
  353. rslt = 0
  354. goto ext
  355. end if
  356. cnt = 0
  357. SELECT count(*)
  358. INTO :cnt
  359. FROM u_gz_wage,u_rs_empinfo
  360. WHERE u_gz_wage.wagemth = :arg_mth
  361. AND u_gz_wage.empid = u_rs_empinfo.empid
  362. AND u_rs_empinfo.scid = :arg_scid
  363. AND Auditingflag = 1;
  364. //有已经审核的记录即认为是已经审核,不可以反初始化
  365. IF sqlca.SQLCode <> 0 THEN
  366. ls_msg = sqlca.SQLErrText
  367. rslt = 0
  368. arg_msg = "查询工资表是否已经审核失败>>"+ls_msg
  369. GOTO ext
  370. END IF
  371. IF cnt > 0 THEN
  372. rslt = 0
  373. arg_msg = String(arg_mth)+"工资表已经审核,不可以反初始化"
  374. GOTO ext
  375. END IF
  376. //1,删除工资记录
  377. DELETE u_gz_wage
  378. FROM u_gz_wage,u_rs_empinfo
  379. WHERE wagemth = :arg_mth
  380. AND u_gz_wage.empid = u_rs_empinfo.empid
  381. AND u_rs_empinfo.scid = :arg_scid;
  382. IF sqlca.SQLCode <> 0 THEN
  383. ls_msg = sqlca.SQLErrText
  384. rslt = 0
  385. arg_msg = "删除"+String(arg_mth)+"工资记录失败>>"+ls_msg
  386. GOTO ext
  387. END IF
  388. //2.删除工资明细记录
  389. DELETE u_gz_wagemx
  390. FROM u_gz_wagemx,u_rs_empinfo
  391. WHERE u_gz_wagemx.wagemth = :arg_mth
  392. AND u_gz_wagemx.empid = u_rs_empinfo.empid
  393. AND u_rs_empinfo.scid = :arg_scid;
  394. IF sqlca.SQLCode <> 0 THEN
  395. ls_msg = sqlca.SQLErrText
  396. rslt = 0
  397. arg_msg = "删除"+String(arg_mth)+"工资项目明细记录失败>>"+ls_msg
  398. GOTO ext
  399. END IF
  400. ext:
  401. IF rslt = 0 THEN
  402. ROLLBACK;
  403. ELSE
  404. COMMIT;
  405. END IF
  406. RETURN rslt
  407. end function
  408. public function integer f_auditing (long arg_mth, long arg_scid, long arg_empid, string arg_ademp, ref string arg_msg);//f_auditing
  409. //
  410. //1.计算工资金额
  411. //3.查询是否已经审核:if arg_empid=0,全月[部门]审核; else 单条审核
  412. //4.
  413. Long rslt = 1,i, cnt = 0
  414. String ls_msg
  415. DateTime ldt_billdate
  416. Decimal lde_wageamt
  417. Long ll_moneyid_native, ll_empid
  418. uo_empinfo uo_ep
  419. uo_ep = Create uo_empinfo
  420. datastore ds
  421. ds = Create datastore
  422. ds.DataObject = 'ds_mthwage_emp'
  423. ds.SetTransObject(sqlca)
  424. SELECT count(*) INTO :cnt
  425. FROM u_scdef
  426. Where scid = :arg_scid;
  427. IF sqlca.SQLCode <> 0 THEN
  428. arg_msg = '查询分部资料失败,可能分部不存在'
  429. rslt = 0
  430. GOTO ext
  431. END IF
  432. IF cnt <> 1 THEN
  433. arg_msg = '查询分部资料失败,可能分部不存在'
  434. rslt = 0
  435. GOTO ext
  436. END IF
  437. IF arg_empid < 0 Or arg_mth < 200001 THEN
  438. rslt = 0
  439. arg_msg = '参数错误'
  440. END IF
  441. rslt = f_wage_cmpl(arg_scid,arg_mth,arg_msg,False)
  442. IF rslt = 0 THEN
  443. GOTO ext
  444. END IF
  445. //更新人员部门ID
  446. UPDATE u_gz_wage
  447. SET u_gz_wage.Deptid = isnull(u_rs_empinfo.Deptid,0)
  448. FROM u_gz_wage,
  449. u_rs_empinfo
  450. WHERE ( u_gz_wage.empid = u_rs_empinfo.empid ) AND
  451. ( u_rs_empinfo.scid = :arg_scid ) AND
  452. ( u_gz_wage.wagemth = :arg_mth ) ;
  453. IF sqlca.SQLCode <> 0 THEN
  454. ls_msg = sqlca.SQLErrText
  455. rslt = 0
  456. arg_msg = "更新工资数据人员部门信息失败>>"+ls_msg
  457. GOTO ext
  458. END IF
  459. IF f_check_noaudit(arg_mth,arg_scid,arg_empid,arg_msg) = 0 THEN
  460. rslt = 0
  461. arg_msg = arg_msg + ',不能审核工资表'
  462. GOTO ext
  463. END IF
  464. ldt_billdate = DateTime(Today(),Now())
  465. SELECT moneyid INTO :ll_moneyid_native
  466. FROM cw_currency
  467. Where native = 1;
  468. IF sqlca.SQLCode <> 0 THEN
  469. arg_msg = '查询本位币资料失败'
  470. rslt = 0
  471. GOTO ext
  472. END IF
  473. IF arg_empid = 0 THEN //全月数据审核[部门审核]
  474. cnt = 0
  475. SELECT count(*)
  476. INTO :cnt
  477. FROM u_gz_wage,u_rs_empinfo
  478. WHERE u_gz_wage.wagemth = :arg_mth
  479. AND u_gz_wage.empid = u_rs_empinfo.empid
  480. AND u_rs_empinfo.scid = :arg_scid
  481. And Auditingflag = 0 ;
  482. IF sqlca.SQLCode <> 0 THEN
  483. ls_msg = sqlca.SQLErrText
  484. rslt = 0
  485. arg_msg = "查询工资表是否已经审核失败>>"+ls_msg
  486. GOTO ext
  487. END IF
  488. IF cnt = 0 THEN
  489. rslt = 0
  490. arg_msg = String(arg_mth)+"工资表已经全部审核!"
  491. GOTO ext
  492. END IF
  493. //增加工资应付帐
  494. cnt = ds.Retrieve(arg_scid, arg_mth, 0)
  495. FOR i = 1 To cnt
  496. ll_empid = ds.Object.u_gz_wage_empid[i]
  497. lde_wageamt = ds.Object.uv_getnew_tolwageamt_tolwageamt[i]
  498. IF IsNull(lde_wageamt) THEN lde_wageamt = 0
  499. //增加工资应付帐
  500. IF lde_wageamt <> 0 THEN
  501. IF uo_ep.uof_add_emppay(ll_empid,0,ll_moneyid_native,String(arg_mth)+'工资',&
  502. ldt_billdate,lde_wageamt,String(arg_mth)+'工资',0,False,arg_msg) = 0 THEN
  503. rslt = 0
  504. GOTO ext
  505. END IF
  506. END IF
  507. NEXT
  508. UPDATE u_gz_wage
  509. SET Auditingdate = getdate(),
  510. Auditingemp = :arg_ademp,
  511. Auditingflag = 1
  512. FROM u_gz_wage,u_rs_empinfo
  513. WHERE u_gz_wage.wagemth = :arg_mth
  514. AND u_gz_wage.empid = u_rs_empinfo.empid
  515. AND u_rs_empinfo.scid = :arg_scid
  516. And Auditingflag = 0 ;
  517. IF sqlca.SQLCode <> 0 THEN
  518. ls_msg = sqlca.SQLErrText
  519. rslt = 0
  520. arg_msg = "审核"+String(arg_mth)+"工资表失败>>"+ls_msg
  521. GOTO ext
  522. END IF
  523. rslt = sqlca.SQLNRows
  524. ELSE //单记录审核
  525. cnt = 0
  526. SELECT count(*)
  527. INTO :cnt
  528. FROM u_gz_wage,u_rs_empinfo
  529. WHERE u_gz_wage.wagemth = :arg_mth
  530. AND u_gz_wage.empid = u_rs_empinfo.empid
  531. AND u_rs_empinfo.scid = :arg_scid
  532. AND Auditingflag = 0
  533. And u_gz_wage.empid = :arg_empid;
  534. IF sqlca.SQLCode <> 0 THEN
  535. rslt = 0
  536. arg_msg = "查询工资记录是否已经审核失败,"+sqlca.SQLErrText
  537. GOTO ext
  538. END IF
  539. IF cnt = 0 THEN
  540. rslt = 0
  541. arg_msg = "目标工资记录已经审核!"
  542. GOTO ext
  543. END IF
  544. SELECT uv_getnew_Tolwageamt.Tolwageamt
  545. INTO :lde_wageamt
  546. FROM u_gz_wage INNER JOIN
  547. u_rs_empinfo ON u_gz_wage.empid = u_rs_empinfo.empid INNER JOIN
  548. uv_getnew_Tolwageamt ON
  549. u_rs_empinfo.empid = uv_getnew_Tolwageamt.empid AND
  550. u_gz_wage.wagemth = uv_getnew_Tolwageamt.wagemth
  551. WHERE u_gz_wage.wagemth = :arg_mth
  552. AND u_rs_empinfo.scid = :arg_scid
  553. And u_gz_wage.empid = :arg_empid;
  554. IF sqlca.SQLCode <> 0 THEN
  555. rslt = 0
  556. arg_msg = "查询员工工资额失败,"+sqlca.SQLErrText
  557. GOTO ext
  558. END IF
  559. IF IsNull(lde_wageamt) THEN lde_wageamt = 0
  560. //增加工资应付帐
  561. IF lde_wageamt <> 0 THEN
  562. IF uo_ep.uof_add_emppay(arg_empid,0,ll_moneyid_native,String(arg_mth)+'工资',&
  563. ldt_billdate,lde_wageamt,String(arg_mth)+'工资',0,False,arg_msg) = 0 THEN
  564. rslt = 0
  565. GOTO ext
  566. END IF
  567. END IF
  568. UPDATE u_gz_wage
  569. SET Auditingdate = getdate(),
  570. Auditingemp = :arg_ademp,
  571. Auditingflag = 1
  572. FROM u_gz_wage,u_rs_empinfo
  573. WHERE u_gz_wage.wagemth = :arg_mth
  574. AND u_gz_wage.empid = u_rs_empinfo.empid
  575. AND u_rs_empinfo.scid = :arg_scid
  576. AND Auditingflag = 0
  577. And u_gz_wage.empid = :arg_empid;
  578. IF sqlca.SQLCode <> 0 THEN
  579. ls_msg = sqlca.SQLErrText
  580. rslt = 0
  581. arg_msg = "审核个人的工资记录失败!>>"+ls_msg
  582. GOTO ext
  583. END IF
  584. rslt = sqlca.SQLNRows
  585. END IF
  586. ext:
  587. Destroy uo_ep
  588. Destroy ds
  589. IF rslt = 0 THEN
  590. ROLLBACK;
  591. ELSE
  592. COMMIT;
  593. END IF
  594. RETURN rslt
  595. end function
  596. public function integer f_wage_cmpl (long arg_scid, long arg_mth, ref string arg_msg, boolean arg_ifcommit);//f_wage_cmpl
  597. Long rslt = 1
  598. String ls_msg
  599. UPDATE u_gz_wage
  600. SET u_gz_wage.Tolwageamt = uv_getnew_Tolwageamt .Tolwageamt
  601. FROM u_gz_wage,
  602. u_rs_empinfo,
  603. uv_getnew_Tolwageamt
  604. WHERE u_gz_wage.empid = uv_getnew_Tolwageamt.empid AND
  605. u_gz_wage.empid = u_rs_empinfo.empid AND
  606. u_rs_empinfo.scid = :arg_scid AND
  607. u_gz_wage.wagemth = uv_getnew_Tolwageamt.wagemth AND
  608. u_gz_wage.wagemth = :arg_mth AND
  609. u_gz_wage.Auditingflag = 0;
  610. IF sqlca.SQLCode <> 0 THEN
  611. ls_msg = sqlca.SQLErrText
  612. rslt = 0
  613. arg_msg = "计算"+String(arg_mth)+"工资金额记录失败>>"+ls_msg
  614. GOTO ext
  615. END IF
  616. if rslt = 0 then
  617. rollback;
  618. elseIF rslt = 1 and arg_ifcommit THEN
  619. COMMIT;
  620. END IF
  621. ext:
  622. RETURN rslt
  623. end function
  624. public function integer f_unauditing (long arg_mth, long arg_scid, long arg_empid, string arg_ademp, ref string arg_msg);//f_unauditing
  625. //2.查询是否已经审核:if arg_empid=0,全月[部门]审核; else 单条审核
  626. //3.
  627. //4.
  628. Long rslt = 1, i,cnt = 0
  629. String ls_msg
  630. Long ll_moneyid_native
  631. Long ll_empid
  632. Dec lde_wageamt
  633. uo_empinfo uo_ep
  634. uo_ep = Create uo_empinfo
  635. datastore ds
  636. ds = Create datastore
  637. ds.DataObject = 'ds_mthwage_emp'
  638. ds.SetTransObject(sqlca)
  639. SELECT count(*) INTO :cnt
  640. FROM u_scdef
  641. Where scid = :arg_scid;
  642. IF sqlca.SQLCode <> 0 THEN
  643. arg_msg = '查询分部资料失败,可能分部不存在'
  644. rslt = 0
  645. GOTO ext
  646. END IF
  647. IF cnt <> 1 THEN
  648. arg_msg = '查询分部资料失败,可能分部不存在'
  649. rslt = 0
  650. GOTO ext
  651. END IF
  652. IF arg_empid < 0 Or arg_mth < 200001 THEN
  653. rslt = 0
  654. arg_msg = '参数错误'
  655. END IF
  656. SELECT moneyid INTO :ll_moneyid_native
  657. FROM cw_currency
  658. Where native = 1;
  659. IF sqlca.SQLCode <> 0 THEN
  660. arg_msg = '查询本位币资料失败'
  661. rslt = 0
  662. GOTO ext
  663. END IF
  664. IF arg_empid = 0 THEN //全月数据撤销审核[单部门]
  665. cnt = 0
  666. SELECT count(*)
  667. INTO :cnt
  668. FROM u_gz_wage,u_rs_empinfo
  669. WHERE u_gz_wage.wagemth = :arg_mth
  670. AND u_gz_wage.empid = u_rs_empinfo.empid
  671. AND u_rs_empinfo.scid = :arg_scid
  672. And Auditingflag = 1 ;
  673. IF sqlca.SQLCode <> 0 THEN
  674. ls_msg = sqlca.SQLErrText
  675. rslt = 0
  676. arg_msg = "查询工资表是否已经审核失败>>"+ls_msg
  677. GOTO ext
  678. END IF
  679. IF cnt = 0 THEN
  680. rslt = 0
  681. arg_msg = String(arg_mth)+"工资表全部未经审核!"
  682. GOTO ext
  683. END IF
  684. //增加工资应付帐
  685. cnt = ds.Retrieve(arg_scid, arg_mth, 1)
  686. FOR i = 1 To cnt
  687. ll_empid = ds.Object.u_gz_wage_empid[i]
  688. lde_wageamt = ds.Object.uv_getnew_tolwageamt_tolwageamt[i]
  689. IF IsNull(lde_wageamt) THEN lde_wageamt = 0
  690. IF lde_wageamt <> 0 THEN
  691. IF uo_ep.uof_del_emppay(ll_empid,0,ll_moneyid_native,String(arg_mth)+'工资',0,False,arg_msg) = 0 THEN
  692. rslt = 0
  693. GOTO ext
  694. END IF
  695. END IF
  696. NEXT
  697. UPDATE u_gz_wage
  698. SET Auditingdate = getdate(),
  699. Auditingemp = :arg_ademp,
  700. Auditingflag = 0
  701. FROM u_gz_wage,u_rs_empinfo
  702. WHERE u_gz_wage.wagemth = :arg_mth
  703. AND u_gz_wage.empid = u_rs_empinfo.empid
  704. AND u_rs_empinfo.scid = :arg_scid
  705. And Auditingflag = 1 ;
  706. IF sqlca.SQLCode <> 0 THEN
  707. ls_msg = sqlca.SQLErrText
  708. rslt = 0
  709. arg_msg = "撤审"+String(arg_mth)+"工资表失败>>"+ls_msg
  710. GOTO ext
  711. END IF
  712. rslt = sqlca.SQLNRows
  713. ELSE //单记录撤销审核
  714. cnt = 0
  715. SELECT count(*)
  716. INTO :cnt
  717. FROM u_gz_wage,u_rs_empinfo
  718. WHERE u_gz_wage.wagemth = :arg_mth
  719. AND u_gz_wage.empid = u_rs_empinfo.empid
  720. AND u_rs_empinfo.scid = :arg_scid
  721. AND u_gz_wage.Auditingflag = 1
  722. And u_gz_wage.empid = :arg_empid;
  723. IF sqlca.SQLCode <> 0 THEN
  724. ls_msg = sqlca.SQLErrText
  725. rslt = 0
  726. arg_msg = "查询工资记录是否已经审核失败>>"+ls_msg
  727. GOTO ext
  728. END IF
  729. IF cnt = 0 THEN
  730. rslt = 0
  731. arg_msg = "目标工资记录未经审核!"
  732. GOTO ext
  733. END IF
  734. IF uo_ep.uof_del_emppay(arg_empid,0,ll_moneyid_native,String(arg_mth)+'工资',0,False,arg_msg) = 0 THEN
  735. rslt = 0
  736. GOTO ext
  737. END IF
  738. UPDATE u_gz_wage
  739. SET Auditingdate = getdate(),
  740. Auditingemp = :arg_ademp,
  741. Auditingflag = 0
  742. FROM u_gz_wage,u_rs_empinfo
  743. WHERE u_gz_wage.wagemth = :arg_mth
  744. AND u_gz_wage.empid = u_rs_empinfo.empid
  745. AND u_rs_empinfo.scid = :arg_scid
  746. AND u_gz_wage.Auditingflag = 1
  747. And u_gz_wage.empid = :arg_empid;
  748. IF sqlca.SQLCode <> 0 THEN
  749. ls_msg = sqlca.SQLErrText
  750. rslt = 0
  751. arg_msg = "撤销审核个人的工资记录失败!>>"+ls_msg
  752. GOTO ext
  753. END IF
  754. rslt = sqlca.SQLNRows
  755. END IF
  756. ext:
  757. Destroy uo_ep
  758. Destroy ds
  759. IF rslt = 0 THEN
  760. ROLLBACK;
  761. ELSE
  762. COMMIT;
  763. END IF
  764. RETURN rslt
  765. end function
  766. public function integer f_init (long arg_scid, long arg_mth, integer arg_ifall, ref string arg_msg);//f_init
  767. //更新人员部门ID
  768. //1,补充生成工资记录
  769. //2.更新离职人员工资标记
  770. Long rslt = 1
  771. String ls_msg
  772. Long a_wageid[],p_wageid,ls_i
  773. Long cnt
  774. SELECT count(*) INTO :cnt
  775. FROM u_scdef
  776. Where scid = :arg_scid;
  777. IF sqlca.SQLCode <> 0 THEN
  778. arg_msg = '查询分部资料失败,可能分部不存在'
  779. rslt = 0
  780. GOTO ext
  781. END IF
  782. IF cnt <> 1 THEN
  783. arg_msg = '查询分部资料失败,可能分部不存在'
  784. rslt = 0
  785. GOTO ext
  786. END IF
  787. DateTime ld_lastdate,ld_firstdate
  788. Long ll_month
  789. ll_month = Long(Right(String(arg_mth),2))
  790. IF Not (ll_month >= 1 AND ll_month <= 12) THEN
  791. arg_msg = '非法的工资月份'
  792. rslt = 0
  793. GOTO ext
  794. END IF
  795. IF arg_ifall = 0 THEN
  796. IF f_get_month_day(arg_mth,0,ld_firstdate,arg_msg) = 0 THEN
  797. rslt = 0
  798. GOTO ext
  799. END IF
  800. IF f_get_month_day(arg_mth,1,ld_lastdate,arg_msg) = 0 THEN
  801. rslt = 0
  802. GOTO ext
  803. END IF
  804. END IF
  805. //1 补充生成工资记录
  806. INSERT INTO u_gz_wage
  807. ( empid,
  808. wagemth,
  809. deptid,
  810. Tolwageamt,
  811. Havpaywageamt,
  812. Payflag,
  813. ispay,
  814. Dscrp,
  815. Auditingflag,
  816. Auditingemp,
  817. leaveflag)
  818. SELECT u_rs_empinfo.empid,:arg_mth,u_rs_empinfo.deptid,0,0,0,0,'',0,'',0
  819. FROM u_rs_empinfo
  820. WHERE u_rs_empinfo.status = 1 AND
  821. u_rs_empinfo.scid = :arg_scid AND
  822. ( u_rs_empinfo.joindate <= :ld_lastdate AND :arg_ifall = 0 OR :arg_ifall = 1) AND
  823. u_rs_empinfo.empid NOT IN
  824. (SELECT empid FROM u_gz_wage Where wagemth = :arg_mth) ;
  825. IF sqlca.SQLCode <> 0 THEN
  826. ls_msg = sqlca.SQLErrText
  827. rslt = 0
  828. arg_msg = "补充插入在职新工资数据记录失败>>"+ls_msg
  829. GOTO ext
  830. END IF
  831. INSERT INTO u_gz_wage
  832. ( empid,
  833. wagemth,
  834. deptid,
  835. Tolwageamt,
  836. Havpaywageamt,
  837. Payflag,
  838. ispay,
  839. Dscrp,
  840. Auditingflag,
  841. Auditingemp,
  842. leaveflag)
  843. SELECT u_rs_empinfo.empid,:arg_mth,u_rs_empinfo.deptid,0,0,0,0,'',0,'',0
  844. FROM u_rs_empinfo INNER join uv_get_dimissiondate on
  845. u_rs_empinfo.empid = uv_get_dimissiondate.empid
  846. WHERE u_rs_empinfo.status = 0 AND
  847. u_rs_empinfo.scid = :arg_scid AND
  848. ( uv_get_dimissiondate.movedate >= :ld_firstdate AND :arg_ifall = 0 ) AND
  849. u_rs_empinfo.empid NOT IN
  850. (SELECT empid FROM u_gz_wage Where wagemth = :arg_mth) ;
  851. IF sqlca.SQLCode <> 0 THEN
  852. ls_msg = sqlca.SQLErrText
  853. rslt = 0
  854. arg_msg = "补充插入离职新工资数据记录失败>>"+ls_msg
  855. GOTO ext
  856. END IF
  857. //2.更新离职人员工资标记
  858. UPDATE u_gz_wage
  859. SET leaveflag = 1
  860. FROM u_gz_wage,
  861. u_rs_empinfo
  862. WHERE ( u_gz_wage.empid = u_rs_empinfo.empid ) AND
  863. ( u_rs_empinfo.status = 0 ) AND
  864. ( u_rs_empinfo.scid = :arg_scid ) AND
  865. ( u_gz_wage.wagemth = :arg_mth ) ;
  866. IF sqlca.SQLCode <> 0 THEN
  867. ls_msg = sqlca.SQLErrText
  868. rslt = 0
  869. arg_msg = "更新离职人员工资标记录失败>>"+ls_msg
  870. GOTO ext
  871. END IF
  872. COMMIT;
  873. //工资记录初始化成功则提交
  874. //游标查询全部的 项目
  875. String ls_wageitem = ''
  876. Int li_ifint = 0
  877. SELECT count(*) INTO :cnt
  878. FROM u_gz_wagemx
  879. Where wagemth = :arg_mth;
  880. IF sqlca.SQLCode <> 0 THEN
  881. ls_msg = sqlca.SQLErrText
  882. rslt = 0
  883. arg_msg = "查询是否首次初始化失败>>"+ls_msg
  884. GOTO ext
  885. END IF
  886. IF cnt = 0 THEN li_ifint = 1
  887. DECLARE wageitem_cur CURSOR FOR
  888. SELECT u_gz_wageitem.Wageid
  889. FROM u_gz_wageitem
  890. Where ( u_gz_wageitem.useflag = 1 ) ;
  891. OPEN wageitem_cur;
  892. p_wageid = 1
  893. FETCH wageitem_cur INTO :a_wageid[p_wageid];
  894. DO WHILE sqlca.SQLCode = 0
  895. p_wageid++
  896. FETCH wageitem_cur INTO :a_wageid[p_wageid];
  897. LOOP
  898. CLOSE wageitem_cur;
  899. p_wageid = p_wageid - 1
  900. IF p_wageid = 0 THEN
  901. arg_msg = '工资项目未定义,请检查'
  902. rslt = 0
  903. GOTO ext
  904. END IF
  905. FOR ls_i = 1 TO p_wageid //循环初始化项目 ,直接提交
  906. rslt = f_init_wagemx_0(arg_scid,arg_mth,a_wageid[ls_i],arg_msg,FALSE)
  907. IF rslt = 0 THEN
  908. GOTO ext
  909. END IF
  910. NEXT
  911. IF li_ifint = 1 THEN
  912. UPDATE u_gz_wagemx
  913. SET u_gz_wagemx.Wageamt = u_rs_wagemx.wageamt
  914. FROM u_gz_wagemx INNER JOIN
  915. u_rs_wagemx ON u_gz_wagemx.empid = u_rs_wagemx.empid AND
  916. u_gz_wagemx.wageid = u_rs_wagemx.wageid
  917. Where u_gz_wagemx.wagemth = :arg_mth;
  918. IF sqlca.SQLCode <> 0 THEN
  919. ls_msg = sqlca.SQLErrText
  920. rslt = 0
  921. arg_msg = "导入员工薪酬失败>>"+ls_msg
  922. GOTO ext
  923. END IF
  924. END IF
  925. ext:
  926. IF rslt = 0 THEN
  927. ROLLBACK;
  928. ELSE
  929. COMMIT;
  930. END IF
  931. RETURN rslt
  932. end function
  933. public function integer f_wage_clear (long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  934. Long cnt
  935. SELECT count(*)
  936. INTO :cnt
  937. FROM u_gz_wage
  938. WHERE wagemth = :arg_wagemth
  939. AND Auditingflag = 1;
  940. IF sqlca.SQLCode <> 0 THEN
  941. rslt = 0
  942. arg_msg = '查询工资表失败,原因>>'+sqlca.SQLErrText
  943. GOTO ext
  944. END IF
  945. IF cnt > 0 THEN
  946. rslt = 0
  947. arg_msg = '该月的工资表已审核,不能撤审!'
  948. GOTO ext
  949. END IF
  950. UPDATE u_gz_wagemx
  951. SET wageamt = 0
  952. WHERE wageid = :arg_wageid
  953. AND wagemth = :arg_wagemth;
  954. IF sqlca.SQLCode <> 0 THEN
  955. rslt = 0
  956. arg_msg = '更新工资表(工资项目清零)失败,原因:'+sqlca.SQLErrText
  957. GOTO ext
  958. END IF
  959. ext:
  960. IF rslt = 0 THEN
  961. ROLLBACK;
  962. ELSEIF rslt = 1 AND arg_ifcommit THEN
  963. COMMIT;
  964. END IF
  965. RETURN rslt
  966. end function
  967. public function integer f_check_noaudit (long arg_wagemth, long arg_scid, long arg_empid, ref string arg_msg);Int rslt = 1
  968. Long cnt
  969. Long li_year,li_month
  970. li_year = Long(Left(String(arg_wagemth),4))
  971. li_month = Long(Right(String(arg_wagemth),2))
  972. //其它计件单
  973. SELECT count(*)
  974. INTO :cnt
  975. FROM u_sc_abnormity INNER JOIN
  976. u_sc_abnormitymx ON u_sc_abnormity.billid = u_sc_abnormitymx.billid
  977. and u_sc_abnormity.scid = u_sc_abnormitymx.scid
  978. WHERE ( u_sc_abnormity.wagemth = :arg_wagemth )
  979. AND ( u_sc_abnormitymx.empid = :arg_empid OR :arg_empid = 0 )
  980. AND ( u_sc_abnormity.scid = :arg_scid OR :arg_scid = -1 )
  981. And ( u_sc_abnormity.Auditingflag = 0 );
  982. IF sqlca.SQLCode <> 0 THEN
  983. rslt = 0
  984. arg_msg = '查询当月是否有未审核其它计件单失败,'+sqlca.SQLErrText
  985. GOTO ext
  986. END IF
  987. IF cnt > 0 THEN
  988. rslt = 0
  989. arg_msg = '当月有未审核其它计件单'
  990. GOTO ext
  991. END IF
  992. //奖罚单
  993. SELECT count(*)
  994. INTO :cnt
  995. FROM u_gz_award_punish
  996. WHERE ( u_gz_award_punish.wagemth = :arg_wagemth )
  997. AND ( u_gz_award_punish.empid = :arg_empid OR :arg_empid = 0 )
  998. And ( u_gz_award_punish.flag = 0 );
  999. IF sqlca.SQLCode <> 0 THEN
  1000. rslt = 0
  1001. arg_msg = '查询当月是否有未审核奖罚单失败,'+sqlca.SQLErrText
  1002. GOTO ext
  1003. END IF
  1004. IF cnt > 0 THEN
  1005. rslt = 0
  1006. arg_msg = '当月有未审核奖罚单'
  1007. GOTO ext
  1008. END IF
  1009. //借支单
  1010. SELECT count(*)
  1011. INTO :cnt
  1012. FROM u_gz_loanwage
  1013. WHERE ( u_gz_loanwage.returndate = :arg_wagemth )
  1014. AND ( u_gz_loanwage.empid = :arg_empid OR :arg_empid = 0 )
  1015. And ( u_gz_loanwage.flag = 0 );
  1016. IF sqlca.SQLCode <> 0 THEN
  1017. rslt = 0
  1018. arg_msg = '查询当月是否有未审核借支单失败,'+sqlca.SQLErrText
  1019. GOTO ext
  1020. END IF
  1021. IF cnt > 0 THEN
  1022. rslt = 0
  1023. arg_msg = '当月有未审核借支单'
  1024. GOTO ext
  1025. END IF
  1026. //扣费品领用单
  1027. SELECT count(*)
  1028. INTO :cnt
  1029. FROM u_outware
  1030. WHERE ( year(u_outware.outdate) = :li_year )
  1031. AND ( month(u_outware.outdate) = :li_month )
  1032. AND ( u_outware.flag = 1 )
  1033. AND ( u_outware.secflag = 0 )
  1034. AND ( u_outware.cusid = :arg_empid )
  1035. And ( u_outware.billtype = 10 );
  1036. IF sqlca.SQLCode <> 0 THEN
  1037. rslt = 0
  1038. arg_msg = '查询当月是否有未审核扣费品领用单失败,'+sqlca.SQLErrText
  1039. GOTO ext
  1040. END IF
  1041. IF cnt > 0 THEN
  1042. rslt = 0
  1043. arg_msg = '当月有未审核扣费品领用单'
  1044. GOTO ext
  1045. END IF
  1046. //个人产品计件单
  1047. SELECT count(*)
  1048. INTO :cnt
  1049. FROM u_scwg_taskwork_2,u_scwg_taskwork_2_mx
  1050. WHERE ( u_scwg_taskwork_2.wagemth = :arg_wagemth )
  1051. AND ( u_scwg_taskwork_2.flag = 0 )
  1052. AND ( u_scwg_taskwork_2.billid = u_scwg_taskwork_2_mx.billid )
  1053. AND ( u_scwg_taskwork_2.billtype = 1 )
  1054. AND ( u_scwg_taskwork_2.wrkGrpid = :arg_empid OR :arg_empid = 0 )
  1055. And (u_scwg_taskwork_2.scid = :arg_scid Or :arg_scid = -1);
  1056. IF sqlca.SQLCode <> 0 THEN
  1057. rslt = 0
  1058. arg_msg = '查询当月是否有未审核个人产品计件单失败,'+sqlca.SQLErrText
  1059. GOTO ext
  1060. END IF
  1061. IF cnt > 0 THEN
  1062. rslt = 0
  1063. arg_msg = '当月有未审核个人产品计件单'
  1064. GOTO ext
  1065. END IF
  1066. //工作中心产品日分配计件单
  1067. SELECT count(*) INTO :cnt
  1068. FROM u_scwg_taskwork_day,u_scwg_taskwork_day_mx_emp
  1069. WHERE ( u_scwg_taskwork_day.wagemth = :arg_wagemth )
  1070. AND ( u_scwg_taskwork_day.flag = 0 )
  1071. AND ( u_scwg_taskwork_day.billid = u_scwg_taskwork_day_mx_emp.billid )
  1072. AND ( u_scwg_taskwork_day_mx_emp.empid = :arg_empid OR :arg_empid = 0 )
  1073. AND ( u_scwg_taskwork_day.scid = :arg_scid OR :arg_scid = -1)
  1074. And (u_scwg_taskwork_day.billtype = 0 );
  1075. IF sqlca.SQLCode <> 0 THEN
  1076. rslt = 0
  1077. arg_msg = '查询当月是否有未审核工作中心产品日分配计件单失败,'+sqlca.SQLErrText
  1078. GOTO ext
  1079. END IF
  1080. IF cnt > 0 THEN
  1081. rslt = 0
  1082. arg_msg = '当月有未审核工作中心产品日分配计件单'
  1083. GOTO ext
  1084. END IF
  1085. //工作中心日分配异常计件单
  1086. SELECT count(*)
  1087. INTO :cnt
  1088. FROM u_scwg_taskwork_day,u_scwg_taskwork_day_mx_emp
  1089. WHERE ( u_scwg_taskwork_day.wagemth = :arg_wagemth )
  1090. AND ( u_scwg_taskwork_day.flag = 0 )
  1091. AND ( u_scwg_taskwork_day.billid = u_scwg_taskwork_day_mx_emp.billid )
  1092. AND ( u_scwg_taskwork_day_mx_emp.empid = :arg_empid OR :arg_empid = 0 )
  1093. AND ( u_scwg_taskwork_day.scid = :arg_scid OR :arg_scid = -1 )
  1094. And (u_scwg_taskwork_day.billtype = 1 );
  1095. IF sqlca.SQLCode <> 0 THEN
  1096. rslt = 0
  1097. arg_msg = '查询当月是否有未审核工作中心日分配异常计件单失败,'+sqlca.SQLErrText
  1098. GOTO ext
  1099. END IF
  1100. IF cnt > 0 THEN
  1101. rslt = 0
  1102. arg_msg = '当月有未审核工作中心日分配异常计件单'
  1103. GOTO ext
  1104. END IF
  1105. //产品个人计件单
  1106. SELECT count(*)
  1107. INTO :cnt
  1108. FROM u_sc_taskwork INNER JOIN
  1109. u_sc_taskworkmx ON u_sc_taskwork.billid = u_sc_taskworkmx.billid
  1110. WHERE ( u_sc_taskwork.wagemth = :arg_wagemth )
  1111. AND ( u_sc_taskwork.Auditingflag = 0 )
  1112. AND ( u_sc_taskworkmx.Empid = :arg_empid OR :arg_empid = 0 )
  1113. And ( u_sc_taskwork.scid = :arg_scid Or :arg_scid = -1 );
  1114. IF sqlca.SQLCode <> 0 THEN
  1115. rslt = 0
  1116. arg_msg = '查询当月是否有未审核产品个人计件单失败,'+sqlca.SQLErrText
  1117. GOTO ext
  1118. END IF
  1119. IF cnt > 0 THEN
  1120. rslt = 0
  1121. arg_msg = '当月有未审核产品个人计件单'
  1122. GOTO ext
  1123. END IF
  1124. //工作中心计件工资分配
  1125. SELECT count(*)
  1126. INTO :cnt
  1127. FROM u_scwg_taskwork_money
  1128. WHERE ( u_scwg_taskwork_money.wagemth = :arg_wagemth )
  1129. AND ( u_scwg_taskwork_money.Auditingflag = 0 )
  1130. And ( u_scwg_taskwork_money.empid = :arg_empid Or :arg_empid = 0 );
  1131. IF sqlca.SQLCode <> 0 THEN
  1132. rslt = 0
  1133. arg_msg = '查询当月是否有未审核工作中心计件工资分配失败,'+sqlca.SQLErrText
  1134. GOTO ext
  1135. END IF
  1136. IF cnt > 0 THEN
  1137. rslt = 0
  1138. arg_msg = '当月有未审核工作中心计件工资分配'
  1139. GOTO ext
  1140. END IF
  1141. ext:
  1142. RETURN rslt
  1143. end function
  1144. on uo_wage.create
  1145. call super::create
  1146. TriggerEvent( this, "constructor" )
  1147. end on
  1148. on uo_wage.destroy
  1149. TriggerEvent( this, "destructor" )
  1150. call super::destroy
  1151. end on