12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705 |
- $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
- s_scwg_taskwork_2 taskworkmx[]
- Transaction commit_transaction
- Long it_mxbt = 0
- Boolean it_newbegin = FALSE
- Boolean it_updatebegin = FALSE
- 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 del (long arg_billid, ref string arg_msg)
- 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 auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg)
- public function integer auditing_1 (long arg_wageid, long arg_wagemth, ref string arg_msg)
- public function integer c_auditing_1 (long arg_wageid, long arg_wagemth, ref string arg_msg)
- public function integer c_auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg)
- 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 auditing_2 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg)
- public function integer c_auditing_2 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref 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 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_ordercode, string arg_reason, string arg_unit, long arg_relscid, long arg_relprintid, decimal arg_addqty, long arg_relid2, long arg_relprintid2)
- 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=''
- 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 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
- 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 = ''
- 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,commit_transaction)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF billtype = 0 THEN
- billcode = getid(0,"JW",Date(server_dt),True,commit_transaction) //取得新单据编号
- ELSEIF billtype = 1 THEN
- billcode = getid(0,"JP",Date(server_dt),True,commit_transaction) //取得新单据编号
- ELSEIF billtype = 2 THEN //工作组月分配异常计件单
- billcode = getid(0,"AW",Date(server_dt),True,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)
- VALUES (
- :ls_newid,
- :billdate,
- :wagemth,
- :rep,
- :relcode,
- :dscrp,
- :scid,
- :billcode,
- :wrkgrpid,
- :publ_operator,
- :server_dt ,
- :wageid,
- :billtype,
- :relempstr) Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入操作失败>>"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- //
- billid = ls_newid
-
-
-
- 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
- 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,
- // relscid,
- // relprintid)
- // 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].relscid,
- // :taskworkmx[i].relprintid) USING commit_transaction;
- //
- // IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- // GOTO ext
- // END IF
- // NEXT
- //
- 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,
- relscid,
- relprintid,
- addqty,
- relid2,
- relprintid2)
- 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].relscid,
- :taskworkmx[i].relprintid,
- :taskworkmx[i].addqty,
- :taskworkmx[i].relid2,
- :taskworkmx[i].relprintid2
- ) Using commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- IF it_newbegin THEN billid = 0 //还原noticeid
- rslt = 0
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK ;
- GOTO ext
- END IF
- NEXT
- 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 del (long arg_billid, ref string arg_msg);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
- it_newbegin = FALSE
- it_updatebegin = FALSE
- IF rslt = 0 THEN
- ROLLBACK;
- p_reset()
- ELSEIF rslt = 1 THEN
- COMMIT;
- END IF
- ext:
- 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 auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg);////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 sys_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 = '该月份不存在要审核的单据,请检查'
- // 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
- // 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,
- // 0,
- // :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 = 0
- // 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,
- // 0,
- // :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 = 0
- // 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 sys_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.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;
- //ELSE
- // COMMIT USING commit_transaction;
- //END IF
- //
- RETURN rslt
- //
- //
- //
- //
- end function
- public function integer auditing_1 (long arg_wageid, long arg_wagemth, ref string arg_msg);//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 sys_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.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.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_wagemth,arg_wageid) <= 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 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 sys_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 = 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.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;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer c_auditing_1 (long arg_wageid, long arg_wagemth, ref string arg_msg);Int rslt = 1
- Long ll_flagnum
- DateTime ls_null
- SetNull(ls_null)
- 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
- //更新审核标志
- IF sys_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 = 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 = 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;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer c_auditing_0 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg);Int rslt = 1
- //Long ll_flagnum
- //
- //DateTime ls_null
- //SetNull(ls_null)
- //
- //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 sys_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;
- //ELSE
- // COMMIT USING commit_transaction;
- //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
- IF sys_option_add_orderrqwp_fqty = 1 THEN
- FOR i = 1 To it_mxbt
- IF taskworkmx[i].orderid > 0 And taskworkmx[i].relprintid > 0 THEN
- IF uo_ml.uof_add_procode_qty(taskworkmx[i].relscid,taskworkmx[i].orderid,taskworkmx[i].relprintid,&
- taskworkmx[i].procode,taskworkmx[i].qty,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- 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 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
- IF sys_option_add_orderrqwp_fqty = 1 THEN
- FOR i = 1 To it_mxbt
- IF taskworkmx[i].orderid > 0 And taskworkmx[i].relprintid > 0 THEN
- IF uo_ml.uof_add_procode_qty(taskworkmx[i].relscid,taskworkmx[i].orderid,taskworkmx[i].relprintid,&
- taskworkmx[i].procode,0 - taskworkmx[i].qty,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- 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 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.relprintid,
- u_scwg_taskwork_2_mx.relscid
- 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].relprintid,
- :taskworkmx[i].relscid;
- 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].relprintid,
- :taskworkmx[i].relscid;
- 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 auditing_2 (long arg_wageid, long arg_wagemth, long arg_wrkgrpid, ref string arg_msg);////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 sys_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 sys_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;
- //ELSE
- // 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);Int rslt = 1
- //Long ll_flagnum
- //
- //DateTime ls_null
- //SetNull(ls_null)
- //
- //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 sys_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;
- //ELSE
- // COMMIT USING commit_transaction;
- //END IF
- //
- 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
- uo_order_ml uo_ml
- uo_ml = Create uo_order_ml
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF sys_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 u_wage.f_setwagemxdata(wagemth,wrkgrpid,wageid,ls_emp_sumwage,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF sys_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
- IF sys_option_taskwork_not_affirm = 1 THEN
- IF sys_option_add_orderrqwp_fqty = 1 THEN
- FOR i = 1 To it_mxbt
- IF taskworkmx[i].orderid > 0 And taskworkmx[i].relprintid > 0 THEN
- IF uo_ml.uof_add_procode_qty(taskworkmx[i].relscid,taskworkmx[i].orderid,taskworkmx[i].relprintid,&
- taskworkmx[i].procode,taskworkmx[i].qty,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSE
- COMMIT Using commit_transaction;
- END IF
- Destroy uo_ml
- 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)
- uo_wage u_wage
- u_wage = Create uo_wage
- uo_order_ml uo_ml
- uo_ml = Create uo_order_ml
- 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
- //检查该月份,该工资项目是否已开工资变更单
- //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 sys_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
- IF sys_option_taskwork_not_affirm = 1 THEN
- IF sys_option_add_orderrqwp_fqty = 1 THEN
- FOR i = 1 To it_mxbt
- IF taskworkmx[i].orderid > 0 And taskworkmx[i].relprintid > 0 THEN
- IF uo_ml.uof_add_procode_qty(taskworkmx[i].relscid,taskworkmx[i].orderid,taskworkmx[i].relprintid,&
- taskworkmx[i].procode,0 - taskworkmx[i].qty,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSE
- COMMIT Using commit_transaction;
- END IF
- Destroy uo_ml
- Destroy u_wage
- RETURN rslt
- 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_ordercode, string arg_reason, string arg_unit, long arg_relscid, long arg_relprintid, decimal arg_addqty, long arg_relid2, long arg_relprintid2);//arg_proqty 工序数
- Int rslt = 1
- Long cnt = 0,ls_i,ll_i
- String ls_ordercode
- String ls_assmsg
- decimal arg_proqty
- IF it_newbegin = False And it_updatebegin = False THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- 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_ordercode) THEN arg_ordercode = ''
- IF IsNull(arg_unit) THEN arg_unit = ''
- IF IsNull(arg_relscid) THEN arg_relscid = 0
- IF IsNull(arg_relprintid) THEN arg_relprintid = 0
- IF IsNull(arg_addqty) THEN arg_addqty = 0
- IF IsNull(arg_relid2) THEN arg_relid2 = 0
- IF IsNull(arg_relprintid2) THEN arg_relprintid2 = 0
- IF billtype = 0 Or billtype = 1 THEN
- IF Trim(arg_procode) = '' THEN
- rslt = 0
- arg_msg = '工序编号不能为空!'
- GOTO ext
- END IF
-
- IF Trim(arg_proname) = '' THEN
- rslt = 0
- arg_msg = '工序名称不能为空'
- GOTO ext
- END IF
- END IF
- IF arg_qty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF billtype = 1 And sys_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 lde_orderqty, lde_assignqty, lde_cp_rate, lde_gz_qty
- Decimal ld_Otherbill_qty
- Decimal ld_Otherbill_qty_2 //ld_Otherbill_qty,
- Decimal lde_workqty
- Decimal ld_mx_qty
- Decimal ld_finish_qty
- Long l
-
- SELECT u_SaleTask.taskcode,u_SaleTaskMx.orderqty, u_SaleTaskMx.assignqty
- INTO :ls_ordercode,:lde_orderqty, :lde_assignqty
- FROM u_SaleTaskMx,u_SaleTask
- WHERE u_SaleTaskMx.scid = :scid
- AND u_SaleTaskMx.taskid = :arg_orderid
- AND u_SaleTaskMx.printid = :arg_relprintid
- AND u_SaleTaskMx.scid = u_SaleTask.scid
- And u_SaleTaskMx.taskid = u_SaleTask.taskid ;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询订单号失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF sys_option_add_orderrqwp_fqty = 1 THEN
- //查数量顺带查是否有该工序
- // if sys_version = 802003 then //只有工业版+才有mrp运算
- SELECT proqty, finishqty
- INTO :lde_workqty, :ld_finish_qty
- FROM U_OrderRqwp
- WHERE scid = :scid
- AND printid = :arg_relprintid
- AND taskid = :arg_orderid
- AND mtrlid = :arg_mtrlid
- And procode = :arg_procode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+',信息失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- // end if
- END IF
-
- //计划总数 ls_workqty
- //已完成数 ld_finish_qty
- // IF sys_option_taskwork_procode_order = 0 THEN //按工价表 数量
- // SELECT workqty * :lde_orderqty INTO :lde_workqty
- // FROM u_sc_workprice
- // WHERE mtrlid = :arg_mtrlid
- // And procode = :arg_procode;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+',工价表数量失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- // ld_finish_qty = 0
- // END IF
-
- //订单工序完成数
- IF sys_option_taskwork_not_affirm = 1 THEN //不需确认,不考虑已完成数
- ld_finish_qty = 0
- END IF
-
- IF sys_opton_taskwork_gz_qty = 0 THEN //按订单已进仓数 开计件单
- //进仓比例
- lde_gz_qty = lde_assignqty
- ls_assmsg = "订单已进仓数"
- ELSEIF sys_opton_taskwork_gz_qty = 1 THEN //按订单安排生产数 开计件单
- IF sys_option_taskwork_procode_order = 1 THEN
- SELECT proqty
- INTO :lde_workqty
- FROM U_OrderRqwp
- WHERE scid = :scid
- AND printid = :arg_relprintid
- AND taskid = :arg_orderid
- AND mtrlid = :arg_mtrlid
- And procode = :arg_procode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+',信息失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- lde_gz_qty = lde_workqty
- ELSE
- SELECT workqty INTO :arg_proqty
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- And procode = :arg_procode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+',工价表数量失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- lde_gz_qty = lde_orderqty * arg_proqty
- END IF
- ls_assmsg = "订单安排生产数"
- ELSEIF sys_opton_taskwork_gz_qty = 2 THEN //不限制
- lde_gz_qty =100000
- END IF
-
- //个人产品工序 已开单数
- SELECT isnull(sum(qty),0) INTO :ld_Otherbill_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.relprintid = :arg_relprintid
- AND u_scwg_taskwork_2_mx.relscid = :arg_relscid
- 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 :sys_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+',其它已开单未确认数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- //产品个人工序 已开单数
- SELECT isnull(sum(Amount),0) INTO :ld_Otherbill_qty_2
- FROM u_sc_taskworkmx,u_sc_taskwork
- WHERE u_sc_taskworkmx.billid = u_sc_taskwork.billid
- AND u_sc_taskworkmx.scid = u_sc_taskwork.scid
- AND u_sc_taskwork.mtrlid = :arg_mtrlid
- AND u_sc_taskwork.orderid = :arg_orderid
- AND u_sc_taskwork.relid = :arg_relprintid
- AND u_sc_taskworkmx.procode = :arg_procode
- And (u_sc_taskwork.affirmflag = 0 Or :sys_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+',产品个人计件单统计表开单未确认数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- FOR ll_i = 1 To it_mxbt
- IF arg_mtrlid = taskworkmx[ll_i].mtrlid and arg_orderid =taskworkmx[ll_i].orderid And arg_procode =taskworkmx[ll_i].procode and taskworkmx[ll_i].relprintid = arg_relprintid THEN
- ld_mx_qty = ld_mx_qty + taskworkmx[ll_i].qty
- END IF
- NEXT
-
- IF arg_qty + ld_finish_qty + ld_Otherbill_qty + ld_Otherbill_qty_2 + ld_mx_qty > lde_gz_qty THEN //* arg_proqty
- rslt = 0
- arg_msg = '第 '+String(arg_printid)+' 行,工序:'+arg_procode+',计件数量不能大于'+ls_assmsg+', 系统选项[081]限制~r~n' &
- + '订单安排生产数:'+String(lde_orderqty,'####0.####')+',已进仓数:'+String(lde_assignqty,'####0.####')+',可计件总数:'+String(lde_gz_qty,'####0.####')+'~r~n' &
- + '计件已完成数:'+String(ld_finish_qty,'####0.####')+',本单已开单:'+String(ld_mx_qty,'####0.####')+',其他已开单数:'+String(ld_Otherbill_qty + ld_Otherbill_qty_2,'####0.####')+'~r~n' &
- + '不能开单:'+String(arg_qty,'####0.####')+'~r~n' &
- + String(lde_gz_qty,'####0.####') +' < '+String(ld_finish_qty,'####0.####')+' + '+String(ld_mx_qty,'####0.####')+' + '+String(ld_Otherbill_qty + ld_Otherbill_qty_2,'####0.####')+' + '+String(arg_qty,'####0.####')
- GOTO ext
- END IF
- ELSE
- ls_ordercode = arg_ordercode
- END IF
- IF billtype = 0 Or billtype = 1 THEN
- Decimal ld_workprice
- //检查限价
- IF sys_option_taskwork_price_if_mod = 1 THEN //启用检查限价选项
- IF sys_option_taskwork_procode_order = 0 THEN //按物料的工价表限价
- SELECT workPrice INTO :ld_workprice
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- And procode = :arg_procode;
- IF sqlca.SQLCode = 0 THEN
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '工序:'+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 = '查询公共工序:'+arg_procode+' 工价失败'+'~n'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '公共工序:'+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 ( U_OrderRqwp.scid = :arg_relscid ) AND
- ( U_OrderRqwp.taskid = :arg_orderid ) AND
- ( U_OrderRqwp.printid = :arg_relprintid ) AND
- ( U_OrderRqwp.procode = :arg_procode );
-
- IF sqlca.SQLCode = 0 THEN
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '工序:'+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 = '查询公共工序:'+arg_procode+' 工价失败'+'~n'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '公共工序:'+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].relscid = arg_relscid
- taskworkmx[it_mxbt].relprintid = arg_relprintid
- taskworkmx[it_mxbt].addqty = arg_addqty
- taskworkmx[it_mxbt].relid2 = arg_relid2
- taskworkmx[it_mxbt].relprintid2 = arg_relprintid2
- ext:
- IF rslt = 0 THEN p_clearmx()
- 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
|