12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050 |
- $PBExportHeader$uo_scwg_taskwork_2.sru
- forward
- global type uo_scwg_taskwork_2 from nonvisualobject
- end type
- end forward
- global type uo_scwg_taskwork_2 from nonvisualobject
- end type
- global uo_scwg_taskwork_2 uo_scwg_taskwork_2
- type variables
- PUBLIC PROTECTEDWRITE Long billid
- PUBLIC PROTECTEDWRITE Long scid
- PUBLIC PROTECTEDWRITE String billcode
- PUBLIC PROTECTEDWRITE DateTime opdate
- PUBLIC PROTECTEDWRITE String opemp
- PUBLIC PROTECTEDWRITE DateTime moddate
- PUBLIC PROTECTEDWRITE String modemp
- PUBLIC PROTECTEDWRITE Int flag
- PUBLIC PROTECTEDWRITE DateTime auditingdate
- PUBLIC PROTECTEDWRITE String auditingrep
- PUBLIC PROTECTEDWRITE Int affirmflag
- PUBLIC PROTECTEDWRITE DateTime affirmdate
- PUBLIC PROTECTEDWRITE String affirmemp
- Int billtype
- DateTime billdate
- String dscrp
- Long wagemth
- String rep
- String relcode
- Long wageid
- Long wrkgrpid
- string relempstr
- long relid
- long wkpid
- Boolean if_getid_ture = false
- s_scwg_taskwork_2 taskworkmx[]
- Transaction commit_transaction
- Long it_mxbt = 0
- Boolean it_newbegin = FALSE
- Boolean it_updatebegin = FALSE
- Int uo_option_taskwork_not_affirm
- Int uo_option_taskwork2_noorder
- Int uo_option_taskwork_person_noorder
- Int uo_option_taskwork_procode_order
- Int uo_option_taskwork_price_if_mod
- Int uo_option_if_taskwork_acmpqty
- int uo_option_check_noworkprice
- end variables
- forward prototypes
- public function integer p_clearmx ()
- public function integer p_reset ()
- public function integer updatebegin (long arg_billid, ref string arg_msg)
- public function integer save (ref string arg_msg, boolean arg_ifcommit)
- public function integer newbegin (long arg_scid, ref string arg_msg)
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit)
- public function integer affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer p_getinfo (long arg_billid, ref string arg_msg)
- public function integer getinfo (long arg_billid, string arg_msg)
- public function integer auditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer cauditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit)
- public function integer auditing_2 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_auditing_2 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit)
- public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function decimal uo_wage_fp_formula (string arg_formula, decimal arg_amt, decimal arg_assignamt, decimal arg_assignamt_sm, decimal arg_assignscore, decimal arg_assignscore_sm, decimal arg_assignday, decimal arg_assignday_sm)
- public function integer acceptmx (long arg_mtrlid, string arg_procode, string arg_proname, decimal arg_qty, decimal arg_price, string arg_mxdscrp, ref string arg_msg, long arg_printid, string arg_status, string arg_woodcode, string arg_pcode, string arg_ycreason, long arg_orderid, string arg_reason, string arg_unit, decimal arg_failqty, decimal arg_facthours, string arg_wpcode)
- public function integer auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer p_clearmx ();//INT p_clearmx()
- //清除明细
- it_mxbt=0
- RETURN 1
- end function
- public function integer p_reset ();//INT p_RESET()
- //清除对象及其明细
- billid=0
- billcode=''
- opemp=''
- auditingrep=''
- flag=0
- wagemth=0
- rep=""
- wageid=0
- dscrp=''
- relcode=''
- wkpid = 0
- it_newbegin=FALSE
- it_updatebegin=FALSE
- //清除明细
- P_CLEARMX()
- RETURN 1
- end function
- public function integer updatebegin (long arg_billid, ref string arg_msg);int rslt = 1
- if arg_billid <= 0 then
- rslt = 0
- goto ext
- end if
- if p_getinfo(arg_billid,arg_msg) = 0 then
- rslt = 0
- goto ext
- end if
- IF affirmflag = 1 THEN
- rslt = 0
- arg_msg = '单据已经确认,不可以修改'
- GOTO ext
- END IF
- if flag = 1 then
- rslt = 0
- arg_msg = '单据已经审核,不可以修改'
- goto ext
- end if
- billid = arg_billid
- p_clearmx()
- it_newbegin = false
- it_updatebegin = true
- ext:
- if rslt = 0 then p_reset()
- return rslt
- end function
- public function integer save (ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1,cnt = 0,i
- DateTime server_dt
- Long ls_newid
- IF IsNull(wageid) THEN wageid = 0
- IF IsNull(wrkgrpid) THEN wrkgrpid = 0
- IF IsNull(relcode) THEN relcode = ''
- IF IsNull(rep) THEN rep = ''
- IF IsNull(wagemth) THEN wagemth = 0
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(relid) THEN relid = 0
- IF IsNull(wkpid) THEN wkpid = 0
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以提交"
- GOTO ext
- END IF
- SELECT Top 1 getdate() INTO :server_dt FROM u_user USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- IF it_mxbt = 0 THEN //
- rslt = 0
- arg_msg = "没有计件明细"
- GOTO ext
- END IF
- IF Year(Date(billdate)) < 2000 OR IsNull(billdate) THEN
- rslt = 0
- arg_msg = "缺少计件时间或不合理"
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_gz_wageitem
- Where wageid = :wageid USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询工资项目失败!"
- GOTO ext
- END IF
- IF cnt <> 1 THEN
- rslt = 0
- arg_msg = "不存在工资项目!"
- GOTO ext
- END IF
- if trim(rep) = '' then
- rslt = 0
- arg_msg = '请填写经手人'
- goto ext
- end if
- cnt = 0
- IF billtype = 0 OR billtype = 2 THEN
- SELECT count(*) INTO :cnt
- FROM u_workgroup
- Where workgroupid = :wrkgrpid USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询工作组失败!"
- GOTO ext
- END IF
-
- IF cnt <> 1 THEN
- rslt = 0
- arg_msg = "不存在工作组!"
- GOTO ext
- END IF
- ELSEIF billtype = 1 THEN
- SELECT count(*) INTO :cnt
- FROM u_rs_empinfo
- Where empid = :wrkgrpid USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询员工资料失败!"
- GOTO ext
- END IF
-
- IF cnt <> 1 THEN
- rslt = 0
- arg_msg = "不存在员工资料!"
- GOTO ext
- END IF
- END IF
- String ls_empname[]
- Long ll_i,ll_j
- ll_i = 1
- relempstr = ''
- IF billtype = 0 OR billtype = 2 THEN
- DECLARE cur_emp CURSOR FOR
- SELECT
- u_rs_empinfo.Empname
- FROM u_rs_empinfo,
- u_workgroupmx
- WHERE
- ( u_rs_empinfo.empid = u_workgroupmx.empid ) AND
- (u_workgroupmx.workgroupid = :wrkgrpid);
-
- OPEN cur_emp;
- FETCH cur_emp INTO :ls_empname[ll_i];
- DO WHILE sqlca.SQLCode = 0
- ll_i++
- FETCH cur_emp INTO :ls_empname[ll_i];
- LOOP
- CLOSE cur_emp;
-
- FOR ll_j = 1 TO ll_i - 1
- relempstr = relempstr + ls_empname[ll_j] + ','
- NEXT
-
- END IF
- //cnt = 0
- //SELECT count(*) INTO :cnt
- // FROM u_scwg_taskwork_2
- // WHERE flag = 1
- // AND wagemth = :wagemth
- // AND wrkgrpid = :wrkgrpid
- // AND billtype = :billtype
- // AND wageid = :wageid USING commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // arg_msg = '查询本月是否有单审核失败,'+commit_transaction.SQLErrText
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //IF cnt > 0 THEN
- // arg_msg = '查询本月已有单审核,不能保存'
- // rslt = 0
- // GOTO ext
- //END IF
- ////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF billid = 0 THEN //新建
- ls_newid = f_sys_scidentity(0,"u_scwg_taskwork_2","billid",arg_msg,TRUE,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF billtype = 0 THEN
- billcode = getid(0,"JW",Date(server_dt),if_getid_ture,commit_transaction) //取得新单据编号
- ELSEIF billtype = 1 THEN
- billcode = getid(0,"JP",Date(server_dt),if_getid_ture,commit_transaction) //取得新单据编号
- ELSEIF billtype = 2 THEN //工作组月分配异常计件单
- billcode = getid(0,"AW",Date(server_dt),if_getid_ture,commit_transaction) //取得新单据编号
- END IF
-
- IF billcode = "err" THEN
- billcode = ''
- rslt = 0
- arg_msg = "无法获取单据编号"
- GOTO ext
- END IF
-
- INSERT INTO u_scwg_taskwork_2 (
- billid,
- billdate,
- wagemth,
- rep,
- relcode,
- dscrp,
- scid,
- billcode,
- wrkgrpid,
- opemp,
- opdate,
- wageid,
- billtype,
- relempstr,
- relid,
- wkpid)
- VALUES (
- :ls_newid,
- :billdate,
- :wagemth,
- :rep,
- :relcode,
- :dscrp,
- :scid,
- :billcode,
- :wrkgrpid,
- :publ_operator,
- :server_dt ,
- :wageid,
- :billtype,
- :relempstr,
- :relid,
- :wkpid) USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入操作失败>>"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- //
- billid = ls_newid
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_scwg_taskwork_2_mx (
- billid,
- procode,
- proname,
- qty,
- price,
- mxdscrp,
- mtrlid,
- printid,
- status,
- woodcode,
- pcode,
- ycreason,
- orderid,
- ordercode,
- reason,
- unit,
- failqty,
- facthours,
- wpcode)
- VALUES (
- :ls_newid,
- :taskworkmx[i].procode,
- :taskworkmx[i].proname,
- :taskworkmx[i].qty,
- :taskworkmx[i].price,
- :taskworkmx[i].mxdscrp,
- :taskworkmx[i].mtrlid,
- :taskworkmx[i].printid,
- :taskworkmx[i].status,
- :taskworkmx[i].woodcode,
- :taskworkmx[i].pcode,
- :taskworkmx[i].ycreason,
- :taskworkmx[i].orderid,
- :taskworkmx[i].ordercode,
- :taskworkmx[i].reason,
- :taskworkmx[i].unit,
- :taskworkmx[i].failqty,
- :taskworkmx[i].facthours,
- :taskworkmx[i].wpcode) USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- billid = 0 //还原noticeid
- rslt = 0
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK ;
- GOTO ext
- END IF
- NEXT
-
- ELSE //////////////////////////////////////////////// //更新
- UPDATE u_scwg_taskwork_2
- SET billdate = :billdate,
- wagemth = :wagemth,
- rep = :rep,
- relcode = :relcode,
- dscrp = :dscrp,
- billcode = :billcode,
- wrkgrpid = :wrkgrpid,
- modemp = :publ_operator,
- moddate = :server_dt,
- wageid = :wageid,
- relempstr = :relempstr,
- relid = :relid,
- wkpid = :wkpid
- WHERE billid = :billid
- AND flag = 0 USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 OR commit_transaction.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- // 删除原有明细
- DELETE FROM u_scwg_taskwork_2_mx
- Where billid = :billid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_scwg_taskwork_2_mx (
- billid,
- procode,
- proname,
- qty,
- price,
- mxdscrp,
- mtrlid,
- printid,
- status,
- woodcode,
- pcode,
- ycreason,
- orderid,
- ordercode,
- reason,
- unit,
- failqty,
- facthours,
- wpcode)
- VALUES (
- :billid,
- :taskworkmx[i].procode,
- :taskworkmx[i].proname,
- :taskworkmx[i].qty,
- :taskworkmx[i].price,
- :taskworkmx[i].mxdscrp,
- :taskworkmx[i].mtrlid,
- :taskworkmx[i].printid,
- :taskworkmx[i].status,
- :taskworkmx[i].woodcode,
- :taskworkmx[i].pcode,
- :taskworkmx[i].ycreason,
- :taskworkmx[i].orderid,
- :taskworkmx[i].ordercode,
- :taskworkmx[i].reason,
- :taskworkmx[i].unit,
- :taskworkmx[i].failqty,
- :taskworkmx[i].facthours,
- :taskworkmx[i].wpcode) USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
- //
- END IF
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- p_clearmx()
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- Return(rslt)
- end function
- public function integer newbegin (long arg_scid, ref string arg_msg);long rslt = 1
- if arg_scid < 0 then
- arg_msg = '请选择分部'
- rslt = 0
- goto ext
- end if
- p_reset()
- scid=arg_scid
- it_newbegin=TRUE
- it_updatebegin=FALSE
- ext:
- if rslt = 0 then p_reset()
- return rslt
- end function
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit);//====================================================================
- // Function: add_dscrp(arg_billid,arg_newdescppart,arg_msg)
- //--------------------------------------------------------------------
- // Description:
- //--------------------------------------------------------------------
- // Arguments:
- // value long arg_billid
- // value string arg_newdescppart
- // reference string arg_msg
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2003.11.21
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- int rslt = 1
- arg_newdescppart = trim(arg_newdescppart)
- if arg_billid <= 0 then
- rslt = 0
- arg_msg = "没有删除对象,操作取消"
- goto ext
- end if
- if it_newbegin or it_updatebegin then
- rslt=0
- arg_msg="编辑状态下不可以执行,操作取消"
- goto ext
- end if
- if p_getinfo(arg_billid,arg_msg) = 0 then
- rslt = 0
- goto ext
- end if
- if flag = 0 then
- rslt = 0
- arg_msg = "非审核状态下不可用"
- goto ext
- end if
- update u_scwg_taskwork_2
- set dscrp = dscrp+' '+:arg_newdescppart
- where u_scwg_taskwork_2.billid = :billid
- using commit_transaction;
- if commit_transaction.sqlcode <> 0 then
- rslt = 0
- arg_msg = "因网络或其它原因导致添加单据备注操作失败"+"~n"+sqlca.sqlerrtext
- goto ext
- end if
- dscrp = dscrp+' '+arg_newdescppart
- ext:
- if rslt = 0 then
- rollback;
- elseif rslt = 1 and arg_ifcommit then
- commit;
- end if
- return rslt
- end function
- public function integer affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long i
- uo_order_ml uo_ml
- uo_ml = CREATE uo_order_ml
- IF arg_billid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF affirmflag = 1 THEN
- rslt = 0
- arg_msg = '该单据已确认'
- GOTO ext
- END IF
- UPDATE u_scwg_taskwork_2
- SET affirmemp = :publ_operator,
- affirmdate = getdate(),
- affirmflag = 1
- WHERE u_scwg_taskwork_2.billid = :arg_billid
- AND affirmflag = 0
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致确认单据操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在确认,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- IF taskworkmx[i].orderid > 0 THEN
- IF uo_ml.uof_add_procode_qty(scid,taskworkmx[i].orderid,&
- taskworkmx[i].procode,billdate, taskworkmx[i].qty,arg_msg,FALSE) = 0 THEN
- arg_msg = '第'+string(i)+'行,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- DESTROY uo_ml
- RETURN rslt
- end function
- public function integer c_affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- DateTime null_dt
- SetNull(null_dt)
- Long i
- uo_order_ml uo_ml
- uo_ml = CREATE uo_order_ml
- IF arg_billid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF affirmflag = 0 THEN
- rslt = 0
- arg_msg = '该单据未确认,不能反确认'
- GOTO ext
- END IF
- UPDATE u_scwg_taskwork_2
- SET affirmemp = '',
- affirmdate = :null_dt,
- affirmflag = 0
- WHERE u_scwg_taskwork_2.billid = :arg_billid
- AND affirmflag = 1
- AND flag = 0
- USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致反确认单据操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在反确认,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- IF taskworkmx[i].orderid > 0 THEN
- IF uo_ml.uof_add_procode_qty(scid,taskworkmx[i].orderid,&
- taskworkmx[i].procode,billdate,0 - taskworkmx[i].qty,arg_msg,FALSE) = 0 THEN
- arg_msg = '第'+string(i)+'行,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- DESTROY uo_ml
- RETURN rslt
- end function
- public function integer p_getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- arG_MSG = "非法的单据唯一码"
- GOTO ext
- END IF
- SELECT billid,
- billdate,
- wagemth,
- rep,
- relcode,
- dscrp,
- scid,
- billcode,
- wrkgrpid,
- flag,
- affirmflag,
- scid,
- wageid
- INTO
- :billid,
- :billdate,
- :wagemth,
- :rep,
- :relcode,
- :dscrp,
- :scid,
- :billcode,
- :wrkgrpid,
- :flag,
- :affirmflag,
- :scid,
- :wageid
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.billid = :arg_billid
- USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "查询操作失败(错误单据唯一码),单据"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- billid = arg_billid
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer getinfo (long arg_billid, string arg_msg);
- Int rslt = 1
- Long i = 1,no_mxcheck = 0
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = "非法出仓单唯一码"
- GOTO ext
- END IF
- rslt = p_getinfo(arg_billid,arg_msg)
- IF rslt = 0 THEN GOTO ext
- //用游标读取明细
- DECLARE cur_mx CURSOR FOR
- SELECT u_scwg_taskwork_2_mx.mtrlid,
- u_scwg_taskwork_2_mx.qty,
- u_scwg_taskwork_2_mx.orderid,
- u_scwg_taskwork_2_mx.ordercode,
- u_scwg_taskwork_2_mx.procode,
- u_scwg_taskwork_2_mx.price,
- u_scwg_taskwork_2_mx.wpcode
- FROM u_scwg_taskwork_2_mx
- WHERE u_scwg_taskwork_2_mx.billid = :arg_billid
- USING commit_transaction;
-
- OPEN cur_mx;
- FETCH cur_mx INTO :taskworkmx[i].mtrlid,:taskworkmx[i].qty,
- :taskworkmx[i].orderid,:taskworkmx[i].ordercode,
- :taskworkmx[i].procode,:taskworkmx[i].price,:taskworkmx[i].wpcode;
- DO WHILE commit_transaction.SQLCode = 0
- i++
- FETCH cur_mx INTO :taskworkmx[i].mtrlid,:taskworkmx[i].qty,
- :taskworkmx[i].orderid,:taskworkmx[i].ordercode,
- :taskworkmx[i].procode,:taskworkmx[i].price,:taskworkmx[i].wpcode;
- LOOP
- CLOSE cur_mx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM u_scwg_taskwork_2_mx
- WHERE u_scwg_taskwork_2_mx.billid = :arg_billid
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,单据明细数量"
- GOTO ext
- END IF
- IF i <> (no_mxcheck+1) THEN
- rslt = 0
- arg_msg = "查询操作失败,单据明细"
- GOTO ext
- END IF
- billid = arg_billid
- it_mxbt = i - 1
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer auditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- uo_wage u_wage
- u_wage = CREATE uo_wage
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = -1000 THEN
- arg_msg = '选项:[240]计件单没有工价不能审核,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = 0 THEN
- IF affirmflag = 0 THEN
- rslt = 0
- arg_msg = '单据还没有确认,不能审核,请先确认'
- GOTO ext
- END IF
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,操作取消'
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = taskworkmx[i].price * taskworkmx[i].qty
-
- IF uo_option_check_noworkprice = 1 THEN
- IF taskworkmx[i].price = 0 THEN
- rslt = 0
- arg_msg = '行'+String(i)+',没有填写工价,不允许审核'
- GOTO ext
- END IF
- END IF
-
- IF u_wage.f_setwagemxdata(wagemth,wrkgrpid,wageid,ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate()
- WHERE u_scwg_taskwork_2.billid = :arg_billid
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 1
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate(),
- u_scwg_taskwork_2.affirmdate = getdate(),
- u_scwg_taskwork_2.affirmemp = :publ_operator,
- u_scwg_taskwork_2.affirmflag = 1
- WHERE u_scwg_taskwork_2.billid = :arg_billid
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 1
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEif rslt = 1 and arg_ifcommit then
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer cauditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- DateTime ls_null
- SetNull(ls_null)
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- uo_wage u_wage
- u_wage = CREATE uo_wage
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag = 0 THEN
- rslt = 0
- arg_msg = '单据还没有审核,操作取消'
- GOTO ext
- END IF
- IF f_check_wage_audit(wagemth,scid,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- //检查该月份,该工资项目是否已开工资变更单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wageid = :wageid
- AND wagemth = :wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份该工资项目已开工资变更单,不能撤审'
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = taskworkmx[i].price * taskworkmx[i].qty
- IF u_wage.f_setwagemxdata(wagemth,wrkgrpid,wageid,0 - ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.auditingrep = '',
- u_scwg_taskwork_2.auditingdate = :ls_null
- WHERE u_scwg_taskwork_2.billid = :arg_billid
- AND u_scwg_taskwork_2.flag = 1
- AND u_scwg_taskwork_2.billtype = 1
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.auditingrep = '',
- u_scwg_taskwork_2.auditingdate = :ls_null,
- u_scwg_taskwork_2.affirmdate = :ls_null,
- u_scwg_taskwork_2.affirmemp = '',
- u_scwg_taskwork_2.affirmflag = 0
- WHERE u_scwg_taskwork_2.billid = :arg_billid
- AND u_scwg_taskwork_2.flag = 1
- AND u_scwg_taskwork_2.billtype = 1
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEif rslt = 1 and arg_ifcommit then
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Int rslt = 1
- Long ll_wgid,ll_wgid_arr[],count,ll_i
- Long ll_workgroupid
- Long ll_empid,ll_empid_arr[],ll_mxt,ll_j
- String ls_empcode,ls_empcode_arr[]
- Decimal ld_assignscore_arr[]
- Decimal ld_assignday_arr[]
- Long ll_assigntype,ll_assigntype_arr[]
- Decimal ll_assignamt,ll_assignamt_arr[]
- Decimal ld_prwageamt_arr[],ld_prwagerate_arr[],ld_prwageamt_arr_insert[]
- Int cnt_wg_emp = 0
- String ls_workgroupcode
- Long ll_flagnum
- Long ll_0_price_cnt
- String ls_0_price_billcode
- String ls_0_price_msg
- Long ll_k
- Decimal temp_sumscore = 0,temp_empscore = 0
- Decimal temp_sumdays = 0,temp_empdays = 0,temp_wageamt_sum = 0,temp_sumrate,temp_wageamt_cmp
- Decimal ld_empamt_insert
- Decimal ld_wageamt_sum,ld_prwageamt,ld_prwagerate
- DateTime ldt_getdate
- Decimal ld_wageamt_cmp
- If uo_option_taskwork_not_affirm = -1000 Then
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- Goto ext
- End If
- String ls_ifuse_formula
- ls_ifuse_formula = f_ProfileString(-1,'w_workgroup_wage_money_formula', "formula", '')
- If uo_option_taskwork_not_affirm = 0 Then
- ll_flagnum = 0
- Select count(*)
- Into :ll_flagnum
- From u_scwg_taskwork_2
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.affirmflag = 0
- And u_scwg_taskwork_2.billtype = 0
- And ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid Or :arg_wrkgrpid = -1 )
- Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '查询是否有单未确认操作失败,'+commit_transaction.SQLErrText
- Goto ext
- End If
-
- If ll_flagnum > 0 Then
- rslt = 0
- arg_msg = '该月份存在未确认的单据('+String(ll_flagnum)+'),请先全部确认'
- Goto ext
- End If
- End If
- ll_flagnum = 0
- Select count(*)
- Into :ll_flagnum
- From u_scwg_taskwork_2
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.flag = 0
- And u_scwg_taskwork_2.billtype = 0
- And ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid Or :arg_wrkgrpid = -1 )
- Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- Goto ext
- End If
- If ll_flagnum = 0 Then
- // rslt = 0
- // arg_msg = '该月份不存在要审核的单据,请检查'
- rslt = 1
- Goto ext
- End If
- ll_flagnum = 0
- Select count(*)
- Into :ll_flagnum
- From u_scwg_taskwork_2
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.flag = 1
- And u_scwg_taskwork_2.billtype = 0
- And ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid Or :arg_wrkgrpid = -1 )
- Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '查询是否有单已经审核操作失败,'+commit_transaction.SQLErrText
- Goto ext
- End If
- If ll_flagnum > 0 Then
- rslt = 0
- arg_msg = '该月份的工资项目存在部分已审核的记录('+String(ll_flagnum)+'),请先撤审'
- Goto ext
- End If
- //检查0单价
- Declare cur_0_price_wkp Cursor For
- Select distinct u_scwg_taskwork_2.billcode
- From u_scwg_taskwork_2,u_scwg_taskwork_2_mx
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.flag = 0
- And u_scwg_taskwork_2.billtype = 0
- And ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid Or :arg_wrkgrpid = -1 )
- And ( u_scwg_taskwork_2.billid = u_scwg_taskwork_2_mx.billid )
- And ( u_scwg_taskwork_2_mx.price = 0 )
- Order By u_scwg_taskwork_2.billcode Asc
- Using commit_transaction;
- Open cur_0_price_wkp;
- Fetch cur_0_price_wkp Into :ls_0_price_billcode;
- Do While sqlca.SQLCode = 0
- ll_0_price_cnt++
- ls_0_price_msg = ls_0_price_msg + '单据:'+ls_0_price_billcode+',0单价 ~n'
- Fetch cur_0_price_wkp Into :ls_0_price_billcode;
- Loop
- Close cur_0_price_wkp;
- If ll_0_price_cnt > 0 Then
- arg_msg = ls_0_price_msg
- rslt = 0
- Goto ext
- End If
- Declare wgid Cursor For
- Select distinct wrkgrpid
- From u_scwg_taskwork_2
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.flag = 0
- And u_scwg_taskwork_2.billtype = 0
- And ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid Or :arg_wrkgrpid = -1 )
- Order By u_scwg_taskwork_2.wrkgrpid Asc
- Using commit_transaction;
- Open wgid;
- Fetch wgid Into :ll_wgid;
- Do While commit_transaction.SQLCode = 0
- count++
- ll_wgid_arr[count] = ll_wgid
- Fetch wgid Into :ll_wgid;
- Loop
- Close wgid;
- For ll_i = 1 To count
- cnt_wg_emp = 0
- temp_sumrate = 0
- Select count(*),
- u_workgroupmx.workgroupid,
- u_workgroup.workgroupcode
- Into :cnt_wg_emp,:ll_workgroupid,:ls_workgroupcode
- From u_workgroupmx Inner join
- u_workgroup on u_workgroupmx.workgroupid = u_workgroup.workgroupid
- Where (u_workgroupmx.workgroupid = :ll_wgid_arr[ll_i])
- Group By u_workgroup.workgroupcode, u_workgroupmx.workgroupid;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '查询操作失败,组成员!'
- Goto ext
- End If
-
- If cnt_wg_emp <= 0 Then
- rslt = 0
- arg_msg = '编号为:'+ls_workgroupcode+'的工作组没有成员,请先建立工作组成员!'
- Goto ext
- End If
-
- ll_mxt = 0
-
- Declare wg_emp Cursor For
- Select u_workgroupmx.empid,
- u_workgroupmx.assigntype,
- u_workgroupmx.assignamt,
- u_rs_empinfo.empcode,
- u_workgroupmx.prwageamt,
- u_workgroupmx.prwagerate
- From u_workgroupmx,u_rs_empinfo
- Where u_workgroupmx.workgroupid = :ll_wgid_arr[ll_i]
- And u_workgroupmx.empid = u_rs_empinfo.empid
- Order By u_workgroupmx.empid Asc
- Using commit_transaction;
- Open wg_emp;
-
- Fetch wg_emp Into :ll_empid,:ll_assigntype,:ll_assignamt,:ls_empcode,:ld_prwageamt,:ld_prwagerate;
-
- Do While commit_transaction.SQLCode = 0
- ll_mxt++
- ll_empid_arr[ll_mxt] = ll_empid
- ll_assigntype_arr[ll_mxt] = ll_assigntype
-
- if ll_assigntype = 0 then ll_assignamt = 1
- ll_assignamt_arr[ll_mxt] = ll_assignamt
- ls_empcode_arr[ll_mxt] = ls_empcode
- ld_assignday_arr[ll_mxt] = 0
- ld_assignscore_arr[ll_mxt] = 0
- ld_prwageamt_arr[ll_mxt] = ld_prwageamt
- ld_prwagerate_arr[ll_mxt] = ld_prwagerate
- ld_prwageamt_arr_insert[ll_mxt] = 0
-
- temp_sumrate = temp_sumrate + ll_assignamt
-
- Fetch wg_emp Into :ll_empid,:ll_assigntype,:ll_assignamt,:ls_empcode,:ld_prwageamt,:ld_prwagerate;
-
- Loop
-
- Close wg_emp;
-
- //计算各种分配模式的比例0:手动,1:固定比例,2:按天数,3:按天数+分数
- ld_wageamt_sum = 0
- Select sum(u_scwg_taskwork_2_mx.price * u_scwg_taskwork_2_mx.qty),
- getdate()
- Into :ld_wageamt_sum,
- :ldt_getdate
- From u_scwg_taskwork_2_mx,u_scwg_taskwork_2
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.wrkgrpid = :ll_wgid_arr[ll_i]
- And u_scwg_taskwork_2.flag = 0
- And u_scwg_taskwork_2.billtype = 0
- And u_scwg_taskwork_2.billid = u_scwg_taskwork_2_mx.billid Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '查询当月该工组计件总工资失败,原因:'+commit_transaction.SQLErrText
- Goto ext
- End If
-
- temp_wageamt_sum = ld_wageamt_sum
-
- For ll_k = 1 To ll_mxt
- Select isnull(sum(U_TestMx_bd.bdday),0),
- isnull(sum(U_TestMx_bd.bdday * U_TestMx_bd.Score),0)
- Into :temp_sumdays,:temp_sumscore
- From u_test_bd Inner JOIN
- U_TestMx_bd ON u_test_bd.TestID = U_TestMx_bd.TestID
- Where u_test_bd.flag = 1 And u_test_bd.wagemth = :arg_wagemth
- And U_TestMx_bd.empid In (
- Select empid
- From u_workgroupmx
- Where u_workgroupmx.workgroupid = :ll_wgid_arr[ll_i] )Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '查询小组的考核总(天数),总(分数*天数)失败,原因:'+commit_transaction.SQLErrText
- Goto ext
- End If
-
- Select isnull(sum(U_TestMx_bd.bdday),0),
- isnull(sum(U_TestMx_bd.bdday * U_TestMx_bd.Score),0)
- Into :temp_empdays,:temp_empscore
- From u_test_bd Inner JOIN
- U_TestMx_bd ON u_test_bd.TestID = U_TestMx_bd.TestID
- Where u_test_bd.flag = 1 And u_test_bd.wagemth = :arg_wagemth
- And U_TestMx_bd.empid = :ll_empid_arr[ll_k] Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '查询员工:'+ls_empcode_arr[ll_k]+',的考核总(天数),总(分数*天数)失败,原因:'+commit_transaction.SQLErrText
- Goto ext
- End If
-
- If temp_wageamt_sum < ld_wageamt_sum * ld_prwagerate_arr[ll_k] + ld_prwageamt_arr[ll_k] Then
- ld_prwageamt_arr_insert[ll_k] = temp_wageamt_sum
- temp_wageamt_sum = 0
- Else
- ld_prwageamt_arr_insert[ll_k] = ld_wageamt_sum * ld_prwagerate_arr[ll_k] + ld_prwageamt_arr[ll_k]
- temp_wageamt_sum = temp_wageamt_sum - ld_wageamt_sum * ld_prwagerate_arr[ll_k] - ld_prwageamt_arr[ll_k]
- End If
-
- If ll_assigntype_arr[ll_k] = 2 Then
- If temp_sumdays = 0 Then
- rslt = 0
- arg_msg = '工资月份['+String(arg_wagemth)+']有小组工资分配按天数计算比例进行分配,但没有对应该月份的绩效考核天数!请检查'
- Goto ext
- Else
- ll_assignamt_arr[ll_k] = Round(temp_empdays/temp_sumdays,5)
- ld_assignday_arr[ll_k] = temp_empdays
- ld_assignscore_arr[ll_k] = temp_empscore
- End If
- ElseIf ll_assigntype_arr[ll_k] = 3 Then
- If temp_sumscore = 0 Then
- rslt = 0
- arg_msg = '工资月份['+String(arg_wagemth)+']有小组工资分配按天数+分数计算比例进行分配,但没有对应该月份的绩效考核天数!请检查'
- Goto ext
- Else
- ll_assignamt_arr[ll_k] = Round(temp_empscore/temp_sumscore,5)
- ld_assignday_arr[ll_k] = temp_empdays
- ld_assignscore_arr[ll_k] = temp_empscore
- End If
- End If
- Next
-
- temp_wageamt_cmp = temp_wageamt_sum
-
- If ll_mxt > 0 Then
- If ll_assigntype_arr[1] = 0 Then
- If ls_ifuse_formula = '' Then
- ld_empamt_insert = temp_wageamt_sum + ld_prwageamt_arr_insert[1]
- Else
- ld_wageamt_cmp = uo_wage_fp_formula(ls_ifuse_formula,temp_wageamt_sum,ll_assignamt_arr[1],temp_sumrate,ld_assignscore_arr[1],temp_sumscore,ld_assignday_arr[1],temp_sumdays)
-
- If ld_wageamt_cmp > temp_wageamt_cmp Then
- ld_empamt_insert = temp_wageamt_cmp + ld_prwageamt_arr_insert[1]
- temp_wageamt_cmp = 0
- Else
- ld_empamt_insert = ld_wageamt_cmp + ld_prwageamt_arr_insert[1]
- temp_wageamt_cmp = temp_wageamt_cmp - ld_wageamt_cmp
- End If
-
- End If
- Else
- ld_empamt_insert = temp_wageamt_sum * ll_assignamt_arr[1] + ld_prwageamt_arr_insert[1]
- End If
-
- //该组金额转移到组中第一人
- Insert Into u_scwg_taskwork_money
- (wageid,
- workgroupid ,
- empid ,
- wagemth ,
- groupamt,
- empamt,
- auditingflag,
- opdate,
- opemp,
- billtype,
- assigntype,
- assignamt,
- assignscore,
- assignday,
- prwageamt)
- Values( :arg_wageid,
- :ll_wgid_arr[ll_i],
- :ll_empid_arr[1],
- :arg_wagemth,
- :ld_wageamt_sum,
- :ld_empamt_insert ,
- 0,
- :ldt_getdate,
- :publ_operator,
- 0,
- :ll_assigntype_arr[1] ,
- :ll_assignamt_arr[1],
- :ld_assignscore_arr[1] ,
- :ld_assignday_arr[1],
- :ld_prwageamt_arr_insert[1])
- Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '建立小组首名员工工资操作失败,原因:'+commit_transaction.SQLErrText
- Goto ext
- End If
-
-
- //其他组员的金额为0
- If ll_mxt >= 2 Then
- For ll_j = 2 To ll_mxt
- If ll_assigntype_arr[ll_j] = 0 Then
-
- If ls_ifuse_formula = '' Then
- ld_empamt_insert = ld_prwageamt_arr_insert[ll_j]
- Else
- ld_wageamt_cmp = uo_wage_fp_formula(ls_ifuse_formula,temp_wageamt_sum,ll_assignamt_arr[ll_j],temp_sumrate,ld_assignscore_arr[ll_j],temp_sumscore,ld_assignday_arr[ll_j],temp_sumdays)
-
- If ld_wageamt_cmp > temp_wageamt_cmp Then
- ld_empamt_insert = temp_wageamt_cmp + ld_prwageamt_arr_insert[ll_j]
- temp_wageamt_cmp = 0
- Else
- ld_empamt_insert = ld_wageamt_cmp + ld_prwageamt_arr_insert[ll_j]
- temp_wageamt_cmp = temp_wageamt_cmp - ld_wageamt_cmp
- End If
-
- End If
-
- Else
- ld_empamt_insert = temp_wageamt_sum* ll_assignamt_arr[ll_j] + ld_prwageamt_arr_insert[ll_j]
- End If
-
- Insert Into u_scwg_taskwork_money
- (wageid,
- workgroupid ,
- empid ,
- wagemth ,
- groupamt,
- empamt,
- auditingflag,
- opdate,
- opemp,
- billtype,
- assigntype,
- assignamt,
- assignscore,
- assignday,
- prwageamt)
- Values( :arg_wageid,
- :ll_wgid_arr[ll_i],
- :ll_empid_arr[ll_j],
- :arg_wagemth,
- :ld_wageamt_sum,
- :ld_empamt_insert,
- 0,
- :ldt_getdate,
- :publ_operator,
- 0,
- :ll_assigntype_arr[ll_j] ,
- :ll_assignamt_arr[ll_j],
- :ld_assignscore_arr[ll_j] ,
- :ld_assignday_arr[ll_j],
- :ld_prwageamt_arr_insert[ll_j]) Using commit_transaction;
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '建立小组其它员工工资操作失败,原因:'+commit_transaction.SQLErrText
- Goto ext
- End If
- Next
- End If
- End If
- Next
- If uo_option_taskwork_not_affirm = 0 Then
- Update u_scwg_taskwork_2
- Set u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate()
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.flag = 0
- And u_scwg_taskwork_2.billtype = 0
- And ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid Or :arg_wrkgrpid = -1 )
- Using commit_transaction;
- Else
- Update u_scwg_taskwork_2
- Set u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.affirmflag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate(),
- u_scwg_taskwork_2.affirmdate = getdate(),
- u_scwg_taskwork_2.affirmemp = :publ_operator
- Where u_scwg_taskwork_2.wageid = :arg_wageid
- And u_scwg_taskwork_2.wagemth = :arg_wagemth
- And u_scwg_taskwork_2.flag = 0
- And u_scwg_taskwork_2.billtype = 0
- And ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid Or :arg_wrkgrpid = -1 )
- Using commit_transaction;
- End If
- If commit_transaction.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- Goto ext
- ElseIf commit_transaction.SQLNRows = 0 Then
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- Goto ext
- End If
- ext:
- If rslt = 0 Then
- Rollback Using commit_transaction;
- ElseIf rslt = 1 And arg_ifcommit Then
- Commit Using commit_transaction;
- End If
- Return rslt
- end function
- public function integer auditing_2 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Int rslt = 1
- Long ll_wgid,ll_wgid_arr[],count,ll_i
- Long ll_workgroupid
- Long ll_empid,ll_empid_arr[],ll_mxt,ll_j
- String ls_empcode,ls_empcode_arr[]
- Decimal ld_assignscore_arr[]
- Decimal ld_assignday_arr[]
- Long ll_assigntype,ll_assigntype_arr[]
- Decimal ll_assignamt,ll_assignamt_arr[]
- Int cnt_wg_emp = 0
- String ls_workgroupcode
- Long ll_flagnum
- Long ll_0_price_cnt
- String ls_0_price_billcode
- String ls_0_price_msg
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = 0 THEN
- ll_flagnum = 0
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.affirmflag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单未确认操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF ll_flagnum > 0 THEN
- rslt = 0
- arg_msg = '该月份存在未确认的单据('+String(ll_flagnum)+'),请先全部确认'
- GOTO ext
- END IF
- END IF
- ll_flagnum = 0
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_flagnum = 0 THEN
- rslt = 0
- arg_msg = '该月份不存在要审核的单据,请检查'
- GOTO ext
- END IF
- ll_flagnum = 0
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 1
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单已经审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_flagnum > 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目存在部分已审核的记录('+String(ll_flagnum)+'),请先撤审'
- GOTO ext
- END IF
- //检查0单价
- DECLARE cur_0_price_wkp CURSOR FOR
- SELECT distinct u_scwg_taskwork_2.billcode
- FROM u_scwg_taskwork_2,u_scwg_taskwork_2_mx
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- AND ( u_scwg_taskwork_2.billid = u_scwg_taskwork_2_mx.billid )
- AND ( u_scwg_taskwork_2_mx.price = 0 )
- ORDER BY u_scwg_taskwork_2.billcode ASC
- USING commit_transaction;
- OPEN cur_0_price_wkp;
- FETCH cur_0_price_wkp INTO :ls_0_price_billcode;
- DO WHILE sqlca.SQLCode = 0
- ll_0_price_cnt++
- ls_0_price_msg = ls_0_price_msg + '单据:'+ls_0_price_billcode+',0单价 ~n'
- FETCH cur_0_price_wkp INTO :ls_0_price_billcode;
- LOOP
- CLOSE cur_0_price_wkp;
- IF ll_0_price_cnt > 0 THEN
- arg_msg = ls_0_price_msg
- rslt = 0
- GOTO ext
- END IF
- DECLARE wgid CURSOR FOR
- SELECT distinct wrkgrpid
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- ORDER BY u_scwg_taskwork_2.wrkgrpid ASC
- USING commit_transaction;
- OPEN wgid;
- FETCH wgid INTO :ll_wgid;
- DO WHILE commit_transaction.SQLCode = 0
- count++
- ll_wgid_arr[count] = ll_wgid
- FETCH wgid INTO :ll_wgid;
- LOOP
- CLOSE wgid;
- FOR ll_i = 1 TO count
- cnt_wg_emp = 0
- SELECT count(*),
- u_workgroupmx.workgroupid,
- u_workgroup.workgroupcode
- INTO :cnt_wg_emp,:ll_workgroupid,:ls_workgroupcode
- FROM u_workgroupmx INNER join
- u_workgroup on u_workgroupmx.workgroupid = u_workgroup.workgroupid
- WHERE (u_workgroupmx.workgroupid = :ll_wgid_arr[ll_i])
- Group By u_workgroup.workgroupcode, u_workgroupmx.workgroupid;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,组成员!'
- GOTO ext
- END IF
-
- IF cnt_wg_emp <= 0 THEN
- rslt = 0
- arg_msg = '编号为:'+ls_workgroupcode+'的工作组没有成员,请先建立工作组成员!'
- GOTO ext
- END IF
-
- ll_mxt = 0
-
- DECLARE wg_emp CURSOR FOR
- SELECT u_workgroupmx.empid,
- u_workgroupmx.assigntype,
- u_workgroupmx.assignamt,
- u_rs_empinfo.empcode
- FROM u_workgroupmx,u_rs_empinfo
- WHERE u_workgroupmx.workgroupid = :ll_wgid_arr[ll_i]
- AND u_workgroupmx.empid = u_rs_empinfo.empid
- ORDER BY u_workgroupmx.empid ASC
- USING commit_transaction;
- OPEN wg_emp;
-
- FETCH wg_emp INTO :ll_empid,:ll_assigntype,:ll_assignamt,:ls_empcode;
-
- DO WHILE commit_transaction.SQLCode = 0
- ll_mxt++
- ll_empid_arr[ll_mxt] = ll_empid
- ll_assigntype_arr[ll_mxt] = ll_assigntype
- ll_assignamt_arr[ll_mxt] = ll_assignamt
- ls_empcode_arr[ll_mxt] = ls_empcode
- ld_assignday_arr[ll_mxt] = 0
- ld_assignscore_arr[ll_mxt] = 0
- FETCH wg_emp INTO :ll_empid,:ll_assigntype,:ll_assignamt,:ls_empcode;
- LOOP
-
- CLOSE wg_emp;
-
- //计算各种分配模式的比例0:手动,1:固定比例,2:按天数,3:按天数+分数
- Long ll_k
- Decimal temp_sumscore = 0,temp_empscore = 0
- Decimal temp_sumdays = 0,temp_empdays = 0
-
- FOR ll_k = 1 TO ll_mxt
- SELECT isnull(sum(U_TestMx_bd.bdday),0),
- isnull(sum(U_TestMx_bd.bdday * U_TestMx_bd.Score),0)
- INTO :temp_sumdays,:temp_sumscore
- FROM u_test_bd INNER JOIN
- U_TestMx_bd ON u_test_bd.TestID = U_TestMx_bd.TestID
- WHERE u_test_bd.flag = 1 AND u_test_bd.wagemth = :arg_wagemth
- AND U_TestMx_bd.empid IN (
- SELECT empid
- FROM u_workgroupmx
- Where u_workgroupmx.workgroupid = :ll_wgid_arr[ll_i] )USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询小组的考核总(天数),总(分数*天数)失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- SELECT isnull(sum(U_TestMx_bd.bdday),0),
- isnull(sum(U_TestMx_bd.bdday * U_TestMx_bd.Score),0)
- INTO :temp_empdays,:temp_empscore
- FROM u_test_bd INNER JOIN
- U_TestMx_bd ON u_test_bd.TestID = U_TestMx_bd.TestID
- WHERE u_test_bd.flag = 1 AND u_test_bd.wagemth = :arg_wagemth
- AND U_TestMx_bd.empid = :ll_empid_arr[ll_k] USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询员工:'+ls_empcode_arr[ll_k]+',的考核总(天数),总(分数*天数)失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
-
- IF ll_assigntype_arr[ll_k] = 2 THEN
- IF temp_sumdays = 0 THEN
- rslt = 0
- arg_msg = '工资月份['+String(arg_wagemth)+']有小组工资分配按天数计算比例进行分配,但没有对应该月份的绩效考核天数!请检查'
- GOTO ext
- ELSE
- ll_assignamt_arr[ll_k] = Round(temp_empdays/temp_sumdays,5)
- ld_assignday_arr[ll_k] = temp_empdays
- ld_assignscore_arr[ll_k] = temp_empscore
- END IF
- ELSEIF ll_assigntype_arr[ll_k] = 3 THEN
- IF temp_sumscore = 0 THEN
- rslt = 0
- arg_msg = '工资月份['+String(arg_wagemth)+']有小组工资分配按天数+分数计算比例进行分配,但没有对应该月份的绩效考核天数!请检查'
- GOTO ext
- ELSE
- ll_assignamt_arr[ll_k] = Round(temp_empscore/temp_sumscore,5)
- ld_assignday_arr[ll_k] = temp_empdays
- ld_assignscore_arr[ll_k] = temp_empscore
- END IF
- END IF
- NEXT
-
- IF ll_mxt > 0 THEN
- //该组金额转移到组中第一人
- INSERT INTO u_scwg_taskwork_money
- (wageid,
- workgroupid ,
- empid ,
- wagemth ,
- groupamt,
- empamt,
- auditingflag,
- opdate,
- opemp,
- billtype,
- assigntype,
- assignamt,
- assignscore,
- assignday)
- SELECT wageid,
- wrkgrpid,
- :ll_empid_arr[1],
- wagemth,
- sum(u_scwg_taskwork_2_mx.price * u_scwg_taskwork_2_mx.qty),
- case :ll_assigntype_arr[1] when 0 then sum(u_scwg_taskwork_2_mx.price * u_scwg_taskwork_2_mx.qty) else (sum(u_scwg_taskwork_2_mx.price * u_scwg_taskwork_2_mx.qty))*(:ll_assignamt_arr[1]) END ,
- 0,
- getdate(),
- :publ_operator,
- 2,
- :ll_assigntype_arr[1] ,
- :ll_assignamt_arr[1],
- :ld_assignscore_arr[1] ,
- :ld_assignday_arr[1]
- FROM u_scwg_taskwork_2_mx,u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.wrkgrpid = :ll_wgid_arr[ll_i]
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND u_scwg_taskwork_2.billid = u_scwg_taskwork_2_mx.billid
- GROUP BY u_scwg_taskwork_2.wageid,
- u_scwg_taskwork_2.wagemth,
- u_scwg_taskwork_2.wrkgrpid
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '建立小组首名员工工资操作失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
-
- //其他组员的金额为0
- IF ll_mxt >= 2 THEN
- FOR ll_j = 2 TO ll_mxt
- INSERT INTO u_scwg_taskwork_money
- (wageid,
- workgroupid ,
- empid ,
- wagemth ,
- groupamt,
- empamt,
- auditingflag,
- opdate,
- opemp,
- billtype,
- assigntype,
- assignamt,
- assignscore,
- assignday)
- SELECT wageid,
- wrkgrpid,
- :ll_empid_arr[ll_j],
- wagemth,
- sum(u_scwg_taskwork_2_mx.price * u_scwg_taskwork_2_mx.qty),
- case :ll_assigntype_arr[ll_j] when 0 then 0 else (sum(u_scwg_taskwork_2_mx.price * u_scwg_taskwork_2_mx.qty))*(:ll_assignamt_arr[ll_j]) END,
- 0,
- getdate(),
- :publ_operator,
- 2,
- :ll_assigntype_arr[ll_j] ,
- :ll_assignamt_arr[ll_j],
- :ld_assignscore_arr[ll_j] ,
- :ld_assignday_arr[ll_j]
- FROM u_scwg_taskwork_2_mx,u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.wrkgrpid = :ll_wgid_arr[ll_i]
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND u_scwg_taskwork_2.billid = u_scwg_taskwork_2_mx.billid
- GROUP BY u_scwg_taskwork_2.wageid,
- u_scwg_taskwork_2.wagemth,
- u_scwg_taskwork_2.wrkgrpid
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '建立小组其它员工工资操作失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- NEXT
- END IF
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate()
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate(),
- u_scwg_taskwork_2.affirmemp = :publ_operator,
- u_scwg_taskwork_2.affirmdate = getdate()
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer c_auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_flagnum
- DateTime ls_null
- SetNull(ls_null)
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 1
- AND u_scwg_taskwork_2.billtype = 0
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否已有单据已审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_flagnum <= 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目不存在审核的记录'
- GOTO ext
- END IF
- //查询相关工资表是否已经通过审核
- ll_flagnum = 0
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_money
- WHERE u_scwg_taskwork_money.wageid = :arg_wageid
- AND u_scwg_taskwork_money.wagemth = :arg_wagemth
- AND u_scwg_taskwork_money.Auditingflag = 1
- AND u_scwg_taskwork_money.billtype = 0
- AND ( u_scwg_taskwork_money.workgroupid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,已经审核数量,工资表'
- GOTO ext
- END IF
- IF ll_flagnum > 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目部分已通过分配审核'
- GOTO ext
- END IF
- //先删除工资表记录
- DELETE FROM u_scwg_taskwork_money
- WHERE u_scwg_taskwork_money.wageid = :arg_wageid
- AND u_scwg_taskwork_money.wagemth = :arg_wagemth
- AND u_scwg_taskwork_money.billtype = 0
- AND ( u_scwg_taskwork_money.workgroupid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除工资表操作失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- //更新审核标志
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.Auditingrep = '',
- u_scwg_taskwork_2.Auditingdate = :ls_null
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.billtype = 0
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- AND u_scwg_taskwork_2.flag = 1 USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.Auditingrep = '',
- u_scwg_taskwork_2.Auditingdate = :ls_null,
- u_scwg_taskwork_2.affirmemp = '',
- u_scwg_taskwork_2.affirmdate = :ls_null,
- u_scwg_taskwork_2.affirmflag = 0
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.billtype = 0
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- AND u_scwg_taskwork_2.flag = 1 USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在撤审,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer c_auditing_2 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_flagnum
- DateTime ls_null
- SetNull(ls_null)
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 1
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否已有单据已审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_flagnum <= 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目不存在审核的记录'
- GOTO ext
- END IF
- //查询相关工资表是否已经通过审核
- ll_flagnum = 0
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_money
- WHERE u_scwg_taskwork_money.wageid = :arg_wageid
- AND u_scwg_taskwork_money.wagemth = :arg_wagemth
- AND u_scwg_taskwork_money.Auditingflag = 1
- AND u_scwg_taskwork_money.billtype = 2
- AND ( u_scwg_taskwork_money.workgroupid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,已经审核数量,工资表'
- GOTO ext
- END IF
- IF ll_flagnum > 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目部分已通过分配审核'
- GOTO ext
- END IF
- //先删除工资表记录
- DELETE FROM u_scwg_taskwork_money
- WHERE u_scwg_taskwork_money.wageid = :arg_wageid
- AND u_scwg_taskwork_money.wagemth = :arg_wagemth
- AND u_scwg_taskwork_money.billtype = 2
- AND ( u_scwg_taskwork_money.workgroupid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除工资表操作失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- //更新审核标志
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.Auditingrep = '',
- u_scwg_taskwork_2.Auditingdate = :ls_null
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- AND u_scwg_taskwork_2.flag = 1 USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.Auditingrep = '',
- u_scwg_taskwork_2.Auditingdate = :ls_null,
- u_scwg_taskwork_2.affirmemp = '',
- u_scwg_taskwork_2.affirmdate = :ls_null,
- u_scwg_taskwork_2.affirmflag = 0
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.billtype = 2
- AND ( u_scwg_taskwork_2.wrkgrpid = :arg_wrkgrpid OR :arg_wrkgrpid = -1 )
- AND u_scwg_taskwork_2.flag = 1 USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在撤审,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = "没有删除对象,操作取消"
- GOTO ext
- END IF
- rslt = p_getinfo(arg_billid,arg_msg)
- IF rslt = 0 THEN GOTO ext
- IF affirmflag = 1 THEN
- rslt = 0
- arg_msg = '单据已经确认,不可以修改'
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = "单据已经审核,不可以删除"
- GOTO ext
- END IF
- DELETE FROM u_scwg_taskwork_2 WHERE u_scwg_taskwork_2.billid = :arg_billid
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_scwg_taskwork_2_mx WHERE u_scwg_taskwork_2_mx.billid = :arg_billid
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK ;
- p_reset()
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT ;
- END IF
- Return (rslt)
- end function
- public function decimal uo_wage_fp_formula (string arg_formula, decimal arg_amt, decimal arg_assignamt, decimal arg_assignamt_sm, decimal arg_assignscore, decimal arg_assignscore_sm, decimal arg_assignday, decimal arg_assignday_sm);Decimal ld_rst_amt
- String ls_formula
- ls_formula = arg_formula
- datastore ds_formula
- ds_formula = Create datastore
- ds_formula.DataObject = 'ds_scwg_taskwork_day_formula'
- ds_formula.InsertRow(0)
- DO WHILE Pos(ls_formula,'[组工资]') > 0
- ls_formula = Replace(ls_formula,Pos(ls_formula,'[组工资]'),Len('[组工资]'),String(arg_amt))
- LOOP
- DO WHILE Pos(ls_formula,'[分配比例]') > 0
- ls_formula = Replace(ls_formula,Pos(ls_formula,'[分配比例]'),Len('[分配比例]'),String(arg_assignamt))
- LOOP
- DO WHILE Pos(ls_formula,'[比例总和]') > 0
- ls_formula = Replace(ls_formula,Pos(ls_formula,'[比例总和]'),Len('[比例总和]'),String(arg_assignamt_sm))
- LOOP
- DO WHILE Pos(ls_formula,'[分数]') > 0
- ls_formula = Replace(ls_formula,Pos(ls_formula,'[分数]'),Len('[分数]'),String(arg_assignscore))
- LOOP
- DO WHILE Pos(ls_formula,'[分数总和]') > 0
- ls_formula = Replace(ls_formula,Pos(ls_formula,'[分数总和]'),Len('[分数总和]'),String(arg_assignscore_sm))
- LOOP
- DO WHILE Pos(ls_formula,'[考勤天数]') > 0
- ls_formula = Replace(ls_formula,Pos(ls_formula,'[考勤天数]'),Len('[考勤天数]'),String(arg_assignday))
- LOOP
- DO WHILE Pos(ls_formula,'[天数总和]') > 0
- ls_formula = Replace(ls_formula,Pos(ls_formula,'[天数总和]'),Len('[天数总和]'),String(arg_assignday_sm))
- LOOP
- ds_formula.Modify("compute.expression='"+ls_formula+"'")
- ld_rst_amt = Round(Dec(ds_formula.Object.compute[1]),2)
- if isnull(ld_rst_amt) then ld_rst_amt = 0
- RETURN ld_rst_amt
- end function
- public function integer acceptmx (long arg_mtrlid, string arg_procode, string arg_proname, decimal arg_qty, decimal arg_price, string arg_mxdscrp, ref string arg_msg, long arg_printid, string arg_status, string arg_woodcode, string arg_pcode, string arg_ycreason, long arg_orderid, string arg_reason, string arg_unit, decimal arg_failqty, decimal arg_facthours, string arg_wpcode);
- Int rslt = 1
- Long cnt = 0,ls_i,ll_i
- String ls_ordercode
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_if_taskwork_acmpqty = -1000 THEN
- arg_msg = '选项:[202]计件单选生产计划时按已进仓数限制,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_price_if_mod = -1000 THEN
- arg_msg = '选项:[081]计件单限制工价,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_procode_order = -1000 THEN
- arg_msg = '选项:[064]计件单按生产计划工序,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork2_noorder = -1000 THEN
- arg_msg = '选项:[104]月分配计件单可以不选计划,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_person_noorder = -1000 THEN
- arg_msg = '选项:[106]个人产品计件单可以不选计划,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- IF IsNull(arg_procode) THEN arg_procode = ''
- IF IsNull(arg_proname) THEN arg_proname = ''
- IF IsNull(arg_qty) THEN arg_qty = 0
- IF IsNull(arg_price) THEN arg_price = 0
- IF IsNull(arg_printid) THEN arg_printid = 0
- IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
- IF IsNull(arg_status) THEN arg_status = ''
- IF IsNull(arg_woodcode) THEN arg_woodcode = ''
- IF IsNull(arg_pcode) THEN arg_pcode = ''
- IF IsNull(arg_ycreason) THEN arg_ycreason = ''
- IF IsNull(arg_orderid) THEN arg_orderid = 0
- IF IsNull(arg_reason) THEN arg_reason = ''
- IF IsNull(arg_unit) THEN arg_unit = ''
- IF IsNull(arg_failqty) THEN arg_failqty = 0
- IF IsNull(arg_facthours) THEN arg_facthours = 0
- if isnull(arg_wpcode) then arg_wpcode = ''
- IF billtype = 0 OR billtype = 1 THEN
- IF Trim(arg_procode) = '' THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序编号不能为空!'
- GOTO ext
- END IF
-
- IF Trim(arg_proname) = '' THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序名称不能为空'
- GOTO ext
- END IF
- END IF
- IF arg_qty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF billtype = 0 AND uo_option_taskwork2_noorder = 0 AND arg_orderid = 0 THEN
- rslt = 0
- arg_msg = '请选择生产计划,第'+String(arg_printid)+'行'
- GOTO ext
- ELSEIF billtype = 1 AND uo_option_taskwork_person_noorder = 0 AND arg_orderid = 0 THEN
- rslt = 0
- arg_msg = '请选择生产计划,第'+String(arg_printid)+'行'
- GOTO ext
- END IF
- IF arg_orderid > 0 THEN
- Decimal ld_orderqty,ld_acmpqty,ld_trueqty
-
- SELECT ordercode,orderqty,acmpqty
- INTO :ls_ordercode,:ld_orderqty,:ld_acmpqty
- FROM u_order_ml
- WHERE scid = :scid
- AND orderid = :arg_orderid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询生产计划号失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_option_if_taskwork_acmpqty = 1 THEN
- ld_trueqty = ld_acmpqty
- ELSE
- ld_trueqty = ld_orderqty
- END IF
-
- Decimal ld_othertask_qty
- Decimal ld_Otherbill_qty,ld_Otherbill_qty_2
- Decimal ld_workqty
- Decimal ld_mx_qty
- Decimal ld_finish_qty,ld_collect_qty
- Long l
-
- IF uo_option_taskwork_procode_order = 1 THEN
- SELECT (proqty / :ld_orderqty) * :ld_trueqty INTO :ld_workqty
- FROM U_OrderRqwp
- WHERE scid = :scid
- AND orderid = :arg_orderid
- AND procode = :arg_procode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询计划:'+ls_ordercode+',工序:'+arg_procode+',计划数量失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- //查询产品是否组合配置
- Long ll_statusflag
- Decimal ld_pzqty
- Boolean lb_iffind = FALSE
- String ls_pz_status
- s_mtrlcfg_expr s_pz[]
-
- SELECT statusflag INTO :ll_statusflag
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询产品是否使用组合配置失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- SELECT status INTO :ls_pz_status
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- AND procode = :arg_procode
- and wpcode = :arg_wpcode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询产品工序配置失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF ll_statusflag = 2 AND ls_pz_status <> '' THEN
- f_checkpz(arg_status,s_pz[])
- lb_iffind = FALSE
- FOR ll_i = 1 TO UpperBound(s_pz)
- IF s_pz[ll_i].cfgname = ls_pz_status THEN
- ld_pzqty = Dec(s_pz[ll_i].qty)
- lb_iffind = TRUE
- EXIT
- END IF
- NEXT
-
- IF lb_iffind = FALSE THEN
- ld_pzqty = 1
- END IF
- ELSE
- ld_pzqty = 1
- END IF
-
-
- SELECT workqty * :ld_trueqty * :ld_pzqty INTO :ld_workqty
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- AND procode = :arg_procode
- and wpcode = :arg_wpcode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询单件产品工序数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- SELECT isnull(sum(finishqty),0) INTO :ld_finish_qty
- FROM U_OrderRqwp
- WHERE orderid = :arg_orderid
- AND scid = :scid
- AND procode = :arg_procode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'已确认数失败,orderid:'+string(arg_orderid)+',scid:'+string(scid)+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
-
- SELECT isnull(sum(qty),0) INTO :ld_othertask_qty
- FROM u_scwg_taskwork_2,u_scwg_taskwork_2_mx
- WHERE u_scwg_taskwork_2_mx.billid = u_scwg_taskwork_2.billid
- AND u_scwg_taskwork_2_mx.mtrlid = :arg_mtrlid
- AND u_scwg_taskwork_2_mx.orderid = :arg_orderid
- AND u_scwg_taskwork_2_mx.procode = :arg_procode
- AND u_scwg_taskwork_2_mx.billid <> :billid
- And (u_scwg_taskwork_2.affirmflag = 0 OR :uo_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'其它已开单未确认数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- SELECT isnull(sum(qty),0) INTO :ld_Otherbill_qty
- FROM u_scwg_taskwork_day,u_scwg_taskwork_day_mx
- WHERE u_scwg_taskwork_day_mx.billid = u_scwg_taskwork_day.billid
- AND u_scwg_taskwork_day_mx.mtrlid = :arg_mtrlid
- AND u_scwg_taskwork_day_mx.orderid = :arg_orderid
- AND u_scwg_taskwork_day_mx.procode = :arg_procode
- AND u_scwg_taskwork_day.scid = :scid
- And ( u_scwg_taskwork_day.affirmflag = 0 OR :uo_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'工作组产品日分配计件单开单未确认数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- SELECT isnull(sum(Amount),0) INTO :ld_Otherbill_qty_2
- FROM u_sc_taskwork,u_sc_taskworkmx
- WHERE u_sc_taskworkmx.scid = u_sc_taskwork.scid
- AND u_sc_taskworkmx.billid = u_sc_taskwork.billid
- AND u_sc_taskwork.mtrlid = :arg_mtrlid
- AND u_sc_taskwork.orderid = :arg_orderid
- AND u_sc_taskworkmx.procode = :arg_procode
- AND u_sc_taskwork.scid = :scid
- And (u_sc_taskwork.affirmflag = 0 OR :uo_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'产品个人计件单开单未确认数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- SELECT isnull(sum(u_data_wage.zx_qty),0)
- INTO :ld_collect_qty
- FROM u_data_collect INNER JOIN
- u_data_wage ON u_data_collect.collectid = u_data_wage.collectid
- WHERE u_data_collect.scid = :scid
- and u_data_collect.orderid = :arg_orderid
- and u_data_wage.procode = :arg_procode;
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+'注塑质检单杂项数量失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- FOR l = 1 TO it_mxbt
- IF taskworkmx[l].procode = arg_procode AND &
- taskworkmx[l].orderid = arg_orderid THEN
- ld_mx_qty = ld_mx_qty + taskworkmx[l].qty
- END IF
- NEXT
-
- IF uo_option_taskwork_not_affirm = 1 THEN
- ld_finish_qty = 0
- END IF
-
- IF arg_qty + ld_finish_qty + ld_othertask_qty + ld_Otherbill_qty + ld_Otherbill_qty_2 + ld_mx_qty + ld_collect_qty > ld_workqty THEN
- rslt = 0
- IF uo_option_if_taskwork_acmpqty = 0 THEN
- arg_msg = '第 '+String(arg_printid)+' 行,指令单号:'+ls_ordercode+',工序:'+arg_procode+',计件数量不能大于计划生产数,计划工序数:'+String(ld_workqty,'####0.####')+',已完成数:'+String(ld_finish_qty,'####0.####')+',本单已开单:'+String(ld_mx_qty,'####0.####')+',其它单已开单:'+String(ld_othertask_qty + ld_Otherbill_qty + ld_Otherbill_qty_2 + ld_collect_qty,'####0.####')+',不能开单:'+String(arg_qty,'####0.####')
- ELSE
- arg_msg = '第 '+String(arg_printid)+' 行,指令单号:'+ls_ordercode+',工序:'+arg_procode+',计件数量不能大于计划已进仓数,已进仓工序数:'+String(ld_workqty,'####0.####')+',已完成数:'+String(ld_finish_qty,'####0.####')+',本单已开单:'+String(ld_mx_qty,'####0.####')+',其它单已开单:'+String(ld_othertask_qty + ld_Otherbill_qty + ld_Otherbill_qty_2 + ld_collect_qty,'####0.####')+',不能开单:'+String(arg_qty,'####0.####')
- END IF
-
- GOTO ext
- END IF
- END IF
- IF billtype = 0 OR billtype = 1 THEN
- Decimal ld_workprice
- //检查限价
- IF uo_option_taskwork_price_if_mod = 1 THEN //启用检查限价选项
- IF uo_option_taskwork_procode_order = 0 OR arg_orderid = 0 THEN //按工价表限价
- SELECT workPrice INTO :ld_workprice
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- AND procode = :arg_procode
- and wpcode = :arg_wpcode;
- IF sqlca.SQLCode = 0 THEN
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序:'+arg_procode+' 工价表工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- ELSE
- SELECT workprice INTO :ld_workprice
- FROM u_sc_workprocedure
- WHERE code = :arg_procode
- AND ifpubl = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',查询公共工序:'+arg_procode+' 工价失败'+'~n'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',公共工序:'+arg_procode+' 工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- END IF
- ELSE //按生产计划工序明细限价
- SELECT workPrice INTO :ld_workprice
- FROM U_OrderRqwp
- WHERE scid = :scid
- AND orderid = :arg_orderid
- AND procode = :arg_procode;
- IF sqlca.SQLCode = 0 THEN
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序:'+arg_procode+' 生产计划工序明细工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- ELSE
- SELECT workprice INTO :ld_workprice
- FROM u_sc_workprocedure
- WHERE code = :arg_procode
- AND ifpubl = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',查询公共工序:'+arg_procode+' 工价失败'+'~n'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',公共工序:'+arg_procode+' 工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- END IF
- END IF
- END IF
- END IF
- //写入内容
- it_mxbt++
- taskworkmx[it_mxbt].mtrlid = arg_mtrlid
- taskworkmx[it_mxbt].procode = arg_procode
- taskworkmx[it_mxbt].proname = arg_proname
- taskworkmx[it_mxbt].qty = arg_qty
- taskworkmx[it_mxbt].price = arg_price
- taskworkmx[it_mxbt].mxdscrp = arg_mxdscrp
- taskworkmx[it_mxbt].printid = arg_printid
- taskworkmx[it_mxbt].status = arg_status
- taskworkmx[it_mxbt].woodcode = arg_woodcode
- taskworkmx[it_mxbt].pcode = arg_pcode
- taskworkmx[it_mxbt].ycreason = arg_ycreason
- taskworkmx[it_mxbt].orderid = arg_orderid
- taskworkmx[it_mxbt].ordercode = ls_ordercode
- taskworkmx[it_mxbt].reason = arg_reason
- taskworkmx[it_mxbt].unit = arg_unit
- taskworkmx[it_mxbt].failqty = arg_failqty
- taskworkmx[it_mxbt].facthours = arg_facthours
- taskworkmx[it_mxbt].wpcode = arg_wpcode
- ext:
- IF rslt = 0 THEN p_clearmx()
- Return(rslt)
- end function
- public function integer auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- datastore ds_emp_sumwage
- uo_wage u_wage
- u_wage = Create uo_wage
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = -1000 THEN
- arg_msg = '选项:[240]计件单没有工价不能审核,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = 0 THEN
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- and (u_scwg_taskwork_2.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_2.affirmflag = 0
- AND u_scwg_taskwork_2.billtype = 1
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单未确认操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份存在未确认的单据('+String(cnt)+'),请先全部确认'
- GOTO ext
- END IF
- END IF
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- and (u_scwg_taskwork_2.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 1
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '该月份不存在要审核的单据,请检查'
- GOTO ext
- END IF
- //SELECT count(*)
- // INTO :cnt
- // FROM u_scwg_taskwork_2
- // WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- // AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- // AND u_scwg_taskwork_2.flag = 1
- // AND u_scwg_taskwork_2.billtype = 1
- // USING commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询是否有单已经审核操作失败,'+commit_transaction.SQLErrText
- // GOTO ext
- //END IF
- //
- //IF cnt > 0 THEN
- // rslt = 0
- // arg_msg = '该月份的工资项目存在部分已审核的记录,请先撤审'
- // GOTO ext
- //END IF
- ds_emp_sumwage = Create datastore
- ds_emp_sumwage.DataObject = 'dw_emp_sumwage_12'
- ds_emp_sumwage.SetTransObject(sqlca)
- IF ds_emp_sumwage.Retrieve(arg_scid,arg_wagemth,arg_wageid,0) <= 0 THEN
- rslt = 0
- arg_msg = '本月没有单据可审核或查询单据失败'
- GOTO ext
- END IF
- FOR i = 1 To ds_emp_sumwage.RowCount()
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = ds_emp_sumwage.Object.sumwage[i]
-
- IF uo_option_check_noworkprice = 1 And ls_emp_sumwage = 0 THEN
- rslt = 0
- arg_msg = '行'+String(i)+',没有填写工价,不允许审核'
- GOTO ext
- END IF
-
- IF u_wage.f_setwagemxdata(arg_wagemth,ds_emp_sumwage.Object.u_scwg_taskwork_2_empid[i],arg_wageid,ls_emp_sumwage,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate()
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- and (u_scwg_taskwork_2.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 1
- Using commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 1,
- u_scwg_taskwork_2.auditingrep = :publ_operator,
- u_scwg_taskwork_2.auditingdate = getdate(),
- u_scwg_taskwork_2.affirmdate = getdate(),
- u_scwg_taskwork_2.affirmemp = :publ_operator,
- u_scwg_taskwork_2.affirmflag = 1
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- and (u_scwg_taskwork_2.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_2.flag = 0
- AND u_scwg_taskwork_2.billtype = 1
- Using commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- Destroy u_wage
- RETURN rslt
- end function
- public function integer c_auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_flagnum,i
- Decimal ls_emp_sumwage
- DateTime ls_null
- SetNull(ls_null)
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF f_check_wage_audit(arg_wagemth,arg_scid,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- Long cnt
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wagemth = :arg_wagemth
- And wageid = :arg_wageid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份该工资项目已开工资变更单,不能重复开单'
- GOTO ext
- END IF
- uo_wage u_wage
- u_wage = Create uo_wage
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_2
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND u_scwg_taskwork_2.flag = 1
- AND u_scwg_taskwork_2.billtype = 1
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否已有单据已审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_flagnum <= 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目不存在审核的记录'
- GOTO ext
- END IF
- //IF u_wage.f_wage_clear(arg_wageid,arg_wagemth,arg_msg,FALSE) = 0 THEN
- // rslt = 0
- // GOTO ext
- //END IF
- datastore ds_emp_sumwage
- ds_emp_sumwage = Create datastore
- ds_emp_sumwage.DataObject = 'dw_emp_sumwage_12'
- ds_emp_sumwage.SetTransObject(sqlca)
- IF ds_emp_sumwage.Retrieve(arg_scid,arg_wagemth,arg_wageid,1) <= 0 THEN
- rslt = 0
- arg_msg = '本月没有单据已审核或查询单据失败'
- GOTO ext
- END IF
- FOR i = 1 To ds_emp_sumwage.RowCount()
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = 0 - ds_emp_sumwage.Object.sumwage[i]
-
- IF u_wage.f_setwagemxdata(arg_wagemth,ds_emp_sumwage.Object.u_scwg_taskwork_2_empid[i],arg_wageid,ls_emp_sumwage,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- //更新审核标志
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.Auditingrep = '',
- u_scwg_taskwork_2.Auditingdate = :ls_null
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND (u_scwg_taskwork_2.scid = :arg_scid OR :arg_scid = -1)
- AND u_scwg_taskwork_2.billtype = 1
- And u_scwg_taskwork_2.flag = 1 Using commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_2
- SET u_scwg_taskwork_2.flag = 0,
- u_scwg_taskwork_2.Auditingrep = '',
- u_scwg_taskwork_2.Auditingdate = :ls_null,
- u_scwg_taskwork_2.affirmemp = '',
- u_scwg_taskwork_2.affirmdate = :ls_null,
- u_scwg_taskwork_2.affirmflag = 0
- WHERE u_scwg_taskwork_2.wageid = :arg_wageid
- AND u_scwg_taskwork_2.wagemth = :arg_wagemth
- AND (u_scwg_taskwork_2.scid = :arg_scid OR :arg_scid = -1)
- AND u_scwg_taskwork_2.billtype = 1
- And u_scwg_taskwork_2.flag = 1 Using commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在撤审,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- Destroy u_wage
- RETURN rslt
- end function
- on uo_scwg_taskwork_2.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_scwg_taskwork_2.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- event constructor;String arg_msg
- String str_optionvalue
- str_optionvalue = ''
- f_get_sys_option_value('080',str_optionvalue,arg_msg)
- uo_option_taskwork_not_affirm = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('104',str_optionvalue,arg_msg)
- uo_option_taskwork2_noorder = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('106',str_optionvalue,arg_msg)
- uo_option_taskwork_person_noorder = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('064',str_optionvalue,arg_msg)
- uo_option_taskwork_procode_order = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('081',str_optionvalue,arg_msg)
- uo_option_taskwork_price_if_mod = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('202',str_optionvalue,arg_msg)
- uo_option_if_taskwork_acmpqty = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('240',str_optionvalue,arg_msg)
- uo_option_check_noworkprice = Long(str_optionvalue)
- end event
|