12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447 |
- $PBExportHeader$uo_sptcheck.sru
- forward
- global type uo_sptcheck from nonvisualobject
- end type
- type s_saleplanmx from structure within uo_sptcheck
- end type
- end forward
- type s_saleplanmx from structure
- long mtrlid
- string mtrlcode
- long printid
- decimal { 10 } planqty
- string mxdscrp
- end type
- global type uo_sptcheck from nonvisualobject
- end type
- global uo_sptcheck uo_sptcheck
- type variables
- Long uo_billid
- Int uo_option_if_oa_sptcheck
- Int uo_option_sptcheck_secaudit
- Int uo_option_if_oa_sptcheck_wfjg
- Int uo_option_sptcheck_wfjg_secaudit
- Int uo_option_sptcheck_inware
- Int uo_option_sptcheck_wfjg_inware
- int uo_option_wfjg_price_cmp
- Long audit_buildtype
- end variables
- forward prototypes
- public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer updatebegin (long arg_billid, ref string arg_msg)
- public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg)
- public function integer p_getinfo (long arg_billid, ref s_sptcheck arg_s_check, ref string arg_msg)
- public function integer save (s_sptcheck arg_s_sptcheck, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer getinfo (long arg_billid, ref s_sptcheck arg_ref_s_ch, ref string arg_msg)
- public function integer uof_add_inqty (long arg_billid, long arg_printid, decimal arg_inqty, ref string arg_msg, boolean arg_ifcommit)
- public function integer first_audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer first_caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_billemp (long arg_billid, string arg_billemp, ref string arg_msg)
- public function integer uof_create_inware_buy (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_inware_buy (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_create_inware_wfjg (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_inware_wfjg (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_create_inware_cp (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_inware_cp (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- s_sptcheck arg_s_check
- IF arg_billid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_s_check,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag = 1 THEN
- rslt = 0
- ARG_MSG = '单据已经审核,不可以删除'
- GOTO ext
- END IF
- DELETE FROM u_sptcheck Where billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_sptcheck_mx Where billid = :arg_billid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer updatebegin (long arg_billid, ref string arg_msg);Int rslt = 1
- s_sptcheck arg_s_check
- IF arg_billid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_s_check,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag <> 0 THEN
- rslt = 0
- ARG_MSG = '单据已经审核,不可以修改,要修改请先撤销审核'
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
- public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long cnt,i
- DateTime null_dt
- SetNull(null_dt)
- IF uo_option_sptcheck_inware = -1000 THEN
- rslt = 0
- arg_msg = '选项:[271]采购质检单审核自动生成采购收货单,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_wfjg_inware = -1000 THEN
- rslt = 0
- arg_msg = '选项:[272]外协质检单审核自动生成外协收货单,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- s_sptcheck arg_s_check
- uo_checkback uo_checkb
- uo_checkb = Create uo_checkback
- uo_buytask uo_task
- uo_task = Create uo_buytask
- uo_task.commit_transaction = sqlca
- uo_order_wfjg uo_wfjg
- uo_wfjg = Create uo_order_wfjg
- uo_wfjg.commit_transaction = sqlca
- uo_order_ml uo_zl
- uo_zl = Create uo_order_ml
- //uo_zl.commit_transaction = sqlca
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_s_check,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag <> 1 THEN
- rslt = 0
- arg_msg = '单据未审核,不可以撤审'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_sptcheck_mx
- WHERE billid = :arg_billid
- And inqty > 0;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询质检单明细是否已有进仓失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- arg_msg = '查询质检单明细已有进仓,不能撤审'
- rslt = 0
- GOTO ext
- END IF
- FOR i = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[i].reltaskid > 0 THEN
- IF arg_s_check.billtype = 0 THEN
- IF uo_task.addmx_sptcheckqty(arg_s_check.scid,arg_s_check.arg_s_mx[i].reltaskid,arg_s_check.arg_s_mx[i].reltaskprintid, 0 - arg_s_check.arg_s_mx[i].goodqty * arg_s_check.arg_s_mx[i].rate,arg_msg ,False) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- ELSEIF arg_s_check.billtype = 1 THEN
- IF uo_wfjg.addmx_sptcheckqty(arg_s_check.scid,arg_s_check.arg_s_mx[i].reltaskid,arg_s_check.arg_s_mx[i].reltaskprintid, 0 - arg_s_check.arg_s_mx[i].goodqty * arg_s_check.arg_s_mx[i].rate,arg_msg ,False) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- ELSEIF arg_s_check.billtype = 2 THEN
- IF uo_zl.addmx_sptcheckqty(arg_s_check.scid,arg_s_check.arg_s_mx[i].reltaskid, 0 - arg_s_check.arg_s_mx[i].goodqty * arg_s_check.arg_s_mx[i].rate,arg_msg ,False) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- END IF
- END IF
- NEXT
- IF arg_s_check.billtype = 0 THEN
- IF uo_option_sptcheck_inware = 0 THEN
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_inwaremx,u_inware
- WHERE u_inwaremx.inwareid = u_inware.inwareid
- AND u_inwaremx.scid = u_inware.scid
- AND u_inwaremx.relbillid = :arg_billid
- And u_inware.billtype = 1 ;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询质检单明细是否已开采购收货单失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- arg_msg = '查询质检单明细已开采购收货单,不能撤审'
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSE
- IF uo_option_sptcheck_wfjg_inware = 0 THEN
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM ow_wfjgmx_in_aft
- Where ow_wfjgmx_in_aft.relbillid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询质检单明细是否已开外协收货单失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- arg_msg = '查询质检单明细已开外协收货单,不能撤审'
- rslt = 0
- GOTO ext
- END IF
- END IF
- END IF
- UPDATE u_sptcheck
- SET flag = 4,
- auditemp = '',
- auditdate = :null_dt
- WHERE billid = :arg_billid
- And flag = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致单据撤消审核操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- //删除验退单
- IF arg_s_check.relcheckbackid > 0 THEN
- IF uo_checkb.del( arg_s_check.relcheckbackid,0,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF uo_option_sptcheck_inware = 1 And arg_s_check.billtype = 0 THEN
- IF uof_del_inware_buy(arg_billid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ELSEIF uo_option_sptcheck_wfjg_inware = 1 And arg_s_check.billtype = 1 THEN
- IF uof_del_inware_wfjg(arg_billid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ELSEIF sys_option_sptcheck_cp_inware = 1 And arg_s_check.billtype = 2 THEN
- IF uof_del_inware_cp(arg_billid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_checkb
- Destroy uo_task
- Destroy uo_wfjg
- Destroy uo_zl
- RETURN rslt
- end function
- public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long i,j,ll_relcheckbackid,ll_backcnt,count
- IF uo_option_if_oa_sptcheck = -1000 THEN
- rslt = 0
- arg_msg = '选项:[265]供应商采购质检单使用OA审批流程,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_secaudit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[267]供应商采购质检单使用二级审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_if_oa_sptcheck_wfjg = -1000 THEN
- rslt = 0
- arg_msg = '选项:[266]供应商外协质检单使用OA审批流程,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_wfjg_secaudit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[268]供应商外协质检单使用二级审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_inware = -1000 THEN
- rslt = 0
- arg_msg = '选项:[271]采购质检单审核自动生成采购收货单,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_wfjg_inware = -1000 THEN
- rslt = 0
- arg_msg = '选项:[272]外协质检单审核自动生成外协收货单,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- s_sptcheck arg_s_check
- s_CheckBack arg_s_CheckBack
- uo_checkback uo_checkb
- uo_checkb = Create uo_checkback
- uo_buytask uo_task
- uo_task = Create uo_buytask
- uo_task.commit_transaction = sqlca
- uo_order_wfjg uo_wfjg
- uo_wfjg = Create uo_order_wfjg
- uo_wfjg.commit_transaction = sqlca
- uo_order_ml uo_zl
- uo_zl = Create uo_order_ml
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_s_check,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.billtype = 0 THEN
- IF uo_option_if_oa_sptcheck = 1 And uo_option_sptcheck_secaudit = 1 And audit_buildtype = 0 THEN
- IF f_check_if_oaflow(arg_s_check.scid,arg_billid,1684,arg_msg ) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSEIF arg_s_check.billtype = 1 THEN
- IF uo_option_if_oa_sptcheck_wfjg = 1 And uo_option_sptcheck_wfjg_secaudit = 1 And audit_buildtype = 0 THEN
- IF f_check_if_oaflow(arg_s_check.scid,arg_billid,2234,arg_msg ) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- END IF
- IF arg_s_check.flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,不可以再审'
- GOTO ext
- END IF
- //质检单 初审可以不填质检员,初审后终审前填质检员(2张质检单)lhd 20120419
- IF arg_s_check.billemp = '' THEN
- rslt = 0
- arg_msg = "请输入质检员"
- GOTO ext
- END IF
- FOR i = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[i].reltaskid > 0 THEN
- IF arg_s_check.billtype = 0 THEN
- IF uo_task.addmx_sptcheckqty(arg_s_check.scid,arg_s_check.arg_s_mx[i].reltaskid,arg_s_check.arg_s_mx[i].reltaskprintid, arg_s_check.arg_s_mx[i].goodqty * arg_s_check.arg_s_mx[i].rate,arg_msg ,False) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- ELSEIF arg_s_check.billtype = 1 THEN
- IF uo_wfjg.addmx_sptcheckqty(arg_s_check.scid,arg_s_check.arg_s_mx[i].reltaskid,arg_s_check.arg_s_mx[i].reltaskprintid, arg_s_check.arg_s_mx[i].goodqty * arg_s_check.arg_s_mx[i].rate,arg_msg ,False) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- ELSEIF arg_s_check.billtype = 2 THEN
- IF uo_zl.addmx_sptcheckqty(arg_s_check.scid,arg_s_check.arg_s_mx[i].reltaskid, arg_s_check.arg_s_mx[i].goodqty * arg_s_check.arg_s_mx[i].rate,arg_msg ,False) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- END IF
- END IF
- NEXT
- //更新审核标记
- UPDATE u_sptcheck
- SET auditemp = :arg_opemp,
- auditdate = getdate(),
- flag = 1
- WHERE billid = :arg_billid
- And flag = 4;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[i].backqty > 0 THEN ll_backcnt++
- NEXT
- IF ll_backcnt = 0 THEN
- ll_relcheckbackid = 0
- ELSE
- arg_s_CheckBack.scid = arg_s_check.scid
-
- arg_s_CheckBack.billid = 0
- arg_s_CheckBack.billemp = publ_operator
- arg_s_CheckBack.relcode = arg_s_check.billcode
- arg_s_CheckBack.dscrp = "质检单审核自动生成"
- arg_s_CheckBack.sptid = arg_s_check.sptid
- arg_s_CheckBack.billdate = arg_s_check.billdate
- arg_s_CheckBack.billtype = arg_s_check.billtype
- arg_s_CheckBack.auto = 1
- arg_s_CheckBack.relid = arg_s_check.billid
-
- FOR i = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[i].backqty > 0 THEN
- count++
- arg_s_CheckBack.arg_s_mx[count].printid = count
- arg_s_CheckBack.arg_s_mx[count].mtrlid = arg_s_check.arg_s_mx[i].mtrlid
- arg_s_CheckBack.arg_s_mx[count].checkqty = arg_s_check.arg_s_mx[i].checkqty
- arg_s_CheckBack.arg_s_mx[count].lackqty = arg_s_check.arg_s_mx[i].backqty
- arg_s_CheckBack.arg_s_mx[count].status = arg_s_check.arg_s_mx[i].status
- arg_s_CheckBack.arg_s_mx[count].woodcode = arg_s_check.arg_s_mx[i].woodcode
- arg_s_CheckBack.arg_s_mx[count].pcode = arg_s_check.arg_s_mx[i].pcode
-
- arg_s_CheckBack.arg_s_mx[count].relbillid = arg_s_check.arg_s_mx[i].reltaskid
- arg_s_CheckBack.arg_s_mx[count].ifrel = arg_s_check.arg_s_mx[i].iftask
- arg_s_CheckBack.arg_s_mx[count].relprintid = arg_s_check.arg_s_mx[i].reltaskprintid
-
- arg_s_CheckBack.arg_s_mx[count].unit = arg_s_check.arg_s_mx[i].unit
- arg_s_CheckBack.arg_s_mx[count].rate = arg_s_check.arg_s_mx[i].rate
- END IF
- NEXT
-
- IF uo_checkb.Save(arg_s_CheckBack,publ_operator,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- ll_relcheckbackid = uo_checkb.uo_billid
- IF ll_relcheckbackid <= 0 THEN
- arg_msg = '错误的验退单id,请检查'
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF ll_relcheckbackid > 0 THEN
- UPDATE u_sptcheck
- SET relcheckbackid = :ll_relcheckbackid
- Where billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新相关验退单id失败,"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- IF uo_option_sptcheck_inware = 1 And arg_s_check.billtype = 0 THEN
- IF uof_create_inware_buy(arg_billid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ELSEIF uo_option_sptcheck_wfjg_inware = 1 And arg_s_check.billtype = 1 THEN
- IF uof_create_inware_wfjg(arg_billid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ELSEIF sys_option_sptcheck_cp_inware = 1 And arg_s_check.billtype = 2 THEN
- IF uof_create_inware_cp(arg_billid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_checkb
- Destroy uo_task
- Destroy uo_wfjg
- Destroy uo_zl
- RETURN rslt
- end function
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg);Int rslt = 1
- s_sptcheck arg_s_check
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF arg_newdescppart = '' THEN
- rslt = 0
- arg_msg = "要添加内容为空,操作取消"
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_s_check,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag = 0 THEN
- rslt = 0
- arg_msg = '单据未审核,不可以增加备注'
- GOTO ext
- END IF
- UPDATE u_sptcheck
- SET DSCRP = DSCRP+' '+:arg_newdescppart
- WHERE u_sptcheck.billid = :arg_billid
- AND flag = 1;
- IF SQLCA.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致添加备注操作失败"+"~n"+SQLCA.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 1 THEN
- COMMIT;
- ELSE
- ROLLBACK;
- END IF
- Return (rslt)
- end function
- public function integer p_getinfo (long arg_billid, ref s_sptcheck arg_s_check, ref string arg_msg);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- SELECT u_sptcheck.billcode,
- u_sptcheck.billemp,
- u_sptcheck.relcode,
- u_sptcheck.dscrp,
- u_sptcheck.flag,
- u_sptcheck.sptid,
- u_sptcheck.billdate,
- u_sptcheck.relcheckbackid,
- u_sptcheck.billtype,
- u_sptcheck.scid
- INTO
- :arg_s_check.billcode,
- :arg_s_check.billemp,
- :arg_s_check.relcode,
- :arg_s_check.dscrp,
- :arg_s_check.flag,
- :arg_s_check.sptid,
- :arg_s_check.billdate,
- :arg_s_check.relcheckbackid,
- :arg_s_check.billtype,
- :arg_s_check.scid
- FROM u_sptcheck
- Where u_sptcheck.billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = '查询质检单内容失败(错误单据唯一码)'
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
- public function integer save (s_sptcheck arg_s_sptcheck, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1
- Long cnt = 0
- DateTime server_dt
- Long ll_billid,it_mxbt,ll_i,i
- String ls_unit
- String ls_sccode,ls_billcode,ls_reltaskcode
- Int li_mustloca,li_iflocation
- integer li_ifcheck
- IF uo_option_sptcheck_inware = -1000 THEN
- rslt = 0
- arg_msg = '选项:[271]采购质检单审核自动生成采购收货单,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_wfjg_inware = -1000 THEN
- rslt = 0
- arg_msg = '选项:[272]外协质检单审核自动生成外协收货单,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF IsNull(arg_s_sptcheck.scid) THEN arg_s_sptcheck.scid = 0
- IF IsNull(arg_s_sptcheck.billid) THEN arg_s_sptcheck.billid = 0
- IF IsNull(arg_s_sptcheck.billemp) THEN arg_s_sptcheck.billemp = ''
- IF IsNull(arg_s_sptcheck.relcode) THEN arg_s_sptcheck.relcode = ''
- IF IsNull(arg_s_sptcheck.dscrp) THEN arg_s_sptcheck.dscrp = ''
- IF IsNull(arg_s_sptcheck.sptid) THEN arg_s_sptcheck.sptid = 0
- IF IsNull(arg_s_sptcheck.billtype) THEN arg_s_sptcheck.billtype = 0
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_spt
- Where sptid = :arg_s_sptcheck.sptid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,供应商资料"
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "供应商未定义或错误"
- GOTO ext
- END IF
- SELECT Top 1 getdate() Into :server_dt From u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- it_mxbt = UpperBound(arg_s_sptcheck.arg_s_mx)
- IF it_mxbt <= 0 THEN
- rslt = 0
- arg_msg = "没有正确明细内容"
- GOTO ext
- END IF
- FOR ll_i = 1 To it_mxbt
- ls_unit = ''
- SELECT unit, ifcheck INTO :ls_unit, :li_ifcheck
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :arg_s_sptcheck.arg_s_mx[ll_i].mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',物料资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- if li_ifcheck = 1 then
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',物料已设置不质检进仓,不能建立质检单'
- rslt = 0
- GOTO ext
- end if
-
- IF ls_unit = arg_s_sptcheck.arg_s_mx[ll_i].unit And arg_s_sptcheck.arg_s_mx[ll_i].rate <> 1 THEN
- arg_msg = '验退单,行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',物料资料采购单位与库存单位相同,但转换率不为1,请检查!'
- rslt = 0
- GOTO ext
- END IF
-
- IF ls_unit <> arg_s_sptcheck.arg_s_mx[ll_i].unit And arg_s_sptcheck.arg_s_mx[ll_i].rate = 1 THEN
- arg_msg = '验退单,行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',物料资料采购单位与库存单位不相同,但转换率为1,请检查!'
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_s_sptcheck.arg_s_mx[ll_i].goodqty <> 0 Or arg_s_sptcheck.arg_s_mx[ll_i].backqty <> 0 Or arg_s_sptcheck.arg_s_mx[ll_i].notqty <> 0 THEN
- IF arg_s_sptcheck.arg_s_mx[ll_i].checkqty <> arg_s_sptcheck.arg_s_mx[ll_i].goodqty + arg_s_sptcheck.arg_s_mx[ll_i].backqty + arg_s_sptcheck.arg_s_mx[ll_i].notqty THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',入库数与退回数、不足数的和必须等于来单质检数,请检查!'
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- IF arg_s_sptcheck.arg_s_mx[ll_i].goodqty <> 0 And arg_s_sptcheck.arg_s_mx[ll_i].storageid = 0 And (arg_s_sptcheck.billtype = 0 And uo_option_sptcheck_inware = 1 Or arg_s_sptcheck.billtype = 1 And uo_option_sptcheck_wfjg_inware = 1) THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',请选择仓库!'
- rslt = 0
- GOTO ext
- END IF
-
-
- IF arg_s_sptcheck.arg_s_mx[ll_i].iftask = 0 THEN
- ls_reltaskcode = ''
- ELSE
- IF arg_s_sptcheck.arg_s_mx[ll_i].reltaskid = 0 THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',请选择订单!'
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_s_sptcheck.billtype = 0 THEN
- SELECT taskcode INTO :ls_reltaskcode
- FROM u_buytask WHERE
- scid = :arg_s_sptcheck.scid AND
- taskid = :arg_s_sptcheck.arg_s_mx[ll_i].reltaskid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',查询订单失败,请检查!'
- rslt = 0
- GOTO ext
- END IF
- ELSEIF arg_s_sptcheck.billtype = 1 THEN
- SELECT taskcode INTO :ls_reltaskcode
- FROM u_order_wfjg WHERE
- scid = :arg_s_sptcheck.scid AND
- wfjgid = :arg_s_sptcheck.arg_s_mx[ll_i].reltaskid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',查询订单失败,请检查!'
- rslt = 0
- GOTO ext
- END IF
- ELSEIF arg_s_sptcheck.billtype = 2 THEN
- SELECT ordercode INTO :ls_reltaskcode
- FROM u_order_ml
- WHERE scid = :arg_s_sptcheck.scid AND
- orderid = :arg_s_sptcheck.arg_s_mx[ll_i].reltaskid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',查询指令单失败,请检查!'
- rslt = 0
- GOTO ext
- END IF
- END IF
- END IF
-
- arg_s_sptcheck.arg_s_mx[ll_i].reltaskcode = ls_reltaskcode
-
- //检查仓库仓位
- IF uo_option_sptcheck_inware = 1 THEN
- IF arg_s_sptcheck.arg_s_mx[ll_i].storageid = 0 THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',未设置仓库,请检查!'
- rslt = 0
- GOTO ext
- END IF
-
- SELECT mustloca,iflocation Into :li_mustloca,:li_iflocation From u_storage Where storageid = :arg_s_sptcheck.arg_s_mx[ll_i].storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',查询仓库仓位属性,请检查!'
- rslt = 0
- GOTO ext
- END IF
-
- IF li_iflocation = 0 THEN
- arg_s_sptcheck.arg_s_mx[ll_i].Location = ''
- ELSE
- IF li_mustloca = 1 And arg_s_sptcheck.arg_s_mx[ll_i].Location = '' THEN
- arg_msg = '行:'+String(arg_s_sptcheck.arg_s_mx[ll_i].printid)+',仓库仓位必须填写,请检查!'
- rslt = 0
- GOTO ext
- END IF
- END IF
- END IF
- NEXT
- IF arg_s_sptcheck.billid = 0 THEN
-
- ll_billid = f_sys_scidentity(0,"u_sptcheck","billid",arg_msg,True,id_sqlca)
-
- IF ll_billid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF f_get_sccode(arg_s_sptcheck.scid,sqlca,ls_sccode,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_s_sptcheck.billtype = 0 THEN
- ls_billcode = getid(arg_s_sptcheck.scid,ls_sccode + 'GJ',Date(server_dt),False,sqlca)
- ELSE
- ls_billcode = getid(arg_s_sptcheck.scid,ls_sccode + 'AC',Date(server_dt),False,sqlca)
- END IF
- IF ls_billcode = "err" THEN
- rslt = 0
- arg_msg = "无法获取单据编号"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
- INSERT INTO u_sptcheck
- ( scid,
- billid,
- billcode,
- sptid,
- indate,
- billdate,
- billemp,
- relcode,
- dscrp,
- billtype,
- opdate,
- opemp)
- VALUES (
- :arg_s_sptcheck.scid,
- :ll_billid,
- :ls_billcode,
- :arg_s_sptcheck.sptid,
- :arg_s_sptcheck.indate,
- :arg_s_sptcheck.billdate,
- :arg_s_sptcheck.billemp,
- :arg_s_sptcheck.relcode,
- :arg_s_sptcheck.dscrp,
- :arg_s_sptcheck.billtype,
- getdate(),
- :arg_opemp) ;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致建立单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- uo_billid = ll_billid
- ELSE
- UPDATE u_sptcheck
- SET billemp = :arg_s_sptcheck.billemp,
- indate = :arg_s_sptcheck.indate,
- billdate = :arg_s_sptcheck.billdate,
- sptid = :arg_s_sptcheck.sptid,
- moddate = getdate(),
- modemp = :arg_opemp,
- relcode = :arg_s_sptcheck.relcode,
- dscrp = :arg_s_sptcheck.dscrp,
- billtype = :arg_s_sptcheck.billtype
- WHERE billid = :arg_s_sptcheck.billid
- And flag = 0;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- DELETE FROM u_sptcheck_mx
- Where billid = :arg_s_sptcheck.billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- // FOR i = 1 To it_mxbt
- // INSERT INTO u_sptcheck_mx
- // ( billid,
- // printid,
- // mtrlid,
- // checktype,
- // checkqty,
- // badqty,
- // goodqty,
- // reason,
- // mxdscrp,
- // iftask,
- // reltaskid,
- // reltaskprintid,
- // reltaskcode,
- // backqty,
- // notqty,
- // status,
- // woodcode,
- // pcode,
- // unit,
- // rate,
- // badinqty,
- // storageid,
- // location)
- // VALUES (:arg_s_sptcheck.billid,
- // :arg_s_sptcheck.arg_s_mx[i].printid,
- // :arg_s_sptcheck.arg_s_mx[i].mtrlid,
- // :arg_s_sptcheck.arg_s_mx[i].checktype,
- // :arg_s_sptcheck.arg_s_mx[i].checkqty,
- // :arg_s_sptcheck.arg_s_mx[i].badqty,
- // :arg_s_sptcheck.arg_s_mx[i].goodqty,
- // :arg_s_sptcheck.arg_s_mx[i].reason,
- // :arg_s_sptcheck.arg_s_mx[i].mxdscrp,
- // :arg_s_sptcheck.arg_s_mx[i].iftask,
- // :arg_s_sptcheck.arg_s_mx[i].reltaskid,
- // :arg_s_sptcheck.arg_s_mx[i].reltaskprintid,
- // :arg_s_sptcheck.arg_s_mx[i].reltaskcode,
- // :arg_s_sptcheck.arg_s_mx[i].backqty,
- // :arg_s_sptcheck.arg_s_mx[i].notqty,
- // :arg_s_sptcheck.arg_s_mx[i].status,
- // :arg_s_sptcheck.arg_s_mx[i].woodcode,
- // :arg_s_sptcheck.arg_s_mx[i].pcode,
- // :arg_s_sptcheck.arg_s_mx[i].unit,
- // :arg_s_sptcheck.arg_s_mx[i].rate,
- // :arg_s_sptcheck.arg_s_mx[i].badinqty,
- // :arg_s_sptcheck.arg_s_mx[i].storageid,
- // :arg_s_sptcheck.arg_s_mx[i].Location);
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- // GOTO ext
- // END IF
- // NEXT
-
- uo_billid = arg_s_sptcheck.billid
- END IF
- FOR i = 1 To it_mxbt
- INSERT INTO u_sptcheck_mx
- ( billid,
- printid,
- mtrlid,
- checktype,
- checkqty,
- badqty,
- goodqty,
- reason,
- mxdscrp,
- iftask,
- reltaskid,
- reltaskprintid,
- reltaskcode,
- backqty,
- notqty,
- status,
- woodcode,
- pcode,
- unit,
- rate,
- badinqty,
- storageid,
- location)
- VALUES (:uo_billid,
- :arg_s_sptcheck.arg_s_mx[i].printid,
- :arg_s_sptcheck.arg_s_mx[i].mtrlid,
- :arg_s_sptcheck.arg_s_mx[i].checktype,
- :arg_s_sptcheck.arg_s_mx[i].checkqty,
- :arg_s_sptcheck.arg_s_mx[i].badqty,
- :arg_s_sptcheck.arg_s_mx[i].goodqty,
- :arg_s_sptcheck.arg_s_mx[i].reason,
- :arg_s_sptcheck.arg_s_mx[i].mxdscrp,
- :arg_s_sptcheck.arg_s_mx[i].iftask,
- :arg_s_sptcheck.arg_s_mx[i].reltaskid,
- :arg_s_sptcheck.arg_s_mx[i].reltaskprintid,
- :arg_s_sptcheck.arg_s_mx[i].reltaskcode,
- :arg_s_sptcheck.arg_s_mx[i].backqty,
- :arg_s_sptcheck.arg_s_mx[i].notqty,
- :arg_s_sptcheck.arg_s_mx[i].status,
- :arg_s_sptcheck.arg_s_mx[i].woodcode,
- :arg_s_sptcheck.arg_s_mx[i].pcode,
- :arg_s_sptcheck.arg_s_mx[i].unit,
- :arg_s_sptcheck.arg_s_mx[i].rate,
- :arg_s_sptcheck.arg_s_mx[i].badinqty,
- :arg_s_sptcheck.arg_s_mx[i].storageid,
- :arg_s_sptcheck.arg_s_mx[i].Location);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer getinfo (long arg_billid, ref s_sptcheck arg_ref_s_ch, ref 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
- IF p_getinfo(arg_billid,arg_ref_s_ch,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //用游标读取明细
- DECLARE cur_mx CURSOR FOR
- SELECT u_sptcheck_mx.printid,u_sptcheck_mx.mtrlid,u_sptcheck_mx.checktype,
- u_sptcheck_mx.checkqty,u_sptcheck_mx.badqty,u_sptcheck_mx.goodqty,
- u_sptcheck_mx.reason,u_sptcheck_mx.mxdscrp,u_sptcheck_mx.iftask,
- u_sptcheck_mx.reltaskid,u_sptcheck_mx.reltaskprintid,u_sptcheck_mx.reltaskcode,
- u_sptcheck_mx.backqty,u_sptcheck_mx.notqty,u_sptcheck_mx.status,
- u_sptcheck_mx.woodcode,u_sptcheck_mx.pcode,u_sptcheck_mx.unit,
- u_sptcheck_mx.rate,u_sptcheck_mx.badinqty,u_sptcheck_mx.storageid,
- u_mtrldef.mtrlcode,u_sptcheck_mx.location
- FROM u_sptcheck_mx LEFT OUTER JOIN
- u_mtrldef ON u_sptcheck_mx.mtrlid = u_mtrldef.mtrlid
- WHERE u_sptcheck_mx.billid = :arg_billid
- Order By u_sptcheck_mx.printid;
-
- OPEN cur_mx;
- FETCH cur_mx
- INTO :arg_ref_s_ch.arg_s_mx[i].printid,
- :arg_ref_s_ch.arg_s_mx[i].mtrlid,
- :arg_ref_s_ch.arg_s_mx[i].checktype,
- :arg_ref_s_ch.arg_s_mx[i].checkqty,
- :arg_ref_s_ch.arg_s_mx[i].badqty,
- :arg_ref_s_ch.arg_s_mx[i].goodqty,
- :arg_ref_s_ch.arg_s_mx[i].reason,
- :arg_ref_s_ch.arg_s_mx[i].mxdscrp,
- :arg_ref_s_ch.arg_s_mx[i].iftask,
- :arg_ref_s_ch.arg_s_mx[i].reltaskid,
- :arg_ref_s_ch.arg_s_mx[i].reltaskprintid,
- :arg_ref_s_ch.arg_s_mx[i].reltaskcode,
- :arg_ref_s_ch.arg_s_mx[i].backqty,
- :arg_ref_s_ch.arg_s_mx[i].notqty,
- :arg_ref_s_ch.arg_s_mx[i].status,
- :arg_ref_s_ch.arg_s_mx[i].woodcode,
- :arg_ref_s_ch.arg_s_mx[i].pcode,
- :arg_ref_s_ch.arg_s_mx[i].unit,
- :arg_ref_s_ch.arg_s_mx[i].rate,
- :arg_ref_s_ch.arg_s_mx[i].badinqty,
- :arg_ref_s_ch.arg_s_mx[i].storageid,
- :arg_ref_s_ch.arg_s_mx[i].mtrlcode,
- :arg_ref_s_ch.arg_s_mx[i].location;
- DO WHILE sqlca.SQLCode = 0
- i++
- FETCH cur_mx
- INTO :arg_ref_s_ch.arg_s_mx[i].printid,
- :arg_ref_s_ch.arg_s_mx[i].mtrlid,
- :arg_ref_s_ch.arg_s_mx[i].checktype,
- :arg_ref_s_ch.arg_s_mx[i].checkqty,
- :arg_ref_s_ch.arg_s_mx[i].badqty,
- :arg_ref_s_ch.arg_s_mx[i].goodqty,
- :arg_ref_s_ch.arg_s_mx[i].reason,
- :arg_ref_s_ch.arg_s_mx[i].mxdscrp,
- :arg_ref_s_ch.arg_s_mx[i].iftask,
- :arg_ref_s_ch.arg_s_mx[i].reltaskid,
- :arg_ref_s_ch.arg_s_mx[i].reltaskprintid,
- :arg_ref_s_ch.arg_s_mx[i].reltaskcode,
- :arg_ref_s_ch.arg_s_mx[i].backqty,
- :arg_ref_s_ch.arg_s_mx[i].notqty,
- :arg_ref_s_ch.arg_s_mx[i].status,
- :arg_ref_s_ch.arg_s_mx[i].woodcode,
- :arg_ref_s_ch.arg_s_mx[i].pcode,
- :arg_ref_s_ch.arg_s_mx[i].unit,
- :arg_ref_s_ch.arg_s_mx[i].rate,
- :arg_ref_s_ch.arg_s_mx[i].badinqty,
- :arg_ref_s_ch.arg_s_mx[i].storageid,
- :arg_ref_s_ch.arg_s_mx[i].mtrlcode,
- :arg_ref_s_ch.arg_s_mx[i].location;
- LOOP
- CLOSE cur_mx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM u_sptcheck_mx
- Where billid = :arg_billid;
- IF sqlca.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
- ext:
- RETURN rslt
- end function
- public function integer uof_add_inqty (long arg_billid, long arg_printid, decimal arg_inqty, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- s_sptcheck arg_s_check
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误送检单唯一码'
- GOTO ext
- END IF
- IF arg_inqty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_s_check,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag <> 1 THEN
- rslt = 0
- ARG_MSG = '送检单只有在审核状态下才能操作'
- GOTO ext
- END IF
- Decimal ld_goodqty,ld_inqty
- SELECT u_sptcheck_mx.goodqty,
- u_sptcheck_mx.inqty
- INTO :ld_goodqty,
- :ld_inqty
- FROM u_sptcheck_mx
- WHERE ( u_sptcheck_mx.billid = :arg_billid ) AND
- ( u_sptcheck_mx.printid = :arg_printid );
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "送检单,查询行"+string(arg_printid)+",资料失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF ld_goodqty < ld_inqty + arg_inqty THEN
- rslt = 0
- arg_msg = '送检单,行:'+string(arg_printid)+",物料未完成数量只有,"+String(ld_goodqty - ld_inqty,'#,##0.0###')+",不能入仓"+String(arg_inqty,'#,##0.0#')
- GOTO ext
- END IF
- UPDATE u_sptcheck_mx
- SET inqty = inqty + :arg_inqty
- WHERE ( u_sptcheck_mx.billid = :arg_billid ) AND
- ( u_sptcheck_mx.printid = :arg_printid );
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '送检单,行'+string(arg_printid)+",更新入仓数操作失败"+"~n 原因,"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer first_audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long i,ll_relcheckbackid,ll_backcnt,count
- IF uo_option_if_oa_sptcheck = -1000 THEN
- rslt = 0
- arg_msg = '选项:[265]供应商采购质检单使用OA审批流程,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_secaudit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[267]供应商采购质检单使用二级审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_if_oa_sptcheck_wfjg = -1000 THEN
- rslt = 0
- arg_msg = '选项:[266]供应商外协质检单使用OA审批流程,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_wfjg_secaudit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[268]供应商外协质检单使用二级审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- s_sptcheck arg_s_check
- IF arg_billid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_s_check,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag <> 0 THEN
- rslt = 0
- ARG_MSG = '单据已经审核,不可以再审'
- GOTO ext
- END IF
- //质检单 初审可以不填质检员,初审后终审前填质检员(2张质检单)lhd 20120419
- //IF arg_s_check.billemp = '' THEN
- // rslt = 0
- // ARG_MSG = "请输入质检员"
- // GOTO ext
- //END IF
- //更新审核标记
- UPDATE u_sptcheck
- SET first_auditemp = :arg_opemp,
- first_auditdate = getdate(),
- flag = 4
- WHERE billid = :arg_billid
- And flag = 0;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF arg_s_check.billtype = 0 THEN
- IF sys_option_if_oa_sptcheck = 1 And sys_option_sptcheck_secaudit = 1 THEN
- IF f_oa(sqlca,False,ARG_MSG,1684,arg_s_check.scid,arg_billid,arg_s_check.billcode,arg_s_check.relcode,arg_s_check.dscrp) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSEIF arg_s_check.billtype = 1 THEN
- IF sys_option_if_oa_sptcheck_wfjg = 1 And sys_option_sptcheck_wfjg_secaudit = 1 THEN
- IF f_oa(sqlca,False,ARG_MSG,2234,arg_s_check.scid,arg_billid,arg_s_check.billcode,arg_s_check.relcode,arg_s_check.dscrp) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer first_caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long i,ll_relcheckbackid,ll_backcnt,count
- DateTime null_dt
- SetNull(null_dt)
- IF uo_option_if_oa_sptcheck = -1000 THEN
- rslt = 0
- arg_msg = '选项:[265]供应商采购质检单使用OA审批流程,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_secaudit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[267]供应商采购质检单使用二级审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_if_oa_sptcheck_wfjg = -1000 THEN
- rslt = 0
- arg_msg = '选项:[266]供应商外协质检单使用OA审批流程,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_sptcheck_wfjg_secaudit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[268]供应商外协质检单使用二级审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- s_sptcheck arg_s_check
- IF arg_billid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_s_check,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag <> 4 THEN
- rslt = 0
- ARG_MSG = '单据未审核,不可以撤审'
- GOTO ext
- END IF
- IF arg_s_check.billtype = 0 THEN
- IF uo_option_if_oa_sptcheck = 1 And uo_option_sptcheck_secaudit = 1 And audit_buildtype = 0 THEN
- IF f_check_if_oaflow_caudit(arg_s_check.scid,arg_billid,1684,arg_msg ) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSEIF arg_s_check.billtype = 1 THEN
- IF uo_option_if_oa_sptcheck_wfjg = 1 And uo_option_sptcheck_wfjg_secaudit = 1 And audit_buildtype = 0 THEN
- IF f_check_if_oaflow_caudit(arg_s_check.scid,arg_billid,2234,arg_msg ) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- END IF
- //更新审核标记
- UPDATE u_sptcheck
- SET first_auditemp = '',
- first_auditdate = :null_dt,
- flag = 0
- WHERE billid = :arg_billid
- AND flag = 4;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_billemp (long arg_billid, string arg_billemp, ref string arg_msg);Int rslt = 1
- s_sptcheck arg_s_check
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF arg_billemp = '' THEN
- rslt = 0
- arg_msg = "质检员内容为空,操作取消"
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_s_check,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_check.flag <> 4 THEN
- rslt = 0
- arg_msg = '单据非待初审状态,不可以修改质检员'
- GOTO ext
- END IF
- UPDATE u_sptcheck
- SET billemp = :arg_billemp
- WHERE u_sptcheck.billid = :arg_billid
- AND flag = 4;
- IF SQLCA.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致修改质检员操作失败"+"~n"+SQLCA.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 1 THEN
- COMMIT;
- ELSE
- ROLLBACK;
- END IF
- Return (rslt)
- end function
- public function integer uof_create_inware_buy (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_storageid_arr[]
- Long ll_mxbt,cnt
- Long i,j
- Long ll_moneyid,ll_moneyid_native,ll_banktypeid,ll_banktypeid_mxbuytask
- Long ll_mx_buytaskmoneyid,ll_mx_buytaskmoneyid_cnt
- Long ll_moneyid_check
- Decimal ld_mrate,ld_mrate_native,ld_mrate_mxbuytask
- Decimal ld_enprice,ld_rebate
- Long ll_sptid
- DateTime server_dt
- decimal ld_tax
- string ls_plancode
- SELECT Top 1 getdate() Into :server_dt From u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- s_sptcheck arg_s_check
- uo_inware_buy uo_ware
- uo_ware = Create uo_inware_buy
- uo_ware.commit_transaction = sqlca
- IF getinfo(arg_billid,arg_s_check,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- SELECT moneyid,rate INTO :ll_moneyid_native,:ld_mrate_native
- FROM cw_currency
- Where native = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询本位币资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- FOR i = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[i].goodqty <> 0 And arg_s_check.arg_s_mx[i].storageid > 0 THEN
-
- IF arg_s_check.arg_s_mx[i].reltaskid > 0 THEN
- SELECT moneyid,mrate,banktypeid
- INTO :ll_mx_buytaskmoneyid,:ld_mrate_mxbuytask,:ll_banktypeid_mxbuytask
- FROM u_buytask
- WHERE scid = :arg_s_check.scid
- And taskid = :arg_s_check.arg_s_mx[i].reltaskid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询明细行:'+String(i)+',对应采购订单币种失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ELSE
- ll_mx_buytaskmoneyid = ll_moneyid_native
- ld_mrate_mxbuytask = ld_mrate_native
- END IF
-
- IF ll_moneyid_check <> ll_mx_buytaskmoneyid THEN
- ll_mx_buytaskmoneyid_cnt++
- ll_moneyid_check = ll_mx_buytaskmoneyid
- END IF
-
- FOR j = 1 To ll_mxbt
- IF arg_s_check.arg_s_mx[i].storageid = ll_storageid_arr[j] THEN
- GOTO _next
- END IF
- NEXT
-
- ll_mxbt++
- ll_storageid_arr[ll_mxbt] = arg_s_check.arg_s_mx[i].storageid
- END IF
- _next:
- NEXT
- IF ll_mx_buytaskmoneyid_cnt > 1 THEN
- arg_msg = '质检单明细对应订单币种多于1个,不能自动生成采购收货单'
- rslt = 0
- GOTO ext
- END IF
- SELECT banktypeid
- INTO :ll_banktypeid
- FROM u_spt
- Where sptid = :arg_s_check.sptid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询供应商默认结算方式失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- //每个仓库建立一张收货单
- FOR i = 1 To ll_mxbt
- IF uo_ware.newbegin(arg_s_check.scid,1,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
-
- uo_ware.indate = server_dt
- uo_ware.inrep = publ_operator
- uo_ware.part = arg_s_check.billcode
- uo_ware.dscrp = arg_s_check.dscrp //'质检单:'+arg_s_check.billcode+'审核自动生成'
- uo_ware.storageid = ll_storageid_arr[i]
- uo_ware.sptid = arg_s_check.sptid
- uo_ware.otheramt = 0
- IF ll_banktypeid_mxbuytask > 0 THEN
- uo_ware.relint_1 = ll_banktypeid_mxbuytask
- ELSE
- uo_ware.relint_1 = ll_banktypeid
- END IF
- uo_ware.relid = 0
- uo_ware.thflag = 0
- uo_ware.moneyid = ll_mx_buytaskmoneyid
- uo_ware.mrate = ld_mrate_mxbuytask
-
-
- cnt = 0
- FOR j = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[j].goodqty <> 0 And arg_s_check.arg_s_mx[j].storageid = ll_storageid_arr[i] THEN
- cnt++
-
- SELECT u_buyTaskMx.enprice,
- u_buyTaskMx.rebate,
- u_SaleTask.CusID,
- u_buyTaskMx.tax,
- u_buyTaskMx.plancode
- INTO :ld_enprice,:ld_rebate,:ll_sptid,:ld_tax, :ls_plancode
- FROM u_SaleTaskMx INNER JOIN
- u_SaleTask ON u_SaleTaskMx.scid = u_SaleTask.scid AND
- u_SaleTaskMx.TaskID = u_SaleTask.TaskID RIGHT OUTER JOIN
- u_buyTaskMx ON u_SaleTaskMx.printid = u_buyTaskMx.taskmxprintid AND
- u_SaleTaskMx.TaskID = u_buyTaskMx.orderid AND
- u_SaleTaskMx.scid = u_buyTaskMx.scid RIGHT OUTER JOIN
- u_sptcheck_mx INNER JOIN
- u_sptcheck ON u_sptcheck_mx.billid = u_sptcheck.billid ON
- u_buyTaskMx.scid = u_sptcheck.scid AND
- u_buyTaskMx.TaskID = u_sptcheck_mx.reltaskid AND
- u_buyTaskMx.printid = u_sptcheck_mx.reltaskprintid
- WHERE u_sptcheck_mx.billid = :arg_billid
- And u_sptcheck_mx.printid = :arg_s_check.arg_s_mx[j].printid;
- IF sqlca.SQLCode <> 0 THEN
- ld_enprice = 0
- ld_rebate = 1
- ll_sptid = 0
- ls_plancode = ''
- END IF
-
- IF IsNull(ld_enprice) THEN ld_enprice = 0
- IF IsNull(ld_rebate) THEN ld_rebate = 1
- IF IsNull(ll_sptid) THEN ll_sptid = 0
- if isnull(ld_tax) then ld_tax = 0
- if isnull(ls_plancode) then ls_plancode = ''
-
- IF uo_ware.acceptmx(cnt,&
- arg_s_check.arg_s_mx[j].mtrlid,&
- arg_s_check.arg_s_mx[j].mtrlcode,&
- ls_plancode,&
- arg_s_check.arg_s_mx[j].status,&
- arg_s_check.arg_s_mx[j].goodqty,&
- ld_enprice,&
- ld_rebate,&
- arg_s_check.arg_s_mx[j].mxdscrp,&
- arg_msg,0,&
- arg_s_check.arg_s_mx[j].reltaskid,&
- arg_s_check.arg_s_mx[j].iftask,&
- arg_s_check.arg_s_mx[j].woodcode,&
- arg_s_check.arg_s_mx[j].pcode,&
- ll_sptid,&
- arg_s_check.arg_s_mx[j].unit,&
- arg_s_check.arg_s_mx[j].rate,&
- arg_s_check.arg_s_mx[j].goodqty * arg_s_check.arg_s_mx[j].rate ,&
- arg_s_check.arg_s_mx[j].reltaskprintid,&
- arg_s_check.arg_s_mx[j].goodqty,&
- '','',&
- arg_billid,&
- arg_s_check.arg_s_mx[j].printid,&
- '',&
- arg_s_check.arg_s_mx[j].location,&
- arg_s_check.arg_s_mx[j].goodqty,&
- ld_tax) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- END IF
- NEXT
-
- IF cnt > 0 THEN
- IF uo_ware.Save(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_ware
- RETURN rslt
- end function
- public function integer uof_del_inware_buy (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_scid,ll_cnt
- Long ll_i
- Long ll_inwareid_arr[]
- String ls_inwarecode_arr[]
- uo_inware_buy uo_ware
- uo_ware = Create uo_inware_buy
- uo_ware.commit_transaction = sqlca
- SELECT scid
- INTO :ll_scid
- FROM u_sptcheck
- Where billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询质检单分部失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ll_cnt = 1
- DECLARE cur_inware CURSOR FOR
- SELECT distinct u_inware.inwareid, u_inware.inwarecode
- FROM u_inwaremx INNER JOIN
- u_inware ON u_inwaremx.scid = u_inware.scid AND
- u_inwaremx.inwareid = u_inware.inwareid
- WHERE u_inwaremx.relbillid = :arg_billid
- And u_inwaremx.scid = :ll_scid
- and u_inware.billtype = 1;
-
- OPEN cur_inware;
- FETCH cur_inware Into :ll_inwareid_arr[ll_cnt],:ls_inwarecode_arr[ll_cnt];
- DO WHILE sqlca.SQLCode = 0
- ll_cnt++
- FETCH cur_inware Into :ll_inwareid_arr[ll_cnt],:ls_inwarecode_arr[ll_cnt];
- LOOP
- CLOSE cur_inware;
- FOR ll_i = 1 To ll_cnt - 1
- IF uo_ware.del(ll_scid,ll_inwareid_arr[ll_i],arg_msg,False) = 0 THEN
- rslt = 0
- arg_msg = '删除相关采购收货单:'+ls_inwarecode_arr[ll_i]+'失败,'+arg_msg
- GOTO ext
- END IF
-
- //删除日志
- if f_setsysoplog('采购收货单','送检单撤审自动删除,id:'+string(ll_inwareid_arr[ll_i])+',code:'+ls_inwarecode_arr[ll_i],arg_msg,false) = 0 then
- rslt = 0
- arg_msg = '删除相关采购收货单:'+ls_inwarecode_arr[ll_i]+',记录操作日志失败,'+arg_msg
- GOTO ext
- end if
-
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_ware
- RETURN rslt
- end function
- public function integer uof_create_inware_wfjg (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
- Int rslt = 1
- IF uo_option_wfjg_price_cmp = -1000 THEN
- rslt = 0
- arg_msg = '选项:[284]外协收货单外协件成本价计算方法,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- s_mtrlprice_mx arg_s_mx[]
- Long ll_storageid_arr[]
- Long ll_mxbt,cnt,cnt_m,cnt_out
- Long i,j,k,ll_i, ll_j
- Long ll_moneyid,ll_banktypeid
- Decimal ld_mrate,ld_enprice,ld_rebate,ld_jgprice
- String ls_jgdscrp
- Long ll_sptid
- DateTime server_dt
- String ls_pfcode
- Int li_wfjgdec
- Decimal ld_price,ld_mprice,ld_outcost,ld_wagecost,ld_eqprice
- Decimal mtrlwaresum_qty,r_qty,i_qty,ins_planprice,ins_price,ld_qty_tmp
- //,ins_mtrlwareid
- Decimal ld_qty_out,ld_taxrate
- Decimal ld_cost_this,ld_cost_tmp
- Long ll_mxbt_cost
- Long ll_tmp
- Long ll_mtrlwareid[]
- Decimal lde_noallocqty[]
- Decimal lde_cost[]
- Decimal lde_restqty
- string ls_plancode
- SELECT Top 1 getdate() Into :server_dt From u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- s_sptcheck arg_s_check
- s_mtrldef_wfjg_array s_wfjg,s_empty
- uo_inware_wfjg uo_ware
- uo_ware = Create uo_inware_wfjg
- uo_ware.commit_transaction = sqlca
- uo_cmplcost uo_cmpl
- uo_cmpl = Create uo_cmplcost
- IF getinfo(arg_billid,arg_s_check,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- SELECT banktypeid
- INTO :ll_banktypeid
- FROM u_spt
- Where sptid = :arg_s_check.sptid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询供应商默认结算方式失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF uo_ware.newbegin(arg_s_check.scid,4,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- uo_ware.indate = server_dt
- uo_ware.inrep = publ_operator
- uo_ware.part = arg_s_check.billcode
- uo_ware.dscrp = arg_s_check.dscrp // '质检单:'+arg_s_check.billcode+'审核自动生成'
- uo_ware.sptid = arg_s_check.sptid
- uo_ware.relint_1 = ll_banktypeid
- uo_ware.thflag = 0
- cnt = 0
- FOR j = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[j].goodqty <> 0 And arg_s_check.arg_s_mx[j].storageid > 0 THEN
- cnt++
-
- SELECT u_order_wfjgMx.price,
- u_order_wfjgMx.jgdscrp,
- u_order_wfjgMx.orderid,
- u_order_wfjgMx.taxrate,
- u_order_wfjgMx.plancode
- INTO :ld_jgprice,
- :ls_jgdscrp,
- :ll_sptid,
- :ld_taxrate,
- :ls_plancode
- FROM u_order_wfjgMx RIGHT OUTER JOIN
- u_sptcheck_mx ON u_order_wfjgMx.wfjgID = u_sptcheck_mx.reltaskid AND
- u_order_wfjgMx.printid = u_sptcheck_mx.reltaskprintid
- WHERE u_sptcheck_mx.billid = :arg_billid
- And u_sptcheck_mx.printid = :arg_s_check.arg_s_mx[j].printid;
- IF sqlca.SQLCode <> 0 THEN
- ld_jgprice = 0
- ll_sptid = 0
- ls_jgdscrp = ''
- ls_plancode = ''
- END IF
-
- IF IsNull(ld_jgprice) THEN ld_jgprice = 0
- IF IsNull(ll_sptid) THEN ll_sptid = 0
- IF IsNull(ls_jgdscrp) THEN ls_jgdscrp = ''
- IF IsNull(ls_plancode) THEN ls_plancode = ''
-
- s_wfjg = s_empty
- ls_pfcode = f_get_dft_pf(arg_s_check.arg_s_mx[j].mtrlid)
- k = 1
- IF arg_s_check.arg_s_mx[j].iftask = 0 THEN
- DECLARE cur_inmx CURSOR FOR
- SELECT u_PrdPF.SonMtrlid,
- u_mtrldef.unit,
- u_mtrldef.wfjgdec,
- :arg_s_check.arg_s_mx[j].goodqty * :arg_s_check.arg_s_mx[j].rate * u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss,
- u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss
- FROM u_PrdPF INNER JOIN
- u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid
- WHERE ( u_PrdPF.mtrlid = :arg_s_check.arg_s_mx[j].mtrlid )
- And ( u_PrdPF.pfcode = :ls_pfcode ) ;
- OPEN cur_inmx;
- FETCH cur_inmx INTO :s_wfjg.mtrlid[k],:s_wfjg.unit[k],
- :li_wfjgdec,:s_wfjg.qty[k],:s_wfjg.Sonscale[k];
-
- s_wfjg.qty[k] = Round(s_wfjg.qty[k],li_wfjgdec)
- s_wfjg.Sonscale[k] = Round(s_wfjg.Sonscale[k],li_wfjgdec)
-
- DO WHILE sqlca.SQLCode = 0
- k++
- FETCH cur_inmx INTO :s_wfjg.mtrlid[k],:s_wfjg.unit[k],
- :li_wfjgdec,:s_wfjg.qty[k],:s_wfjg.Sonscale[k];
-
- s_wfjg.qty[k] = Round(s_wfjg.qty[k],li_wfjgdec)
- s_wfjg.Sonscale[k] = Round(s_wfjg.Sonscale[k],li_wfjgdec)
-
- LOOP
- CLOSE cur_inmx;
- ELSE
- DECLARE cur_outmx CURSOR FOR
- SELECT u_order_wfjgmx_out_mx.mtrlid,
- u_mtrldef.unit,
- u_mtrldef.wfjgdec,
- :arg_s_check.arg_s_mx[j].goodqty * :arg_s_check.arg_s_mx[j].rate * (u_order_wfjgmx_out_mx.qty / u_order_wfjgMx.Qty ),
- (u_order_wfjgmx_out_mx.qty / u_order_wfjgMx.Qty )
- FROM u_order_wfjgmx_out_mx INNER JOIN
- u_mtrldef ON u_order_wfjgmx_out_mx.mtrlid = u_mtrldef.mtrlid INNER JOIN
- u_order_wfjgMx ON u_order_wfjgmx_out_mx.scid = u_order_wfjgMx.scid AND
- u_order_wfjgmx_out_mx.wfjgid = u_order_wfjgMx.wfjgID AND
- u_order_wfjgmx_out_mx.relprintid = u_order_wfjgMx.printid
- WHERE u_order_wfjgmx_out_mx.scid = :arg_s_check.scid
- AND u_order_wfjgmx_out_mx.wfjgid = :arg_s_check.arg_s_mx[j].reltaskid
- AND u_order_wfjgmx_out_mx.relprintid = :arg_s_check.arg_s_mx[j].reltaskprintid
- And u_order_wfjgMx.qty > 0 ;
- OPEN cur_outmx;
- FETCH cur_outmx INTO :s_wfjg.mtrlid[k],:s_wfjg.unit[k],
- :li_wfjgdec,:s_wfjg.qty[k],:s_wfjg.Sonscale[k];
-
- s_wfjg.qty[k] = Round(s_wfjg.qty[k],li_wfjgdec)
- s_wfjg.Sonscale[k] = Round(s_wfjg.Sonscale[k],li_wfjgdec)
-
- DO WHILE sqlca.SQLCode = 0
- k++
- FETCH cur_outmx INTO :s_wfjg.mtrlid[k],:s_wfjg.unit[k],
- :li_wfjgdec,:s_wfjg.qty[k],:s_wfjg.Sonscale[k];
-
- s_wfjg.qty[k] = Round(s_wfjg.qty[k],li_wfjgdec)
- s_wfjg.Sonscale[k] = Round(s_wfjg.Sonscale[k],li_wfjgdec)
-
- LOOP
- CLOSE cur_outmx;
- END IF
-
- ld_cost_this = 0
-
- //计算发出明细
- FOR ll_i = 1 To k - 1
- lde_restqty = s_wfjg.qty[ll_i]
-
- ll_mxbt_cost = 0
- ll_tmp = 1
- DECLARE pf_cur CURSOR FOR
- SELECT ow_wfjgware.mtrlwareid,
- ow_wfjgware.noallocqty,
- ow_wfjgware.cost
- FROM ow_wfjgware
- WHERE ow_wfjgware.mtrlid = :s_wfjg.mtrlid[ll_i]
- AND ow_wfjgware.sptid = :arg_s_check.sptid
- Order By ow_wfjgware.noallocqty;
-
- OPEN pf_cur;
-
- FETCH pf_cur Into :ll_mtrlwareid[ll_tmp],:lde_noallocqty[ll_tmp],:lde_cost[ll_tmp];
-
- DO WHILE sqlca.SQLCode = 0
- ll_tmp++
- FETCH pf_cur Into :ll_mtrlwareid[ll_tmp],:lde_noallocqty[ll_tmp],:lde_cost[ll_tmp];
-
- LOOP
- CLOSE pf_cur;
-
- ll_tmp -= 1
-
- IF ll_tmp = 0 THEN
- ll_tmp = 1
- IF f_insert_0_sptware(arg_s_check.scid, ll_mtrlwareid[ll_tmp], s_wfjg.mtrlid[ll_i], '', arg_s_check.sptid, '', '', '', '', 0, arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- lde_noallocqty[ll_tmp] = 0
- lde_cost[ll_tmp] = 0
- END IF
-
- FOR ll_j = 1 To ll_tmp
- IF ll_j = ll_tmp THEN
- ld_qty_out = lde_restqty
- lde_restqty = 0
- ELSE
- IF lde_noallocqty[ll_j] > 0 THEN
- IF lde_restqty > lde_noallocqty[ll_j] THEN
- ld_qty_out = lde_noallocqty[ll_j]
- ELSE
- ld_qty_out = lde_restqty
- END IF
- lde_restqty -= ld_qty_out
- ELSE
- ld_qty_out = 0
- //lde_restqty = lde_restqty
- END IF
- END IF
-
- IF ld_qty_out > 0 THEN
-
- ll_mxbt_cost++
-
- IF ll_mxbt_cost = 1 THEN
- ld_cost_this = ld_cost_this + lde_cost[ll_j] * s_wfjg.Sonscale[ll_i]
- END IF
-
- cnt_out++
- IF uo_ware.acceptmx_bef( ll_mtrlwareid[ll_j],&
- ld_qty_out,&
- '',&
- cnt_out,&
- s_wfjg.unit[ll_i],&
- ld_qty_out,&
- 1,&
- cnt,&
- arg_msg) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(j)+'行,'+arg_msg
- GOTO ext
- END IF
- END IF
-
- NEXT
- NEXT
-
-
- //计算收货明细
- ls_pfcode = f_get_dft_pf(arg_s_check.arg_s_mx[j].mtrlid)
-
- IF uo_option_wfjg_price_cmp = 0 THEN
- IF uo_cmpl.uof_get_cost(0,arg_s_check.scid,arg_s_check.arg_s_mx[j].mtrlid,arg_s_check.arg_s_mx[j].mtrlcode,ls_pfcode,1,1,ld_price,ld_mprice,ld_outcost,ld_wagecost,ld_eqprice,0,arg_msg,arg_s_mx,1) = 0 THEN
- ld_enprice = 0
- ELSE
- ld_enprice = Round(ld_price,2) + Round(ld_mprice,2) + Round(ld_outcost,2) + Round(ld_wagecost,2) + Round(ld_eqprice,2)
- END IF
- ELSE
- ld_enprice = ld_cost_this
- END IF
-
- IF IsNull(ld_enprice) THEN ld_enprice = 0
-
- IF uo_ware.acceptmx(cnt,&
- arg_s_check.arg_s_mx[j].mtrlid,&
- arg_s_check.arg_s_mx[j].mtrlcode,&
- ls_plancode,&
- arg_s_check.arg_s_mx[j].status,&
- arg_s_check.arg_s_mx[j].goodqty,&
- ld_enprice,&
- 1,&
- arg_s_check.arg_s_mx[j].mxdscrp,&
- arg_msg,&
- ld_jgprice,&
- arg_s_check.arg_s_mx[j].reltaskid,&
- arg_s_check.arg_s_mx[j].iftask,&
- arg_s_check.arg_s_mx[j].woodcode,&
- arg_s_check.arg_s_mx[j].pcode,&
- ll_sptid,&
- arg_s_check.arg_s_mx[j].unit,&
- arg_s_check.arg_s_mx[j].rate,&
- arg_s_check.arg_s_mx[j].goodqty * arg_s_check.arg_s_mx[j].rate ,&
- arg_s_check.arg_s_mx[j].storageid,&
- ls_jgdscrp,&
- arg_s_check.arg_s_mx[j].reltaskprintid,&
- 0,&
- arg_s_check.arg_s_mx[j].goodqty,&
- '',&
- arg_billid,&
- arg_s_check.arg_s_mx[j].printid,&
- '',&
- arg_s_check.arg_s_mx[j].Location,&
- ld_taxrate) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(j)+'行,'+arg_msg
- GOTO ext
- END IF
-
- END IF
- NEXT
- IF cnt > 0 THEN
- IF uo_ware.Save(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_ware
- Destroy uo_cmpl
- RETURN rslt
- end function
- public function integer uof_del_inware_wfjg (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_scid,ll_cnt
- Long ll_i
- Long ll_inwareid_arr[]
- String ls_inwarecode_arr[]
- uo_inware_wfjg uo_ware
- uo_ware = Create uo_inware_wfjg
- uo_ware.commit_transaction = sqlca
- SELECT scid
- INTO :ll_scid
- FROM u_sptcheck
- Where billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询质检单分部失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ll_cnt = 1
- DECLARE cur_inware CURSOR FOR
- SELECT distinct ow_wfjg_in.inwareid, ow_wfjg_in.inwarecode
- FROM ow_wfjgmx_in_aft INNER JOIN
- ow_wfjg_in ON ow_wfjgmx_in_aft.scid = ow_wfjg_in.scid AND
- ow_wfjgmx_in_aft.inwareid = ow_wfjg_in.inwareid
- WHERE ow_wfjgmx_in_aft.relbillid = :arg_billid
- AND ow_wfjgmx_in_aft.scid = :ll_scid
- And ow_wfjg_in.billtype = 4;
-
- OPEN cur_inware;
- FETCH cur_inware Into :ll_inwareid_arr[ll_cnt],:ls_inwarecode_arr[ll_cnt];
- DO WHILE sqlca.SQLCode = 0
- ll_cnt++
- FETCH cur_inware Into :ll_inwareid_arr[ll_cnt],:ls_inwarecode_arr[ll_cnt];
- LOOP
- CLOSE cur_inware;
- FOR ll_i = 1 To ll_cnt - 1
- IF uo_ware.del(ll_scid,ll_inwareid_arr[ll_i],arg_msg,False) = 0 THEN
- rslt = 0
- arg_msg = '删除相关外协收货单:'+ls_inwarecode_arr[ll_i]+'失败,'+arg_msg
- GOTO ext
- END IF
-
- //删除日志
- if f_setsysoplog('外协收货单','送检单撤审自动删除,id:'+string(ll_inwareid_arr[ll_i])+',code:'+ls_inwarecode_arr[ll_i],arg_msg,false) = 0 then
- rslt = 0
- arg_msg = '删除相关外协收货单:'+ls_inwarecode_arr[ll_i]+',记录操作日志失败,'+arg_msg
- GOTO ext
- end if
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_ware
- RETURN rslt
- end function
- public function integer uof_create_inware_cp (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_storageid_arr[]
- Long ll_mxbt,cnt
- Long i,j
- Decimal ld_planprice
- DateTime server_dt
- String ls_plancode
- SELECT Top 1 getdate() Into :server_dt From u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- s_sptcheck arg_s_check
- uo_inware_cp uo_ware
- uo_ware = Create uo_inware_cp
- uo_ware.commit_transaction = sqlca
- IF getinfo(arg_billid,arg_s_check,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- FOR i = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[i].goodqty <> 0 And arg_s_check.arg_s_mx[i].storageid > 0 THEN
-
- FOR j = 1 To ll_mxbt
- IF arg_s_check.arg_s_mx[i].storageid = ll_storageid_arr[j] THEN
- GOTO _next
- END IF
- NEXT
-
- ll_mxbt++
- ll_storageid_arr[ll_mxbt] = arg_s_check.arg_s_mx[i].storageid
- END IF
- _next:
- NEXT
- //每个仓库建立一张生产进仓
- FOR i = 1 To ll_mxbt
- IF uo_ware.newbegin(arg_s_check.scid,3,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
-
- uo_ware.indate = server_dt
- uo_ware.inrep = publ_operator
- uo_ware.part = arg_s_check.billcode
- uo_ware.dscrp = arg_s_check.dscrp //'质检单:'+arg_s_check.billcode+'审核自动生成'
- uo_ware.storageid = ll_storageid_arr[i]
- uo_ware.sptname = ''
- uo_ware.relid = arg_s_check.sptid //车间
- uo_ware.relint_2 = 0
-
-
- cnt = 0
- FOR j = 1 To UpperBound(arg_s_check.arg_s_mx) - 1
- IF arg_s_check.arg_s_mx[j].goodqty <> 0 And arg_s_check.arg_s_mx[j].storageid = ll_storageid_arr[i] THEN
- cnt++
-
-
-
- IF sys_option_taskplancode = 1 THEN
- SELECT u_order_ml.taskrelcode
- INTO :ls_plancode
- FROM u_order_ml
- Where u_order_ml.orderid = :arg_s_check.arg_s_mx[j].reltaskid;
- IF sqlca.SQLCode <> 0 THEN
- ls_plancode = ''
- END IF
- ELSE
- ls_plancode = ''
- END IF
-
- IF IsNull(ls_plancode) THEN ls_plancode = ''
-
- f_get_planprice_mtrl(arg_s_check.arg_s_mx[j].mtrlid,&
- arg_s_check.arg_s_mx[j].status,&
- arg_s_check.arg_s_mx[j].woodcode,&
- arg_s_check.arg_s_mx[j].pcode,ld_planprice)
- IF IsNull(ld_planprice) THEN ld_planprice = 0
-
- IF uo_ware.acceptmx(cnt,&
- arg_s_check.arg_s_mx[j].mtrlid,&
- arg_s_check.arg_s_mx[j].mtrlcode,&
- ls_plancode,&
- arg_s_check.arg_s_mx[j].status,&
- arg_s_check.arg_s_mx[j].goodqty,&
- ld_planprice,&
- 1,&
- arg_s_check.arg_s_mx[j].mxdscrp,&
- arg_msg,0,&
- arg_s_check.arg_s_mx[j].reltaskid,&
- arg_s_check.arg_s_mx[j].iftask,&
- arg_s_check.arg_s_mx[j].woodcode,&
- arg_s_check.arg_s_mx[j].pcode,&
- 0,&
- arg_s_check.arg_s_mx[j].unit,&
- arg_s_check.arg_s_mx[j].rate,&
- arg_s_check.arg_s_mx[j].goodqty * arg_s_check.arg_s_mx[j].rate ,&
- arg_s_check.arg_s_mx[j].reltaskprintid,&
- arg_s_check.arg_s_mx[j].goodqty,&
- '','',&
- arg_billid,&
- arg_s_check.arg_s_mx[j].printid,&
- '',&
- arg_s_check.arg_s_mx[j].Location,&
- arg_s_check.arg_s_mx[j].goodqty,&
- 0) = 0 THEN
- rslt = 0
- arg_msg = '第'+String(i)+'行,'+arg_msg
- GOTO ext
- END IF
- END IF
- NEXT
-
- IF cnt > 0 THEN
- IF uo_ware.Save(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_ware
- RETURN rslt
- end function
- public function integer uof_del_inware_cp (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_scid,ll_cnt
- Long ll_i
- Long ll_inwareid_arr[]
- String ls_inwarecode_arr[]
- uo_inware_cp uo_ware
- uo_ware = Create uo_inware_cp
- uo_ware.commit_transaction = sqlca
- SELECT scid
- INTO :ll_scid
- FROM u_sptcheck
- Where billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询质检单分部失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ll_cnt = 1
- DECLARE cur_inware CURSOR FOR
- SELECT distinct u_inware.inwareid, u_inware.inwarecode
- FROM u_inwaremx INNER JOIN
- u_inware ON u_inwaremx.scid = u_inware.scid AND
- u_inwaremx.inwareid = u_inware.inwareid
- WHERE u_inwaremx.relbillid = :arg_billid
- And u_inwaremx.scid = :ll_scid
- and u_inware.billtype = 3;
-
- OPEN cur_inware;
- FETCH cur_inware Into :ll_inwareid_arr[ll_cnt],:ls_inwarecode_arr[ll_cnt];
- DO WHILE sqlca.SQLCode = 0
- ll_cnt++
- FETCH cur_inware Into :ll_inwareid_arr[ll_cnt],:ls_inwarecode_arr[ll_cnt];
- LOOP
- CLOSE cur_inware;
- FOR ll_i = 1 To ll_cnt - 1
- IF uo_ware.del(ll_scid,ll_inwareid_arr[ll_i],arg_msg,False) = 0 THEN
- rslt = 0
- arg_msg = '删除相关生产进仓单:'+ls_inwarecode_arr[ll_i]+'失败,'+arg_msg
- GOTO ext
- END IF
-
- //删除日志
- if f_setsysoplog('生产进仓单','送检单撤审自动删除,id:'+string(ll_inwareid_arr[ll_i])+',code:'+ls_inwarecode_arr[ll_i],arg_msg,false) = 0 then
- rslt = 0
- arg_msg = '删除相关生产进仓单:'+ls_inwarecode_arr[ll_i]+',记录操作日志失败,'+arg_msg
- GOTO ext
- end if
-
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_ware
- RETURN rslt
- end function
- on uo_sptcheck.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_sptcheck.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- event constructor;String str_optionvalue,arg_msg
- f_get_sys_option_value('265',str_optionvalue,arg_msg)
- uo_option_if_oa_sptcheck = long(str_optionvalue)
- f_get_sys_option_value('267',str_optionvalue,arg_msg)
- uo_option_sptcheck_secaudit = long(str_optionvalue)
- f_get_sys_option_value('266',str_optionvalue,arg_msg)
- uo_option_if_oa_sptcheck_wfjg = long(str_optionvalue)
- f_get_sys_option_value('268',str_optionvalue,arg_msg)
- uo_option_sptcheck_wfjg_secaudit = long(str_optionvalue)
- f_get_sys_option_value('271',str_optionvalue,arg_msg)
- uo_option_sptcheck_inware = long(str_optionvalue)
- f_get_sys_option_value('272',str_optionvalue,arg_msg)
- uo_option_sptcheck_wfjg_inware = long(str_optionvalue)
- f_get_sys_option_value('284',str_optionvalue,arg_msg)
- uo_option_wfjg_price_cmp = long(str_optionvalue)
- end event
- global type uo_incase from nonvisualobject
- end type
|