1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088 |
- $PBExportHeader$uo_spt_price.sru
- forward
- global type uo_spt_price from nonvisualobject
- end type
- end forward
- global type uo_spt_price from nonvisualobject
- end type
- global uo_spt_price uo_spt_price
- type variables
- Int uo_option_buyprice_ifbj
- int uo_option_sptprice_effdate
- int uo_option_zero_update_sptprice
- end variables
- forward prototypes
- public function integer uof_getmtrlname (long arg_sptid, long arg_mtrlid, ref string arg_sptmtrlname, ref string arg_msg)
- public function integer uof_getmtrlsptprice (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref decimal arg_price, ref decimal arg_zqrate, ref decimal arg_rate, datetime arg_billdate, ref string arg_msg)
- public function integer uf_getmtrlsptprice_ch (long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref decimal arg_price, ref decimal arg_rate, ref datetime arg_lastdate, ref string arg_msg)
- public function integer uof_check_price (integer arg_thflag, long arg_sptid, long arg_mtrlid, string arg_mtrlcode, string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, long arg_moneyid, decimal arg_price, datetime arg_billdate, ref string arg_msg)
- public function integer uof_del_sdsptprice (long arg_mtrlid, long arg_moneyid, long arg_sptid, string arg_unit, datetime arg_opdate, long arg_printid, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, decimal arg_price, decimal arg_zqrate, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_del_sptprice_auto (long arg_sptid, long arg_inwareid, long arg_printid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, string arg_unit, long arg_moneyid, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_update_sptmtrlname (long arg_sptid, long arg_mtrlid, string arg_sptmtrlname, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_check_limitprice (integer arg_thflag, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, string arg_unit, decimal arg_price, ref string arg_msg)
- public function integer uof_getnewprice (long arg_sptid, long arg_moneyid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref decimal arg_price, ref decimal arg_zqrate, ref decimal arg_rate, ref datetime arg_opdate, ref string arg_msg)
- public function integer uof_sptmtrlname_set (long arg_sptid, long arg_mtrlid, string arg_sptmtrlname, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_sptmtrlname_get (long arg_sptid, long arg_mtrlid, ref string arg_sptmtrlname, ref string arg_msg)
- public function integer uof_sptmtrlprice_get (long arg_sptid, long arg_moneyid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, datetime arg_effdate, ref decimal arg_fprice, ref decimal arg_zqrate, ref decimal arg_rate, ref datetime arg_billdate, ref string arg_msg)
- public function integer uof_sptmtrlprice_delete (long arg_inwareid, long arg_printid, long arg_sptid, long arg_moneyid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, string arg_unit, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_getmtrlsptbuybargainprice (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref long arg_buybargainid, ref long arg_buybargainprintid, ref string arg_buybargaincode, ref decimal arg_price, ref decimal arg_rebate, ref string arg_msg)
- public function integer uof_getmtrlsptbuybargain (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref long arg_buybargainid, ref long arg_buybargainprintid, ref string arg_buybargaincode, ref string arg_msg)
- public function integer uof_sptmtrlprice_set (integer arg_ifth, integer arg_ifbj, long arg_sptid, long arg_moneyid, long arg_mtrlid, string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, datetime arg_effdate, datetime arg_effdate_end, decimal arg_fprice, decimal arg_zqrate, decimal arg_rate, decimal arg_wareprice, decimal arg_wareprice_notax, integer arg_billtype, integer arg_buildtype, long arg_inwareid, string arg_inwarecode, long arg_printid, datetime arg_indate, string arg_dscrp, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_update_sptprice (integer arg_ifth, long arg_sptid, long arg_mtrlid, string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, long arg_inwareid, decimal arg_fprice, decimal arg_zqrate, decimal arg_rate, decimal arg_wareprice, decimal arg_wareprice_notax, datetime arg_indate, string arg_inwarecode, long arg_flag, string arg_dscrp, long arg_printid, integer arg_billtype, long arg_moneyid, datetime arg_effdate, datetime arg_effdate_end, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_getmtrlsptbuyareaprice (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref long arg_buybargainid, ref long arg_buybargainprintid, ref string arg_buybargaincode, ref decimal arg_price, ref decimal arg_otherprice, ref decimal arg_areaqty, ref string arg_msg)
- end prototypes
- public function integer uof_getmtrlname (long arg_sptid, long arg_mtrlid, ref string arg_sptmtrlname, ref string arg_msg);
- return uof_sptmtrlname_get(arg_sptid, arg_mtrlid, arg_sptmtrlname, arg_msg)
- //Long rslt = 1
- //String rtn_sptmtrlname
- //
- //
- //SELECT sptmtrlname
- // INTO :rtn_sptmtrlname
- // FROM u_sptmtrlname
- // WHERE u_sptmtrlname.mtrlid = :arg_mtrlid
- // AND u_sptmtrlname.sptid = :arg_sptid;
- //IF sqlca.SQLCode = -1 THEN
- // rslt = 0
- // arg_msg = '查询操作失败'+sqlca.SQLErrText
- // GOTO ext
- //ELSEIF sqlca.SQLCode = 100 OR IsNull(rtn_sptmtrlname) THEN
- // rtn_sptmtrlname = ''
- //END IF
- //
- //arg_sptmtrlname = rtn_sptmtrlname
- //
- //ext:
- //
- //RETURN rslt
- end function
- public function integer uof_getmtrlsptprice (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref decimal arg_price, ref decimal arg_zqrate, ref decimal arg_rate, datetime arg_billdate, ref string arg_msg);datetime ldt_opdate
- return uof_sptmtrlprice_get ( arg_sptid, arg_moneyid, arg_mtrlid, arg_unit, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, arg_billdate, arg_price, arg_zqrate, arg_rate, ldt_opdate,arg_msg)
- //Long rslt = 1
- //Decimal rtn_price,rtn_zqrate,rtn_rate
- //String rtn_unit
- //String rtn_wareunit
- //Int li_iflimitprice,li_price_ifpz_buy
- //Int li_issuliao
- //
- //arg_status = Trim(arg_status)
- //arg_woodcode = Trim(arg_woodcode)
- //arg_pcode = Trim(arg_pcode)
- //arg_jgdscrp = Trim(arg_jgdscrp)
- //
- //
- //arg_unit = Trim(arg_unit)
- //
- //arg_billdate = DateTime(Date(arg_billdate),Time(0))
- //
- //IF uo_option_buyprice_ifbj = -1000 THEN
- // arg_msg = '选项:[053]收货单取单价模式,读取初始默认值失败,操作取消!'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //
- //IF uo_option_sptprice_effdate = -1000 THEN
- // arg_msg = '选项:[244]供应商报价使用生效日期,读取初始默认值失败,操作取消!'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //
- //SELECT iflimitprice,price_ifpz_buy,issuliao INTO :li_iflimitprice,:li_price_ifpz_buy,:li_issuliao
- // FROM u_mtrldef
- // Where mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询物料限价属性失败 '+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //CHOOSE CASE li_price_ifpz_buy
- // CASE 0
- // arg_status = ''
- // arg_woodcode = ''
- // arg_pcode = ''
- // CASE 1
- // arg_pcode = ''
- // arg_woodcode = ''
- // CASE 2
- // arg_status = ''
- // arg_pcode = ''
- // CASE 3
- // arg_status = ''
- // arg_woodcode = ''
- // CASE 4
- // arg_pcode = ''
- // CASE 5
- // arg_status = ''
- // CASE 6
- // arg_woodcode = ''
- //END CHOOSE
- //
- //IF arg_unit = '' THEN
- //
- // IF uo_option_buyprice_ifbj = 0 Or uo_option_buyprice_ifbj = 2 And li_iflimitprice = 0 THEN
- // SELECT top 1 fprice,zqrate,rate,unit
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.moneyid = :arg_moneyid
- // Order By u_spt_price_mx.opdate Desc;
- // ELSE
- // IF uo_option_sptprice_effdate = 1 THEN
- // SELECT top 1 fprice,zqrate,rate,unit
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.billtype = 2
- // AND u_spt_price_mx.moneyid = :arg_moneyid
- // AND u_spt_price_mx.effdate <= :arg_billdate
- // Order By u_spt_price_mx.effdate Desc,u_spt_price_mx.opdate Desc;
- // ELSE
- // SELECT top 1 fprice,zqrate,rate,unit
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.billtype = 2
- // AND u_spt_price_mx.moneyid = :arg_moneyid
- // Order By u_spt_price_mx.opdate Desc;
- // END IF
- // END IF
- //
- // IF sqlca.SQLCode = -1 THEN
- // rslt = 0
- // arg_msg = '查询价格操作失败'+sqlca.SQLErrText
- // GOTO ext
- // ELSEIF sqlca.SQLCode = 100 Or IsNull(rtn_price) THEN
- // rtn_zqrate = 1
- //
- // SELECT unit,unit_buy,rate_buy
- // INTO :rtn_wareunit,:rtn_unit,:rtn_rate
- // FROM u_mtrldef
- // Where mtrlid = :arg_mtrlid;
- //
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 2
- // rtn_price = 0.00
- // rtn_zqrate = 1
- // rtn_rate = 1
- // rtn_unit = ''
- // arg_msg = '不存在产品资料'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //
- // IF rtn_unit = '' Or rtn_rate = 0 THEN
- // rtn_unit = rtn_wareunit
- // rtn_price = 0.00
- // rtn_rate = 1
- // rtn_zqrate = 1
- // rslt = 2
- // GOTO ext
- // END IF
- // END IF
- //ELSE
- // IF uo_option_buyprice_ifbj = 0 Or uo_option_buyprice_ifbj = 2 And li_iflimitprice = 0 THEN
- // //取最新价 //053
- // SELECT top 1 fprice,zqrate,rate,unit
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit
- // FROM u_spt_price
- // WHERE u_spt_price.mtrlid = :arg_mtrlid
- // AND u_spt_price.sptid = :arg_sptid
- // AND u_spt_price.unit = :arg_unit
- // AND u_spt_price.status = :arg_status
- // AND u_spt_price.woodcode = :arg_woodcode
- // AND u_spt_price.pcode = :arg_pcode
- // AND u_spt_price.jgdscrp = :arg_jgdscrp
- // AND u_spt_price.moneyid = :arg_moneyid
- // Order By u_spt_price.sys_changetime Desc;
- // ELSE//取最新报价
- // //加强为考虑合同
- // IF uo_option_sptprice_effdate = 1 THEN //使用生效日期 //244
- // SELECT top 1 fprice,zqrate,rate,unit
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.billtype = 2
- // AND u_spt_price_mx.unit = :arg_unit
- // AND u_spt_price_mx.moneyid = :arg_moneyid
- // AND u_spt_price_mx.effdate <= :arg_billdate
- // Order By u_spt_price_mx.effdate Desc,u_spt_price_mx.opdate Desc;
- // ELSE
- // SELECT top 1 fprice,zqrate,rate,unit
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.billtype = 2
- // AND u_spt_price_mx.unit = :arg_unit
- // AND u_spt_price_mx.moneyid = :arg_moneyid
- // Order By u_spt_price_mx.opdate Desc;
- // END IF
- // END IF
- //
- // IF sqlca.SQLCode = -1 THEN
- // rslt = 0
- // arg_msg = '查询操作失败'+sqlca.SQLErrText
- // GOTO ext
- // ELSEIF sqlca.SQLCode = 100 Or IsNull(rtn_price) THEN
- // // if li_issuliao = 5 or li_issuliao = 8 then //纸箱 或 泡沫 特殊读价
- // // f_getbaseprice_dwuse(arg_mtrlid,arg_material,ls_billcode)
- // // end if
- //
- // rslt = 2
- // rtn_price = 0.00
- // rtn_zqrate = 1
- // GOTO ext
- // END IF
- //
- //END IF
- //
- //ext:
- //IF rslt <> 1 THEN
- // rtn_price = 0.00
- // rtn_zqrate = 1
- // rtn_rate = 1
- //END IF
- //
- //arg_price = rtn_price
- //arg_zqrate = rtn_zqrate
- //arg_rate = rtn_rate
- //arg_unit = rtn_unit
- //
- //
- //RETURN rslt
- end function
- public function integer uf_getmtrlsptprice_ch (long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref decimal arg_price, ref decimal arg_rate, ref datetime arg_lastdate, ref string arg_msg);//datetime ldt_effdate
- //ldt_effdate = datetime(1900-01-01)
- //
- //decimal lde_zqrate
- //
- //decimal lde_moneyid
- //
- //return uof_sptmtrlprice_get ( arg_sptid, lde_moneyid, arg_mtrlid, arg_unit, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, ldt_effdate, arg_price, lde_zqrate, arg_rate, arg_lastdate,arg_msg)
- //
- //供应商调价,查上次价, 无用
- Long rslt = 1
- //Decimal rtn_price,rtn_rate
- //DateTime rtn_lastdate
- //
- //Int li_iflimitprice,li_price_ifpz_buy
- //
- //arg_status = Trim(arg_status)
- //arg_woodcode = Trim(arg_woodcode)
- //arg_pcode = Trim(arg_pcode)
- //arg_jgdscrp = Trim(arg_jgdscrp)
- //
- //
- //arg_unit = Trim(arg_unit)
- //
- //IF uo_option_buyprice_ifbj = -1000 THEN
- // arg_msg = '选项:[053]收货单取单价模式,读取初始默认值失败,操作取消!'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //SELECT iflimitprice,
- // price_ifpz_buy
- // INTO :li_iflimitprice,
- // :li_price_ifpz_buy
- // FROM u_mtrldef
- // Where mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询物料限价属性失败 '+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //CHOOSE CASE li_price_ifpz_buy
- // CASE 0
- // arg_status = ''
- // arg_woodcode = ''
- // arg_pcode = ''
- // CASE 1
- // arg_pcode = ''
- // arg_woodcode = ''
- // CASE 2
- // arg_status = ''
- // arg_pcode = ''
- // CASE 3
- // arg_status = ''
- // arg_woodcode = ''
- // CASE 4
- // arg_pcode = ''
- // CASE 5
- // arg_status = ''
- // CASE 6
- // arg_woodcode = ''
- //END CHOOSE
- //
- //IF arg_unit = '' THEN
- // rtn_price = 0.00
- // rtn_rate = 1
- // SetNull(rtn_lastdate)
- // rslt = 2
- // GOTO ext
- //ELSE
- // IF uo_option_buyprice_ifbj = 0 Or uo_option_buyprice_ifbj = 2 And li_iflimitprice = 0 THEN
- // SELECT top 1 fprice,rate,outdate
- // INTO :rtn_price,:rtn_rate ,:rtn_lastdate
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.unit = :arg_unit
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // Order By Opdate Desc;
- // ELSE
- // SELECT top 1 fprice,rate,outdate
- // INTO :rtn_price,:rtn_rate ,:rtn_lastdate
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.unit = :arg_unit
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.billtype = 2
- // Order By Opdate Desc;
- // END IF
- //
- // IF sqlca.SQLCode = -1 THEN
- // rslt = 0
- // arg_msg = '查询操作失败'+sqlca.SQLErrText
- // GOTO ext
- // ELSEIF sqlca.SQLCode = 100 Or IsNull(rtn_price) THEN
- // rslt = 2
- // rtn_price = 0.00
- // rtn_rate = 1
- // SetNull(rtn_lastdate)
- // GOTO ext
- // END IF
- //
- //END IF
- //
- //ext:
- //arg_price = rtn_price
- //arg_lastdate = rtn_lastdate
- //arg_rate = rtn_rate
- //
- RETURN rslt
- end function
- public function integer uof_check_price (integer arg_thflag, long arg_sptid, long arg_mtrlid, string arg_mtrlcode, string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, long arg_moneyid, decimal arg_price, datetime arg_billdate, ref string arg_msg);//采购订单,采购收货,外协订单,外协收货,限价
- Int rslt = 1
- Long cnt
- String ls_sptname
- Decimal ld_updownprice, lde_lmbuyprice
- Int li_ifnocheck,li_iflimitprice,li_price_ifpz_buy
- IF Not f_power_ind(124,sys_msg_pow) Or sys_power_issuper THEN
- rslt = 1
- GOTO ext
- END IF
- SELECT count(*) INTO :cnt
- FROM u_spt
- Where sptid = :arg_sptid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,供应商/加工商资料,"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "供应商资料错误!"
- GOTO ext
- END IF
- SELECT ifnocheck, name
- INTO :li_ifnocheck, :ls_sptname
- FROM u_spt
- Where sptid = :arg_sptid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,供应商/加工商不限价属性,"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_ifnocheck = 1 THEN //供应商不限
- rslt = 1
- GOTO ext
- END IF
- SELECT updownprice,iflimitprice,price_ifpz_buy
- INTO :ld_updownprice,:li_iflimitprice,:li_price_ifpz_buy
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,产品限价浮动差额资料,"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_iflimitprice = 0 THEN //物料不限
- rslt = 1
- GOTO ext
- end if
- DateTime ldt_opdate
- Decimal lde_zqrate, lde_rate
- IF uo_option_buyprice_ifbj = 0 Or uo_option_buyprice_ifbj = 2 And li_iflimitprice = 0 THEN
- cnt = 1
- ELSE
- IF uo_option_sptprice_effdate = 1 THEN
- SELECT count(*) INTO :cnt
- FROM u_spt_price_changemx INNER JOIN
- u_spt_price_change ON u_spt_price_changemx.billid = u_spt_price_change.billid
- WHERE u_spt_price_changemx.mtrlid = :arg_mtrlid
- AND u_spt_price_changemx.status = :arg_status
- AND u_spt_price_changemx.woodcode = :arg_woodcode
- AND u_spt_price_changemx.pcode = :arg_pcode
- AND u_spt_price_changemx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_changemx.unit = :arg_unit
- AND u_spt_price_changemx.effdate <= :arg_billdate
- AND u_spt_price_change.sptid = :arg_sptid
- AND u_spt_price_change.moneyid = :arg_moneyid
- And u_spt_price_change.flag = 0;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料:'+arg_mtrlcode+' '+arg_status+'单据日期前未审的供应商询价单失败, ~n'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '查询物料:'+arg_mtrlcode+' '+arg_status+',共有'+String(cnt)+'张生效日期在本单据日期前的供应商询价单未审,请先审核'
- GOTO ext
- END IF
-
-
- SELECT count(*)
- INTO :cnt
- FROM u_spt_price_MX INNER JOIN
- u_spt ON u_spt_price_MX.sptid = u_spt.sptid
- WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.billtype = 2
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.effdate <= :arg_billdate;
- ELSE
- SELECT count(*)
- INTO :cnt
- FROM u_spt_price_MX INNER JOIN
- u_spt ON u_spt_price_MX.sptid = u_spt.sptid
- WHERE u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.billtype = 2
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.moneyid = :arg_moneyid;
- END IF
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料:'+arg_mtrlcode+' '+arg_status+'是否有供应商询价单失败, ~n'+sqlca.SQLErrText
- GOTO ext
- END IF
- if cnt = 0 then
- rslt = 0
- arg_msg = '物料:'+arg_mtrlcode+' '+arg_status+'没有供应商询价单'
- GOTO ext
- end if
-
- END IF
- IF uof_sptmtrlprice_get ( arg_sptid, arg_moneyid, arg_mtrlid, arg_unit, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, arg_billdate, lde_lmbuyprice, lde_zqrate, lde_rate, ldt_opdate,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = "查询产品最新价失败,"+arg_msg
- GOTO ext
- END IF
- IF arg_thflag = 0 THEN
- IF arg_price > lde_lmbuyprice + ld_updownprice THEN
- rslt = 0
- arg_msg = '供应商:'+ls_sptname+',物料:'+arg_mtrlcode+'收货时,收货单价{'+String(arg_price,'#,##0.00##')+'} 高于收货限价{'+String( lde_lmbuyprice + ld_updownprice ,'#,##0.00##')+'}'
- GOTO ext
- END IF
- ELSE
- IF arg_price < lde_lmbuyprice - ld_updownprice THEN
- rslt = 0
- arg_msg = '供应商:'+ls_sptname+',物料:'+arg_mtrlcode+'退货时,退货单价{'+String(arg_price,'#,##0.00##')+'} 低于收货限价{'+String(lde_lmbuyprice - ld_updownprice,'#,##0.00##')+'}'
- GOTO ext
- END IF
- END IF
- ext:
- RETURN rslt
- end function
- public function integer uof_del_sdsptprice (long arg_mtrlid, long arg_moneyid, long arg_sptid, string arg_unit, datetime arg_opdate, long arg_printid, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, decimal arg_price, decimal arg_zqrate, boolean arg_ifcommit, ref string arg_msg);return uof_sptmtrlprice_delete ( 0, 0, arg_sptid, arg_moneyid, arg_mtrlid, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, arg_unit, arg_ifcommit, ref arg_msg)
- //Int rslt = 1
- //Long cnt = 0
- //
- ////检查供应商存在否
- //SELECT count(*)
- // INTO :cnt
- // FROM u_spt
- // Where u_spt.sptid = :arg_sptid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //IF cnt = 0 THEN
- // rslt = 0
- // arg_msg = '供应商不存在'
- // GOTO ext
- //END IF
- //
- //
- ////检查商品存在否
- //SELECT count(*)
- // INTO :cnt
- // FROM u_mtrldef
- // Where u_mtrldef.mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //IF cnt = 0 THEN
- // rslt = 0
- // arg_msg = '物料不存在'
- // GOTO ext
- //END IF
- //
- ////删除手动添加价格
- //DELETE
- //From u_spt_price_mx
- //Where u_spt_price_mx.sptid = :arg_sptid
- //And u_spt_price_mx.mtrlid = :arg_mtrlid
- //And u_spt_price_mx.opdate = :arg_opdate
- //And u_spt_price_mx.printid = :arg_printid
- //And u_spt_price_mx.moneyid = :arg_moneyid
- //And u_spt_price_mx.status = :arg_status
- //And u_spt_price_mx.woodcode = :arg_woodcode
- //And u_spt_price_mx.pcode = :arg_pcode
- //And u_spt_price_mx.jgdscrp = :arg_jgdscrp
- //;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- ////更新最新价格表
- //UPDATE u_spt_price
- // SET u_spt_price.price = :arg_price * :arg_zqrate,
- // u_spt_price.fprice = :arg_price,
- // u_spt_price.zqrate = :arg_zqrate
- // WHERE u_spt_price.sptid = :arg_sptid
- // AND u_spt_price.mtrlid = :arg_mtrlid
- // AND u_spt_price.status = :arg_status
- // AND u_spt_price.woodcode = :arg_woodcode
- // AND u_spt_price.pcode = :arg_pcode
- // AND u_spt_price.jgdscrp = :arg_jgdscrp
- // And u_spt_price.moneyid = :arg_moneyid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询失败'+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_del_sptprice_auto (long arg_sptid, long arg_inwareid, long arg_printid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, string arg_unit, long arg_moneyid, boolean arg_ifcommit, ref string arg_msg);return uof_sptmtrlprice_delete ( arg_inwareid, arg_printid, arg_sptid, arg_moneyid, arg_mtrlid, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, arg_unit, arg_ifcommit, ref arg_msg)
- //Int rslt = 1
- //Long cnt = 0,ll_cnt = 0
- //DateTime ld_opdate
- //
- ////检查供应商存在否
- //SELECT count(*)
- // INTO :cnt
- // FROM u_spt
- // Where u_spt.sptid = :arg_sptid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询供应商失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //IF cnt = 0 THEN
- // rslt = 0
- // arg_msg = '供应商不存在'
- // GOTO ext
- //END IF
- //
- //
- ////检查商品存在否
- //SELECT count(*)
- // INTO :cnt
- // FROM u_mtrldef
- // Where u_mtrldef.mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询物料失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //IF cnt = 0 THEN
- // rslt = 0
- // arg_msg = '物料不存在'
- // GOTO ext
- //END IF
- //
- //SELECT count(*) INTO :cnt
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.inwareid = :arg_inwareid
- // AND u_spt_price_mx.printid = :arg_printid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.unit = :arg_unit
- // And u_spt_price_mx.moneyid = :arg_moneyid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询供应商最新价条目失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //IF cnt = 0 THEN
- // rslt = 1
- // GOTO ext
- //END IF
- //
- //SELECT top 1 Opdate INTO :ld_opdate
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.inwareid = :arg_inwareid
- // AND u_spt_price_mx.printid = :arg_printid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.unit = :arg_unit
- // AND u_spt_price_mx.moneyid = :arg_moneyid
- // Order By Opdate Desc;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询供应商最新价时间失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //SELECT count(*) INTO :cnt
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.unit = :arg_unit
- // AND u_spt_price_mx.Opdate > :ld_opdate
- // And u_spt_price_mx.moneyid = :arg_moneyid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询供应商最新价内容失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //Decimal ld_fprice,ld_zqrate,ld_price
- //DateTime ld_sys_changetime,ld_nulldt
- //SetNull(ld_nulldt)
- //IF cnt = 0 THEN //如果被删明细是最新,用次新明细更新最新价
- // SELECT count(*) INTO :ll_cnt
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.unit = :arg_unit
- // And u_spt_price_mx.Opdate < :ld_opdate
- // And u_spt_price_mx.moneyid = :arg_moneyid;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询供应商最新价内容失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //
- // IF ll_cnt = 0 THEN
- // DELETE
- // From u_spt_price
- // Where u_spt_price.sptid = :arg_sptid
- // And u_spt_price.mtrlid = :arg_mtrlid
- // And u_spt_price.status = :arg_status
- // And u_spt_price.woodcode = :arg_woodcode
- // And u_spt_price.pcode = :arg_pcode
- // And u_spt_price.jgdscrp = :arg_jgdscrp
- // And u_spt_price.unit = :arg_unit
- // And u_spt_price.moneyid = :arg_moneyid;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '删除供应商最新价失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- // ELSE
- // SELECT top 1 fprice,zqrate,price,sys_changetime
- // INTO :ld_fprice,:ld_zqrate,:ld_price,:ld_sys_changetime
- // FROM u_spt_price_mx
- // WHERE u_spt_price_mx.sptid = :arg_sptid
- // AND u_spt_price_mx.mtrlid = :arg_mtrlid
- // AND u_spt_price_mx.status = :arg_status
- // AND u_spt_price_mx.woodcode = :arg_woodcode
- // AND u_spt_price_mx.pcode = :arg_pcode
- // AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- // AND u_spt_price_mx.unit = :arg_unit
- // AND u_spt_price_mx.Opdate < :ld_opdate
- // AND u_spt_price_mx.moneyid = :arg_moneyid
- // Order By u_spt_price_mx.Opdate Desc;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询供应商最新价失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //
- // UPDATE u_spt_price
- // SET fprice = :ld_fprice ,
- // zqrate = :ld_zqrate,
- // price = :ld_price,
- // sys_changetime = :ld_sys_changetime
- // WHERE u_spt_price.sptid = :arg_sptid
- // AND u_spt_price.mtrlid = :arg_mtrlid
- // AND u_spt_price.status = :arg_status
- // AND u_spt_price.woodcode = :arg_woodcode
- // AND u_spt_price.pcode = :arg_pcode
- // AND u_spt_price.jgdscrp = :arg_jgdscrp
- // AND u_spt_price.unit = :arg_unit
- // And u_spt_price.moneyid = :arg_moneyid;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '更新最新价失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- // END IF
- //END IF
- //
- ////删除手动添加价格
- //DELETE
- //From u_spt_price_mx
- //Where u_spt_price_mx.sptid = :arg_sptid
- //And u_spt_price_mx.mtrlid = :arg_mtrlid
- //And u_spt_price_mx.inwareid = :arg_inwareid
- //And u_spt_price_mx.printid = :arg_printid
- //And u_spt_price_mx.status = :arg_status
- //And u_spt_price_mx.woodcode = :arg_woodcode
- //And u_spt_price_mx.pcode = :arg_pcode
- //And u_spt_price_mx.jgdscrp = :arg_jgdscrp
- //And u_spt_price_mx.unit = :arg_unit
- //And u_spt_price_mx.moneyid = :arg_moneyid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '删除供应商价格历史失败'+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_update_sptmtrlname (long arg_sptid, long arg_mtrlid, string arg_sptmtrlname, boolean arg_ifcommit, ref string arg_msg);//旧函数,取缔
- return uof_sptmtrlname_set(arg_sptid, arg_mtrlid, arg_sptmtrlname, arg_ifcommit, arg_msg)
- //Long rslt = 1
- //Long cnt = 0
- //
- //IF IsNull(arg_sptmtrlname) THEN arg_sptmtrlname = ''
- //
- ////检查供应商存在否
- //SELECT count(*)
- // INTO :cnt
- // FROM u_spt
- // Where u_spt.sptid = :arg_sptid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //IF cnt = 0 THEN
- // rslt = 0
- // arg_msg = '供应商不存在'
- // GOTO ext
- //END IF
- //
- //
- ////检查商品存在否
- //SELECT count(*)
- // INTO :cnt
- // FROM u_mtrldef
- // Where u_mtrldef.mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //IF cnt = 0 THEN
- // rslt = 0
- // arg_msg = '物料资料不存在'
- // GOTO ext
- //END IF
- //
- //SELECT count(*)
- // INTO :cnt
- // FROM u_sptmtrlname
- // WHERE u_sptmtrlname.sptid = :arg_sptid AND
- // u_sptmtrlname.mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询供应商物料最新价格失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //
- //IF cnt > 0 THEN
- // UPDATE u_sptmtrlname
- // SET u_sptmtrlname.sptmtrlname = :arg_sptmtrlname
- // WHERE u_sptmtrlname.sptid = :arg_sptid AND
- // u_sptmtrlname.mtrlid = :arg_mtrlid;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其它原因,供应商物料别名更新失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //ELSEIF cnt = 0 THEN
- // INSERT INTO u_sptmtrlname
- // (sptid,
- // mtrlid,
- // sptmtrlname)
- // VALUES
- // (:arg_sptid,
- // :arg_mtrlid,
- // :arg_sptmtrlname);
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络或其他原因,新增供应商物料别名失败'+sqlca.sqlerrtext
- // GOTO ext
- // END IF
- //END IF
- //
- //ext:
- //IF rslt = 0 THEN
- // ROLLBACK;
- //ELSEIF arg_ifcommit And rslt = 1 THEN
- // COMMIT;
- //END IF
- //
- //RETURN rslt
- //
- end function
- public function integer uof_check_limitprice (integer arg_thflag, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, string arg_unit, decimal arg_price, ref string arg_msg);//采购订单,采购收货,限价
- Int rslt = 1
- Decimal ld_limitprice
- String ls_mtrlcode
- Long cnt
- Int li_price_ifpz_buy
- Decimal ld_updownprice
- arg_unit = Trim(arg_unit)
- arg_status = Trim(arg_status)
- arg_woodcode = Trim(arg_woodcode)
- arg_pcode = Trim(arg_pcode)
- SELECT mtrlcode,
- price_ifpz_buy,
- updownprice
- INTO :ls_mtrlcode,
- :li_price_ifpz_buy,
- :ld_updownprice
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料资料失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- CHOOSE CASE li_price_ifpz_buy
- CASE 0
- arg_status = ''
- arg_woodcode = ''
- arg_pcode = ''
- CASE 1
- arg_pcode = ''
- arg_woodcode = ''
- CASE 2
- arg_status = ''
- arg_pcode = ''
- CASE 3
- arg_status = ''
- arg_woodcode = ''
- CASE 4
- arg_pcode = ''
- CASE 5
- arg_status = ''
- CASE 6
- arg_woodcode = ''
- END CHOOSE
- SELECT count(*) INTO :cnt
- FROM u_mtrl_limitprice
- WHERE mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- And unit = :arg_unit;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料['+ls_mtrlcode+']是否设有采购限价失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 1 THEN
- SELECT limitprice INTO :ld_limitprice
- FROM u_mtrl_limitprice
- WHERE mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- And unit = :arg_unit;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料['+ls_mtrlcode+']采购限价失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF arg_thflag = 0 THEN
- IF arg_price > ld_limitprice + ld_updownprice THEN
- rslt = 0
- arg_msg = '物料:'+ls_mtrlcode+',收货单价{'+String(arg_price,'#,##0.00##')+'} 高于收货限价{'+String( ld_limitprice + ld_updownprice ,'#,##0.00##')+'}'
- GOTO ext
- END IF
- ELSE
- IF arg_price < ld_limitprice - ld_updownprice THEN
- rslt = 0
- arg_msg = '物料:'+ls_mtrlcode+',退货单价{'+String(arg_price,'#,##0.00##')+'} 低于收货限价{'+String( ld_limitprice - ld_updownprice ,'#,##0.00##')+'}'
- GOTO ext
- END IF
- END IF
-
- END IF
- ext:
- RETURN rslt
- end function
- public function integer uof_getnewprice (long arg_sptid, long arg_moneyid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref decimal arg_price, ref decimal arg_zqrate, ref decimal arg_rate, ref datetime arg_opdate, ref string arg_msg);
- datetime ldt_effdate
- ldt_effdate = datetime(1900-01-01)
- return uof_sptmtrlprice_get ( arg_sptid, arg_moneyid, arg_mtrlid, arg_unit, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, ldt_effdate, arg_price, arg_zqrate, arg_rate, arg_opdate,arg_msg)
- //Long rslt = 1
- //Decimal rtn_price,rtn_zqrate,rtn_rate, rtn_rate_buy
- //String rtn_unit, rtn_unit_buy
- //String rtn_wareunit
- //Int li_iflimitprice,li_price_ifpz_buy
- //DateTime rtn_opdate
- //
- //arg_status = Trim(arg_status)
- //arg_woodcode = Trim(arg_woodcode)
- //arg_pcode = Trim(arg_pcode)
- //arg_jgdscrp = Trim(arg_jgdscrp)
- //arg_unit = Trim(arg_unit)
- //
- //
- //SELECT price_ifpz_buy, unit,unit_buy,rate_buy , iflimitprice
- // INTO :li_price_ifpz_buy, :rtn_wareunit,:rtn_unit_buy,:rtn_rate_buy,:li_iflimitprice
- // FROM u_mtrldef
- // Where mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询物料采购限价策略失败,'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //CHOOSE CASE li_price_ifpz_buy
- // CASE 0
- // arg_status = ''
- // arg_woodcode = ''
- // arg_pcode = ''
- // CASE 1
- // arg_pcode = ''
- // arg_woodcode = ''
- // CASE 2
- // arg_status = ''
- // arg_pcode = ''
- // CASE 3
- // arg_status = ''
- // arg_woodcode = ''
- // CASE 4
- // arg_pcode = ''
- // CASE 5
- // arg_status = ''
- // CASE 6
- // arg_woodcode = ''
- //END CHOOSE
- //
- //IF arg_unit = '' THEN
- // IF uo_option_buyprice_ifbj = 0 Or uo_option_buyprice_ifbj = 2 And li_iflimitprice = 0 THEN //取最新价
- // SELECT top 1 fprice,zqrate,rate,unit,sys_changetime
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit, :rtn_opdate
- // FROM u_spt_price
- // WHERE u_spt_price.mtrlid = :arg_mtrlid
- // AND u_spt_price.sptid = :arg_sptid
- // AND u_spt_price.status = :arg_status
- // AND u_spt_price.woodcode = :arg_woodcode
- // AND u_spt_price.pcode = :arg_pcode
- // AND u_spt_price.jgdscrp = :arg_jgdscrp
- // AND u_spt_price.moneyid = :arg_moneyid
- // Order By u_spt_price.sys_changetime Desc;
- // ELSE
- // SELECT top 1 fprice_bj,zqrate_bj,rate_bj,unit,sys_changetime
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit, :rtn_opdate
- // FROM u_spt_price
- // WHERE u_spt_price.mtrlid = :arg_mtrlid
- // AND u_spt_price.sptid = :arg_sptid
- // AND u_spt_price.status = :arg_status
- // AND u_spt_price.woodcode = :arg_woodcode
- // AND u_spt_price.pcode = :arg_pcode
- // AND u_spt_price.jgdscrp = :arg_jgdscrp
- // AND u_spt_price.moneyid = :arg_moneyid
- // Order By u_spt_price.sys_changetime Desc;
- // END IF
- //
- // IF sqlca.SQLCode = -1 THEN
- // rslt = 0
- // arg_msg = '查询价格操作失败'+sqlca.SQLErrText
- // GOTO ext
- // ELSEIF sqlca.SQLCode = 100 Or IsNull(rtn_price) THEN
- //
- // IF rtn_unit_buy = '' Or rtn_rate_buy = 0 THEN
- // rtn_unit = rtn_wareunit
- // rtn_rate = 1
- // ELSE
- // rtn_unit = rtn_unit_buy
- // rtn_rate = rtn_rate_buy
- // END IF
- //
- // rslt = 2
- // GOTO ext
- // END IF
- //ELSE
- // SELECT top 1 fprice,zqrate,rate,unit,sys_changetime
- // INTO :rtn_price,:rtn_zqrate ,:rtn_rate ,:rtn_unit, :rtn_opdate
- // FROM u_spt_price
- // WHERE u_spt_price.mtrlid = :arg_mtrlid
- // AND u_spt_price.sptid = :arg_sptid
- // AND u_spt_price.unit = :arg_unit
- // AND u_spt_price.status = :arg_status
- // AND u_spt_price.woodcode = :arg_woodcode
- // AND u_spt_price.pcode = :arg_pcode
- // AND u_spt_price.jgdscrp = :arg_jgdscrp
- // AND u_spt_price.moneyid = :arg_moneyid
- // Order By u_spt_price.sys_changetime Desc;
- //
- //
- // IF sqlca.SQLCode = -1 THEN
- // rslt = 0
- // arg_msg = '查询操作失败'+sqlca.SQLErrText
- // GOTO ext
- // ELSEIF sqlca.SQLCode = 100 Or IsNull(rtn_price) THEN
- // rslt = 2
- // GOTO ext
- // END IF
- //
- //END IF
- //
- //ext:
- //IF rslt <> 1 THEN
- // rtn_price = 0.00
- // rtn_zqrate = 1
- // // rtn_rate = 1
- // SetNull(rtn_opdate)
- //END IF
- //
- //arg_price = rtn_price
- //arg_zqrate = rtn_zqrate
- //arg_rate = rtn_rate
- //arg_unit = rtn_unit
- //arg_opdate = rtn_opdate
- //
- //
- //RETURN rslt
- end function
- public function integer uof_sptmtrlname_set (long arg_sptid, long arg_mtrlid, string arg_sptmtrlname, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1
- Long cnt = 0
- IF IsNull(arg_sptmtrlname) THEN arg_sptmtrlname = ''
- //检查供应商存在否
- SELECT count(*)
- INTO :cnt
- FROM u_spt
- Where u_spt.sptid = :arg_sptid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '因网络和其他原因查询失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '供应商不存在'
- GOTO ext
- END IF
- //检查商品存在否
- SELECT count(*)
- INTO :cnt
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '因网络和其他原因查询失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '物料资料不存在'
- GOTO ext
- END IF
- UPDATE u_sptmtrlname
- SET sptmtrlname = :arg_sptmtrlname
- WHERE sptid = :arg_sptid
- AND mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_sptmtrlname
- (sptid,
- mtrlid,
- sptmtrlname)
- VALUES
- (:arg_sptid,
- :arg_mtrlid,
- :arg_sptmtrlname);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '新增供应商物料别名失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- ELSE
- rslt = 0
- arg_msg = '更新供应商物料别名失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- /////////////////////////////////////////////////////////////////// //
- //SELECT count(*)
- // INTO :cnt
- // FROM u_sptmtrlname
- // WHERE u_sptmtrlname.sptid = :arg_sptid AND
- // u_sptmtrlname.mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询供应商物料最新价格失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //
- //IF cnt > 0 THEN
- // UPDATE u_sptmtrlname
- // SET u_sptmtrlname.sptmtrlname = :arg_sptmtrlname
- // WHERE u_sptmtrlname.sptid = :arg_sptid AND
- // u_sptmtrlname.mtrlid = :arg_mtrlid;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其它原因,供应商物料别名更新失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //ELSEIF cnt = 0 THEN
- // INSERT INTO u_sptmtrlname
- // (sptid,
- // mtrlid,
- // sptmtrlname)
- // VALUES
- // (:arg_sptid,
- // :arg_mtrlid,
- // :arg_sptmtrlname);
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络或其他原因,新增供应商物料别名失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_sptmtrlname_get (long arg_sptid, long arg_mtrlid, ref string arg_sptmtrlname, ref string arg_msg);Long rslt = 1
- String ls_sptmtrlname
- SELECT sptmtrlname
- INTO :ls_sptmtrlname
- FROM u_sptmtrlname
- WHERE u_sptmtrlname.mtrlid = :arg_mtrlid
- AND u_sptmtrlname.sptid = :arg_sptid;
- IF sqlca.SQLCode = -1 THEN
- rslt = 0
- arg_msg = '查询供应商物料别名操作失败,'+sqlca.SQLErrText
- GOTO ext
- ELSEIF sqlca.SQLCode = 100 OR IsNull(ls_sptmtrlname) THEN
- ls_sptmtrlname = ''
- END IF
- arg_sptmtrlname = ls_sptmtrlname
- ext:
- RETURN rslt
- end function
- public function integer uof_sptmtrlprice_get (long arg_sptid, long arg_moneyid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, datetime arg_effdate, ref decimal arg_fprice, ref decimal arg_zqrate, ref decimal arg_rate, ref datetime arg_billdate, ref string arg_msg);//====================================================================
- // 事件: uo_spt_price.Script - uof_sptmtrlprice_get ( long arg_sptid, long arg_moneyid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, datetime arg_effdate, ref decimal arg_fprice, ref decimal arg_zqrate, ref()
- //--------------------------------------------------------------------
- // 描述:
- //--------------------------------------------------------------------
- // 参数:
- // value long arg_sptid
- // value long arg_moneyid
- // value long arg_mtrlid
- // reference string arg_unit
- // value string arg_status
- // value string arg_woodcode
- // value string arg_pcode
- // value string arg_jgdscrp
- // value datetime arg_effdate
- // reference decimal arg_fprice
- // reference decimal arg_zqrate
- // reference decimal arg_rate
- // reference datetime arg_billdate
- // reference string arg_msg
- //--------------------------------------------------------------------
- // 返回: (none)
- //--------------------------------------------------------------------
- // 作者: LHD 日期: 2013年05月28日
- //--------------------------------------------------------------------
- // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Long rslt = 1
- Decimal lde_fprice,lde_zqrate,lde_rate, lde_price, lde_wareprice, lde_rate_buy
- String ls_unit, ls_unit_buy
- String ls_wareunit
- Int li_iflimitprice,li_price_ifpz_buy
- DateTime lde_billdate
- arg_status = Trim(arg_status)
- arg_woodcode = Trim(arg_woodcode)
- arg_pcode = Trim(arg_pcode)
- arg_jgdscrp = Trim(arg_jgdscrp)
- arg_unit = Trim(arg_unit)
- arg_effdate = DateTime(Date(arg_effdate),Time(0))
- IF uo_option_buyprice_ifbj = -1000 THEN
- arg_msg = '选项:[053]收货单取单价模式,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_sptprice_effdate = -1000 THEN
- arg_msg = '选项:[244]供应商报价使用生效日期,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- SELECT iflimitprice,price_ifpz_buy, unit,unit_buy,rate_buy
- INTO :li_iflimitprice,:li_price_ifpz_buy,:ls_wareunit,:ls_unit_buy,:lde_rate_buy
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料限价属性失败 '+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- CHOOSE CASE li_price_ifpz_buy
- CASE 0
- arg_status = ''
- arg_woodcode = ''
- arg_pcode = ''
- CASE 1
- arg_pcode = ''
- arg_woodcode = ''
- CASE 2
- arg_status = ''
- arg_pcode = ''
- CASE 3
- arg_status = ''
- arg_woodcode = ''
- CASE 4
- arg_pcode = ''
- CASE 5
- arg_status = ''
- CASE 6
- arg_woodcode = ''
- END CHOOSE
- IF uo_option_buyprice_ifbj = 0 Or uo_option_buyprice_ifbj = 2 And li_iflimitprice = 0 THEN //取最新价
- SELECT top 1 fprice,zqrate,rate,price, wareprice,unit,sys_changetime
- INTO :lde_fprice,:lde_zqrate ,:lde_rate ,:lde_price, :lde_wareprice,:ls_unit, :lde_billdate
- FROM u_spt_price
- WHERE sptid = :arg_sptid
- AND moneyid = :arg_moneyid
- AND mtrlid = :arg_mtrlid
- AND (unit = :arg_unit OR :arg_unit = '')
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- AND jgdscrp = :arg_jgdscrp
- Order By sys_changetime Desc;
- ELSE //取报价
- IF uo_option_sptprice_effdate = 1 THEN
- SELECT top 1 fprice,zqrate,rate,price, wareprice,unit, opdate
- INTO :lde_fprice,:lde_zqrate ,:lde_rate ,:lde_price, :lde_wareprice,:ls_unit, :lde_billdate
- FROM u_spt_price_mx
- WHERE sptid = :arg_sptid
- AND moneyid = :arg_moneyid
- AND mtrlid = :arg_mtrlid
- AND (unit = :arg_unit OR :arg_unit = '')
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- AND jgdscrp = :arg_jgdscrp
- AND effdate <= :arg_effdate
- AND effdate_end >= :arg_effdate
- AND billtype = 2
- Order By opdate Desc;
- ELSE
- SELECT top 1 fprice_bj,zqrate_bj,rate_bj,price_bj, wareprice_bj,unit,sys_changetime
- INTO :lde_fprice,:lde_zqrate ,:lde_rate ,:lde_price, :lde_wareprice,:ls_unit, :lde_billdate
- FROM u_spt_price
- WHERE sptid = :arg_sptid
- AND moneyid = :arg_moneyid
- AND mtrlid = :arg_mtrlid
- AND (unit = :arg_unit OR :arg_unit = '')
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- AND jgdscrp = :arg_jgdscrp
- Order By sys_changetime Desc;
- END IF
- END IF
- IF sqlca.SQLCode = -1 THEN
- rslt = 0
- arg_msg = '查询供应商物料最新价格失败'+sqlca.SQLErrText
- GOTO ext
- ELSEIF sqlca.SQLCode = 100 Or IsNull(lde_fprice) THEN
- // lde_zqrate = 1
- // lde_fprice = 0.00
- IF arg_unit = '' THEN
- IF ls_unit_buy = '' Or lde_rate_buy = 0 THEN
- ls_unit = ls_wareunit
- lde_rate = 1
- ELSE
- ls_unit = ls_unit_buy
- lde_rate = lde_rate_buy
- END IF
- END IF
- rslt = 2
- GOTO ext
- END IF
- ext:
- IF rslt <> 1 THEN
- lde_fprice = 0.00
- lde_zqrate = 1
- //lde_rate = 1
- IF ls_unit = '' THEN
- ls_unit = arg_unit
- END IF
- END IF
- if lde_zqrate = 0 then lde_zqrate = 1
- arg_fprice = lde_fprice
- arg_zqrate = lde_zqrate
- arg_rate = lde_rate
- IF ls_unit <> '' THEN
- arg_unit = ls_unit
- END IF
- arg_billdate = lde_billdate
- RETURN rslt
- end function
- public function integer uof_sptmtrlprice_delete (long arg_inwareid, long arg_printid, long arg_sptid, long arg_moneyid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, string arg_unit, boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // 事件: uo_spt_price.Script - uof_sptmtrlprice_delete ( long arg_inwareid, long arg_printid, long arg_sptid, long arg_moneyid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, string arg_unit, boolean arg_ifcommit, ref string arg_()
- //--------------------------------------------------------------------
- // 描述:
- //--------------------------------------------------------------------
- // 参数:
- // value long arg_inwareid
- // value long arg_printid
- // value long arg_sptid
- // value long arg_moneyid
- // value long arg_mtrlid
- // value string arg_status
- // value string arg_woodcode
- // value string arg_pcode
- // value string arg_jgdscrp
- // value string arg_unit
- // value boolean arg_ifcommit
- // reference string arg_msg
- //--------------------------------------------------------------------
- // 返回: (none)
- //--------------------------------------------------------------------
- // 作者: LHD 日期: 2013年05月29日
- //--------------------------------------------------------------------
- // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Int rslt = 1
- Long cnt = 0,ll_cnt = 0
- Int li_ifbj
- DateTime ld_opdate
- Decimal ld_fprice,ld_zqrate,ld_price, lde_wareprice, lde_rate
- DateTime ld_sys_changetime,ldt_opdate
- String ls_mtrlcode
- Int li_price_ifpz_buy
- Boolean lb_del = False
- //检查商品存在否
- SELECT mtrlcode,
- price_ifpz_buy
- INTO :ls_mtrlcode,
- :li_price_ifpz_buy
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料编码失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- CHOOSE CASE li_price_ifpz_buy
- CASE 0
- arg_status = ''
- arg_woodcode = ''
- arg_pcode = ''
- CASE 1
- arg_pcode = ''
- arg_woodcode = ''
- CASE 2
- arg_status = ''
- arg_pcode = ''
- CASE 3
- arg_status = ''
- arg_woodcode = ''
- CASE 4
- arg_pcode = ''
- CASE 5
- arg_status = ''
- CASE 6
- arg_woodcode = ''
- END CHOOSE
- SELECT Top 1 Opdate,ifbj
- INTO :ldt_opdate, :li_ifbj
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.inwareid = :arg_inwareid
- AND u_spt_price_mx.printid = :arg_printid
- Order By u_spt_price_mx.Opdate Desc;
- IF sqlca.SQLCode <> 0 THEN
- IF sqlca.SQLCode = 100 THEN
- rslt = 1 //明细单价为0 , 有可能不插入供应商历史
- GOTO ext
- ELSE
- rslt = 0
- arg_msg = '查询供应商价格历史明细信息失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- //删除添加价格
- DELETE FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.inwareid = :arg_inwareid
- AND u_spt_price_mx.printid = :arg_printid
- And u_spt_price_mx.Opdate = :ldt_opdate;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除供应商价格历史失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- //查询最新价格,更新u_spt_price
- SELECT Top 1 fprice,zqrate,price,wareprice,rate,Opdate,ifbj
- INTO :ld_fprice,:ld_zqrate,:ld_price,:lde_wareprice,:lde_rate,:ld_sys_changetime, :li_ifbj
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.ifbj = :li_ifbj
- Order By u_spt_price_mx.Opdate Desc;
- IF sqlca.SQLCode <> 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- //如果没有,找另一种,有则update, 没有则删除
- SELECT count(*)
- INTO :ll_cnt
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- And u_spt_price_mx.ifbj = 1 - :li_ifbj;
-
- IF ll_cnt = 0 THEN
- lb_del = True
- ELSE
- ld_fprice = 0
- ld_zqrate = 1
- ld_price = 0
- lde_wareprice = 0
- lde_rate = 1
- setnull(ld_sys_changetime)
- END IF
-
- ELSE
- rslt = 0
- arg_msg = '查询供应商价格历史失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- IF lb_del THEN
- DELETE FROM u_spt_price
- WHERE sptid = :arg_sptid
- AND moneyid = :arg_moneyid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- AND jgdscrp = :arg_jgdscrp
- And unit = :arg_unit;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除供应商价格历史失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- ELSE
-
- //如果前面删除,可能没有更新
- IF li_ifbj = 0 THEN
- UPDATE u_spt_price
- SET fprice = :ld_fprice ,
- zqrate = :ld_zqrate,
- price = :ld_price,
- wareprice = :lde_wareprice,
- rate = :lde_rate,
- sys_changetime = :ld_sys_changetime
- WHERE u_spt_price.sptid = :arg_sptid
- AND u_spt_price.mtrlid = :arg_mtrlid
- AND u_spt_price.status = :arg_status
- AND u_spt_price.woodcode = :arg_woodcode
- AND u_spt_price.pcode = :arg_pcode
- AND u_spt_price.jgdscrp = :arg_jgdscrp
- AND u_spt_price.unit = :arg_unit
- And u_spt_price.moneyid = :arg_moneyid;
- ELSE
- UPDATE u_spt_price
- SET fprice_bj = :ld_fprice ,
- zqrate_bj = :ld_zqrate,
- price_bj = :ld_price,
- wareprice_bj = :lde_wareprice,
- rate_bj = :lde_rate,
- sys_changetime = :ld_sys_changetime
- WHERE u_spt_price.sptid = :arg_sptid
- AND u_spt_price.mtrlid = :arg_mtrlid
- AND u_spt_price.status = :arg_status
- AND u_spt_price.woodcode = :arg_woodcode
- AND u_spt_price.pcode = :arg_pcode
- AND u_spt_price.jgdscrp = :arg_jgdscrp
- AND u_spt_price.unit = :arg_unit
- And u_spt_price.moneyid = :arg_moneyid;
- END IF
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新供应商价格历史失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- /*
- SELECT count(*) INTO :cnt
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- And u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.inwareid = :arg_inwareid
- AND u_spt_price_mx.printid = :arg_printid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询供应商最新价条目失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF cnt = 0 THEN
- rslt = 1
- GOTO ext
- END IF
-
- SELECT top 1 Opdate INTO :ld_opdate
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- And u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.inwareid = :arg_inwareid
- AND u_spt_price_mx.printid = :arg_printid
- Order By Opdate Desc;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询供应商最新价时间失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- SELECT count(*) INTO :cnt
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- And u_spt_price_mx.moneyid = :arg_moneyid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.Opdate > :ld_opdate;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询供应商最新价内容失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
- IF cnt = 0 THEN //如果被删明细是最新,用次新明细更新最新价
- SELECT count(*) INTO :ll_cnt
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- And u_spt_price_mx.Opdate < :ld_opdate
- And u_spt_price_mx.moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询供应商最新价内容失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ll_cnt = 0 THEN
- DELETE
- From u_spt_price
- Where u_spt_price.sptid = :arg_sptid
- And u_spt_price.mtrlid = :arg_mtrlid
- And u_spt_price.status = :arg_status
- And u_spt_price.woodcode = :arg_woodcode
- And u_spt_price.pcode = :arg_pcode
- And u_spt_price.jgdscrp = :arg_jgdscrp
- And u_spt_price.unit = :arg_unit
- And u_spt_price.moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除供应商最新价失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- ELSE
- SELECT top 1 fprice,zqrate,price,sys_changetime
- INTO :ld_fprice,:ld_zqrate,:ld_price,:ld_sys_changetime
- FROM u_spt_price_mx
- WHERE u_spt_price_mx.sptid = :arg_sptid
- AND u_spt_price_mx.mtrlid = :arg_mtrlid
- AND u_spt_price_mx.status = :arg_status
- AND u_spt_price_mx.woodcode = :arg_woodcode
- AND u_spt_price_mx.pcode = :arg_pcode
- AND u_spt_price_mx.jgdscrp = :arg_jgdscrp
- AND u_spt_price_mx.unit = :arg_unit
- AND u_spt_price_mx.Opdate < :ld_opdate
- AND u_spt_price_mx.moneyid = :arg_moneyid
- Order By u_spt_price_mx.Opdate Desc;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询供应商最新价失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- UPDATE u_spt_price
- SET fprice = :ld_fprice ,
- zqrate = :ld_zqrate,
- price = :ld_price,
- sys_changetime = :ld_sys_changetime
- WHERE u_spt_price.sptid = :arg_sptid
- AND u_spt_price.mtrlid = :arg_mtrlid
- AND u_spt_price.status = :arg_status
- AND u_spt_price.woodcode = :arg_woodcode
- AND u_spt_price.pcode = :arg_pcode
- AND u_spt_price.jgdscrp = :arg_jgdscrp
- AND u_spt_price.unit = :arg_unit
- And u_spt_price.moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新最新价失败'+sqlca.SQLErrText
- 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 uof_getmtrlsptbuybargainprice (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref long arg_buybargainid, ref long arg_buybargainprintid, ref string arg_buybargaincode, ref decimal arg_price, ref decimal arg_rebate, ref string arg_msg);Long rslt = 1
- Decimal rtn_price,rtn_zqrate,rtn_rate
- String ls_unit
- String rtn_wareunit
- Int li_iflimitprice,li_price_ifpz_buy
- Long ll_buybargainid, ll_buybargainprintid
- String ls_buybargaincode
- decimal lde_price, lde_rebate
- lde_rebate = 1
- IF sys_option_buy_getbuybargain = 0 THEN
- ll_buybargainid = 0
- ll_buybargainprintid = 0
- ls_buybargaincode = ''
- lde_price = 0
- // lde_rebate = 1
- GOTO ext
- END IF
- arg_status = Trim(arg_status)
- arg_woodcode = Trim(arg_woodcode)
- arg_pcode = Trim(arg_pcode)
- arg_jgdscrp = Trim(arg_jgdscrp)
- arg_unit = Trim(arg_unit)
- SELECT iflimitprice,price_ifpz_buy , unit
- INTO :li_iflimitprice,:li_price_ifpz_buy, :ls_unit
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料限价属性失败 '+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- CHOOSE CASE li_price_ifpz_buy
- CASE 0
- arg_status = ''
- arg_woodcode = ''
- arg_pcode = ''
- CASE 1
- arg_pcode = ''
- arg_woodcode = ''
- CASE 2
- arg_status = ''
- arg_pcode = ''
- CASE 3
- arg_status = ''
- arg_woodcode = ''
- CASE 4
- arg_pcode = ''
- CASE 5
- arg_status = ''
- CASE 6
- arg_woodcode = ''
- END CHOOSE
- IF arg_unit = '' THEN
- arg_unit = ls_unit
- END IF
- SELECT top 1 billid,printid,billcode, price
- INTO :ll_buybargainid,:ll_buybargainprintid,:ls_buybargaincode, :lde_price
- FROM (
- SELECT top 1 case argaintype when 3 then (case u_buybargainmx.areaqty when 0 then u_buybargainmx.price else round(u_buybargainmx.price*u_buybargainmx.areaqty+u_buybargainmx.otherprice,2) END )
- else u_buybargainmx.price END AS price,
- u_buybargainmx.rate as rate,
- u_buybargainmx.unit as unit,
- u_buybargainmx.billid as billid,
- u_buybargainmx.printid as printid,
- ltrim(rtrim(u_buybargain.Billcode))+'[合同]' as billcode,
- u_buybargain.auditdate as auditdate
- FROM u_buybargain INNER JOIN
- u_buybargainmx ON u_buybargain.billid = u_buybargainmx.billid
- WHERE u_buybargain.flag = 1
- AND u_buybargain.sptid_b = :arg_sptid
- AND u_buybargainmx.mtrlid = :arg_mtrlid
- AND u_buybargainmx.unit = :arg_unit
- AND u_buybargain.moneyid = :arg_moneyid
- and u_buybargainmx.material = :arg_jgdscrp
- ORDER BY u_buybargain.auditdate DESC
- UNION
- SELECT top 1 u_spt_price_changemx.price,
- u_spt_price_changemx.rate,
- u_spt_price_changemx.unit,
- u_spt_price_changemx.billid,
- u_spt_price_changemx.printid,
- ltrim(rtrim(u_spt_price_change.Billcode))+'[调价]',
- u_spt_price_change.auditdate as auditdate
- FROM u_spt_price_change INNER JOIN
- u_spt_price_changemx ON
- u_spt_price_change.billid = u_spt_price_changemx.billid
- WHERE (u_spt_price_change.flag = 1)
- AND u_spt_price_change.sptid = :arg_sptid
- AND u_spt_price_changemx.mtrlid = :arg_mtrlid
- AND u_spt_price_change.moneyid = :arg_moneyid
- AND u_spt_price_changemx.unit = :arg_unit
- AND u_spt_price_changemx.status = :arg_status
- AND u_spt_price_changemx.woodcode = :arg_woodcode
- AND u_spt_price_changemx.pcode = :arg_pcode
- and u_spt_price_changemx.jgdscrp = :arg_jgdscrp
- ORDER BY u_spt_price_change.auditdate DESC) A
- Order By A.auditdate Desc;
-
- IF sqlca.SQLCode <> 0 THEN
- ll_buybargainid = 0
- ll_buybargainprintid = 0
- ls_buybargaincode = ''
- lde_price = 0
- END IF
- ext:
- arg_buybargainid = ll_buybargainid
- arg_buybargainprintid = ll_buybargainprintid
- arg_buybargaincode = ls_buybargaincode
- arg_price = lde_price
- arg_rebate = lde_rebate
- RETURN rslt
- end function
- public function integer uof_getmtrlsptbuybargain (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref long arg_buybargainid, ref long arg_buybargainprintid, ref string arg_buybargaincode, ref string arg_msg);
- decimal lde_price, lde_rebate
- return uof_getmtrlsptbuybargainprice(arg_moneyid, arg_sptid, arg_mtrlid, arg_unit, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, arg_buybargainid, arg_buybargainprintid, arg_buybargaincode, lde_price, lde_rebate,arg_msg)
- //Long rslt = 1
- //Decimal rtn_price,rtn_zqrate,rtn_rate
- //String ls_unit
- //String rtn_wareunit
- //Int li_iflimitprice,li_price_ifpz_buy
- //
- //Long ll_buybargainid, ll_buybargainprintid
- //String ls_buybargaincode
- //
- //IF sys_option_buy_getbuybargain = 0 THEN
- // ll_buybargainid = 0
- // ll_buybargainprintid = 0
- // ls_buybargaincode = ''
- // GOTO ext
- //END IF
- //
- //
- //arg_status = Trim(arg_status)
- //arg_woodcode = Trim(arg_woodcode)
- //arg_pcode = Trim(arg_pcode)
- ////arg_jgdscrp = Trim(arg_jgdscrp)
- //
- //
- //arg_unit = Trim(arg_unit)
- //
- ////arg_billdate = DateTime(Date(arg_billdate),Time(0))
- //
- //
- //
- //SELECT iflimitprice,price_ifpz_buy , unit
- // INTO :li_iflimitprice,:li_price_ifpz_buy, :ls_unit
- // FROM u_mtrldef
- // Where mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询物料限价属性失败 '+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //CHOOSE CASE li_price_ifpz_buy
- // CASE 0
- // arg_status = ''
- // arg_woodcode = ''
- // arg_pcode = ''
- // CASE 1
- // arg_pcode = ''
- // arg_woodcode = ''
- // CASE 2
- // arg_status = ''
- // arg_pcode = ''
- // CASE 3
- // arg_status = ''
- // arg_woodcode = ''
- // CASE 4
- // arg_pcode = ''
- // CASE 5
- // arg_status = ''
- // CASE 6
- // arg_woodcode = ''
- //END CHOOSE
- //
- //IF arg_unit = '' THEN
- // arg_unit = ls_unit
- //END IF
- //
- //
- //SELECT top 1 billid,printid,billcode
- // INTO :ll_buybargainid,:ll_buybargainprintid,:ls_buybargaincode
- // FROM (
- // SELECT top 1 case argaintype when 3 then (case u_buybargainmx.areaqty when 0 then u_buybargainmx.price else round(u_buybargainmx.price*u_buybargainmx.areaqty+u_buybargainmx.otherprice,2) END )
- // else u_buybargainmx.price END AS price,
- // u_buybargainmx.rate as rate,
- // u_buybargainmx.unit as unit,
- // u_buybargainmx.billid as billid,
- // u_buybargainmx.printid as printid,
- // ltrim(rtrim(u_buybargain.Billcode))+'[合同]' as billcode,
- // u_buybargain.auditdate as auditdate
- // FROM u_buybargain INNER JOIN
- // u_buybargainmx ON u_buybargain.billid = u_buybargainmx.billid
- // WHERE u_buybargain.flag = 1
- // AND u_buybargain.sptid_b = :arg_sptid
- // AND u_buybargainmx.mtrlid = :arg_mtrlid
- // AND u_buybargainmx.unit = :arg_unit
- // AND u_buybargain.moneyid = :arg_moneyid
- // ORDER BY u_buybargain.auditdate DESC
- // UNION
- // SELECT top 1 u_spt_price_changemx.price,
- // u_spt_price_changemx.rate,
- // u_spt_price_changemx.unit,
- // u_spt_price_changemx.billid,
- // u_spt_price_changemx.printid,
- // ltrim(rtrim(u_spt_price_change.Billcode))+'[调价]',
- // u_spt_price_change.auditdate as auditdate
- // FROM u_spt_price_change INNER JOIN
- // u_spt_price_changemx ON
- // u_spt_price_change.billid = u_spt_price_changemx.billid
- // WHERE (u_spt_price_change.flag = 1)
- // AND u_spt_price_change.sptid = :arg_sptid
- // AND u_spt_price_changemx.mtrlid = :arg_mtrlid
- // AND u_spt_price_change.moneyid = :arg_moneyid
- // AND u_spt_price_changemx.unit = :arg_unit
- // AND u_spt_price_changemx.status = :arg_status
- // AND u_spt_price_changemx.woodcode = :arg_woodcode
- // AND u_spt_price_changemx.pcode = :arg_pcode
- // ORDER BY u_spt_price_change.auditdate DESC) A
- // Order By A.auditdate Desc;
- //
- //IF sqlca.SQLCode <> 0 THEN
- // ll_buybargainid = 0
- // ll_buybargainprintid = 0
- // ls_buybargaincode = ''
- //END IF
- //
- //
- //
- //ext:
- //arg_buybargainid = ll_buybargainid
- //arg_buybargainprintid = ll_buybargainprintid
- //arg_buybargaincode = ls_buybargaincode
- //
- //RETURN rslt
- //
- end function
- public function integer uof_sptmtrlprice_set (integer arg_ifth, integer arg_ifbj, long arg_sptid, long arg_moneyid, long arg_mtrlid, string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, datetime arg_effdate, datetime arg_effdate_end, decimal arg_fprice, decimal arg_zqrate, decimal arg_rate, decimal arg_wareprice, decimal arg_wareprice_notax, integer arg_billtype, integer arg_buildtype, long arg_inwareid, string arg_inwarecode, long arg_printid, datetime arg_indate, string arg_dscrp, boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // 事件: uo_spt_price.Script - uof_sptmtrlprice_set ( integer arg_ifth, integer arg_ifbj, long arg_sptid, long arg_moneyid, long arg_mtrlid, string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, datetime arg_effdate, decimal arg_fprice,()
- //--------------------------------------------------------------------
- // 描述:
- //--------------------------------------------------------------------
- // 参数:
- // value integer arg_ifth 是否退货传入
- // value integer arg_ifbj 是否更新报价
- // value long arg_sptid
- // value long arg_moneyid
- // value long arg_mtrlid
- // value string arg_unit
- // value string arg_status
- // value string arg_woodcode
- // value string arg_pcode
- // value string arg_jgdscrp
- // value datetime arg_effdate //有效期
- // value decimal arg_fprice
- // value decimal arg_zqrate
- // value decimal arg_rate
- // value decimal arg_wareprice //库存单位,本位币,单价
- // value integer arg_billtype //数据来源方式;采购单,外协单,报价单,手动
- // value long arg_buildtype //建立方式,来源; 0-自动,来自单据审核; 1-手动; 原flag
- // value long arg_inwareid
- // value string arg_inwarecode
- // value long arg_printid
- // value datetime arg_indate
- // value string arg_dscrp
- // value boolean arg_ifcommit
- // reference string arg_msg
- //--------------------------------------------------------------------
- // 返回: (none)
- //--------------------------------------------------------------------
- // 作者: LHD 日期: 2013年05月28日
- //--------------------------------------------------------------------
- // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Long rslt = 1
- Long cnt = 0
- String ls_mtrlcode
- Int li_price_ifpz_buy
- IF uo_option_zero_update_sptprice = -1000 THEN
- rslt = 0
- arg_msg = '选项:[366]采购收货单0单价更新价格历史,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- //检查退货
- IF arg_ifth = 1 THEN
- rslt = 1
- GOTO ext
- END IF
- //yyx2013-4-12
- IF uo_option_zero_update_sptprice = 0 THEN
- IF arg_fprice = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- END IF
- //end yyx2013-4-12
- //检查参数
- IF IsNull(arg_sptid) THEN arg_sptid = 0
- IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- IF IsNull(arg_status) THEN arg_status = ''
- IF IsNull(arg_fprice) THEN arg_fprice = 0.0
- IF IsNull(arg_moneyid) THEN arg_moneyid = 0
- IF IsNull(arg_woodcode) THEN arg_woodcode = ''
- IF IsNull(arg_pcode) THEN arg_pcode = ''
- IF IsNull(arg_jgdscrp) THEN arg_jgdscrp = ''
- arg_inwarecode = Trim(arg_inwarecode)
- arg_status = Trim(arg_status)
- arg_woodcode = Trim(arg_woodcode)
- arg_pcode = Trim(arg_pcode)
- arg_jgdscrp = Trim(arg_jgdscrp)
- arg_unit = Trim(arg_unit)
- IF arg_indate <= DateTime(Date('1900-01-01'),Time(0)) THEN
- rslt = 0
- arg_msg = '不合理的发生时间'
- GOTO ext
- END IF
- IF arg_unit = '' THEN
- rslt = 0
- arg_msg = '没有单位'
- GOTO ext
- END IF
- //检查供应商存在否
- SELECT count(*)
- INTO :cnt
- FROM u_spt
- Where u_spt.sptid = :arg_sptid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '供应商不存在'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM cw_currency
- Where moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询币种失败'
- rslt = 0
- GOTO ext
- END IF
- IF cnt = 0 THEN
- arg_msg = '币种资料不存在'
- rslt = 0
- GOTO ext
- END IF
- //检查商品存在否
- SELECT mtrlcode,
- price_ifpz_buy
- INTO :ls_mtrlcode,
- :li_price_ifpz_buy
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料编码失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- CHOOSE CASE li_price_ifpz_buy
- CASE 0
- arg_status = ''
- arg_woodcode = ''
- arg_pcode = ''
- CASE 1
- arg_pcode = ''
- arg_woodcode = ''
- CASE 2
- arg_status = ''
- arg_pcode = ''
- CASE 3
- arg_status = ''
- arg_woodcode = ''
- CASE 4
- arg_pcode = ''
- CASE 5
- arg_status = ''
- CASE 6
- arg_woodcode = ''
- END CHOOSE
- //1.更新供应商价格历史-更新最新收货价
- IF arg_ifbj = 0 THEN
- UPDATE u_spt_price
- SET u_spt_price.price = :arg_fprice * :arg_zqrate,
- u_spt_price.fprice = :arg_fprice,
- u_spt_price.zqrate = :arg_zqrate,
- u_spt_price.wareprice = :arg_wareprice,
- u_spt_price.wareprice_notax = :arg_wareprice_notax,
- u_spt_price.rate = :arg_rate,
- u_spt_price.sys_changetime = getdate()
- WHERE u_spt_price.sptid = :arg_sptid AND
- u_spt_price.mtrlid = :arg_mtrlid AND
- u_spt_price.unit = :arg_unit AND
- u_spt_price.status = :arg_status AND
- u_spt_price.woodcode = :arg_woodcode AND
- u_spt_price.pcode = :arg_pcode AND
- u_spt_price.jgdscrp = :arg_jgdscrp AND
- u_spt_price.moneyid = :arg_moneyid;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_spt_price
- (sptid,
- mtrlid,
- unit,
- price,
- fprice,
- zqrate,
- wareprice,
- wareprice_notax,
- rate,
- status,
- woodcode,
- pcode,
- jgdscrp,
- dscrp,
- moneyid,
- sys_changetime)
- VALUES
- (:arg_sptid,
- :arg_mtrlid,
- :arg_unit,
- :arg_fprice * :arg_zqrate,
- :arg_fprice,
- :arg_zqrate,
- :arg_wareprice,
- :arg_wareprice_notax,
- :arg_rate,
- :arg_status,
- :arg_woodcode,
- :arg_pcode,
- :arg_jgdscrp,
- :arg_dscrp,
- :arg_moneyid,
- getdate());
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '新增物料:'+ls_mtrlcode+'供应商价格历史失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- ELSE
- rslt = 0
- arg_msg = '更新物料:'+ls_mtrlcode+'供应商价格历史失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ELSE //更新最新报价
- UPDATE u_spt_price
- SET u_spt_price.price_bj = :arg_fprice * :arg_zqrate,
- u_spt_price.fprice_bj = :arg_fprice,
- u_spt_price.zqrate_bj = :arg_zqrate,
- u_spt_price.wareprice_bj = :arg_wareprice,
- u_spt_price.rate_bj = :arg_rate,
- u_spt_price.sys_changetime_bj = getdate()
- WHERE u_spt_price.sptid = :arg_sptid AND
- u_spt_price.mtrlid = :arg_mtrlid AND
- u_spt_price.unit = :arg_unit AND
- u_spt_price.status = :arg_status AND
- u_spt_price.woodcode = :arg_woodcode AND
- u_spt_price.pcode = :arg_pcode AND
- u_spt_price.jgdscrp = :arg_jgdscrp AND
- u_spt_price.moneyid = :arg_moneyid;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_spt_price
- (sptid,
- mtrlid,
- unit,
- price_bj,
- fprice_bj,
- zqrate_bj,
- wareprice_bj,
- rate_bj,
- status,
- woodcode,
- pcode,
- jgdscrp,
- moneyid,
- dscrp,
- sys_changetime_bj)
- VALUES
- (:arg_sptid,
- :arg_mtrlid,
- :arg_unit,
- :arg_fprice * :arg_zqrate,
- :arg_fprice,
- :arg_zqrate,
- :arg_wareprice,
- :arg_rate,
- :arg_status,
- :arg_woodcode,
- :arg_pcode,
- :arg_jgdscrp,
- :arg_moneyid,
- :arg_dscrp,
- getdate());
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '新增物料:'+ls_mtrlcode+'供应商价格历史失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- ELSE
- rslt = 0
- arg_msg = '更新物料:'+ls_mtrlcode+'供应商价格历史失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- //2.插入供应商售价变动明细表
- INSERT INTO u_spt_price_mx
- (u_spt_price_mx.sptid,
- u_spt_price_mx.mtrlid,
- u_spt_price_mx.opdate,
- u_spt_price_mx.opemp,
- u_spt_price_mx.inwareid,
- u_spt_price_mx.inwarecode,
- u_spt_price_mx.outdate,
- u_spt_price_mx.price,
- u_spt_price_mx.fprice,
- u_spt_price_mx.zqrate,
- u_spt_price_mx.dscrp,
- u_spt_price_mx.status,
- u_spt_price_mx.woodcode,
- u_spt_price_mx.pcode,
- u_spt_price_mx.jgdscrp,
- u_spt_price_mx.buildtype,
- u_spt_price_mx.unit,
- u_spt_price_mx.printid,
- u_spt_price_mx.wareprice,
- u_spt_price_mx.wareprice_notax,
- u_spt_price_mx.rate,
- u_spt_price_mx.billtype,
- u_spt_price_mx.moneyid,
- u_spt_price_mx.effdate,
- u_spt_price_mx.effdate_end,
- ifbj
- )
- VALUES
- ( :arg_sptid,
- :arg_mtrlid,
- getdate(),
- :publ_operator,
- :arg_inwareid,
- :arg_inwarecode,
- :arg_indate,
- :arg_fprice * :arg_zqrate,
- :arg_fprice,
- :arg_zqrate,
- :arg_dscrp,
- :arg_status,
- :arg_woodcode,
- :arg_pcode,
- :arg_jgdscrp,
- :arg_buildtype,
- :arg_unit,
- :arg_printid,
- :arg_wareprice,
- :arg_wareprice_notax,
- :arg_rate,
- :arg_billtype,
- :arg_moneyid,
- :arg_effdate,
- :arg_effdate_end,
- :arg_ifbj);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '建立物料:'+ls_mtrlcode+'供应商价格历史明细失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_update_sptprice (integer arg_ifth, long arg_sptid, long arg_mtrlid, string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, long arg_inwareid, decimal arg_fprice, decimal arg_zqrate, decimal arg_rate, decimal arg_wareprice, decimal arg_wareprice_notax, datetime arg_indate, string arg_inwarecode, long arg_flag, string arg_dscrp, long arg_printid, integer arg_billtype, long arg_moneyid, datetime arg_effdate, datetime arg_effdate_end, boolean arg_ifcommit, ref string arg_msg);Int li_ifbj
- IF arg_billtype = 0 Or arg_billtype = 1 THEN //采购,外协收货单
- li_ifbj = 0
- ELSE //报价, 手动添加
- li_ifbj = 1
- END IF
- RETURN uof_sptmtrlprice_set ( arg_ifth, li_ifbj, arg_sptid, arg_moneyid, arg_mtrlid, arg_unit, arg_status, arg_woodcode, arg_pcode, arg_jgdscrp, &
- arg_effdate, arg_effdate_end, arg_fprice, arg_zqrate, arg_rate, arg_wareprice,arg_wareprice_notax,&
- arg_billtype, arg_flag, arg_inwareid, arg_inwarecode, arg_printid, arg_indate, arg_dscrp, arg_ifcommit, arg_msg)
- //Long rslt = 1
- //Long cnt = 0
- //DateTime server_time
- //String ls_mtrlcode
- //Int li_price_ifpz_buy
- //
- ////检查退货
- //IF arg_ifth = 1 THEN
- // rslt = 1
- // GOTO ext
- //END IF
- //
- ////yyx2013-4-12
- //IF arg_fprice = 0 THEN
- // rslt = 1
- // GOTO ext
- //END IF
- ////end yyx2013-4-12
- //
- ////检查参数
- //IF IsNull(arg_sptid) THEN arg_sptid = 0
- //IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- //IF IsNull(arg_status) THEN arg_status = ''
- //IF IsNull(arg_fprice) THEN arg_fprice = 0.0
- //IF IsNull(arg_moneyid) THEN arg_moneyid = 0
- //
- //IF IsNull(arg_woodcode) THEN arg_woodcode = ''
- //IF IsNull(arg_pcode) THEN arg_pcode = ''
- //IF IsNull(arg_jgdscrp) THEN arg_jgdscrp = ''
- //
- //
- //arg_inwarecode = Trim(arg_inwarecode)
- //arg_status = Trim(arg_status)
- //arg_woodcode = Trim(arg_woodcode)
- //arg_pcode = Trim(arg_pcode)
- //arg_jgdscrp = Trim(arg_jgdscrp)
- //
- //
- //arg_unit = Trim(arg_unit)
- //
- //IF arg_indate <= DateTime(Date('1900-01-01'),Time(0)) THEN
- // rslt = 0
- // arg_msg = '不合理的发生时间'
- // GOTO ext
- //END IF
- //
- //
- ////获得服务器时间
- //SELECT Top 1 getdate() Into :server_time From u_user;
- //
- ////检查供应商存在否
- //SELECT count(*)
- // INTO :cnt
- // FROM u_spt
- // Where u_spt.sptid = :arg_sptid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //IF cnt = 0 THEN
- // rslt = 0
- // arg_msg = '供应商不存在'
- // GOTO ext
- //END IF
- //
- //cnt = 0
- //SELECT count(*) INTO :cnt
- // FROM cw_currency
- // Where moneyid = :arg_moneyid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询币种失败'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //IF cnt = 0 THEN
- // arg_msg = '币种资料不存在'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //
- ////检查商品存在否
- //SELECT mtrlcode,
- // price_ifpz_buy
- // INTO :ls_mtrlcode,
- // :li_price_ifpz_buy
- // FROM u_mtrldef
- // Where u_mtrldef.mtrlid = :arg_mtrlid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询物料编码失败,'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //CHOOSE CASE li_price_ifpz_buy
- // CASE 0
- // arg_status = ''
- // arg_woodcode = ''
- // arg_pcode = ''
- // CASE 1
- // arg_pcode = ''
- // arg_woodcode = ''
- // CASE 2
- // arg_status = ''
- // arg_pcode = ''
- // CASE 3
- // arg_status = ''
- // arg_woodcode = ''
- // CASE 4
- // arg_pcode = ''
- // CASE 5
- // arg_status = ''
- // CASE 6
- // arg_woodcode = ''
- //END CHOOSE
- //
- ////1.更新供应商售价表
- //SELECT count(*)
- // INTO :cnt
- // FROM u_spt_price
- // WHERE u_spt_price.sptid = :arg_sptid AND
- // u_spt_price.mtrlid = :arg_mtrlid AND
- // u_spt_price.unit = :arg_unit AND
- // u_spt_price.status = :arg_status AND
- // u_spt_price.woodcode = :arg_woodcode AND
- // u_spt_price.pcode = :arg_pcode AND
- // u_spt_price.jgdscrp = :arg_jgdscrp AND
- // u_spt_price.moneyid = :arg_moneyid;
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其他原因查询供应商物料:'+ls_mtrlcode+'最新价格失败'+sqlca.SQLErrText
- // GOTO ext
- //END IF
- //
- //
- //IF cnt > 0 THEN
- // UPDATE u_spt_price
- // SET u_spt_price.sptid = :arg_sptid,
- // u_spt_price.mtrlid = :arg_mtrlid,
- // u_spt_price.price = :arg_fprice * :arg_zqrate,
- // u_spt_price.fprice = :arg_fprice,
- // u_spt_price.zqrate = :arg_zqrate,
- // u_spt_price.wareprice = :arg_wareprice,
- // u_spt_price.rate = :arg_rate,
- // u_spt_price.unit = :arg_unit,
- // u_spt_price.sys_changetime = getdate()
- // WHERE u_spt_price.sptid = :arg_sptid AND
- // u_spt_price.mtrlid = :arg_mtrlid AND
- // u_spt_price.unit = :arg_unit AND
- // u_spt_price.status = :arg_status AND
- // u_spt_price.woodcode = :arg_woodcode AND
- // u_spt_price.pcode = :arg_pcode AND
- // u_spt_price.jgdscrp = :arg_jgdscrp AND
- // u_spt_price.moneyid = :arg_moneyid;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络和其它原因,供应商物料:'+ls_mtrlcode+'报价表更新失败'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //ELSEIF cnt = 0 THEN
- // INSERT INTO u_spt_price
- // (sptid,
- // mtrlid,
- // price,
- // fprice,
- // zqrate,
- // dscrp,
- // unit,
- // wareprice,
- // rate,
- // status,
- // woodcode,
- // pcode,
- // jgdscrp,
- // moneyid,
- // sys_changetime)
- // VALUES
- // (:arg_sptid,
- // :arg_mtrlid,
- // :arg_fprice * :arg_zqrate,
- // :arg_fprice,
- // :arg_zqrate,
- // :arg_dscrp,
- // :arg_unit,
- // :arg_wareprice,
- // :arg_rate,
- // :arg_status,
- // :arg_woodcode,
- // :arg_pcode,
- // :arg_jgdscrp,
- // :arg_moneyid,
- // getdate());
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络或其他原因,新增供应商物料:'+ls_mtrlcode+'报价失败,'+sqlca.SQLErrText
- // GOTO ext
- // END IF
- //END IF
- //
- ////2.插入供应商售价变动明细表
- //INSERT INTO u_spt_price_mx
- // (u_spt_price_mx.sptid,
- // u_spt_price_mx.mtrlid,
- // u_spt_price_mx.opdate,
- // u_spt_price_mx.opemp,
- // u_spt_price_mx.inwareid,
- // u_spt_price_mx.inwarecode,
- // u_spt_price_mx.outdate,
- // u_spt_price_mx.price,
- // u_spt_price_mx.fprice,
- // u_spt_price_mx.zqrate,
- // u_spt_price_mx.dscrp,
- // u_spt_price_mx.status,
- // u_spt_price_mx.woodcode,
- // u_spt_price_mx.pcode,
- // u_spt_price_mx.jgdscrp,
- // u_spt_price_mx.buildtype,
- // u_spt_price_mx.unit,
- // u_spt_price_mx.printid,
- // u_spt_price_mx.wareprice,
- // u_spt_price_mx.rate,
- // u_spt_price_mx.billtype,
- // u_spt_price_mx.moneyid,
- // u_spt_price_mx.effdate
- // )
- // VALUES
- // (
- // :arg_sptid,
- // :arg_mtrlid,
- // :server_time,
- // :publ_operator,
- // :arg_inwareid,
- // :arg_inwarecode,
- // :arg_indate,
- // :arg_fprice * :arg_zqrate,
- // :arg_fprice,
- // :arg_zqrate,
- // :arg_dscrp,
- // :arg_status,
- // :arg_woodcode,
- // :arg_pcode,
- // :arg_jgdscrp,
- // :arg_flag,
- // :arg_unit,
- // :arg_printid,
- // :arg_wareprice,
- // :arg_rate,
- // :arg_billtype,
- // :arg_moneyid,
- // :arg_effdate);
- //IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '因网络或其他原因,建立供应商物料:'+ls_mtrlcode+'报价历史失败'
- // GOTO ext
- //END IF
- //
- //ext:
- //IF rslt = 0 THEN
- // ROLLBACK;
- //ELSEIF arg_ifcommit And rslt = 1 THEN
- // COMMIT;
- //END IF
- //
- //RETURN rslt
- end function
- public function integer uof_getmtrlsptbuyareaprice (long arg_moneyid, long arg_sptid, long arg_mtrlid, ref string arg_unit, string arg_status, string arg_woodcode, string arg_pcode, string arg_jgdscrp, ref long arg_buybargainid, ref long arg_buybargainprintid, ref string arg_buybargaincode, ref decimal arg_price, ref decimal arg_otherprice, ref decimal arg_areaqty, ref string arg_msg);Long rslt = 1
- Decimal rtn_price,rtn_zqrate,rtn_rate
- String ls_unit
- String rtn_wareunit
- Int li_iflimitprice,li_price_ifpz_buy
- Long ll_buybargainid, ll_buybargainprintid
- String ls_buybargaincode
- decimal lde_price, lde_rebate, lde_otherprice, lde_areaqty
- //lde_rebate = 1
- //IF sys_option_buy_getbuybargain = 0 THEN
- ll_buybargainid = 0
- ll_buybargainprintid = 0
- ls_buybargaincode = ''
- lde_price = 0
- lde_otherprice = 0
- lde_rebate = 1
- lde_areaqty = 0
- // GOTO ext
- //END IF
- arg_status = Trim(arg_status)
- arg_woodcode = Trim(arg_woodcode)
- arg_pcode = Trim(arg_pcode)
- arg_jgdscrp = Trim(arg_jgdscrp)
- arg_unit = Trim(arg_unit)
- SELECT iflimitprice,price_ifpz_buy , unit
- INTO :li_iflimitprice,:li_price_ifpz_buy, :ls_unit
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料限价属性失败 '+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- CHOOSE CASE li_price_ifpz_buy
- CASE 0
- arg_status = ''
- arg_woodcode = ''
- arg_pcode = ''
- CASE 1
- arg_pcode = ''
- arg_woodcode = ''
- CASE 2
- arg_status = ''
- arg_pcode = ''
- CASE 3
- arg_status = ''
- arg_woodcode = ''
- CASE 4
- arg_pcode = ''
- CASE 5
- arg_status = ''
- CASE 6
- arg_woodcode = ''
- END CHOOSE
- IF arg_unit = '' THEN
- arg_unit = ls_unit
- END IF
- SELECT top 1 billid,printid,billcode, price,otherprice, areaqty
- INTO :ll_buybargainid,:ll_buybargainprintid,:ls_buybargaincode, :lde_price, :lde_otherprice, :lde_areaqty
- FROM (
- SELECT top 1
- u_buybargainmx.price,
- u_buybargainmx.otherprice,
- u_buybargainmx.areaqty,
- u_buybargainmx.rate as rate,
- u_buybargainmx.unit as unit,
- u_buybargainmx.billid as billid,
- u_buybargainmx.printid as printid,
- ltrim(rtrim(u_buybargain.Billcode))+'[合同]' as billcode,
- u_buybargain.auditdate as auditdate
- FROM u_buybargain INNER JOIN
- u_buybargainmx ON u_buybargain.billid = u_buybargainmx.billid
- WHERE u_buybargain.flag = 1
- AND u_buybargain.sptid_b = :arg_sptid
- AND u_buybargainmx.mtrlid = :arg_mtrlid
- AND u_buybargainmx.unit = :arg_unit
- AND u_buybargain.moneyid = :arg_moneyid
- and u_buybargainmx.material = :arg_jgdscrp
- ORDER BY u_buybargain.auditdate DESC
- UNION
- SELECT top 1 u_spt_price_changemx.price,
- 0 as otherprice,
- 0 as areaqty,
- u_spt_price_changemx.rate,
- u_spt_price_changemx.unit,
- u_spt_price_changemx.billid,
- u_spt_price_changemx.printid,
- ltrim(rtrim(u_spt_price_change.Billcode))+'[调价]',
- u_spt_price_change.auditdate as auditdate
- FROM u_spt_price_change INNER JOIN
- u_spt_price_changemx ON
- u_spt_price_change.billid = u_spt_price_changemx.billid
- WHERE (u_spt_price_change.flag = 1)
- AND u_spt_price_change.sptid = :arg_sptid
- AND u_spt_price_changemx.mtrlid = :arg_mtrlid
- AND u_spt_price_change.moneyid = :arg_moneyid
- AND u_spt_price_changemx.unit = :arg_unit
- AND u_spt_price_changemx.status = :arg_status
- AND u_spt_price_changemx.woodcode = :arg_woodcode
- AND u_spt_price_changemx.pcode = :arg_pcode
- and u_spt_price_changemx.jgdscrp = :arg_jgdscrp
- ORDER BY u_spt_price_change.auditdate DESC) A
- Order By A.auditdate Desc;
-
- IF sqlca.SQLCode <> 0 THEN
- ll_buybargainid = 0
- ll_buybargainprintid = 0
- ls_buybargaincode = ''
- lde_price = 0
- lde_otherprice = 0
- lde_areaqty = 0
- END IF
- ext:
- arg_buybargainid = ll_buybargainid
- arg_buybargainprintid = ll_buybargainprintid
- arg_buybargaincode = ls_buybargaincode
- arg_price = lde_price
- arg_areaqty = lde_areaqty
- arg_otherprice = lde_otherprice
- RETURN rslt
- end function
- on uo_spt_price.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_spt_price.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- event constructor;String arg_msg
- String str_optionvalue
- str_optionvalue = ''
- f_get_sys_option_value('053',str_optionvalue,arg_msg)
- uo_option_buyprice_ifbj = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('244',str_optionvalue,arg_msg)
- uo_option_sptprice_effdate = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('366',str_optionvalue,arg_msg)
- uo_option_zero_update_sptprice = Long(str_optionvalue)
- end event
|