12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306 |
- $PBExportHeader$uo_mtrldef.sru
- forward
- global type uo_mtrldef from nonvisualobject
- end type
- end forward
- global type uo_mtrldef from nonvisualobject
- end type
- global uo_mtrldef uo_mtrldef
- type variables
- long uo_mtrlid
- public protectedwrite long mtrlid //进仓单表自动增量id
- public protectedwrite datetime opdate //建立时间,自动
- public protectedwrite string opemp //建立操作员
- //public protectedwrite datetime moddate //修改时间,自动
- //public protectedwrite string modemp //修改操作员
- s_mtrldef_array s_mtrl
- s_mtrl_configure_array s_configure2
- long cmpid
- boolean if_getid_ture=false
- transaction commit_transaction //数据commit事务
- boolean it_newbegin=false //新建标志
- boolean it_updatebegin=false //修改标志
- end variables
- forward prototypes
- public function integer p_reset ()
- public function integer p_getinfo (long arg_mtrlid, ref string arg_msg)
- public function integer save (boolean arg_ifcommit, ref string arg_msg)
- public function integer newbegin (long arg_mtrlid)
- public function integer updatebegin (long arg_mtrlid, ref string arg_msg)
- public function integer p_delpic (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg)
- public function integer p_del_storage (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg)
- public function integer del (long arg_mtrlid, string arg_mtrlcode, ref string arg_msg, boolean arg_ifcommit)
- public function integer p_insert_maxminqty (long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, ref string arg_msg, boolean arg_ifcommit)
- public function integer p_insert_storage (long arg_mtrlid, long arg_storageid[], long arg_dft[], boolean arg_ifcommit, ref string arg_msg)
- public function integer del_cmp (long arg_cmpid, ref string arg_msg, boolean arg_ifcommit)
- public function integer mod_dscrp (long arg_cmpid, string arg_dscrp, ref string arg_msg, boolean arg_ifcommit)
- public function integer update_cost (long arg_cmpid, ref string arg_msg, boolean arg_ifcommit)
- public function integer save_cost (s_mtrldef_cost arg_s_cost, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_pfdpf_cost (long arg_mtrlid, ref decimal arg_cost, decimal arg_sonscale, ref string arg_msg)
- public function integer uof_cml_cost (s_mtrldef_cost arg_s_cost, s_mtrldef_costmx arg_s_costmx, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_update_configure2 (long arg_mtrlid, s_mtrl_configure_array arg_s_config, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_add_mtrl (s_mtrldef_array arg_s_mtrl, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer save_pack (ref s_mtrldef_pack arg_pack, ref string arg_msg, boolean arg_ifcommit)
- public function integer del_pack (long arg_mtrlid, long arg_printid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_pfdpf_empcost (long arg_mtrlid, ref decimal arg_cost, decimal arg_sonscale, ref string arg_msg)
- end prototypes
- public function integer p_reset ();//int p_reset()
- // mtrlcode = ''
- // mtrlname= ''
- // mtrltype= ''
- // mtrlsectype= ''
- // mtrlmode= ''
- // Mtrlorigin = 0
- // storageid = 0
- // unit = ''
- // isbuylimit = 0
- // lspacklimit = 0
- // price = 0
- // cost = 0
- // planprice = 0
- // LMsaleprice = 0
- // lmbuyprice = 0
- // CLsaleprice = 0
- // YHsaleprice = 0
- // PFsaleprice = 0
- // LSsaleprice = 0
- // dscrp= ''
- // Mtrlprp = 0
- // MaxQTY = 99999
- // MinQTY = 0
- // ctokg = 1
- // isuse = 1
- // packqty = 0
- // prdpackcode= ''
- // mtrltypeid = 0
- // handtype= ''
- // barcode= ''
- // mtrlkind = 0
- // net_weight = 0
- // gross_weight = 0
- // cubage = 0
- // ifsafa = 0
- // mtrlengname= ''
- // wpmtrlid = 0
- // wprate = 0
- // zxmtrlmode= ''
- // unit_scll= ''
- // unit_buy= ''
- // rate_buy = 0
- // rate_scll = 0
- // rate_sale = 0
- // unit_sale= ''
- // colorprp = 0
- // scllflag = 0
- s_mtrl.mtrlcode[1] = ''
- s_mtrl.mtrlname[1] = ''
- s_mtrl.mtrltype[1] = ''
- s_mtrl.mtrlsectype[1] = ''
- s_mtrl.mtrlmode[1] = ''
- s_mtrl.Mtrlorigin[1] = 0
- s_mtrl.storageid[1] = 0
- s_mtrl.unit[1] = ''
- s_mtrl.isbuylimit[1] = 0
- s_mtrl.lspacklimit[1] = 0
- s_mtrl.cost[1] = 0
- s_mtrl.price[1] = 0
- s_mtrl.planprice[1] = 0
- s_mtrl.LMsaleprice[1] = 0
- s_mtrl.lmbuyprice[1] = 0
- // s_mtrl.CLsaleprice[1]=0
- // s_mtrl.YHsaleprice[1]=0
- // s_mtrl.PFsaleprice[1]=0
- // s_mtrl.LSsaleprice[1]=0
- s_mtrl.dscrp[1] = ''
- s_mtrl.Mtrlprp[1] = 0
- s_mtrl.MaxQTY[1] = 99999
- s_mtrl.MinQTY[1] = 0
- s_mtrl.ctokg[1] = 0
- s_mtrl.isuse[1] = 1
- s_mtrl.iflimitprice[1] = 1
- s_mtrl.packqty[1] = 0
- s_mtrl.prdpackcode[1] = ''
- s_mtrl.mtrltypeid[1] = 0
- s_mtrl.handtype[1] = ''
- s_mtrl.barcode[1] = ''
- s_mtrl.mtrlkind[1] = 0
- s_mtrl.net_weight[1] = 0
- s_mtrl.gross_weight[1] = 0
- s_mtrl.cubage[1] = 0
- s_mtrl.ifsafa[1] = 0
- s_mtrl.mtrlengname[1] = ''
- s_mtrl.wpmtrlid[1] = 0
- s_mtrl.wprate[1] = 0
- s_mtrl.zxmtrlmode[1] = ''
- s_mtrl.unit_scll[1] = ''
- s_mtrl.unit_buy[1] = ''
- s_mtrl.rate_buy[1] = 0
- s_mtrl.rate_scll[1] = 0
- s_mtrl.rate_sale[1] = 0
- s_mtrl.unit_sale[1] = ''
- s_mtrl.colorprp[1] = 0
- s_mtrl.scllflag[1] = 0
- it_newbegin = False
- it_updatebegin = False
- //清除明细
- RETURN 1
- end function
- public function integer p_getinfo (long arg_mtrlid, ref string arg_msg);//p_getinfo(arg_scid,arg_inwareid,arg_msg)
- //0 失败 1成功
- INT rslt=1
- IF arg_mtrlid<=0 THEN
- rslt=0
- arG_MSG="非法物料唯一码"
- goto ext
- end if
-
- SELECT mtrlcode,
- mtrlname,
- mtrltype,
- mtrlsectype,
- mtrlmode,
- Mtrlorigin,
- storageid,
- unit,
- isbuylimit,
- lspacklimit,
- cost,
- price,
- planprice,
- LMsaleprice,
- lmbuyprice,
- dscrp,
- Mtrlprp,
- MaxQTY,
- MinQTY,
- ctokg,
- isuse,
- iflimitprice,
- packqty,
- prdpackcode,
- mtrltypeid,
- handtype,
- barcode,
- mtrlkind,
- net_weight,
- gross_weight,
- cubage,
- ifsafa,
- mtrlengname,
- wpmtrlid,
- wprate,
- zxmtrlmode,
- unit_scll,
- unit_buy,
- rate_buy,
- rate_scll,
- rate_sale,
- unit_sale,
- colorprp,
- scllflag,
- taskrate,
- taskaddqty
- into :s_mtrl.mtrlcode[1],
- :s_mtrl.mtrlname[1],
- :s_mtrl.mtrltype[1],
- :s_mtrl.mtrlsectype[1],
- :s_mtrl.mtrlmode[1],
- :s_mtrl.Mtrlorigin[1],
- :s_mtrl.storageid[1],
- :s_mtrl.unit[1],
- :s_mtrl.isbuylimit[1],
- :s_mtrl.lspacklimit[1],
- :s_mtrl.cost[1],
- :s_mtrl.price[1],
- :s_mtrl.planprice[1],
- :s_mtrl.LMsaleprice[1],
- :s_mtrl.lmbuyprice[1],
- :s_mtrl.dscrp[1],
- :s_mtrl.Mtrlprp[1],
- :s_mtrl.MaxQTY[1],
- :s_mtrl.MinQTY[1],
- :s_mtrl.ctokg[1],
- :s_mtrl.isuse[1],
- :s_mtrl.iflimitprice[1],
- :s_mtrl.packqty[1],
- :s_mtrl.prdpackcode[1],
- :s_mtrl.mtrltypeid[1],
- :s_mtrl.handtype[1],
- :s_mtrl.barcode[1],
- :s_mtrl.mtrlkind[1],
- :s_mtrl.net_weight[1],
- :s_mtrl.gross_weight[1],
- :s_mtrl.cubage[1],
- :s_mtrl.ifsafa[1],
- :s_mtrl.mtrlengname[1],
- :s_mtrl.wpmtrlid[1],
- :s_mtrl.wprate[1],
- :s_mtrl.zxmtrlmode[1],
- :s_mtrl.unit_scll[1],
- :s_mtrl.unit_buy[1],
- :s_mtrl.rate_buy[1],
- :s_mtrl.rate_scll[1],
- :s_mtrl.rate_sale[1],
- :s_mtrl.unit_sale[1],
- :s_mtrl.colorprp[1],
- :s_mtrl.scllflag[1],
- :s_mtrl.taskrate[1],
- :s_mtrl.taskaddqty[1]
- FROM u_mtrldef
- WHERE mtrlid = :arg_mtrlid
- using commit_transaction;
-
- if commit_transaction.sqlcode<>0 then
- rslt=0
- if pos(lower(commit_transaction.SQLErrText),'more than') > 0 then
- arg_msg = '查询操作失败,查询数据返回值多于一个'
- else
- arG_MSG="查询操作失败(错误物料唯一码) "
- end if
- goto ext
- end if
- mtrlid = arg_mtrlid
- ext:
- IF rslt=0 THEN p_reset()
- return rslt
- end function
- public function integer save (boolean arg_ifcommit, ref string arg_msg);Long rslt = 1
- Long i
- DateTime server_dt
- Long ls_newid
- Long ls_mtrlwareid
- Long ll_strageid[],ll_dft[]
- IF UpperBound(s_mtrl.mtrlcode) < 1 THEN s_mtrl.mtrlcode[1] = ''
- IF UpperBound(s_mtrl.mtrlname) < 1 THEN s_mtrl.mtrlname[1] = ''
- IF UpperBound(s_mtrl.mtrltype) < 1 THEN s_mtrl.mtrltype[1] = ''
- IF UpperBound(s_mtrl.mtrlsectype) < 1 THEN s_mtrl.mtrlsectype[1] = ''
- IF UpperBound(s_mtrl.mtrlmode) < 1 THEN s_mtrl.mtrlmode[1] = ''
- IF UpperBound(s_mtrl.Mtrlorigin) < 1 THEN s_mtrl.Mtrlorigin[1] = 0
- IF UpperBound(s_mtrl.storageid) < 1 THEN s_mtrl.storageid[1] = 0
- IF UpperBound(s_mtrl.unit) < 1 THEN s_mtrl.unit[1] = ''
- //IF UpperBound(s_mtrl.isbuylimit) < 1 THEN s_mtrl.isbuylimit[1] = 0
- IF UpperBound(s_mtrl.lspacklimit) < 1 THEN s_mtrl.lspacklimit[1] = 0
- //IF UpperBound(s_mtrl.price) < 1 THEN s_mtrl.price[1] = 0
- //IF UpperBound(s_mtrl.cost) < 1 THEN s_mtrl.cost[1] = 0
- IF UpperBound(s_mtrl.planprice) < 1 THEN s_mtrl.planprice[1] = 0
- IF UpperBound(s_mtrl.LMsaleprice) < 1 THEN s_mtrl.LMsaleprice[1] = 0
- IF UpperBound(s_mtrl.lmbuyprice) < 1 THEN s_mtrl.lmbuyprice[1] = 0
- IF UpperBound(s_mtrl.dscrp) < 1 THEN s_mtrl.dscrp[1] = ''
- IF UpperBound(s_mtrl.Mtrlprp) < 1 THEN s_mtrl.Mtrlprp[1] = 0
- IF UpperBound(s_mtrl.MaxQTY) < 1 THEN s_mtrl.MaxQTY[1] = 99999
- IF UpperBound(s_mtrl.MinQTY) < 1 THEN s_mtrl.MinQTY[1] = 0
- IF UpperBound(s_mtrl.ctokg) < 1 THEN s_mtrl.ctokg[1] = 1
- IF UpperBound(s_mtrl.isuse) < 1 THEN s_mtrl.isuse[1] = 1
- IF UpperBound(s_mtrl.iflimitprice) < 1 THEN s_mtrl.iflimitprice[1] = 1
- IF UpperBound(s_mtrl.packqty) < 1 THEN s_mtrl.packqty[1] = 0
- IF UpperBound(s_mtrl.prdpackcode) < 1 THEN s_mtrl.prdpackcode[1] = ''
- IF UpperBound(s_mtrl.ifpacktype) < 1 THEN s_mtrl.ifpacktype[1] = 0
- IF UpperBound(s_mtrl.mtrltypeid) < 1 THEN s_mtrl.mtrltypeid[1] = 0
- IF UpperBound(s_mtrl.handtype) < 1 THEN s_mtrl.handtype[1] = ''
- IF UpperBound(s_mtrl.barcode) < 1 THEN s_mtrl.barcode[1] = ''
- IF UpperBound(s_mtrl.mtrlkind) < 1 THEN s_mtrl.mtrlkind[1] = 0
- IF UpperBound(s_mtrl.net_weight) < 1 THEN s_mtrl.net_weight[1] = 0
- IF UpperBound(s_mtrl.gross_weight) < 1 THEN s_mtrl.gross_weight[1] = 0
- IF UpperBound(s_mtrl.cubage) < 1 THEN s_mtrl.cubage[1] = 0
- IF UpperBound(s_mtrl.mtrlengname) < 1 THEN s_mtrl.mtrlengname[1] = ''
- IF UpperBound(s_mtrl.zxmtrlmode) < 1 THEN s_mtrl.zxmtrlmode[1] = ''
- IF UpperBound(s_mtrl.unit_scll) < 1 THEN s_mtrl.unit_scll[1] = ''
- IF UpperBound(s_mtrl.unit_buy) < 1 THEN s_mtrl.unit_buy[1] = ''
- IF UpperBound(s_mtrl.rate_buy) < 1 THEN s_mtrl.rate_buy[1] = 0
- IF UpperBound(s_mtrl.rate_scll) < 1 THEN s_mtrl.rate_scll[1] = 0
- IF UpperBound(s_mtrl.rate_sale) < 1 THEN s_mtrl.rate_sale[1] = 0
- IF UpperBound(s_mtrl.unit_sale) < 1 THEN s_mtrl.unit_sale[1] = ''
- IF UpperBound(s_mtrl.colorprp) < 1 THEN s_mtrl.colorprp[1] = 0
- IF UpperBound(s_mtrl.scllflag) < 1 THEN s_mtrl.scllflag[1] = 0
- IF UpperBound(s_mtrl.taskrate) < 1 THEN s_mtrl.taskrate[1] = 0
- IF UpperBound(s_mtrl.taskaddqty) < 1 THEN s_mtrl.taskaddqty[1] = 0
- IF UpperBound(s_mtrl.ifautoscll) < 1 THEN s_mtrl.ifautoscll[1] = 0
- IF UpperBound(s_mtrl.ifautoscll) < 1 THEN s_mtrl.ifautoscll[1] = 0
- IF UpperBound(s_mtrl.ifautoscll_saletask) < 1 THEN s_mtrl.ifautoscll_saletask[1] = 0
- IF UpperBound(s_mtrl.fklevel) < 1 THEN s_mtrl.fklevel[1] = 0
- IF UpperBound(s_mtrl.dftmtrlcost) < 1 THEN s_mtrl.dftmtrlcost[1] = 0
- IF UpperBound(s_mtrl.dftempcost) < 1 THEN s_mtrl.dftempcost[1] = 0
- IF UpperBound(s_mtrl.wfjgcost) < 1 THEN s_mtrl.wfjgcost[1] = 0
- IF UpperBound(s_mtrl.dftsccost) < 1 THEN s_mtrl.dftsccost[1] = 0
- IF UpperBound(s_mtrl.dftglcost) < 1 THEN s_mtrl.dftglcost[1] = 0
- IF UpperBound(s_mtrl.othercost) < 1 THEN s_mtrl.othercost[1] = 0
- IF UpperBound(s_mtrl.salerate) < 1 THEN s_mtrl.salerate[1] = 0
- IF UpperBound(s_mtrl.upqty) < 1 THEN s_mtrl.upqty[1] = 0
- IF UpperBound(s_mtrl.uprate) < 1 THEN s_mtrl.uprate[1] = 0
- IF UpperBound(s_mtrl.upsaleqty) < 1 THEN s_mtrl.upsaleqty[1] = 0
- IF UpperBound(s_mtrl.upsalerate) < 1 THEN s_mtrl.upsalerate[1] = 0
- IF UpperBound(s_mtrl.upscllqty) < 1 THEN s_mtrl.upscllqty[1] = 0
- IF UpperBound(s_mtrl.upscllrate) < 1 THEN s_mtrl.upscllrate[1] = 0
- IF UpperBound(s_mtrl.mrp_unit) < 1 THEN s_mtrl.mrp_unit[1] = 0
- IF UpperBound(s_mtrl.dftsptid) < 1 THEN s_mtrl.dftsptid[1] = 0
- //IF UpperBound(s_mtrl.ifHqcl) < 1 THEN s_mtrl.ifHqcl[1] = 0
- //IF UpperBound(s_mtrl.HqclMtrlid) < 1 THEN s_mtrl.HqclMtrlid[1] = 0
- IF UpperBound(s_mtrl.ifcustom) < 1 THEN s_mtrl.ifcustom[1] = 0
- IF UpperBound(s_mtrl.statusflag) < 1 THEN s_mtrl.statusflag[1] = 0
- IF UpperBound(s_mtrl.woodcodeflag) < 1 THEN s_mtrl.woodcodeflag[1] = 0
- IF UpperBound(s_mtrl.pcodeflag) < 1 THEN s_mtrl.pcodeflag[1] = 0
- IF UpperBound(s_mtrl.statustype) < 1 THEN s_mtrl.statustype[1] = 0
- IF UpperBound(s_mtrl.woodcodetype) < 1 THEN s_mtrl.woodcodetype[1] = 0
- IF UpperBound(s_mtrl.pcodetype) < 1 THEN s_mtrl.pcodetype[1] = 0
- IF UpperBound(s_mtrl.status_check) < 1 THEN s_mtrl.status_check[1] = 0
- IF UpperBound(s_mtrl.woodcode_check) < 1 THEN s_mtrl.woodcode_check[1] = 0
- IF UpperBound(s_mtrl.pcode_check) < 1 THEN s_mtrl.pcode_check[1] = 0
- IF UpperBound(s_mtrl.ifcheckaddqty) < 1 THEN s_mtrl.ifcheckaddqty[1] = 0
- IF UpperBound(s_mtrl.strcheckaddqty) < 1 THEN s_mtrl.strcheckaddqty[1] = ''
- IF UpperBound(s_mtrl.strcheck_digit) < 1 THEN s_mtrl.strcheck_digit[1] = 4
- IF UpperBound(s_mtrl.priceformula) < 1 THEN s_mtrl.priceformula[1] = ''
- IF UpperBound(s_mtrl.qtyformula) < 1 THEN s_mtrl.qtyformula[1] = ''
- IF UpperBound(s_mtrl.buyunit) < 1 THEN s_mtrl.buyunit[1] = 0
- IF UpperBound(s_mtrl.scllunit) < 1 THEN s_mtrl.scllunit[1] = 0
- IF UpperBound(s_mtrl.saleunit) < 1 THEN s_mtrl.saleunit[1] = 0
- IF UpperBound(s_mtrl.wfjgunit) < 1 THEN s_mtrl.wfjgunit[1] = 0
- IF UpperBound(s_mtrl.buydec) < 1 THEN s_mtrl.buydec[1] = 0
- IF UpperBound(s_mtrl.saledec) < 1 THEN s_mtrl.saledec[1] = 0
- IF UpperBound(s_mtrl.sclldec) < 1 THEN s_mtrl.sclldec[1] = 0
- IF UpperBound(s_mtrl.wfjgdec) < 1 THEN s_mtrl.wfjgdec[1] = 0
- //3属性默认值
- IF UpperBound(s_mtrl.status_default) < 1 THEN s_mtrl.status_default[1] = ''
- IF UpperBound(s_mtrl.woodcode_default) < 1 THEN s_mtrl.woodcode_default[1] = ''
- IF UpperBound(s_mtrl.pcode_default) < 1 THEN s_mtrl.pcode_default[1] = ''
- //产品配置
- IF UpperBound(s_mtrl.configcodetype) < 1 THEN s_mtrl.configcodetype[1] = 0
- IF UpperBound(s_mtrl.configcode) < 1 THEN s_mtrl.configcode[1] = ''
- IF UpperBound(s_mtrl.configname) < 1 THEN s_mtrl.configname[1] = ''
- IF UpperBound(s_mtrl.mtrlcolor) < 1 THEN s_mtrl.mtrlcolor[1] = ''
- //部件选配
- IF UpperBound(s_mtrl.status_config) < 1 THEN s_mtrl.status_config[1] = ''
- IF UpperBound(s_mtrl.woodcode_config) < 1 THEN s_mtrl.woodcode_config[1] = ''
- IF UpperBound(s_mtrl.pcode_config) < 1 THEN s_mtrl.pcode_config[1] = ''
- IF UpperBound(s_mtrl.issuliao) < 1 THEN s_mtrl.issuliao[1] = 0
- //====================================================================
- //
- //====================================================================
- IF IsNull(s_mtrl.mtrlcode[1]) THEN s_mtrl.mtrlcode[1] = ''
- IF IsNull(s_mtrl.mtrlname[1]) THEN s_mtrl.mtrlname[1] = ''
- IF IsNull(s_mtrl.mtrltype[1]) THEN s_mtrl.mtrltype[1] = ''
- IF IsNull(s_mtrl.mtrlsectype[1]) THEN s_mtrl.mtrlsectype[1] = ''
- IF IsNull(s_mtrl.mtrlmode[1]) THEN s_mtrl.mtrlmode[1] = ''
- IF IsNull(s_mtrl.Mtrlorigin[1]) THEN s_mtrl.Mtrlorigin[1] = 0
- IF IsNull(s_mtrl.storageid[1]) THEN s_mtrl.storageid[1] = 0
- IF IsNull(s_mtrl.unit[1]) THEN s_mtrl.unit[1] = ''
- //if isnull(s_mtrl.isbuylimit[1]) then s_mtrl.isbuylimit[1] = 0
- IF IsNull(s_mtrl.lspacklimit[1]) THEN s_mtrl.lspacklimit[1] = 0
- //if isnull(s_mtrl.price[1]) then s_mtrl.price[1] = 0
- //if isnull(s_mtrl.cost[1]) then s_mtrl.cost[1] = 0
- IF IsNull(s_mtrl.planprice[1]) THEN s_mtrl.planprice[1] = 0
- IF IsNull(s_mtrl.LMsaleprice[1]) THEN s_mtrl.LMsaleprice[1] = 0
- IF IsNull(s_mtrl.lmbuyprice[1]) THEN s_mtrl.lmbuyprice[1] = 0
- IF IsNull(s_mtrl.dscrp[1]) THEN s_mtrl.dscrp[1] = ''
- IF IsNull(s_mtrl.Mtrlprp[1]) THEN s_mtrl.Mtrlprp[1] = 0
- IF IsNull(s_mtrl.MaxQTY[1]) THEN s_mtrl.MaxQTY[1] = 99999
- IF IsNull(s_mtrl.MinQTY[1]) THEN s_mtrl.MinQTY[1] = 0
- IF IsNull(s_mtrl.ctokg[1]) THEN s_mtrl.ctokg[1] = 1
- IF IsNull(s_mtrl.isuse[1]) THEN s_mtrl.isuse[1] = 1
- IF IsNull(s_mtrl.iflimitprice[1]) THEN s_mtrl.iflimitprice[1] = 1
- IF IsNull(s_mtrl.packqty[1]) THEN s_mtrl.packqty[1] = 0
- IF IsNull(s_mtrl.prdpackcode[1]) THEN s_mtrl.prdpackcode[1] = ''
- IF IsNull(s_mtrl.ifpacktype[1]) THEN s_mtrl.ifpacktype[1] = 0
- IF IsNull(s_mtrl.mtrltypeid[1]) THEN s_mtrl.mtrltypeid[1] = 0
- IF IsNull(s_mtrl.handtype[1]) THEN s_mtrl.handtype[1] = ''
- IF IsNull(s_mtrl.barcode[1]) THEN s_mtrl.barcode[1] = ''
- IF IsNull(s_mtrl.mtrlkind[1]) THEN s_mtrl.mtrlkind[1] = 0
- IF IsNull(s_mtrl.net_weight[1]) THEN s_mtrl.net_weight[1] = 0
- IF IsNull(s_mtrl.gross_weight[1]) THEN s_mtrl.gross_weight[1] = 0
- IF IsNull(s_mtrl.cubage[1]) THEN s_mtrl.cubage[1] = 0
- IF IsNull(s_mtrl.mtrlengname[1]) THEN s_mtrl.mtrlengname[1] = ''
- IF IsNull(s_mtrl.zxmtrlmode[1]) THEN s_mtrl.zxmtrlmode[1] = ''
- IF IsNull(s_mtrl.unit_scll[1]) THEN s_mtrl.unit_scll[1] = ''
- IF IsNull(s_mtrl.unit_buy[1]) THEN s_mtrl.unit_buy[1] = ''
- IF IsNull(s_mtrl.rate_buy[1]) THEN s_mtrl.rate_buy[1] = 0
- IF IsNull(s_mtrl.rate_scll[1]) THEN s_mtrl.rate_scll[1] = 0
- IF IsNull(s_mtrl.rate_sale[1]) THEN s_mtrl.rate_sale[1] = 0
- IF IsNull(s_mtrl.unit_sale[1]) THEN s_mtrl.unit_sale[1] = ''
- IF IsNull(s_mtrl.colorprp[1]) THEN s_mtrl.colorprp[1] = 0
- IF IsNull(s_mtrl.scllflag[1]) THEN s_mtrl.scllflag[1] = 0
- IF IsNull(s_mtrl.lljg[1]) THEN s_mtrl.lljg[1] = 0
- IF IsNull(s_mtrl.taskrate[1]) THEN s_mtrl.taskrate[1] = 0
- IF IsNull(s_mtrl.taskaddqty[1]) THEN s_mtrl.taskaddqty[1] = 0
- IF IsNull(s_mtrl.ifautoscll[1]) THEN s_mtrl.ifautoscll[1] = 0
- IF IsNull(s_mtrl.ifautoscll_saletask[1]) THEN s_mtrl.ifautoscll_saletask[1] = 0
- IF IsNull(s_mtrl.fklevel[1]) THEN s_mtrl.fklevel[1] = 0
- IF IsNull(s_mtrl.dftmtrlcost[1]) THEN s_mtrl.dftmtrlcost[1] = 0
- IF IsNull(s_mtrl.dftempcost[1]) THEN s_mtrl.dftempcost[1] = 0
- IF IsNull(s_mtrl.wfjgcost[1]) THEN s_mtrl.wfjgcost[1] = 0
- IF IsNull(s_mtrl.dftsccost[1]) THEN s_mtrl.dftsccost[1] = 0
- IF IsNull(s_mtrl.dftglcost[1]) THEN s_mtrl.dftglcost[1] = 0
- IF IsNull(s_mtrl.othercost[1]) THEN s_mtrl.othercost[1] = 0
- IF IsNull(s_mtrl.salerate[1]) THEN s_mtrl.salerate[1] = 0
- IF IsNull(s_mtrl.upqty[1]) THEN s_mtrl.upqty[1] = 0
- IF IsNull(s_mtrl.uprate[1]) THEN s_mtrl.uprate[1] = 0
- IF IsNull(s_mtrl.upsaleqty[1]) THEN s_mtrl.upsaleqty[1] = 0
- IF IsNull(s_mtrl.upsalerate[1]) THEN s_mtrl.upsalerate[1] = 0
- IF IsNull(s_mtrl.upscllqty[1]) THEN s_mtrl.upscllqty[1] = 0
- IF IsNull(s_mtrl.upscllrate[1]) THEN s_mtrl.upscllrate[1] = 0
- IF IsNull(s_mtrl.mrp_unit[1]) THEN s_mtrl.mrp_unit[1] = 0
- IF IsNull(s_mtrl.dftsptid[1]) THEN s_mtrl.dftsptid[1] = 0
- //IF IsNull(s_mtrl.ifHqcl[1]) THEN s_mtrl.ifHqcl[1] = 0
- //IF IsNull(s_mtrl.HqclMtrlid[1]) THEN s_mtrl.HqclMtrlid[1] = 0
- IF IsNull(s_mtrl.ifcustom[1]) THEN s_mtrl.ifcustom[1] = 0
- IF IsNull(s_mtrl.statusflag[1]) THEN s_mtrl.statusflag[1] = 0
- IF IsNull(s_mtrl.woodcodeflag[1]) THEN s_mtrl.woodcodeflag[1] = 0
- IF IsNull(s_mtrl.pcodeflag[1]) THEN s_mtrl.pcodeflag[1] = 0
- IF IsNull(s_mtrl.statustype[1]) THEN s_mtrl.statustype[1] = 0
- IF IsNull(s_mtrl.woodcodetype[1]) THEN s_mtrl.woodcodetype[1] = 0
- IF IsNull(s_mtrl.pcodetype[1]) THEN s_mtrl.pcodetype[1] = 0
- IF IsNull(s_mtrl.status_check[1]) THEN s_mtrl.status_check[1] = 0
- IF IsNull(s_mtrl.woodcode_check[1]) THEN s_mtrl.woodcode_check[1] = 0
- IF IsNull(s_mtrl.pcode_check[1]) THEN s_mtrl.pcode_check[1] = 0
- IF IsNull(s_mtrl.ifcheckaddqty[1]) THEN s_mtrl.ifcheckaddqty[1] = 0
- IF IsNull(s_mtrl.strcheckaddqty[1]) THEN s_mtrl.strcheckaddqty[1] = ''
- IF IsNull(s_mtrl.strcheck_digit[1]) THEN s_mtrl.strcheck_digit[1] = 4
- IF IsNull(s_mtrl.priceformula[1]) THEN s_mtrl.priceformula[1] = ''
- IF IsNull(s_mtrl.qtyformula[1]) THEN s_mtrl.qtyformula[1] = ''
- IF IsNull(s_mtrl.status_default[1]) THEN s_mtrl.status_default[1] = ''
- IF IsNull(s_mtrl.woodcode_default[1]) THEN s_mtrl.woodcode_default[1] = ''
- IF IsNull(s_mtrl.pcode_default[1]) THEN s_mtrl.pcode_default[1] = ''
- //产品配置
- IF IsNull(s_mtrl.configcodetype[1]) THEN s_mtrl.configcodetype[1] = 0
- IF IsNull(s_mtrl.configcode[1]) THEN s_mtrl.configcode[1] = ''
- IF IsNull(s_mtrl.configname[1]) THEN s_mtrl.configname[1] = ''
- IF IsNull(s_mtrl.mtrlcolor[1]) THEN s_mtrl.mtrlcolor[1] = ''
- //部件选配
- IF IsNull(s_mtrl.status_config[1]) THEN s_mtrl.status_config[1] = ''
- IF IsNull(s_mtrl.woodcode_config[1]) THEN s_mtrl.woodcode_config[1] = ''
- IF IsNull(s_mtrl.pcode_config[1]) THEN s_mtrl.pcode_config[1] = ''
- IF IsNull(s_mtrl.issuliao[1]) THEN s_mtrl.issuliao[1] = 0
- IF UpperBound(s_mtrl.inprice_mode) > 0 THEN
- IF IsNull(s_mtrl.inprice_mode[1]) THEN s_mtrl.inprice_mode[1] = 0
- ELSE
- s_mtrl.inprice_mode[1] = 0
- END IF
- IF mtrlid = 0 THEN
- SELECT
- subid,
- subid_sale,
- subid_cost,
- subid_tsale,
- subid_scll,
- subid_py,
- subid_pk,
- subid_kf
- into
- :s_mtrl.subid[1],
- :s_mtrl.subid_sale[1],
- :s_mtrl.subid_cost[1],
- :s_mtrl.subid_tsale[1],
- :s_mtrl.subid_scll[1],
- :s_mtrl.subid_py[1],
- :s_mtrl.subid_pk[1],
- :s_mtrl.subid_kf[1]
- FROM u_mtrltype
- where mtrltypeid = :s_mtrl.mtrltypeid[1];
- IF SQLCA.SQLCODE <> 0 THEN
- rslt = 0
- arg_msg = "查询类别信息失败"
- GOTO ext
- END IF
- END IF
- 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 s_mtrl.unit_buy[1] <> '' And s_mtrl.rate_buy[1] = 0 THEN
- rslt = 0
- arg_msg = "已填写辅单位1,转换率1不能为0"
- GOTO ext
- END IF
- IF s_mtrl.unit_scll[1] <> '' And s_mtrl.rate_scll[1] = 0 THEN
- rslt = 0
- arg_msg = "已填写辅单位2,转换率2不能为0"
- GOTO ext
- END IF
- IF s_mtrl.unit_sale[1] <> '' And s_mtrl.rate_sale[1] = 0 THEN
- rslt = 0
- arg_msg = "已填写辅单位3,转换率3不能为0"
- GOTO ext
- END IF
- IF s_mtrl.unit_buy[1] = '' THEN s_mtrl.rate_buy[1] = 0
- IF s_mtrl.unit_scll[1] = '' THEN s_mtrl.rate_scll[1] = 0
- IF s_mtrl.unit_sale[1] = '' THEN s_mtrl.rate_sale[1] = 0
- //检查配置设置
- IF s_mtrl.statusflag[1] = 1 And s_mtrl.statustype[1] = 0 THEN
- arg_msg = sys_option_change_status+' 类型为严格选择,必须选定一个待选类别'
- rslt = 0
- GOTO ext
- END IF
- IF s_mtrl.woodcodeflag[1] = 1 And s_mtrl.woodcodetype[1] = 0 THEN
- arg_msg = sys_option_change_woodcode+' 类型为严格选择,必须选定一个待选类别'
- rslt = 0
- GOTO ext
- END IF
- IF s_mtrl.statusflag[1] = 4 And s_mtrl.statustype[1] = 0 THEN
- arg_msg = sys_option_change_status+' 类型为部件选配,必须选定一个待选类别'
- rslt = 0
- GOTO ext
- END IF
- IF s_mtrl.woodcodeflag[1] = 4 And s_mtrl.woodcodetype[1] = 0 THEN
- arg_msg = sys_option_change_woodcode+' 类型为部件选配,必须选定一个待选类别'
- rslt = 0
- GOTO ext
- END IF
- IF s_mtrl.pcodeflag[1] = 1 And s_mtrl.pcodetype[1] = 0 THEN
- arg_msg = sys_option_change_pcode+' 类型为严格选择,必须选定一个待选类别'
- rslt = 0
- GOTO ext
- END IF
- //检查数量和辅数关系设置
- IF s_mtrl.ifcheckaddqty[1] = 0 And s_mtrl.strcheckaddqty[1] <> '' THEN s_mtrl.ifcheckaddqty[1] = 1
- //IF IsNull(s_mtrl.ifcheckaddqty[1]) THEN s_mtrl.ifcheckaddqty[1] = 0
- //IF IsNull(s_mtrl.strcheckaddqty[1]) THEN s_mtrl.strcheckaddqty[1] =''
- IF s_mtrl.statusflag[1] <> 4 THEN s_mtrl.status_check[1] = 0
- IF s_mtrl.woodcodeflag[1] <> 4 THEN s_mtrl.woodcode_check[1] = 0
- IF s_mtrl.pcodeflag[1] <> 4 THEN s_mtrl.pcode_check[1] = 0
- ////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF mtrlid = 0 THEN //新建
- ls_newid = f_sys_scidentity(0,"u_mtrldef","mtrlid",arg_msg,if_getid_ture,commit_transaction)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
-
-
-
- INSERT INTO u_mtrldef
- (mtrlid,
- mtrlcode,
- mtrlname,
- mtrltype,
- mtrlsectype,
- mtrlmode,
- Mtrlorigin,
- unit,
- lspacklimit,
- LMsaleprice,
- lmbuyprice,
- dscrp,
- Mtrlprp,
- MaxQTY,
- MinQTY,
- ctokg,
- isuse,
- iflimitprice,
- packqty,
- prdpackcode,
- mtrltypeid,
- handtype,
- barcode,
- mtrlkind,
- net_weight,
- gross_weight,
- cubage,
- mtrlengname,
- zxmtrlmode,
- unit_scll,
- unit_buy,
- rate_buy,
- rate_scll,
- rate_sale,
- unit_sale,
- colorprp,
- scllflag,
- opdate,
- opemp,
- taskrate,
- taskaddqty,
- ifautoscll,
- fklevel,
- u_mtrldef.dftmtrlcost,
- u_mtrldef.dftempcost,
- u_mtrldef.wfjgcost,
- u_mtrldef.dftsccost,
- u_mtrldef.dftglcost,
- u_mtrldef.othercost,
- u_mtrldef.salerate,
- u_mtrldef.uprate,
- u_mtrldef.upqty,
- u_mtrldef.upsalerate,
- u_mtrldef.upsaleqty,
- u_mtrldef.upscllrate,
- u_mtrldef.upscllqty,
- u_mtrldef.dftsptid,
- u_mtrldef.mrp_unit,
- ifcustom,
- statusflag,
- woodcodeflag,
- pcodeflag,
- statustype,
- woodcodetype,
- pcodetype,
- status_check,
- woodcode_check,
- pcode_check,
- configcodetype, configcode, configname, mtrlcolor,
- status_config, woodcode_config, pcode_config,
- issuliao,
- inprice_mode,
- ifpacktype,
- ifcheckaddqty,
- strcheckaddqty,
- ifautoscll_saletask,
- strcheck_digit,
- status_default,
- woodcode_default,
- pcode_default,
- priceformula,
- qtyformula,
- subid,
- subid_sale,
- subid_cost,
- subid_tsale,
- subid_scll,
- subid_py,
- subid_pk,
- subid_kf,
- scllunit,
- buyunit,
- saleunit,
- wfjgunit,
- saledec,
- buydec,
- sclldec,
- wfjgdec,
- lljg)
- VALUES
- (:ls_newid,
- :s_mtrl.mtrlcode[1],
- :s_mtrl.mtrlname[1],
- :s_mtrl.mtrltype[1],
- :s_mtrl.mtrlsectype[1],
- :s_mtrl.mtrlmode[1],
- :s_mtrl.Mtrlorigin[1],
- :s_mtrl.unit[1],
- :s_mtrl.lspacklimit[1],
- :s_mtrl.LMsaleprice[1],
- :s_mtrl.lmbuyprice[1],
- :s_mtrl.dscrp[1],
- :s_mtrl.Mtrlprp[1],
- :s_mtrl.MaxQTY[1],
- :s_mtrl.MinQTY[1],
- :s_mtrl.ctokg[1],
- :s_mtrl.isuse[1],
- :s_mtrl.iflimitprice[1],
- :s_mtrl.packqty[1],
- :s_mtrl.prdpackcode[1],
- :s_mtrl.mtrltypeid[1],
- :s_mtrl.handtype[1],
- :s_mtrl.barcode[1],
- :s_mtrl.mtrlkind[1],
- :s_mtrl.net_weight[1],
- :s_mtrl.gross_weight[1],
- :s_mtrl.cubage[1],
- :s_mtrl.mtrlengname[1],
- :s_mtrl.zxmtrlmode[1],
- :s_mtrl.unit_scll[1],
- :s_mtrl.unit_buy[1],
- :s_mtrl.rate_buy[1],
- :s_mtrl.rate_scll[1],
- :s_mtrl.rate_sale[1],
- :s_mtrl.unit_sale[1],
- :s_mtrl.colorprp[1],
- :s_mtrl.scllflag[1],
- :server_dt,
- :publ_operator,
- :s_mtrl.taskrate[1],
- :s_mtrl.taskaddqty[1],
- :s_mtrl.ifautoscll[1],
- :s_mtrl.fklevel[1],
- :s_mtrl.dftmtrlcost[1],
- :s_mtrl.dftempcost[1],
- :s_mtrl.wfjgcost[1],
- :s_mtrl.dftsccost[1],
- :s_mtrl.dftglcost[1],
- :s_mtrl.othercost[1],
- :s_mtrl.salerate[1],
- :s_mtrl.uprate[1],
- :s_mtrl.upqty[1],
- :s_mtrl.upsalerate[1],
- :s_mtrl.upsaleqty[1],
- :s_mtrl.upscllrate[1],
- :s_mtrl.upscllqty[1],
- :s_mtrl.dftsptid[1],
- :s_mtrl.mrp_unit[1],
- :s_mtrl.ifcustom[1],
- :s_mtrl.statusflag[1],
- :s_mtrl.woodcodeflag[1],
- :s_mtrl.pcodeflag[1],
- :s_mtrl.statustype[1],
- :s_mtrl.woodcodetype[1],
- :s_mtrl.pcodetype[1],
- :s_mtrl.status_check[1],
- :s_mtrl.woodcode_check[1],
- :s_mtrl.pcode_check[1],
- :s_mtrl.configcodetype[1], :s_mtrl.configcode[1], :s_mtrl.configname[1], :s_mtrl.mtrlcolor[1],
- :s_mtrl.status_config[1], :s_mtrl.woodcode_config[1], :s_mtrl.pcode_config[1],
- :s_mtrl.issuliao[1],
- :s_mtrl.inprice_mode[1],
- :s_mtrl.ifpacktype[1],
- :s_mtrl.ifcheckaddqty[1],
- :s_mtrl.strcheckaddqty[1],
- :s_mtrl.ifautoscll_saletask[1],
- :s_mtrl.strcheck_digit[1],
- :s_mtrl.status_default[1],
- :s_mtrl.woodcode_default[1],
- :s_mtrl.pcode_default[1],
- :s_mtrl.priceformula[1],
- :s_mtrl.qtyformula[1],
- :s_mtrl.subid[1],
- :s_mtrl.subid_sale[1],
- :s_mtrl.subid_cost[1],
- :s_mtrl.subid_tsale[1],
- :s_mtrl.subid_scll[1],
- :s_mtrl.subid_py[1],
- :s_mtrl.subid_pk[1],
- :s_mtrl.subid_kf[1],
- :s_mtrl.scllunit[1],
- :s_mtrl.buyunit[1],
- :s_mtrl.saleunit[1],
- :s_mtrl.wfjgunit[1],
- :s_mtrl.saledec[1],
- :s_mtrl.buydec[1],
- :s_mtrl.sclldec[1],
- :s_mtrl.wfjgdec[1],
- :s_mtrl.lljg[1]) Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- IF Pos(Lower(commit_transaction.SQLErrText),'pk_u_mtrldef') > 0 THEN
- arg_msg = '插入操作失败,关键字物料ID重复'
- ELSEIF Pos(Lower(commit_transaction.SQLErrText),'ix_u_mtrldef') > 0 THEN
- arg_msg = '插入操作失败,物料编码重复'
- ELSEIF Pos(Lower(commit_transaction.SQLErrText),'i_mtrlname') > 0 THEN
- arg_msg = '插入操作失败,物料名称重复'
- ELSE
- arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+commit_transaction.SQLErrText
- END IF
- GOTO ext
- END IF
-
- //系统选项控制, 自动插入0库存
- IF sys_option_add0mtrlware = 1 THEN
- FOR i = 1 To UpperBound(s_mtrl.storageid)
- IF s_mtrl.storageid[i] > 0 THEN
- IF f_insert_0_mtrlware(ls_mtrlwareid,ls_newid,s_mtrl.mtrlcode[1],s_mtrl.storageid[i],0,'','','','',0,arg_msg) = 0 THEN
- rslt = 0
- mtrlid = 0
- p_reset( )
- GOTO ext
- END IF
- END IF
- NEXT
- END IF
-
- IF p_insert_maxminqty(ls_newid,'','','',arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- //读取新mtrlid
- mtrlid = ls_newid
- uo_mtrlid = mtrlid
-
- ELSE //////////////////////////////////////////////// //更新
- UPDATE u_mtrldef
- SET mtrlcode = :s_mtrl.mtrlcode[1],
- mtrlname = :s_mtrl.mtrlname[1],
- mtrltype = :s_mtrl.mtrltype[1],
- mtrlsectype = :s_mtrl.mtrlsectype[1],
- mtrlmode = :s_mtrl.mtrlmode[1],
- Mtrlorigin = :s_mtrl.mtrlorigin[1],
- unit = :s_mtrl.unit[1],
- lspacklimit = :s_mtrl.lspacklimit[1],
- LMsaleprice = :s_mtrl.LMsaleprice[1],
- lmbuyprice = :s_mtrl.lmbuyprice[1],
- dscrp = :s_mtrl.dscrp[1],
- Mtrlprp = :s_mtrl.Mtrlprp[1],
- MaxQTY = :s_mtrl.MaxQTY[1],
- MinQTY = :s_mtrl.MinQTY[1],
- ctokg = :s_mtrl.ctokg[1],
- isuse = :s_mtrl.isuse[1],
- iflimitprice = :s_mtrl.iflimitprice[1],
- packqty = :s_mtrl.packqty[1],
- prdpackcode = :s_mtrl.prdpackcode[1],
- mtrltypeid = :s_mtrl.mtrltypeid[1],
- handtype = :s_mtrl.handtype[1],
- barcode = :s_mtrl.barcode[1],
- mtrlkind = :s_mtrl.mtrlkind[1],
- net_weight = :s_mtrl.net_weight[1],
- gross_weight = :s_mtrl.gross_weight[1],
- cubage = :s_mtrl.cubage[1],
- mtrlengname = :s_mtrl.mtrlengname[1],
- zxmtrlmode = :s_mtrl.zxmtrlmode[1],
- unit_scll = :s_mtrl.unit_scll[1],
- unit_buy = :s_mtrl.unit_buy[1],
- rate_buy = :s_mtrl.rate_buy[1],
- rate_scll = :s_mtrl.rate_scll[1],
- rate_sale = :s_mtrl.rate_sale[1],
- unit_sale = :s_mtrl.unit_sale[1],
- colorprp = :s_mtrl.colorprp[1],
- scllflag = :s_mtrl.scllflag[1],
- taskrate = :s_mtrl.taskrate[1],
- taskaddqty = :s_mtrl.taskaddqty[1],
- ifautoscll = :s_mtrl.ifautoscll[1],
- fklevel = :s_mtrl.fklevel[1],
- dftmtrlcost = :s_mtrl.dftmtrlcost[1],
- dftempcost = :s_mtrl.dftempcost[1],
- wfjgcost = :s_mtrl.wfjgcost[1],
- dftsccost = :s_mtrl.dftsccost[1],
- dftglcost = :s_mtrl.dftglcost[1],
- othercost = :s_mtrl.othercost[1],
- salerate = :s_mtrl.salerate[1],
- uprate = :s_mtrl.uprate[1],
- upqty = :s_mtrl.upqty[1],
- upsalerate = :s_mtrl.upsalerate[1],
- upsaleqty = :s_mtrl.upsaleqty[1],
- upscllrate = :s_mtrl.upscllrate[1],
- upscllqty = :s_mtrl.upscllqty[1],
- dftsptid = :s_mtrl.dftsptid[1],
- mrp_unit = :s_mtrl.mrp_unit[1],
- ifcustom = :s_mtrl.ifcustom[1],
- statusflag = :s_mtrl.statusflag[1],
- woodcodeflag = :s_mtrl.woodcodeflag[1],
- pcodeflag = :s_mtrl.pcodeflag[1],
- statustype = :s_mtrl.statustype[1],
- woodcodetype = :s_mtrl.woodcodetype[1],
- pcodetype = :s_mtrl.pcodetype[1],
- status_check = :s_mtrl.status_check[1],
- woodcode_check = :s_mtrl.woodcode_check[1],
- pcode_check = :s_mtrl.pcode_check[1],
- configcodetype = :s_mtrl.configcodetype[1],
- configcode = :s_mtrl.configcode[1],
- configname = :s_mtrl.configname[1],
- mtrlcolor = :s_mtrl.mtrlcolor[1],
- status_config = :s_mtrl.status_config[1],
- woodcode_config = :s_mtrl.woodcode_config[1],
- pcode_config = :s_mtrl.pcode_config[1],
- issuliao = :s_mtrl.issuliao[1],
- inprice_mode = :s_mtrl.inprice_mode[1],
- ifpacktype = :s_mtrl.ifpacktype[1],
- ifcheckaddqty = :s_mtrl.ifcheckaddqty[1],
- strcheckaddqty = :s_mtrl.strcheckaddqty[1],
- ifautoscll_saletask = :s_mtrl.ifautoscll_saletask[1],
- strcheck_digit =:s_mtrl.strcheck_digit[1],
- status_default =:s_mtrl.status_default[1],
- woodcode_default =:s_mtrl.woodcode_default[1],
- pcode_default =:s_mtrl.pcode_default[1],
- priceformula = :s_mtrl.priceformula[1],
- qtyformula = :s_mtrl.qtyformula[1],
- opdate= :server_dt,
- opemp=:publ_operator,
- scllunit = :s_mtrl.scllunit[1],
- buyunit = :s_mtrl.buyunit[1],
- saleunit = :s_mtrl.saleunit[1],
- wfjgunit = :s_mtrl.wfjgunit[1],
- saledec = :s_mtrl.saledec[1],
- buydec = :s_mtrl.buydec[1],
- sclldec = :s_mtrl.sclldec[1],
- wfjgdec = :s_mtrl.wfjgdec[1],
- lljg = :s_mtrl.lljg[1]
- Where mtrlid = :mtrlid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 Or commit_transaction.SQLNRows <= 0 THEN
- rslt = 0
- IF Pos(Lower(commit_transaction.SQLErrText),'pk_u_mtrldef') > 0 THEN
- arg_msg = '插入操作失败,关键字物料ID重复'
- ELSEIF Pos(Lower(commit_transaction.SQLErrText),'ix_u_mtrldef') > 0 THEN
- arg_msg = '插入操作失败,物料编码重复'
- ELSEIF Pos(Lower(commit_transaction.SQLErrText),'i_mtrlname') > 0 THEN
- arg_msg = '插入操作失败,物料名称重复'
- ELSE
- arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+commit_transaction.SQLErrText
- END IF
- GOTO ext
- END IF
-
- END IF
- uo_mtrlid = mtrlid
- IF p_insert_storage(mtrlid, s_mtrl.storageid,s_mtrl.storageid_dft,False,arg_msg ) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF uof_update_configure2(mtrlid,s_configure2,FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- arg_msg = '物料/产品,'+ arg_msg
- RETURN rslt
- end function
- public function integer newbegin (long arg_mtrlid);long rslt = 1
- it_newbegin =true
- it_updatebegin =false
- mtrlid = arg_mtrlid
- return rslt
- end function
- public function integer updatebegin (long arg_mtrlid, ref string arg_msg);long rslt=1
- if arg_mtrlid<=0 then
- rslt=0
- arg_msg = '错误物料唯一码'
- goto ext
- end if
- rslt=p_getinfo(arg_mtrlid,arg_msg)
- if rslt=0 then goto ext
- mtrlid=arg_mtrlid
- it_newbegin=false
- it_updatebegin=true
- ext:
- if rslt=0 then p_reset()
- arg_msg = '物料/产品,'+ arg_msg
- return rslt
- end function
- public function integer p_delpic (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- DELETE FROM u_mtrlpic Where mtrlid = :arg_mtrlid using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- arg_msg = '删除产品图片失败,原因:'+commit_transaction.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- if rslt = 0 then
- rollback using commit_transaction;
- elseif rslt = 1 and arg_ifcommit then
- commit using commit_transaction;
- end if
- arg_msg = '物料/产品,'+ arg_msg
- return rslt
- end function
- public function integer p_del_storage (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- DELETE FROM u_mtrl_storage Where mtrlid = :arg_mtrlid using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- arg_msg = '删除物料存放仓位失败,原因:'+commit_transaction.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- if rslt = 0 then
- rollback using commit_transaction;
- elseif rslt = 1 and arg_ifcommit then
- commit using commit_transaction;
- end if
- arg_msg = '物料/产品,'+ arg_msg
- return rslt
- end function
- public function integer del (long arg_mtrlid, string arg_mtrlcode, ref string arg_msg, boolean arg_ifcommit);
- Int rslt = 1
- Long ls_long
- IF arg_mtrlid = 0 THEN
- rslt = 0
- arg_msg = "没有删除对象,操作取消"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long FROM u_inwaremx Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于仓库进仓,不可以删除!"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long FROM u_mtrlware Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于仓库库存,不可以删除!"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long FROM u_outwaremx Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于仓库出仓,不可以删除!"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM u_quotemx Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于报价单,不可以删除,请先删除报价单中的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM u_saletaskmx Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于销售订单,不可以删除,请先删除销售订单中的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM u_buytaskmx Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于采购订单,不可以删除,请先删除采购订单中的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM u_sale_price_mx Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于价格表,不可以现在删除,请先删除价格表中的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM u_sale_price_mx Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于价格表,不可以现在删除,请先删除价格表中的对应资料。"
- GOTO ext
- END IF
- ///外协
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM ow_wfjgmx_in_aft Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于外协进仓单,不可以现在删除,请先删除外协进仓单中的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM ow_wfjgmx_in_bef Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于外协进仓单,不可以现在删除,请先删除外协进仓单中的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM ow_wfjgmx_out Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于外协出仓单,不可以现在删除,请先删除外协出仓单中的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM ow_wfjgware Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于外协商库存,不可以现在删除,请先删除外协商库存的对应资料。"
- GOTO ext
- END IF
- ls_long = 0
- SELECT count(*) INTO :ls_long
- FROM u_prdpf Where SonMtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "数据查询操作失败!(请重试!)"
- GOTO ext
- END IF
- IF ls_long > 0 THEN
- rslt = 0
- arg_msg = "该资料已经使用于物料清单,请先删除物料清单对应资料。"
- GOTO ext
- END IF
- ////////////
- DELETE FROM u_mtrldef
- Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除物料操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF p_delpic(arg_mtrlid,FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF p_del_storage(arg_mtrlid,FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF f_setsysoplog('定义资料','物料定义资料删除,id:'+String(arg_mtrlid)+',code:'+arg_mtrlcode,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- p_reset()
- arg_msg = '物料/产品,'+ arg_msg
- RETURN rslt
- end function
- public function integer p_insert_maxminqty (long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- INSERT u_mtrldef_maxminqty
- (mtrlid,status,woodcode,pcode)
- Values(:arg_mtrlid,:arg_status,:arg_woodcode,:arg_pcode) USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- if pos(lower(commit_transaction.SQLErrText),'pk_u_mtrldef_maxminqty') > 0 then
- arg_msg = '插入物料库存报警上下限失败!,3属性字段重复'
- else
- arg_msg = '插入物料库存报警上下限失败!>>'+commit_transaction.SQLErrText
- end if
- GOTO ext
- END IF
- ext:
- IF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- ELSEIF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- END IF
- arg_msg = '物料/产品,'+ arg_msg
- RETURN rslt
- end function
- public function integer p_insert_storage (long arg_mtrlid, long arg_storageid[], long arg_dft[], boolean arg_ifcommit, ref string arg_msg);Long rslt = 1
- Long cnt
- String ls_storagestr = ''
- //if it_newbegin = false then
- // rslt = 0
- // arg_msg = "非新建状态不可以提交"
- // goto ext
- //end if
- //
- cnt = 0
- //检查物料
- SELECT count(*)
- INTO :cnt
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,物料"
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "错误的物料编号: "+String(s_mtrl.storageid[1])
- GOTO ext
- END IF
- DELETE u_mtrl_storage
- Where mtrlid = :arg_mtrlid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除原物料仓库记录失败"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- Long ls_i
- FOR ls_i = 1 To UpperBound(arg_storageid)
-
- //yyx20150621
- cnt = 0
- //检查仓库
- SELECT count(*)
- INTO :cnt
- FROM u_mtrl_storage
- Where u_mtrl_storage.storageid = :arg_storageid[ls_i]
- and u_mtrl_storage.mtrlid = :arg_mtrlid Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,物料已有存放仓库,"+commit_transaction.sqlerrtext
- GOTO ext
- END IF
-
- IF cnt = 0 THEN
- INSERT INTO u_mtrl_storage
- (mtrlid,
- storageid,
- dft)
- VALUES
- (:arg_mtrlid,
- :arg_storageid[ls_i],
- :arg_dft[ls_i]) using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- IF Pos(Lower(commit_transaction.SQLErrText),'PK_u_mtrl_storage') > 0 THEN
- arg_msg = '物料指定默认仓库失败,关键字物料ID、仓库ID重复'
- ELSE
- arg_msg = "物料指定默认仓库失败,保存操作失败!"+sqlca.SQLErrText
- END IF
- GOTO ext
- END IF
- ls_storagestr = ls_storagestr +','+String(arg_storageid[ls_i])
- END IF
- NEXT
- IF ls_storagestr <> '' THEN
- ls_storagestr = ls_storagestr+','
- UPDATE u_mtrldef
- SET storagestr = :ls_storagestr
- Where mtrlid = :arg_mtrlid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新物料仓库串失败"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ELSE
- rslt = 0
- arg_msg = "没有指定物料仓库"
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- arg_msg = '物料/产品,'+ arg_msg
- RETURN rslt
- end function
- public function integer del_cmp (long arg_cmpid, ref string arg_msg, boolean arg_ifcommit);Long rslt = 1
- DELETE FROM u_mtrldef_costmx
- Where cmpid = :arg_cmpid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除成本运算历史明细失败'
- GOTO ext
- END IF
- DELETE FROM u_mtrldef_cost
- Where cmpid = :arg_cmpid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除成本运算历史失败'
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- return rslt
- end function
- public function integer mod_dscrp (long arg_cmpid, string arg_dscrp, ref string arg_msg, boolean arg_ifcommit);int rslt = 1
- update u_mtrldef_cost
- set dscrp = :arg_dscrp
- where cmpid = :arg_cmpid using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新备注失败'
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- return rslt
- end function
- public function integer update_cost (long arg_cmpid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,ll_flag
- DateTime server_dt
- 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
- UPDATE u_mtrldef
- SET u_mtrldef.dftmtrlcost = u_mtrldef_costmx.dftmtrlcost,
- u_mtrldef.dftempcost = u_mtrldef_costmx.dftempcost,
- u_mtrldef.dftsccost = u_mtrldef_costmx.dftsccost,
- u_mtrldef.dftglcost = u_mtrldef_costmx.dftglcost,
- u_mtrldef.planprice = u_mtrldef_costmx.dftmtrlcost + u_mtrldef_costmx.dftempcost + u_mtrldef_costmx.dftsccost + u_mtrldef_costmx.dftglcost + u_mtrldef_costmx.wfjgcost + u_mtrldef_costmx.othercost
- FROM u_mtrldef,u_mtrldef_costmx
- WHERE u_mtrldef_costmx.cmpid = :arg_cmpid AND
- u_mtrldef_costmx.mtrlid = u_mtrldef.mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新物料定义资料失败'
- GOTO ext
- END IF
- UPDATE u_mtrldef_cost
- SET flag = 1 ,
- auditemp = :publ_operator,
- auditdate = :server_dt
- WHERE u_mtrldef_cost.cmpid = :arg_cmpid AND
- u_mtrldef_cost.flag = 0 USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新运算历史失败'
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer save_cost (s_mtrldef_cost arg_s_cost, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ls_newid
- DateTime server_dt
- 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 arg_s_cost.cmpid = 0 THEN
- ls_newid = f_sys_scidentity(0,"u_mtrldef_cost","cmpid",arg_msg,TRUE,commit_transaction)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_mtrldef_cost
- ( cmpid,
- dscrp,
- mtrltype,
- emptype,
- scformula,
- glformula,
- opemp,
- opdate )
- VALUES ( :ls_newid,
- :arg_s_cost.dscrp,
- :arg_s_cost.mtrltype,
- :arg_s_cost.emptype,
- :arg_s_cost.scformula,
- :arg_s_cost.glformula,
- :publ_operator,
- :server_dt ) USING commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入统计历史失败"
- GOTO ext
- END IF
- ELSE
-
- UPDATE u_mtrldef_cost
- SET dscrp = :arg_s_cost.dscrp,
- mtrltype = :arg_s_cost.mtrltype,
- emptype = :arg_s_cost.emptype,
- glformula = :arg_s_cost.glformula,
- scformula = :arg_s_cost.scformula
- where cmpid = :arg_s_cost.cmpid USING commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入统计历史失败"
- GOTO ext
- END IF
-
- END IF
- //
- //s_mtrldef_costmx s_costmx[]
- //Long i = 1,NO_MXCHECK
- //DECLARE CUR_INWAERMX CURSOR FOR
- // SELECT mtrlid,wfjgcost,othercost,mtrlcode
- // FROM u_mtrldef USING commit_transaction;
- //OPEN CUR_INWAERMX;
- //FETCH CUR_INWAERMX INTO :s_costmx[i].mtrlid,:s_costmx[i].wfjgcost,:s_costmx[i].othercost,:s_costmx[i].mtrlcode;
- //DO WHILE commit_transaction.SQLCode = 0
- // i++
- // FETCH CUR_INWAERMX INTO :s_costmx[i].mtrlid,:s_costmx[i].wfjgcost,:s_costmx[i].othercost,:s_costmx[i].mtrlcode;
- //LOOP
- //CLOSE CUR_INWAERMX;
- ////检验明细是否读入完整
- //SELECT COUNT(*) INTO :NO_MXCHECK
- // FROM u_mtrldef 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
- //
- //Open(w_sys_wait_jdt) //初始化进度条
- //w_sys_wait_jdt.Show()
- //w_sys_wait_jdt.wf_accepttol(NO_MXCHECK)
- //w_sys_wait_jdt.wf_inc(0)
- //w_sys_wait_jdt.st_msg.Text = "正在统计..."
- //
- //
- //FOR i = 1 TO NO_MXCHECK
- //
- // w_sys_wait_jdt.wf_inc(i)
- // w_sys_wait_jdt.st_msg.Text = "正在统计:"+s_costmx[i].mtrlcode + '的物料成本、人力成本...'
- //
- // IF arg_s_cost.mtrltype = 0 THEN
- // SELECT dftmtrlcost
- // INTO :s_costmx[i].dftmtrlcost
- // FROM u_mtrldef
- // Where mtrlid = :s_costmx[i].mtrlid USING commit_transaction;
- // IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = "查询物料资料操作失败"
- // GOTO ext
- // END IF
- // ELSE
- // IF uof_pfdpf_cost(s_costmx[i].mtrlid,s_costmx[i].dftmtrlcost,1,arg_msg) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //
- // IF arg_s_cost.emptype = 0 THEN
- // SELECT dftempcost
- // INTO :s_costmx[i].dftempcost
- // FROM u_mtrldef
- // Where mtrlid = :s_costmx[i].mtrlid USING commit_transaction;
- // IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = "查询物料资料操作失败"
- // GOTO ext
- // END IF
- //
- // ELSE
- // SELECT sum(u_sc_workprice.workqty * u_sc_workprice.workprice)
- // INTO :s_costmx[i].dftempcost
- // FROM u_sc_workprice
- // Where u_sc_workprice.mtrlid = :s_costmx[i].mtrlid USING commit_transaction;
- // IF commit_transaction.SQLCode = -1 THEN
- // rslt = 0
- // arg_msg = "查询物料工价表操作失败"
- // GOTO ext
- // ELSEIF commit_transaction.SQLCode = 100 THEN
- // s_costmx[i].dftempcost = 0
- // END IF
- // IF IsNull(s_costmx[i].dftempcost) THEN s_costmx[i].dftempcost = 0
- // END IF
- //
- //NEXT
- //
- //w_sys_wait_jdt.wf_accepttol(NO_MXCHECK)
- //w_sys_wait_jdt.wf_inc(0)
- //w_sys_wait_jdt.st_msg.Text = "正在统计..."
- //
- //datastore ds_cmp
- //String ls_rs
- //Decimal ls_number
- //ds_cmp = CREATE datastore
- //ds_cmp.DataObject = "ds_cmp_qty"
- //ds_cmp.SetTransObject(sqlca)
- //ds_cmp.Retrieve()
- //String ls_scformula
- //
- //FOR i = 1 TO NO_MXCHECK
- //
- // w_sys_wait_jdt.wf_inc(i)
- // w_sys_wait_jdt.st_msg.Text = "正在统计:"+s_costmx[i].mtrlcode + '的生产成本、管理成本...'
- //
- // SELECT Top 1 Replace(:arg_s_cost.scformula,'物料成本',:s_costmx[i].dftmtrlcost) INTO:ls_scformula FROM u_user;
- // SELECT Top 1 Replace(:ls_scformula,'人力成本',:s_costmx[i].dftempcost) INTO:ls_scformula FROM u_user;
- // ds_cmp.Reset()
- // ds_cmp.InsertRow(0)
- // ls_rs = ds_cmp.Modify("cmp.Expression='"+ ls_scformula+"'")
- // IF ls_rs = '' THEN
- // ds_cmp.AcceptText()
- // s_costmx[i].dftsccost = ds_cmp.Object.cmp[ds_cmp.GetRow()]
- // ELSE
- // rslt = 0
- // arg_msg = '生产费用计算公式非法,不能计算!'+arg_s_cost.scformula
- // GOTO ext
- // END IF
- //
- // SELECT Top 1 Replace(:arg_s_cost.glformula,'物料成本',:s_costmx[i].dftmtrlcost) INTO:ls_scformula FROM u_user;
- // SELECT Top 1 Replace(:ls_scformula,'人力成本',:s_costmx[i].dftempcost) INTO:ls_scformula FROM u_user;
- // ds_cmp.Reset()
- // ds_cmp.InsertRow(0)
- // ls_rs = ds_cmp.Modify("cmp.Expression='"+ ls_scformula+"'")
- // IF ls_rs = '' THEN
- // ds_cmp.AcceptText()
- // s_costmx[i].dftglcost = ds_cmp.Object.cmp[ds_cmp.GetRow()]
- // ELSE
- // rslt = 0
- // arg_msg = '管理费用计算公式非法,不能计算!'+arg_s_cost.scformula
- // GOTO ext
- // END IF
- //
- // INSERT INTO u_mtrldef_costmx
- // ( cmpid,
- // mtrlid,
- // dftmtrlcost,
- // dftempcost,
- // dftsccost,
- // dftglcost,
- // wfjgcost,
- // othercost )
- // VALUES ( :ls_newid,
- // :s_costmx[i].mtrlid,
- // :s_costmx[i].dftmtrlcost,
- // :s_costmx[i].dftempcost,
- // :s_costmx[i].dftsccost,
- // :s_costmx[i].dftglcost,
- // :s_costmx[i].wfjgcost,
- // :s_costmx[i].othercost ) USING commit_transaction;
- // IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = "插入统计历史明细操作失败"
- // GOTO ext
- // END IF
- //
- //NEXT
- ext:
- IF IsValid(w_sys_wait_jdt) THEN
- Close(w_sys_wait_jdt)
- END IF
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- cmpid = ls_newid
- COMMIT USING commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer uof_pfdpf_cost (long arg_mtrlid, ref decimal arg_cost, decimal arg_sonscale, ref string arg_msg);Long ll_cnt,i,mtrlorigin,ls_newid
- Long rslt = 1
- s_pfmx outwaremx[]
- String ls_msg
- Decimal ld_cost
- Long cnt
- SELECT mtrlorigin
- INTO :mtrlorigin
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料资料失败'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_PrdPF
- Where u_PrdPF.mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料清单失败'
- GOTO ext
- END IF
- IF mtrlorigin = 2 THEN
- String ls_mtrlcode,ls_unit
- ld_cost = 0
- //取最新采购价
- SELECT u_mtrldef.mtrlcode,
- u_mtrldef.unit
- INTO :ls_mtrlcode,
- :ls_unit
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料资料失败'
- GOTO ext
- END IF
-
- SELECT top 1 round(price * :arg_sonscale,2) INTO :ld_cost
- FROM v_maxprice_sptprice_dftunit
- Where mtrlid = :arg_mtrlid and
- unit = :ls_unit USING commit_transaction;
- IF commit_transaction.SQLCode = -1 THEN
- arg_msg = '查询物料:'+ls_mtrlcode+'最新采购价或最新外加工单价失败'
- rslt = 0
- GOTO ext
- END IF
- if isnull(ld_cost) then ld_cost = 0
-
- arg_cost = arg_cost + ld_cost
- END IF
- IF cnt = 0 THEN GOTO ext
- ll_cnt = 1
- DECLARE cur_outwaremx CURSOR FOR
- SELECT u_PrdPF.SonMtrlid,u_PrdPF.sonscale,u_mtrldef.mtrlorigin
- FROM u_PrdPF,u_mtrldef
- WHERE ( u_PrdPF.mtrlid = :arg_mtrlid ) AND
- ( u_PrdPF.mtrlid = u_mtrldef.mtrlid ) USING commit_transaction;
- OPEN cur_outwaremx;
- FETCH cur_outwaremx INTO
- :outwaremx[ll_cnt].mtrlid,:outwaremx[ll_cnt].sonscale,:outwaremx[ll_cnt].mtrlorigin;
- DO WHILE commit_transaction.SQLCode = 0
- ll_cnt++
- FETCH cur_outwaremx INTO :outwaremx[ll_cnt].mtrlid,:outwaremx[ll_cnt].sonscale,:outwaremx[ll_cnt].mtrlorigin;
- LOOP
- CLOSE cur_outwaremx;
- ll_cnt = ll_cnt - 1
- FOR i = 1 TO ll_cnt
- IF uof_pfdpf_cost( outwaremx[i].mtrlid,arg_cost,outwaremx[i].sonscale * arg_sonscale,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- NEXT
- ext:
- RETURN rslt
- end function
- public function integer uof_cml_cost (s_mtrldef_cost arg_s_cost, s_mtrldef_costmx arg_s_costmx, ref string arg_msg, boolean arg_ifcommit);Long rslt = 1
- Long i = 1,NO_MXCHECK
- FOR i = 1 TO UpperBound(arg_s_costmx.mtrlid)
-
- SELECT mtrlid,wfjgcost,othercost,mtrlcode
- INTO :arg_s_costmx.mtrlid[i],:arg_s_costmx.wfjgcost[i],:arg_s_costmx.othercost[i],:arg_s_costmx.mtrlcode[i]
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :arg_s_costmx.mtrlid[i] USING commit_transaction;
- NEXT
- NO_MXCHECK = UpperBound(arg_s_costmx.mtrlid)
- Open(w_sys_wait_jdt) //初始化进度条
- w_sys_wait_jdt.Show()
- w_sys_wait_jdt.wf_accepttol(NO_MXCHECK)
- w_sys_wait_jdt.wf_inc(0)
- w_sys_wait_jdt.st_msg.Text = "正在统计..."
- FOR i = 1 TO NO_MXCHECK
-
- w_sys_wait_jdt.wf_inc(i)
- w_sys_wait_jdt.st_msg.Text = "正在统计:"+arg_s_costmx.mtrlcode[i] + '的物料成本、人力成本...'
-
- IF arg_s_cost.mtrltype = 0 THEN
- SELECT dftmtrlcost
- INTO :arg_s_costmx.dftmtrlcost[i]
- FROM u_mtrldef
- Where mtrlid = :arg_s_costmx.mtrlid[i] USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询物料资料操作失败"
- GOTO ext
- END IF
- ELSE
- IF uof_pfdpf_cost(arg_s_costmx.mtrlid[i],arg_s_costmx.dftmtrlcost[i],1,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- IF arg_s_cost.emptype = 0 THEN
- SELECT dftempcost
- INTO :arg_s_costmx.dftempcost[i]
- FROM u_mtrldef
- Where mtrlid = :arg_s_costmx.mtrlid[i] USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询物料资料操作失败"
- GOTO ext
- END IF
-
- ELSE
- SELECT sum(u_sc_workprice.workqty * u_sc_workprice.workprice)
- INTO :arg_s_costmx.dftempcost[i]
- FROM u_sc_workprice
- Where u_sc_workprice.mtrlid = :arg_s_costmx.mtrlid[i] USING commit_transaction;
- IF commit_transaction.SQLCode = -1 THEN
- rslt = 0
- arg_msg = "查询物料工价表操作失败"
- GOTO ext
- ELSEIF commit_transaction.SQLCode = 100 THEN
- arg_s_costmx.dftempcost[i] = 0
- END IF
- IF IsNull(arg_s_costmx.dftempcost[i]) THEN arg_s_costmx.dftempcost[i] = 0
- END IF
-
- NEXT
- w_sys_wait_jdt.wf_accepttol(NO_MXCHECK)
- w_sys_wait_jdt.wf_inc(0)
- w_sys_wait_jdt.st_msg.Text = "正在统计..."
- datastore ds_cmp
- String ls_rs
- Decimal ls_number
- ds_cmp = CREATE datastore
- ds_cmp.DataObject = "ds_cmp_qty"
- ds_cmp.SetTransObject(sqlca)
- ds_cmp.Retrieve()
- String ls_scformula
- FOR i = 1 TO NO_MXCHECK
-
- w_sys_wait_jdt.wf_inc(i)
- w_sys_wait_jdt.st_msg.Text = "正在统计:"+arg_s_costmx.mtrlcode[i] + '的生产成本、管理成本...'
-
- SELECT Top 1 Replace(:arg_s_cost.scformula,'材料成本',:arg_s_costmx.dftmtrlcost[i]) INTO:ls_scformula FROM u_user USING commit_transaction;
- SELECT Top 1 Replace(:ls_scformula,'人力成本',:arg_s_costmx.dftempcost[i]) INTO:ls_scformula FROM u_user USING commit_transaction;
- ds_cmp.Reset()
- ds_cmp.InsertRow(0)
- ls_rs = ds_cmp.Modify("cmp.Expression='"+ ls_scformula+"'")
- IF ls_rs = '' THEN
- ds_cmp.AcceptText()
- arg_s_costmx.dftsccost[i] = ds_cmp.Object.cmp[ds_cmp.GetRow()]
- ELSE
- rslt = 0
- arg_msg = '生产费用计算公式非法,不能计算!'+arg_s_cost.scformula
- GOTO ext
- END IF
-
- SELECT Top 1 Replace(:arg_s_cost.glformula,'材料成本',:arg_s_costmx.dftmtrlcost[i]) INTO:ls_scformula FROM u_user USING commit_transaction;
- SELECT Top 1 Replace(:ls_scformula,'人力成本',:arg_s_costmx.dftempcost[i]) INTO:ls_scformula FROM u_user USING commit_transaction;
- ds_cmp.Reset()
- ds_cmp.InsertRow(0)
- ls_rs = ds_cmp.Modify("cmp.Expression='"+ ls_scformula+"'")
- IF ls_rs = '' THEN
- ds_cmp.AcceptText()
- arg_s_costmx.dftglcost[i] = ds_cmp.Object.cmp[ds_cmp.GetRow()]
- ELSE
- rslt = 0
- arg_msg = '管理费用计算公式非法,不能计算!'+arg_s_cost.scformula
- GOTO ext
- END IF
-
- DELETE FROM u_mtrldef_costmx
- Where cmpid = :arg_s_cost.cmpid and
- mtrlid = :arg_s_costmx.mtrlid[i] USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除统计历史明细操作失败"
- GOTO ext
- END IF
-
- INSERT INTO u_mtrldef_costmx
- ( cmpid,
- mtrlid,
- dftmtrlcost,
- dftempcost,
- dftsccost,
- dftglcost,
- wfjgcost,
- othercost )
- VALUES ( :arg_s_cost.cmpid,
- :arg_s_costmx.mtrlid[i],
- :arg_s_costmx.dftmtrlcost[i],
- :arg_s_costmx.dftempcost[i],
- :arg_s_costmx.dftsccost[i],
- :arg_s_costmx.dftglcost[i],
- :arg_s_costmx.wfjgcost[i],
- :arg_s_costmx.othercost[i] ) USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入统计历史明细操作失败"
- GOTO ext
- END IF
-
- NEXT
- UPDATE u_mtrldef_cost
- SET cmpdate = getdate()
- Where cmpid = :arg_s_cost.cmpid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新统计时间操作失败"
- GOTO ext
- END IF
- ext:
- IF IsValid(w_sys_wait_jdt) THEN
- Close(w_sys_wait_jdt)
- END IF
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer uof_update_configure2 (long arg_mtrlid, s_mtrl_configure_array arg_s_config, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1
- IF arg_mtrlid <= 0 THEN
- rslt = 0
- arg_msg = '错误的物料ID'
- GOTO ext
- END IF
- DELETE FROM u_mtrl_configure2
- Where mtrlid = :arg_mtrlid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除物料包件配置资料操作失败:'+sqlca.SQLErrText
- GOTO ext
- END IF
- Long ls_i
- String ls_pzcode,ls_name,ls_pzcodemx,ls_namemx
- Long ls_printid,ls_pzid
- Long ll_pzflag = 0
- FOR ls_i = 1 TO UpperBound(arg_s_config.pzid)
- ls_pzid = arg_s_config.pzid[ls_i]
- ls_pzcode = arg_s_config.pzcode[ls_i]
- ls_name = arg_s_config.pzname[ls_i]
- ls_pzcodemx = arg_s_config.pzcodemx[ls_i]
- ls_namemx = arg_s_config.pznamemx[ls_i]
- ls_printid = ls_i
-
- INSERT INTO u_mtrl_configure2
- (mtrlid, pzid, printid, pzcode, pzname, pzcodemx, pznamemx)
- Values(:arg_mtrlid,:ls_pzid,:ls_printid,:ls_pzcode,:ls_name,:ls_pzcodemx,:ls_namemx) USING sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入物料包件配置资料操作失败:'+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
- 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_mtrl (s_mtrldef_array arg_s_mtrl, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);s_mtrl = arg_s_mtrl
- return save(arg_ifcommit, arg_msg)
- end function
- public function integer save_pack (ref s_mtrldef_pack arg_pack, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_printid
- IF arg_pack.printid = 0 THEN
- SELECT isnull(max(printid),0)
- INTO :ll_printid
- FROM u_mtrldef_pack
- Where mtrlid = :arg_pack.mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询包件序号失败,' + sqlca.SQLErrText
- GOTO ext
- END IF
- ll_printid++
- INSERT INTO u_mtrldef_pack(mtrlid,
- printid,
- packcode,
- packname,
- packnum,
- net_weight,
- gross_weight,
- cubage)
- VALUES(:arg_pack.mtrlid,
- :ll_printid,
- :arg_pack.packcode,
- :arg_pack.packname,
- :arg_pack.packnum,
- :arg_pack.net_weight,
- :arg_pack.gross_weight,
- :arg_pack.cubage);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '新增包件定义失败,' + sqlca.SQLErrText
- GOTO ext
- END IF
- ELSE
- UPDATE u_mtrldef_pack
- SET packcode = :arg_pack.packcode,
- packname = :arg_pack.packname,
- packnum = :arg_pack.packnum,
- net_weight = :arg_pack.net_weight,
- gross_weight = :arg_pack.gross_weight,
- cubage = :arg_pack.cubage
- WHERE mtrlid = :arg_pack.mtrlid
- And printid = :arg_pack.printid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新包件定义失败,' + sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- ext:
- IF arg_ifcommit THEN
- IF rslt = 1 THEN
- COMMIT;
- ELSE
- ROLLBACK;
- END IF
- END IF
- RETURN rslt
- end function
- public function integer del_pack (long arg_mtrlid, long arg_printid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- DELETE FROM u_mtrldef_pack
- WHERE mtrlid = :arg_mtrlid
- And printid = :arg_printid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除包件定义失败,' + sqlca.SQLErrText
- GOTO ext
- END IF
- IF sqlca.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = '包件定义已经被其它人删除'
- GOTO ext
- END IF
- ext:
- IF arg_ifcommit THEN
- IF rslt = 1 THEN
- COMMIT;
- ELSE
- ROLLBACK;
- END IF
- END IF
- RETURN rslt
- end function
- public function integer uof_pfdpf_empcost (long arg_mtrlid, ref decimal arg_cost, decimal arg_sonscale, ref string arg_msg);Long ll_cnt,i,mtrlorigin
- Long rslt = 1
- s_pfmx outwaremx[]
- String ls_msg
- Decimal ld_cost
- //SELECT mtrlorigin
- // INTO :mtrlorigin
- // FROM u_mtrldef
- // Where mtrlid = :arg_mtrlid Using commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询物料资料失败'
- // GOTO ext
- //END IF
- //ll_cnt = 0
- //SELECT count(*)
- // INTO :ll_cnt
- // FROM u_PrdPF
- // Where u_PrdPF.mtrlid = :arg_mtrlid Using commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询物料清单失败'
- // GOTO ext
- //END IF
- //IF mtrlorigin = 2 THEN
- ld_cost = 0
- SELECT sum(u_sc_workprice.workqty * u_sc_workprice.workprice * :arg_sonscale)
- INTO :ld_cost
- FROM u_sc_workprice
- Where u_sc_workprice.mtrlid = :arg_mtrlid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询物料工价表操作失败"
- GOTO ext
- END IF
- IF IsNull(ld_cost) THEN ld_cost = 0
- arg_cost = arg_cost + ld_cost
- //END IF
- //IF ll_cnt = 0 THEN GOTO ext
- ll_cnt = 1
- DECLARE cur_pfdpf CURSOR FOR
- SELECT u_PrdPF.SonMtrlid,u_PrdPF.sonscale,u_mtrldef.mtrlorigin
- FROM u_PrdPF,u_mtrldef
- WHERE ( u_PrdPF.mtrlid = :arg_mtrlid ) AND
- ( u_PrdPF.mtrlid = u_mtrldef.mtrlid ) Using commit_transaction;
- OPEN cur_pfdpf;
- FETCH cur_pfdpf INTO
- :outwaremx[ll_cnt].mtrlid,:outwaremx[ll_cnt].sonscale,:outwaremx[ll_cnt].mtrlorigin;
- DO WHILE commit_transaction.SQLCode = 0
- ll_cnt++
- FETCH cur_pfdpf Into :outwaremx[ll_cnt].mtrlid,:outwaremx[ll_cnt].sonscale,:outwaremx[ll_cnt].mtrlorigin;
- LOOP
- CLOSE cur_pfdpf;
- ll_cnt = ll_cnt - 1
- FOR i = 1 To ll_cnt
- IF uof_pfdpf_empcost( outwaremx[i].mtrlid,arg_cost,outwaremx[i].sonscale * arg_sonscale,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- NEXT
- ext:
- RETURN rslt
- end function
- on uo_mtrldef.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_mtrldef.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|