1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716 |
- $PBExportHeader$uo_finish.sru
- forward
- global type uo_finish from nonvisualobject
- end type
- end forward
- global type uo_finish from nonvisualobject
- end type
- global uo_finish uo_finish
- type variables
- public protectedwrite long finishid
- public protectedwrite string finishcode
- public protectedwrite datetime opdate
- public protectedwrite string opemp
- public protectedwrite string modemp
- public protectedwrite datetime moddate
- public protectedwrite string auditingrep,secauditingrep,thrauditingrep
- public protectedwrite datetime auditingdate,secauditingdate,thrauditingdate
- public protectedwrite long flag
- public protectedwrite long secflag,thrflag
- long scid
- string relcode
- string assign_emp
- datetime finishdate
- long printnum
- long wrkGrpid //自制:工组 id; 外协:供应商id
- long wagemth //自制:月份; 外协:结算方式
- string dscrp
- long billtype //0:工序派工; 1:外协工序派工
- string inputway //建立途径 (来自安卓.....)
-
- Boolean if_getid_ture = false
- long it_mxbt=0 //明细结构数组末指针
- //private:
- s_finish_mx s_finish_mx[] //明细结构
- boolean it_newbegin=true //新建标志
- boolean it_updatebegin=false//修改标志
-
- int uo_option_inware_mtrlcuscode
- int uo_option_taskplancode
- int uo_option_finish_wagemth_type
- int uo_option_orderrqwp_auditgj
- end variables
- forward prototypes
- public function integer p_clearmx ()
- public function integer p_reset ()
- public function integer newbegin (integer arg_scid, ref string arg_msg)
- public function integer updatebegin (long arg_finishid, ref string arg_msg)
- public function integer getinfo (long arg_finishid, ref string arg_msg)
- public function integer save (s_finish_mx s_mx[], ref string arg_msg, boolean arg_ifcommit)
- public function integer audit (long arg_finishid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_audit (long arg_finishid, ref string arg_msg, boolean arg_ifcommit)
- public function integer secauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_secauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_thrauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit)
- public function integer del (long arg_finishid, ref string arg_msg, boolean arg_ifcommit)
- public function integer p_del_inware (long arg_inwareid, long arg_printid, ref string arg_msg)
- public function integer uof_find_cust (long arg_scid, long arg_orderid, ref long arg_cusid, ref string arg_plancode, ref string arg_mtrlcuscode, ref string arg_msg)
- public function integer p_del_taskwork (ref string arg_msg)
- public function integer p_create_inware (long arg_printid, long arg_taskid, long arg_storageid, string arg_location, decimal arg_comqty, decimal arg_workprice, string arg_mxdscrp, ref string arg_msg)
- public function integer p_getinfo (long arg_finishid, ref string arg_msg)
- public function integer p_create_taskwork (s_finish_mx s_mx[], ref string arg_msg, integer arg_ifaudit)
- public function integer thrauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit, integer arg_ifaudit)
- public function integer p_del_mustpay (s_finish_mx s_mx[], ref string arg_msg)
- public function integer p_create_mustpay (s_finish_mx s_mx[], ref string arg_msg)
- public function integer mod_price (long arg_finishid, long arg_printid, decimal arg_fprice, decimal arg_jgprice, decimal arg_taxrate, decimal arg_rebate, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer p_clearmx ();//INT p_clearmx()
- //清除明细
- it_mxbt=0
- RETURN 1
- end function
- public function integer p_reset ();//int p_reset()
- //清除对象及其明细
- scid = 0
- finishid = 0
- finishcode = ''
- relcode = ''
- assign_emp = ''
- wrkGrpid = 0
- opemp = ''
- modemp = ''
- auditingrep = ''
- flag= 0
- secflag = 0
- dscrp = ''
- thrflag = 0
- wagemth = 0
- SetNull(finishdate)
- billtype = 0
- //-------
- it_newbegin=false
- it_updatebegin=false
- it_mxbt = 0
- //清除明细
- p_clearmx()
- RETURN 1
- end function
- public function integer newbegin (integer arg_scid, ref string arg_msg);//重置对象,设定业务类型与关联ID,准备建立新单
- //0 fail 1 success
- Long rslt = 1,CNT = 0
- IF arg_scid < 0 THEN
- arg_msg = '请选择分部'
- rslt = 0
- GOTO ext
- END IF
- p_reset()
- scid = arg_scid
- it_newbegin = TRUE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer updatebegin (long arg_finishid, ref string arg_msg);//UPDATEbegin(long arg_finishid,ref string arg_msg)
- //从置对象,设定业务类型与关联ID,准备更新进仓单
- //0 fail 1 success
- Long rslt = 1
- IF arg_finishid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误销售订单唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_finishid,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag <> 0 THEN
- rslt = 0
- arg_msg = '完工单已经审核,不可以修改'
- GOTO ext
- END IF
-
- p_clearmx() //清除明细
- it_newbegin = FALSE
- it_updatebegin = TRUE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer getinfo (long arg_finishid, ref string arg_msg);//getinfo(long arg_finishid,string arg_msg)
- //0 失败 1成功
- Int rslt = 1,i = 1,no_mxcheck = 0
- IF arg_finishid <= 0 THEN
- rslt = 0
- arg_msg = '错误完工单唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_finishid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //用游标读取明细
- DECLARE cur_finishmx CURSOR FOR
- SELECT u_finishmx.scid,
- u_finishmx.finishid,
- u_finishmx.printid,
- u_finishmx.taskid,
- u_finishmx.procode,
- u_finishmx.proname,
- u_finishmx.comqty,
- u_finishmx.workprice,
- u_finishmx.mxdscrp,
- u_finishmx.Wageid,
- u_finishmx.empid,
- u_finishmx.workgroupid,
- u_finishmx.reltaskworkid,
- u_finishmx.reltaskworkcode,
- u_finishmx.storageid,
- u_finishmx.relinwareid,
- u_finishmx.relinwarecode,
- u_sc_task.taskcode,
- u_sc_task.flag,
- u_sc_task.lastflag,
- u_finishmx.location,
- isnull(u_gz_wageitem.wagemode,0),
- u_sc_task.mtrlid,
- u_sc_task.status,
- u_sc_task.woodcode,
- u_sc_task.pcode
- FROM u_finishmx INNER JOIN
- u_sc_task ON u_finishmx.taskid = u_sc_task.taskid LEFT OUTER JOIN
- u_gz_wageitem ON u_finishmx.wageid = u_gz_wageitem.wageid
- WHERE u_finishmx.finishid = :arg_finishid ;
-
- OPEN cur_finishmx;
- FETCH cur_finishmx INTO :s_finish_mx[i].scid,:s_finish_mx[i].finishid,
- :s_finish_mx[i].printid,:s_finish_mx[i].taskid,
- :s_finish_mx[i].procode,
- :s_finish_mx[i].proname,
- :s_finish_mx[i].comqty,
- :s_finish_mx[i].workprice,
- :s_finish_mx[i].mxdscrp,
- :s_finish_mx[i].Wageid,
- :s_finish_mx[i].empid,
- :s_finish_mx[i].workgroupid,
- :s_finish_mx[i].reltaskworkid,
- :s_finish_mx[i].reltaskworkcode,
- :s_finish_mx[i].storageid,
- :s_finish_mx[i].relinwareid,
- :s_finish_mx[i].relinwarecode,
- :s_finish_mx[i].taskcode,
- :s_finish_mx[i].taskflag,
- :s_finish_mx[i].lastflag,
- :s_finish_mx[i].location,
- :s_finish_mx[i].wagemode,
- :s_finish_mx[i].mtrlid,
- :s_finish_mx[i].status,
- :s_finish_mx[i].woodcode,
- :s_finish_mx[i].pcode;
- DO WHILE sqlca.SQLCode = 0
- i++
- FETCH cur_finishmx INTO :s_finish_mx[i].scid,:s_finish_mx[i].finishid,
- :s_finish_mx[i].printid,:s_finish_mx[i].taskid,
- :s_finish_mx[i].procode,
- :s_finish_mx[i].proname,
- :s_finish_mx[i].comqty,
- :s_finish_mx[i].workprice,
- :s_finish_mx[i].mxdscrp,
- :s_finish_mx[i].Wageid,
- :s_finish_mx[i].empid,
- :s_finish_mx[i].workgroupid,
- :s_finish_mx[i].reltaskworkid,
- :s_finish_mx[i].reltaskworkcode,
- :s_finish_mx[i].storageid,
- :s_finish_mx[i].relinwareid,
- :s_finish_mx[i].relinwarecode,
- :s_finish_mx[i].taskcode,
- :s_finish_mx[i].taskflag,
- :s_finish_mx[i].lastflag,
- :s_finish_mx[i].location,
- :s_finish_mx[i].wagemode,
- :s_finish_mx[i].mtrlid,
- :s_finish_mx[i].status,
- :s_finish_mx[i].woodcode,
- :s_finish_mx[i].pcode;
- LOOP
- CLOSE cur_finishmx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM u_finishmx
- Where u_finishmx.finishid = :arg_finishid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,完工单明细数量"
- GOTO ext
- END IF
- IF i <> (no_mxcheck+1) THEN
- rslt = 0
- arg_msg = "查询操作失败,完工单明细"
- GOTO ext
- END IF
- it_mxbt = i - 1
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer save (s_finish_mx s_mx[], ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,i, j
- DateTime server_dt
- Long ll_finishid,ll_lastflag
- String ls_finishcode
- Long cnt
- DateTime ld_finishdate
- String ls_sccode
- Decimal lde_workhour
- String ls_empstr
- IF uo_option_finish_wagemth_type = -1000 THEN
- rslt = 0
- arg_msg = '选项:[401]工序完工单的计件月份按仓审时间,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- datastore ds
- ds = Create datastore
- IF sys_option_finish_taskwork_emp = 0 THEN // 工作中心派工的工序完工单计件审时生成计件单员工明细模式
- ds.DataObject = 'ds_workgroupmx_empid'
- ELSE
- ds.DataObject = 'ds_sc_task_empid'
- END IF
- ds.SetTransObject(sqlca)
- IF it_newbegin = False And it_updatebegin = False THEN
- rslt = 0
- arg_msg = "非编辑状态不可以提交"
- GOTO ext
- END IF
- IF IsNull(relcode) THEN relcode = ''
- IF IsNull(scid) THEN scid = 0
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(assign_emp) THEN assign_emp = ''
- IF IsNull(Wrkgrpid) THEN Wrkgrpid = 0
- IF IsNull(Wagemth) THEN Wagemth = 0
- if isnull(inputway) then inputway = ''
- IF assign_emp = '' THEN
- arg_msg = '请填入负责人!'
- rslt = 0
- GOTO ext
- END IF
- opemp = publ_operator
- SELECT Top 1 getdate() Into :server_dt From u_user ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- opdate = server_dt //填写单据建立时间(最近修改时间)
- IF Wrkgrpid = 0 THEN
- rslt = 0
- IF billtype = 0 THEN
- arg_msg = "请选择工组"
- ELSE
- arg_msg = "请选择供应商"
- END IF
- GOTO ext
- END IF
- IF billtype = 0 THEN
- IF uo_option_finish_wagemth_type = 0 THEN
- IF Wagemth = 0 THEN
- rslt = 0
- arg_msg = "请填入计件月份"
- GOTO ext
- END IF
- ELSE
- Wagemth = 0
- END IF
- ELSE
- IF Wagemth = 0 THEN //
- rslt = 0
- arg_msg = "请选择结算方式"
- GOTO ext
- END IF
- END IF
- it_mxbt = UpperBound(s_mx)
- IF it_mxbt = 0 THEN //如果输入物料资料错则已经清空
- rslt = 0
- arg_msg = "没有正确完工单明细内容"
- GOTO ext
- END IF
- //检查完工单数量是否超派工单
- Decimal ld_qty_otherfinish_notaudit
- Decimal ld_qty_sc_task,ld_fqty_sc_task
- Decimal ld_qty_samebill_othermx
- Long ll_orderid
- String ls_relcode,ls_relcode_arr[]
- Long it_mxbt_rel,k
- Int li_wagemode
- Int li_tasktype
- FOR i = 1 To it_mxbt
- SELECT u_sc_task.qty,u_sc_task.fqty,u_sc_task.orderid,u_sc_task.tasktype
- INTO :ld_qty_sc_task,:ld_fqty_sc_task,:ll_orderid,:li_tasktype
- From u_sc_task Where u_sc_task.taskid = :s_mx[i].taskid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '明细行:'+String(i)+',查询相关派工单数量及已完成数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- SELECT taskrelcode INTO :ls_relcode
- FROM u_order_ml
- WHERE scid = :scid
- And orderid = :ll_orderid;
- IF sqlca.SQLCode = 0 THEN
- FOR k = 1 To it_mxbt_rel
- IF ls_relcode = ls_relcode_arr[k] THEN
- GOTO _exit_rel
- END IF
- NEXT
-
- it_mxbt_rel++
- ls_relcode_arr[it_mxbt_rel] = ls_relcode
- _exit_rel:
- END IF
-
-
- SELECT isnull(sum(u_finishmx.comqty),0) INTO :ld_qty_otherfinish_notaudit
- FROM u_finish,u_finishmx
- WHERE u_finish.finishid <> :finishid
- AND u_finish.finishid = u_finishmx.finishid
- AND u_finishmx.taskid = :s_mx[i].taskid
- And u_finish.flag = 0;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '明细行:'+String(i)+',查询相关派工单其它已开未审完工单数量失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- ld_qty_samebill_othermx = 0
- FOR j = 1 To i - 1
- IF s_mx[j].taskid = s_mx[i].taskid THEN
- ld_qty_samebill_othermx += s_mx[j].comqty
- END IF
- NEXT
-
- IF ld_qty_sc_task < ld_fqty_sc_task + ld_qty_otherfinish_notaudit + ld_qty_samebill_othermx + s_mx[i].comqty THEN
- arg_msg = '明细行:'+String(i)+',超派工单数量,请检查,~n派工数量:'+String(ld_qty_sc_task,'##0.#########')+'~n已完工数量:'+String(ld_fqty_sc_task,'##0.#########')+'~n其它完工单已开未审数量:'+String(ld_qty_otherfinish_notaudit,'##0.#########')+'~n本单其它明细行相同派工单数量:'+String(ld_qty_samebill_othermx,'##0.#########')+'~n本明细数量:'+String(s_mx[i].comqty,'##0.#########')
- rslt = 0
- GOTO ext
- END IF
-
- IF s_mx[i].wageid > 0 THEN
- SELECT wagemode INTO :li_wagemode
- FROM u_gz_wageitem
- Where wageid = :s_mx[i].wageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '明细行:'+String(i)+',查询工资项目属性失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF li_wagemode <> 16 And li_wagemode <> 17 And li_wagemode <> 12 THEN
- arg_msg = '明细行:'+String(i)+',工资项目类型不属于工作中心计件或个人计件,请检查'
- rslt = 0
- GOTO ext
- END IF
-
- If (li_wagemode = 16 Or li_wagemode = 17) And s_mx[i].workgroupid = 0 THEN
- arg_msg = '明细行:'+String(i)+',工资项目类型属于工作中心计件,但没有选择工作中心,请检查'
- rslt = 0
- GOTO ext
- END IF
-
- IF li_wagemode = 12 And s_mx[i].empid = 0 THEN
- arg_msg = '明细行:'+String(i)+',工资项目类型属于个人计件,但没有选择员工,请检查'
- rslt = 0
- GOTO ext
- END IF
- END IF
-
-
- //计算实际工时
- //实际工时=完工时间-开始时间-准备工时-收尾工时-待工工时
- SELECT top 1 datediff(second, :s_mx[i].starttime, :s_mx[i].endtime) / 3600.0 - :s_mx[i].beforehour - :s_mx[i].afterhour - :s_mx[i].waithour
- INTO :lde_workhour
- From u_user ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "计算实际工时错误, "+sqlca.SQLErrText
- GOTO ext
- END IF
- IF IsNull(lde_workhour) THEN lde_workhour = 0
-
- IF lde_workhour < 0 THEN
- arg_msg = '明细行:'+String(i)+',计算实际工时为['+String(lde_workhour, '#,##0.0####')+'],不合逻辑'
- rslt = 0
- GOTO ext
- END IF
- s_mx[i].workhour = lde_workhour
-
- //按工作中心”派工类型,记录工作中心人员
- ls_empstr = ''
- IF s_mx[i].workgroupid > 0 THEN
- IF sys_option_finish_taskwork_emp = 1 And li_tasktype = 1 THEN
- cnt = ds.Retrieve(s_mx[i].taskid)
- ELSE
- cnt = ds.Retrieve(s_mx[i].workgroupid)
- END IF
- FOR j = 1 To cnt
- ls_empstr += Trim(ds.Object.u_rs_empinfo_empname[j])+','
- NEXT
- END IF
- s_mx[i].empstr = ls_empstr
- NEXT
- IF it_mxbt_rel > 0 THEN
- IF PosA(dscrp,'指令单生产批号:') > 0 THEN
- dscrp = MidA(dscrp,1,PosA(dscrp,'指令单生产批号:') - 1)
- END IF
-
- IF PosA(dscrp,'指令单相关号:') > 0 THEN
- dscrp = MidA(dscrp,1,PosA(dscrp,'指令单相关号:') - 1)
- END IF
-
- IF LenA(dscrp) > 0 THEN
- dscrp = dscrp + ' 指令单生产批号:'
- ELSE
- dscrp = '指令单生产批号:'
- END IF
-
- FOR k = 1 To it_mxbt_rel
- IF k = it_mxbt_rel THEN
- dscrp = dscrp + ls_relcode_arr[k]
- ELSE
- dscrp = dscrp + ls_relcode_arr[k] + ','
- END IF
- NEXT
-
- END IF
- IF LenA(dscrp) > 255 THEN dscrp = LeftA(dscrp,250)+'...'
- ///// //末工序必须选仓库
- //FOR i = 1 TO it_mxbt
- // SELECT lastflag
- // INTO :ll_lastflag
- // FROM u_sc_task
- // Where taskid = :s_mx[i].taskid;
- // IF sqlca.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '第'+String(i)+'行,查询派工单资料失败'
- // GOTO ext
- // END IF
- //
- // IF ll_lastflag = 1 AND s_mx[i].storageid = 0 THEN
- // rslt = 0
- // arg_msg = '第'+String(i)+'行,请选择进仓仓库'
- // GOTO ext
- // END IF
- //NEXT
- ////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF finishid = 0 THEN
- ll_finishid = f_sys_scidentity(0,"u_finish","finishid",arg_msg,True,id_sqlca)
- IF ll_finishid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- //取分部代号
- IF f_get_sccode(scid,sqlca,ls_sccode,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF billtype = 0 THEN
- ls_finishcode = getid(scid,ls_sccode+"PW",Date(server_dt),if_getid_ture,sqlca) //取得新单据编号
- ELSE
- ls_finishcode = getid(scid,ls_sccode+"PG",Date(server_dt),if_getid_ture,sqlca) //取得新单据编号
- END IF
-
- IF ls_finishcode = "err" THEN
- rslt = 0
- arg_msg = "无法获取工序完工单编号"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- INSERT INTO u_finish
- (scid,
- finishid ,
- finishcode,
- relcode,
- assign_emp,
- wrkgrpid,
- wagemth,
- opemp,
- opdate,
- dscrp,
- finishdate,
- billtype,
- inputway)
- VALUES (:scid,
- :ll_finishid,
- :ls_finishcode,
- :relcode,
- :assign_emp,
- :wrkgrpid,
- :wagemth,
- :opemp,
- :opdate,
- :dscrp,
- :finishdate,
- :billtype,
- :inputway);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入生产完工单操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- //读取新finishid
- finishid = ll_finishid
- finishcode = ls_finishcode
-
- ELSE
- UPDATE u_finish
- SET
- assign_emp = :assign_emp,
- relcode = :relcode ,
- wrkgrpid = :wrkgrpid,
- wagemth = :wagemth,
- modemp = :publ_operator,
- moddate = :server_dt,
- dscrp = :dscrp,
- finishdate = :finishdate
- WHERE finishid = :finishid
- And flag = 0 ;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "更新计划操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- //删除原有明细
- DELETE FROM u_finishmx
- Where u_finishmx.finishid = :finishid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
- END IF
- FOR i = 1 To it_mxbt
- INSERT INTO u_finishmx
- (scid,
- finishid,
- taskid,
- printid,
- comqty,
- mxdscrp,
- empid,
- workgroupid,
- workprice,
- procode,
- proname,
- wageid,
- storageid,
- location,
- starttime,
- endtime,
- workhour,
- beforehour,
- afterhour,
- waithour,
- techlevel,
- empstr)
- VALUES (:scid,:finishid,
- :s_mx[i].taskid,
- :s_mx[i].printid,
- :s_mx[i].comqty,
- :s_mx[i].mxdscrp,
- :s_mx[i].empid,
- :s_mx[i].workgroupid,
- :s_mx[i].workprice,
- :s_mx[i].procode,
- :s_mx[i].proname,
- :s_mx[i].wageid,
- :s_mx[i].storageid,
- :s_mx[i].Location,
- :s_mx[i].starttime,
- :s_mx[i].endtime,
- :s_mx[i].workhour,
- :s_mx[i].beforehour,
- :s_mx[i].afterhour,
- :s_mx[i].waithour,
- :s_mx[i].techlevel,
- :s_mx[i].empstr) ;
- IF sqlca.SQLCode <> 0 THEN
- IF it_newbegin THEN finishid = 0 //还原finishid
- rslt = 0
- arg_msg = "插入明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
- it_newbegin = False
- it_updatebegin = False
- ext:
- Destroy ds
- IF rslt = 0 THEN
- ROLLBACK;
- p_clearmx()
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT;
- END IF
- Return(rslt)
- end function
- public function integer audit (long arg_finishid, ref string arg_msg, boolean arg_ifcommit);Long rslt = 1 ,i
- Long ll_taskid , ll_flag
- String ls_taskcode
- uo_sc_task uo_task
- uo_task = CREATE uo_sc_task
- IF arg_finishid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF getinfo(arg_finishid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag <> 0 THEN
- rslt = 0
- arg_msg = "完工单只有在待确认状态才可以执行确认"
- GOTO ext
- END IF
- IF secflag = 1 THEN
- rslt = 0
- arg_msg = "完工单已经经理审不可以执行审核"
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- ll_flag = s_finish_mx[i].taskflag
-
- IF ll_flag = 0 THEN
- rslt = 0
- arg_msg = "查询派工单:"+String(s_finish_mx[i].taskcode)+"非进行状态,不能提交完成。"
- GOTO ext
- END IF
-
- IF uo_task.addcmpl(s_finish_mx[i].taskid,s_finish_mx[i].comqty,finishdate,publ_operator,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- UPDATE u_finish
- SET auditingrep = :publ_operator,
- auditingdate = getdate(),
- flag = 1
- WHERE finishid = :arg_finishid
- AND flag = 0
- and secflag = 0 ;
- IF sqlca.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "完工单确认操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- flag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- DESTROY uo_task
- RETURN rslt
- end function
- public function integer c_audit (long arg_finishid, ref string arg_msg, boolean arg_ifcommit);Long rslt = 1,i
- Long ll_cnt
- String ls_inwarecode
- long ll_flag
- DateTime null_dt
- SetNull(null_dt)
- uo_sc_task uo_task
- uo_task = CREATE uo_sc_task
- IF arg_finishid = 0 THEN
- rslt = 0
- arg_msg = "没有撤销确认对象"
- GOTO ext
- END IF
- IF getinfo(arg_finishid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF flag <> 1 THEN
- rslt = 0
- arg_msg = "只有在确认状态才可以执行撤销确认,请核对"
- GOTO ext
- END IF
- IF secflag <> 0 THEN
- rslt = 0
- arg_msg = "仓库审核状态有误,请核对"
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- ll_flag = s_finish_mx[i].taskflag
-
- IF uo_task.addcmpl(s_finish_mx[i].taskid,0 - s_finish_mx[i].comqty,null_dt,'',arg_msg,FALSE) = 0 THEN
- rslt = 0
- arg_msg = "更新派工单状态失败! " + arg_msg
-
- GOTO ext
- END IF
- NEXT
-
- UPDATE u_finish
- SET auditingrep = '',
- auditingdate = :null_dt,
- flag = 0
- WHERE finishid = :arg_finishid
- AND flag = 1
- AND secflag = 0;
- IF sqlca.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "完工单撤销确认操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- flag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- DESTROY uo_task
- RETURN rslt
- end function
- public function integer secauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit);Long rslt = 1 ,i
- Long ll_taskid , ll_flag
- String ls_taskcode
- Long ll_wagemth
- DateTime server_dt
- IF arg_finishid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF uo_option_finish_wagemth_type = -1000 THEN
- rslt = 0
- arg_msg = '选项:[401]工序完工单的计件月份按仓审时间,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- SELECT Top 1 getdate() Into :server_dt From u_user ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- ll_wagemth = Long(String(Date(server_dt),'yyyymm'))
- IF getinfo(arg_finishid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag <> 1 THEN
- rslt = 0
- arg_msg = "完工单只有在已确认状态才可以执行仓库审核"
- GOTO ext
- END IF
- IF secflag <> 0 THEN
- rslt = 0
- arg_msg = "完工单只有在待仓库核状态才可以执行仓库审核"
- GOTO ext
- END IF
- UPDATE u_finish
- SET secauditingrep = :publ_operator,
- secauditingdate = getdate(),
- secflag = 1
- WHERE finishid = :arg_finishid
- AND flag = 1
- And secflag = 0;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "完工单仓库审批操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF billtype = 0 THEN
- UPDATE u_finish
- SET wagemth = case :uo_option_finish_wagemth_type when 0 then wagemth else :ll_wagemth END
- Where finishid = :arg_finishid;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "完工单仓库审批操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- FOR i = 1 To it_mxbt
- IF s_finish_mx[i].lastflag = 1 And s_finish_mx[i].storageid > 0 THEN
- IF p_create_inware(s_finish_mx[i].printid,s_finish_mx[i].taskid,s_finish_mx[i].storageid,s_finish_mx[i].Location,s_finish_mx[i].comqty,s_finish_mx[i].workprice,s_finish_mx[i].mxdscrp,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- secflag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer c_secauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit);Long rslt = 1,i
- DateTime null_dt
- SetNull(null_dt)
- IF uo_option_finish_wagemth_type = -1000 THEN
- rslt = 0
- arg_msg = '选项:[401]工序完工单的计件月份按仓审时间,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF arg_finishid = 0 THEN
- rslt = 0
- arg_msg = "没有撤审对象"
- GOTO ext
- END IF
- IF getinfo(arg_finishid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag <> 1 THEN
- rslt = 0
- arg_msg = "确认状态有误,请核对"
- GOTO ext
- END IF
- IF secflag <> 1 THEN
- rslt = 0
- arg_msg = "只有在已仓库审核状态才可以执行仓库撤审,请核对"
- GOTO ext
- END IF
- UPDATE u_finish
- SET secauditingrep = '',
- secauditingdate = :null_dt,
- secflag = 0
- WHERE finishid = :arg_finishid
- AND flag = 1
- And secflag = 1;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "完工单仓库撤审操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF billtype = 0 THEN
- UPDATE u_finish
- SET wagemth = case :uo_option_finish_wagemth_type when 0 then wagemth else 0 END
- Where finishid = :arg_finishid;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "完工单仓库撤审操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- FOR i = 1 To it_mxbt
- IF s_finish_mx[i].relinwareid > 0 THEN
- IF p_del_inware(s_finish_mx[i].relinwareid,s_finish_mx[i].printid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- secflag = 0
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer c_thrauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit);Long rslt = 1,i
- DateTime null_dt
- SetNull(null_dt)
- If uo_option_orderrqwp_auditgj = -1000 Then
- rslt = 0
- arg_msg = '选项:[398]工价表如果未进行工价审,指令单工序明细生成时对应工序工价为0,读取初始默认值失败,操作取消!'
- Goto ext
- End If
- If arg_finishid = 0 Then
- rslt = 0
- arg_msg = "没有撤审对象"
- Goto ext
- End If
- If getinfo(arg_finishid,arg_msg) = 0 Then
- rslt = 0
- Goto ext
- End If
- If secflag <> 1 Then
- rslt = 0
- arg_msg = "仓库审核状态有误,请核对"
- Goto ext
- End If
- If thrflag <> 1 Then
- rslt = 0
- arg_msg = "只有在已计件审核状态才可以执行计件撤审,请核对"
- Goto ext
- End If
- Update u_finish
- Set thrauditingrep = '',
- thrauditingdate = :null_dt,
- thrflag = 0
- Where finishid = :arg_finishid
- And secflag = 1
- And thrflag = 1;
- If sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 Then
- rslt = 0
- arg_msg = "完工单计件撤审操作失败"+"~n"+sqlca.SQLErrText
- Goto ext
- End If
- If billtype = 0 Then
- If p_del_taskwork(arg_msg) = 0 Then
- rslt = 0
- Goto ext
- End If
-
- //20141121 选项 398 加强,工序完工单计件撤审的时候,如果工序的工价表已经进行工价审核,以最新的工价更新完工单的单价,否则更新为0
- If uo_option_orderrqwp_auditgj = 1 Then
-
- Update u_finishmx
- Set u_finishmx.workprice = case isnull(u_sc_workprice.auditflag_gj,0) when 0 then 0 else isnull(u_sc_workprice.workPrice,0) End
- From u_finishmx Inner JOIN
- u_sc_task ON u_finishmx.taskid = u_sc_task.taskid Inner JOIN
- u_Order_ml ON u_Order_ml.OrderID = u_sc_task.orderid And
- u_Order_ml.scid = u_sc_task.scid LEFT Outer JOIN
- U_OrderRqwp ON u_Order_ml.scid = U_OrderRqwp.scid And
- u_Order_ml.OrderID = U_OrderRqwp.orderid And
- u_sc_task.procode = U_OrderRqwp.Procode LEFT Outer JOIN
- u_sc_workprice ON
- CASE WHEN U_OrderRqwp.sonmtrlid = 0 THEN U_OrderRqwp.mtrlid ELSE U_OrderRqwp.sonmtrlid
- End = u_sc_workprice.Mtrlid And CASE WHEN rtrim(U_OrderRqwp.procode_ori)
- = '' THEN U_OrderRqwp.procode ELSE U_OrderRqwp.procode_ori End = u_sc_workprice.procode
- Where u_finishmx.finishid = :arg_finishid;
- If sqlca.SQLCode <> 0 Then
- rslt = 0
- arg_msg = "按工价表最新工价更新工序完工单价格失败"+"~n"+sqlca.SQLErrText
- Goto ext
- End If
- End If
- Else
- If p_del_mustpay(s_finish_mx, arg_msg) = 0 Then
- rslt = 0
- Goto ext
- End If
- End If
- thrflag = 0
- ext:
- If rslt = 0 Then
- Rollback;
- ElseIf rslt = 1 And arg_ifcommit Then
- Commit;
- End If
- Return rslt
- end function
- public function integer del (long arg_finishid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- rslt = getinfo(arg_finishid, arg_msg)
- IF rslt = 0 THEN GOTO ext
- IF flag <> 0 THEN
- rslt = 0
- arg_msg = "生产完工单已经审核,不可以删除"
- GOTO ext
- END IF
- DELETE FROM u_finish
- Where finishid = :arg_finishid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除生产完工单操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- //删除明细
- DELETE FROM u_finishmx
- Where u_finishmx.finishid = :arg_finishid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除生产完工明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- p_reset()
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- Return (rslt)
- end function
- public function integer p_del_inware (long arg_inwareid, long arg_printid, ref string arg_msg);Int rslt = 1
- Long ll_cnt,ll_flag
- String ls_inwarecode
- uo_inware uo_ware
- uo_ware = CREATE uo_inware
- uo_ware.commit_transaction = sqlca
- uo_ware.if_getid_ture = FALSE
- IF arg_inwareid <= 0 THEN
- rslt = 0
- arg_msg = '错误的进仓单ID'
- GOTO ext
- END IF
- SELECT count(*)
- INTO :ll_cnt
- FROM u_inware
- Where inwareid = :arg_inwareid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询相关进仓单失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF ll_cnt = 0 THEN
- rslt = 1
- GOTO ext
- ELSEIF ll_cnt > 0 THEN
- SELECT flag
- INTO :ll_flag
- FROM u_inware
- Where inwareid = :arg_inwareid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询相关进仓单审核标记失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- IF ll_flag = 1 THEN
- rslt = 0
- arg_msg = '第'+String(arg_printid)+'行,相关进仓单已经审核,请先撤审'
- GOTO ext
-
- // IF uo_ware.getinfo(scid,arg_inwareid,arg_msg) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF uo_ware.c_auditing(false,arg_msg) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- END IF
- IF uo_ware.del(scid,arg_inwareid,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_finishmx
- SET relinwareid = 0,
- relinwarecode = ''
- WHERE finishid = :finishid AND
- printid = :arg_printid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新完工单明细相关进仓单失败'
- GOTO ext
- END IF
- ext:
- DESTROY uo_ware
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- RETURN rslt
- end function
- public function integer uof_find_cust (long arg_scid, long arg_orderid, ref long arg_cusid, ref string arg_plancode, ref string arg_mtrlcuscode, ref string arg_msg);Int rslt = 1
- IF uo_option_inware_mtrlcuscode = -1000 THEN
- rslt = 0
- arg_msg = '选项:[138]生产进仓单产品批号策略按指令单号,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_taskplancode = -1000 THEN
- rslt = 0
- arg_msg = '选项:[038]使用客户批号库存,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- Long li_ordertype,cnt
- Long ll_cusid
- String ls_cuscode,ls_cusname,ls_plancode
- Long ll_mtrlid,ll_mtrlid_p,ll_porderid
- Boolean lb_ifsameorder
- Int li_ifmtrlcuscode
- String ls_ordercode
- SELECT ordercode,ordertype,mtrlid,porderid INTO :ls_ordercode,:li_ordertype,:ll_mtrlid,:ll_porderid
- FROM u_order_ml
- WHERE scid = :arg_scid
- And orderid = :arg_orderid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询指令单信息失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_ordertype = 0 THEN
- ll_cusid = 0
- GOTO ext
- END IF
- SELECT count(*) INTO :cnt
- FROM u_order_ml_mx
- WHERE orderid = :arg_orderid
- And scid = :arg_scid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询指令单相关计划明细信息失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt <> 1 THEN
- ll_cusid = 0
- GOTO ext
- END IF
- SELECT ifmtrlcuscode INTO :li_ifmtrlcuscode
- FROM u_mtrldef
- Where mtrlid = :ll_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询物料是否使用产品批号属性失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF uo_option_inware_mtrlcuscode = 1 And li_ifmtrlcuscode = 1 THEN
- arg_mtrlcuscode = ls_ordercode
- ELSE
- arg_mtrlcuscode = ''
- END IF
- IF li_ordertype = 4 THEN
- SELECT mtrlid INTO :ll_mtrlid_p
- FROM u_order_ml
- WHERE scid = :arg_scid
- And orderid = :ll_porderid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询指令单上级计划物料资料失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ll_mtrlid_p = ll_mtrlid THEN
- lb_ifsameorder = True
- SELECT u_order_ml.cusid,
- isnull(u_cust.cuscode,''),
- isnull(u_cust.name,''),
- u_order_ml.taskrelcode
- INTO
- :ll_cusid,
- :ls_cuscode,
- :ls_cusname,
- :ls_plancode
- FROM u_order_ml left OUTER join u_cust on u_cust.cusid = u_order_ml.cusid
- WHERE u_order_ml.scid = :arg_scid
- And u_order_ml.orderid = :ll_porderid;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询指令单上级计划相关客户信息失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
-
- ELSE
- SELECT u_order_ml.cusid,
- isnull(u_cust.cuscode,''),
- isnull(u_cust.name,''),
- u_order_ml.taskrelcode
- INTO
- :ll_cusid,
- :ls_cuscode,
- :ls_cusname,
- :ls_plancode
- FROM u_order_ml left OUTER join u_cust on u_cust.cusid = u_order_ml.cusid
- WHERE u_order_ml.scid = :arg_scid
- And u_order_ml.orderid = :arg_orderid;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询指令单相关客户信息失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- IF lb_ifsameorder And uo_option_taskplancode = 1 THEN
- arg_plancode = ls_plancode
- ELSE
- arg_plancode = ''
- END IF
- ext:
- arg_cusid = ll_cusid
- RETURN rslt
- end function
- public function integer p_del_taskwork (ref string arg_msg);Int rslt = 1
- Long ll_cnt,ll_flag
- String ls_inwarecode
- uo_scwg_taskwork_2 uo_ware
- uo_ware = CREATE uo_scwg_taskwork_2
- uo_ware.commit_transaction = sqlca
- uo_scwg_taskwork_day uo_ware_day
- uo_ware_day = CREATE uo_scwg_taskwork_day
- uo_ware_day.commit_transaction = sqlca
- Long ll_billid[]
- Long ll_mxbt = 1,ll_i
- long ll_billid_day[]
- long ll_mxbt_day = 1
- DECLARE cur_taskwork CURSOR FOR
- SELECT billid
- FROM u_scwg_taskwork_2
- WHERE relid = :finishid
- And (billtype = 0 OR billtype = 1);
-
- OPEN cur_taskwork ;
- FETCH cur_taskwork INTO :ll_billid[ll_mxbt];
- DO WHILE sqlca.SQLCode = 0
- ll_mxbt++
- FETCH cur_taskwork INTO :ll_billid[ll_mxbt];
- LOOP
- CLOSE cur_taskwork;
- ll_mxbt = ll_mxbt -1
- FOR ll_i = 1 TO ll_mxbt
- IF uo_ware.del(ll_billid[ll_i],arg_msg,FALSE) = 0 THEN
- arg_msg = '删除相关计件单失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- NEXT
- DECLARE cur_taskwork_day CURSOR FOR
- SELECT billid
- FROM u_scwg_taskwork_day
- WHERE relid = :finishid
- And (billtype = 0);
-
- OPEN cur_taskwork_day ;
- FETCH cur_taskwork_day INTO :ll_billid_day[ll_mxbt_day];
- DO WHILE sqlca.SQLCode = 0
- ll_mxbt_day++
- FETCH cur_taskwork_day INTO :ll_billid_day[ll_mxbt_day];
- LOOP
- CLOSE cur_taskwork_day;
- ll_mxbt_day = ll_mxbt_day -1
- FOR ll_i = 1 TO ll_mxbt_day
- IF uo_ware_day.del(ll_billid_day[ll_i],arg_msg,FALSE) = 0 THEN
- arg_msg = '删除相关工作中心日分配计件单失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- NEXT
- ext:
- DESTROY uo_ware
- destroy uo_ware_day
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- RETURN rslt
- end function
- public function integer p_create_inware (long arg_printid, long arg_taskid, long arg_storageid, string arg_location, decimal arg_comqty, decimal arg_workprice, string arg_mxdscrp, ref string arg_msg);Long rslt = 1
- Long i
- Long ll_wrkid,mtrlid,orderid,balctype,cusid,ll_ref_inwareid
- String status,woodcode,pcode,mtrlcode,unit,ls_ref_inwarecode
- String ls_plancode,ls_mtrlcuscode
- decimal ld_planprice
- int li_ifmtrlcuscode
- uo_inware uo_ware
- uo_ware = Create uo_inware
- uo_ware.commit_transaction = sqlca
- uo_ware.if_getid_ture = False
- SELECT u_sc_task.mtrlid,
- u_sc_task.status,
- u_sc_task.woodcode,
- u_sc_task.pcode,
- u_mtrldef.mtrlcode,
- u_sc_task.orderid,
- u_mtrldef.unit,
- u_mtrldef.ifmtrlcuscode
- INTO :mtrlid,
- :status,
- :woodcode,
- :pcode,
- :mtrlcode,
- :orderid,
- :unit,
- :li_ifmtrlcuscode
- FROM u_sc_task,u_mtrldef
- WHERE u_sc_task.mtrlid = u_mtrldef.mtrlid AND
- taskid = :arg_taskid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询派工单资料失败'
- GOTO ext
- END IF
- if billtype = 0 then
- SELECT storageid
- INTO :ll_wrkid
- FROM u_sc_workgroup
- Where wrkgrpid = :wrkgrpid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查找工组对应车间失败'
- GOTO ext
- END IF
- else
- SELECT wrkGrpid
- INTO :ll_wrkid
- FROM u_order_ml
- Where orderid = :orderid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查找指令对应车间失败'
- GOTO ext
- END IF
- end if
- If sys_option_inware_mtrlcuscode = 1 And li_ifmtrlcuscode = 1 Then
- int li_ordertype
- long ll_pzlorderid
- string ls_pzlordercode, ls_ordercode
- Select ordertype,pzlorderid, ordercode
- Into :li_ordertype,:ll_pzlorderid,:ls_ordercode
- From u_order_ml
- Where u_order_ml.scid = :scid
- And orderid = :orderid;
- If sqlca.SQLCode <> 0 Then
- ls_mtrlcuscode = ''
- Else
- If li_ordertype = 4 And ll_pzlorderid > 0 Then
- Select ordercode Into :ls_pzlordercode
- From u_order_ml
- Where u_order_ml.scid = :scid
- And orderid = :ll_pzlorderid;
- If sqlca.SQLCode <> 0 Then
- ls_mtrlcuscode = ''
- Else
- ls_mtrlcuscode = ls_pzlordercode
- End If
- Else
- ls_mtrlcuscode = ls_ordercode
- End If
- End If
- Else
- ls_mtrlcuscode = ''
- End If
- //dw_child.Object.u_inwaremx_mtrlcuscode[child_row] = ls_mtrlcuscode
- SELECT balctype
- INTO :balctype
- FROM u_storage
- Where storageid = :arg_storageid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询仓库资料失败'
- GOTO ext
- END IF
- f_get_planprice_mtrl(mtrlid,status,woodcode,pcode,ld_planprice)
- IF balctype = 1 THEN
- IF uof_find_cust(scid,orderid,cusid,ls_plancode,ls_mtrlcuscode,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ELSE
- IF uo_option_taskplancode = 1 THEN
- SELECT taskrelcode
- INTO :ls_plancode
- FROM u_order_ml
- WHERE u_order_ml.scid = :scid
- And orderid = :orderid;
- IF sqlca.SQLCode <> 0 THEN
- ls_plancode = ''
- END IF
- ELSE
- ls_plancode = ''
- END IF
- END IF
- IF uo_ware.newbegin(scid,3,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- uo_ware.indate = finishdate
- uo_ware.inrep = opemp
- uo_ware.part = finishcode
- uo_ware.dscrp = ''
- uo_ware.storageid = arg_storageid
- uo_ware.sptname = '工序完工单自动生成'
- uo_ware.relid = ll_wrkid
- IF mtrlid > 0 THEN
- IF uo_ware.acceptmx(1,&
- mtrlid,&
- mtrlcode,&
- ls_plancode,&
- status,&
- arg_comqty,&
- ld_planprice,&
- 1,&
- arg_mxdscrp,&
- arg_msg,&
- 0,&
- orderid,&
- 1,&
- woodcode,&
- pcode,&
- cusid,&
- unit,&
- 1,arg_comqty,0,0,'','',0,0,ls_mtrlcuscode,arg_location,&
- arg_comqty,&
- 0) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF uo_ware.Save(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ll_ref_inwareid = uo_ware.inwareid
- ls_ref_inwarecode = uo_ware.inwarecode
- //IF uo_ware.getinfo(scid,ll_ref_inwareid,arg_msg) = 0 THEN
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //IF uo_ware.auditing(false,arg_msg) = 0 THEN
- // rslt = 0
- // GOTO ext
- //END IF
- UPDATE u_finishmx
- SET relinwareid = :ll_ref_inwareid,
- relinwarecode = :ls_ref_inwarecode
- WHERE finishid = :finishid AND
- printid = :arg_printid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新完工单明细相关进仓单失败'
- GOTO ext
- END IF
- ext:
- Destroy uo_ware
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- RETURN rslt
- end function
- public function integer p_getinfo (long arg_finishid, ref string arg_msg);Int rslt = 1
- IF arg_finishid <= 0 THEN
- rslt = 0
- arg_msg = '错误生产任务单唯一码'
- GOTO ext
- END IF
- SELECT scid,
- finishid,
- finishcode,
- relcode,
- assign_emp,
- wrkgrpid,
- opemp,
- opdate,
- modemp,
- moddate,
- auditingrep,
- auditingdate,
- flag,
- dscrp,
- secflag,
- thrflag,
- finishdate,
- wagemth,
- billtype,
- inputway
- INTO
- :scid,
- :finishid,
- :finishcode,
- :relcode,
- :assign_emp,
- :wrkgrpid,
- :opemp,
- :opdate,
- :modemp,
- :moddate,
- :auditingrep,
- :auditingdate,
- :flag,
- :dscrp,
- :secflag,
- :thrflag,
- :finishdate,
- :wagemth,
- :billtype,
- :inputway
- FROM u_finish
- Where finishid = :arg_finishid ;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询生产任务完工单内容失败(错误生产任务完工单唯一码)'
- GOTO ext
- END IF
-
- finishid = arg_finishid
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer p_create_taskwork (s_finish_mx s_mx[], ref string arg_msg, integer arg_ifaudit);Long rslt = 1
- Long ll_ref_billid
- String ls_ref_billcode
- uo_scwg_taskwork_2 uo_ware
- uo_ware = Create uo_scwg_taskwork_2
- uo_ware.commit_transaction = sqlca
- uo_ware.if_getid_ture = False
- uo_scwg_taskwork_day uo_ware_wrk
- uo_ware_wrk = Create uo_scwg_taskwork_day
- uo_ware_wrk.commit_transaction = sqlca
- uo_ware_wrk.if_getid_ture = False
- datastore ds_workgroupmx
- ds_workgroupmx = Create datastore
- IF sys_option_finish_taskwork_emp = 0 THEN // 工作中心派工的工序完工单计件审时生成计件单员工明细模式
- ds_workgroupmx.DataObject = 'ds_workgroupmx_empid'
- ELSE
- ds_workgroupmx.DataObject = 'ds_sc_task_empid'
- END IF
- ds_workgroupmx.SetTransObject(sqlca)
- Long ll_empid_arr[]
- Long ll_empid_wageid[]
- Long it_emp = 0
- Long ll_wrkgrpid_arr[]
- Long ll_wkp_wageid[]
- Long it_wrk = 0
- Long it_wrk_day = 0
- Long ll_wrkgrpid_day[],ll_day_wageid[]
- Long ll_billtype,ll_wrkgrpid
- Long ll_i,ll_j,ll_k,ll_l
- Long ll_mtrlid_arr[]
- String ls_procode_arr[],ls_proname_arr[]
- Decimal ld_comqty_arr[],ld_workprice_arr[]
- String ls_mxdscrp_arr[]
- String ls_status_arr[],ls_woodcode_arr[],ls_pcode_arr[],ls_wpcode_arr[]
- String ls_wpcode
- Long ll_orderid_arr[]
- Long ll_mxbt_mx
- Long ll_scid
- Long ll_mxbt_mx_
- Long ll_wkpid
- Long ll_empid_arr_[], ll_empid_arr_null[]
- String ls_empname_arr_[], ls_empname_arr_null[]
- Decimal lde_wageamt_arr_[], lde_wageamt_arr_null[], lde_workhours_arr_[]
- Long ll_rowcnt
- Decimal ld_wageamt, lde_assignamt_sum, lde_assignamt
- Dec lde_workhours, lde_workhours_sum
- String ls_status,ls_woodcode,ls_pcode
- Long ll_mtrlid,ll_orderid
- Decimal ld_wageamt_sm, lde_wageamt_sum
- SELECT storageid
- INTO :ll_wkpid
- FROM u_sc_workgroup
- Where wrkGrpid = :wrkGrpid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询工组所属车间失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- FOR ll_i = 1 To it_mxbt
- IF s_mx[ll_i].empid > 0 And s_mx[ll_i].wagemode = 12 THEN //个人计件
- FOR ll_j = 1 To it_emp
- IF ll_empid_arr[ll_j] = s_mx[ll_i].empid And ll_empid_wageid[ll_j] = s_mx[ll_i].wageid THEN
- GOTO _next
- END IF
- NEXT
- it_emp++
- ll_empid_arr[it_emp] = s_mx[ll_i].empid
- ll_empid_wageid[it_emp] = s_mx[ll_i].wageid
- ELSEIF s_mx[ll_i].workgroupid > 0 And s_mx[ll_i].wagemode = 16 THEN //工作中心产品月分配
- FOR ll_j = 1 To it_wrk
- IF ll_wrkgrpid_arr[ll_j] = s_mx[ll_i].workgroupid And ll_wkp_wageid[ll_j] = s_mx[ll_i].wageid THEN
- GOTO _next
- END IF
- NEXT
- it_wrk++
- ll_wrkgrpid_arr[it_wrk] = s_mx[ll_i].workgroupid
- ll_wkp_wageid[it_wrk] = s_mx[ll_i].wageid
- ELSEIF s_mx[ll_i].workgroupid > 0 And s_mx[ll_i].wagemode = 17 THEN //工作中心产品日分配
- FOR ll_j = 1 To it_wrk_day
- IF ll_wrkgrpid_day[ll_j] = s_mx[ll_i].workgroupid And ll_day_wageid[ll_j] = s_mx[ll_i].wageid THEN
- GOTO _next
- END IF
- NEXT
- it_wrk_day++
- ll_wrkgrpid_day[it_wrk_day] = s_mx[ll_i].workgroupid
- ll_day_wageid[it_wrk_day] = s_mx[ll_i].wageid
- END IF
- _next:
- NEXT
- IF it_emp = 0 And it_wrk = 0 And it_wrk_day = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF it_emp > 0 THEN //个人计件
- FOR ll_i = 1 To it_emp
- IF uo_ware.newbegin(scid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- uo_ware.billdate = finishdate
- uo_ware.wrkGrpid = ll_empid_arr[ll_i]
- uo_ware.rep = opemp
- uo_ware.relcode = finishcode
- uo_ware.dscrp = '工序完工单自动生成'
- uo_ware.wagemth = wagemth
- uo_ware.wageid = ll_empid_wageid[ll_i]
- uo_ware.billtype = 1
- uo_ware.relid = finishid
-
- ll_mxbt_mx = 0
- FOR ll_j = 1 To it_mxbt
- IF ll_empid_arr[ll_i] = s_mx[ll_j].empid And ll_empid_wageid[ll_i] = s_mx[ll_j].wageid THEN
-
- SELECT mtrlid,status,woodcode,pcode,orderid,scid
- INTO :ll_mtrlid,:ls_status,:ls_woodcode,:ls_pcode,:ll_orderid,:ll_scid
- FROM u_sc_task
- Where taskid = :s_mx[ll_j].taskid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询派工单资料失败'
- GOTO ext
- END IF
-
- SELECT wpcode INTO :ls_wpcode
- FROM u_order_ml
- WHERE scid = :ll_scid
- And orderid = :ll_orderid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询相关指令单工价表号失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR ll_k = 1 To ll_mxbt_mx
- IF ll_orderid_arr[ll_k] = ll_orderid And &
- ls_procode_arr[ll_k] = s_mx[ll_j].procode And &
- ls_proname_arr[ll_k] = s_mx[ll_j].proname And &
- ld_workprice_arr[ll_k] = s_mx[ll_j].workprice THEN
- ld_comqty_arr[ll_k] = ld_comqty_arr[ll_k] + s_mx[ll_j].comqty
- GOTO _next_mx
- END IF
- NEXT
-
- ll_mxbt_mx++
- ll_mtrlid_arr[ll_mxbt_mx] = ll_mtrlid
- ls_procode_arr[ll_mxbt_mx] = s_mx[ll_j].procode
- ls_proname_arr[ll_mxbt_mx] = s_mx[ll_j].proname
- ld_comqty_arr[ll_mxbt_mx] = s_mx[ll_j].comqty
- ld_workprice_arr[ll_mxbt_mx] = s_mx[ll_j].workprice
- ls_mxdscrp_arr[ll_mxbt_mx] = s_mx[ll_j].mxdscrp
- ls_status_arr[ll_mxbt_mx] = ls_status
- ls_woodcode_arr[ll_mxbt_mx] = ls_woodcode
- ls_pcode_arr[ll_mxbt_mx] = ls_pcode
- ll_orderid_arr[ll_mxbt_mx] = ll_orderid
- ls_wpcode_arr[ll_mxbt_mx] = ls_wpcode
-
- END IF
- _next_mx:
- NEXT
-
- FOR ll_l = 1 To ll_mxbt_mx
- IF uo_ware.acceptmx(ll_mtrlid_arr[ll_l],&
- ls_procode_arr[ll_l],&
- ls_proname_arr[ll_l],&
- ld_comqty_arr[ll_l],&
- ld_workprice_arr[ll_l],&
- ls_mxdscrp_arr[ll_l],&
- arg_msg,&
- ll_l,&
- ls_status_arr[ll_l],&
- ls_woodcode_arr[ll_l],&
- ls_pcode_arr[ll_l],&
- '',&
- ll_orderid_arr[ll_l],'','',0,0,&
- ls_wpcode_arr[ll_l]) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
- IF uo_ware.Save(arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_ifaudit = 1 THEN
- IF uo_ware.affirm(uo_ware.billid,arg_msg,False) = 0 THEN
- arg_msg = '确认个人产品计件单失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_ware.auditmx_1(uo_ware.billid,arg_msg,False) = 0 THEN
- arg_msg = '审核个人产品计件单失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- NEXT
- END IF
- IF it_wrk > 0 THEN //工作中心产品月分配
- FOR ll_i = 1 To it_wrk
- IF uo_ware.newbegin(scid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- uo_ware.billdate = finishdate
- uo_ware.wrkGrpid = ll_wrkgrpid_arr[ll_i]
- uo_ware.rep = opemp
- uo_ware.relcode = finishcode
- uo_ware.dscrp = '工序完工单自动生成'
- uo_ware.wagemth = wagemth
- uo_ware.wageid = ll_wkp_wageid[ll_i]
- uo_ware.billtype = 0
- uo_ware.relid = finishid
- uo_ware.wkpid = ll_wkpid
-
- ll_mxbt_mx = 0
- FOR ll_j = 1 To it_mxbt
- IF ll_wrkgrpid_arr[ll_i] = s_mx[ll_j].workgroupid And ll_wkp_wageid[ll_i] = s_mx[ll_j].wageid And &
- s_mx[ll_j].empid = 0 THEN
-
- SELECT mtrlid,status,woodcode,pcode,orderid,scid
- INTO :ll_mtrlid,:ls_status,:ls_woodcode,:ls_pcode,:ll_orderid,:ll_scid
- FROM u_sc_task
- Where taskid = :s_mx[ll_j].taskid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询派工单资料失败'
- GOTO ext
- END IF
-
-
- SELECT wpcode INTO :ls_wpcode
- FROM u_order_ml
- WHERE scid = :ll_scid
- And orderid = :ll_orderid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询相关指令单工价表号失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR ll_k = 1 To ll_mxbt_mx
- IF ll_orderid_arr[ll_k] = ll_orderid And &
- ls_procode_arr[ll_k] = s_mx[ll_j].procode And &
- ls_proname_arr[ll_k] = s_mx[ll_j].proname And &
- ld_workprice_arr[ll_k] = s_mx[ll_j].workprice THEN
- ld_comqty_arr[ll_k] = ld_comqty_arr[ll_k] + s_mx[ll_j].comqty
- GOTO _next_mx_wrk
- END IF
- NEXT
-
- ll_mxbt_mx++
- ll_mtrlid_arr[ll_mxbt_mx] = ll_mtrlid
- ls_procode_arr[ll_mxbt_mx] = s_mx[ll_j].procode
- ls_proname_arr[ll_mxbt_mx] = s_mx[ll_j].proname
- ld_comqty_arr[ll_mxbt_mx] = s_mx[ll_j].comqty
- ld_workprice_arr[ll_mxbt_mx] = s_mx[ll_j].workprice
- ls_mxdscrp_arr[ll_mxbt_mx] = s_mx[ll_j].mxdscrp
- ls_status_arr[ll_mxbt_mx] = ls_status
- ls_woodcode_arr[ll_mxbt_mx] = ls_woodcode
- ls_pcode_arr[ll_mxbt_mx] = ls_pcode
- ll_orderid_arr[ll_mxbt_mx] = ll_orderid
- ls_wpcode_arr[ll_mxbt_mx] = ls_wpcode
-
- END IF
- _next_mx_wrk:
- NEXT
-
- FOR ll_l = 1 To ll_mxbt_mx
- IF uo_ware.acceptmx(ll_mtrlid_arr[ll_l],&
- ls_procode_arr[ll_l],&
- ls_proname_arr[ll_l],&
- ld_comqty_arr[ll_l],&
- ld_workprice_arr[ll_l],&
- ls_mxdscrp_arr[ll_l],&
- arg_msg,&
- ll_l,&
- ls_status_arr[ll_l],&
- ls_woodcode_arr[ll_l],&
- ls_pcode_arr[ll_l],&
- '',&
- ll_orderid_arr[ll_l],'','',0,0,&
- ls_wpcode_arr[ll_l]) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
- IF uo_ware.Save(arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_ifaudit = 1 THEN
- IF uo_ware.affirm(uo_ware.billid,arg_msg,False) = 0 THEN
- arg_msg = '确认工作中心产品月分配失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_ware.auditmx_1(uo_ware.billid,arg_msg,False) = 0 THEN
- arg_msg = '审核工作中心产品月分配失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- NEXT
- END IF
- IF it_wrk_day > 0 THEN //工作中心产品日分配
- FOR ll_i = 1 To it_wrk_day
- IF uo_ware_wrk.newbegin(scid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- uo_ware_wrk.billdate = finishdate
- uo_ware_wrk.wrkGrpid = ll_wrkgrpid_day[ll_i]
- uo_ware_wrk.rep = opemp
- uo_ware_wrk.relcode = finishcode
- uo_ware_wrk.dscrp = '工序完工单自动生成'
- uo_ware_wrk.wagemth = wagemth
- uo_ware_wrk.wageid = ll_day_wageid[ll_i]
- uo_ware_wrk.billtype = 0
- uo_ware_wrk.relid = finishid
- uo_ware_wrk.wkpid = ll_wkpid
-
- ld_wageamt_sm = 0
-
- //处理dw_child, 取当前工作中心,工资项目的明细,按指令/工序汇总
- ll_mxbt_mx = 0
- FOR ll_j = 1 To it_mxbt
- IF ll_wrkgrpid_day[ll_i] = s_mx[ll_j].workgroupid And ll_day_wageid[ll_i] = s_mx[ll_j].wageid THEN
-
- SELECT mtrlid,status,woodcode,pcode,orderid,scid
- INTO :ll_mtrlid,:ls_status,:ls_woodcode,:ls_pcode,:ll_orderid,:ll_scid
- FROM u_sc_task
- Where taskid = :s_mx[ll_j].taskid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询派工单资料失败'
- GOTO ext
- END IF
-
- SELECT wpcode INTO :ls_wpcode
- FROM u_order_ml
- WHERE scid = :ll_scid
- And orderid = :ll_orderid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询相关指令单工价表号失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR ll_k = 1 To ll_mxbt_mx
- IF ll_orderid_arr[ll_k] = ll_orderid And &
- ls_procode_arr[ll_k] = s_mx[ll_j].procode And &
- ls_proname_arr[ll_k] = s_mx[ll_j].proname And &
- ld_workprice_arr[ll_k] = s_mx[ll_j].workprice THEN
-
- ld_comqty_arr[ll_k] = ld_comqty_arr[ll_k] + s_mx[ll_j].comqty
- GOTO _next_mx_day
- END IF
- NEXT
-
- ll_mxbt_mx++
- ll_mtrlid_arr[ll_mxbt_mx] = ll_mtrlid
- ls_procode_arr[ll_mxbt_mx] = s_mx[ll_j].procode
- ls_proname_arr[ll_mxbt_mx] = s_mx[ll_j].proname
- ld_comqty_arr[ll_mxbt_mx] = s_mx[ll_j].comqty
- ld_workprice_arr[ll_mxbt_mx] = s_mx[ll_j].workprice
- ls_mxdscrp_arr[ll_mxbt_mx] = s_mx[ll_j].mxdscrp
- ls_status_arr[ll_mxbt_mx] = ls_status
- ls_woodcode_arr[ll_mxbt_mx] = ls_woodcode
- ls_pcode_arr[ll_mxbt_mx] = ls_pcode
- ll_orderid_arr[ll_mxbt_mx] = ll_orderid
- ls_wpcode_arr[ll_mxbt_mx] = ls_wpcode
-
- END IF
- _next_mx_day:
- NEXT
-
-
- FOR ll_j = 1 To ll_mxbt_mx
-
- IF uo_ware_wrk.acceptmx(ll_mtrlid_arr[ll_j],&
- ls_procode_arr[ll_j],&
- ls_proname_arr[ll_j],&
- ld_comqty_arr[ll_j],&
- ld_workprice_arr[ll_j],&
- '',&
- arg_msg,&
- ll_j,&
- ls_status_arr[ll_j],&
- ls_woodcode_arr[ll_j],&
- ls_pcode_arr[ll_j],&
- ll_orderid_arr[ll_j],'','',&
- ls_wpcode_arr[ll_j]) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- ld_wageamt_sm = ld_wageamt_sm + ld_comqty_arr[ll_j] * ld_workprice_arr[ll_j]
-
- NEXT
-
- uo_ware_wrk.relempstr = ''
-
- //处理empid
- IF sys_option_finish_taskwork_emp = 0 THEN // 工作中心派工的工序完工单计件审时生成计件单员工明细模式
- //按员工平均分配
- ll_rowcnt = ds_workgroupmx.Retrieve(ll_wrkgrpid_day[ll_i])
-
- IF ll_rowcnt = 0 THEN
- lde_workhours = 1
- ELSE
- lde_workhours = 1.0 / ll_rowcnt
- END IF
-
- FOR ll_k = 1 To ds_workgroupmx.RowCount() //人员列表
- IF uo_ware_wrk.acceptmx_emp(0,&
- ds_workgroupmx.Object.u_rs_empinfo_empid[ll_k],&
- ds_workgroupmx.Object.u_rs_empinfo_empname[ll_k],&
- lde_workhours,0,0,&
- 0,&
- ld_wageamt_sm / ll_rowcnt ,&
- '',&
- arg_msg,&
- ll_k) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- ELSE // sys_option_finish_taskwork_emp = 1
- lde_wageamt_sum = ld_wageamt_sm //整张单的总金额
-
- ll_mxbt_mx_ = 0
- ll_empid_arr_ = ll_empid_arr_null
- ls_empname_arr_ = ls_empname_arr_null
- lde_wageamt_arr_ = lde_wageamt_arr_null
-
- FOR ll_j = 1 To it_mxbt
- IF ll_wrkgrpid_day[ll_i] = s_mx[ll_j].workgroupid &
- And ll_day_wageid[ll_i] = s_mx[ll_j].wageid THEN
-
- ll_rowcnt = ds_workgroupmx.Retrieve(s_mx[ll_j].taskid)
- IF ll_rowcnt <= 0 THEN
- arg_msg = "未设置工序派工单工作中心人员"
- rslt = 0
- GOTO ext
- END IF
-
- lde_assignamt_sum = ds_workgroupmx.Object.assignamt_sum[1] //总比例
- IF lde_assignamt_sum <= 0 THEN
- arg_msg = "工序派工单工作中心人员总分配比例不能为0"
- rslt = 0
- GOTO ext
- END IF
-
- ld_wageamt_sm = s_mx[ll_j].comqty * s_mx[ll_j].workprice //一条派工单的金额
-
- FOR ll_k = 1 To ds_workgroupmx.RowCount() //人员列表
-
- lde_assignamt = ds_workgroupmx.Object.assignamt[ll_k] //个人分配比例
-
- ld_wageamt = (lde_assignamt / lde_assignamt_sum) * ld_wageamt_sm //当前员工的金额
-
- FOR ll_l = 1 To ll_mxbt_mx_
- IF ds_workgroupmx.Object.u_rs_empinfo_empid[ll_k] = ll_empid_arr_[ll_l] THEN
- lde_wageamt_arr_[ll_l] += ld_wageamt
- GOTO _next_mx_
- END IF
- NEXT
-
- ll_mxbt_mx_++
- ll_empid_arr_[ll_mxbt_mx_] = ds_workgroupmx.Object.u_rs_empinfo_empid[ll_k]
- ls_empname_arr_[ll_mxbt_mx_] = ds_workgroupmx.Object.u_rs_empinfo_empname[ll_k]
- lde_wageamt_arr_[ll_mxbt_mx_] = ld_wageamt
-
- IF it_mxbt = 1 THEN //如果只有一条派工单,不改变比例"数值"
- lde_workhours_arr_[ll_mxbt_mx_] = lde_assignamt
- END IF
-
- _next_mx_:
- NEXT
-
-
- END IF
- NEXT
-
- FOR ll_k = 1 To ll_mxbt_mx_ //人员列表
-
- IF it_mxbt = 1 THEN
- lde_workhours = lde_workhours_arr_[ll_k]
- ELSE
- IF lde_wageamt_sum = 0 THEN
- lde_workhours = 1
- ELSE
- lde_workhours = lde_wageamt_arr_[ll_k] / lde_wageamt_sum
- END IF
- END IF
-
- IF uo_ware_wrk.acceptmx_emp(0,&
- ll_empid_arr_[ll_k],&
- ls_empname_arr_[ll_k],&
- lde_workhours,0,0,&
- 0,&
- lde_wageamt_arr_[ll_k] ,&
- '',&
- arg_msg,&
- ll_k) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- END IF
-
-
- IF uo_ware_wrk.Save(arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_ifaudit = 1 THEN
- IF uo_ware_wrk.affirm(uo_ware_wrk.billid,arg_msg,False) = 0 THEN
- arg_msg = '确认工作中心日分配计件单失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_ware_wrk.auditmx(uo_ware_wrk.billid,arg_msg,False) = 0 THEN
- arg_msg = '审核工作中心日分配计件单失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- NEXT
- END IF
- ext:
- Destroy uo_ware
- Destroy uo_ware_wrk
- Destroy ds_workgroupmx
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- RETURN rslt
- end function
- public function integer thrauditing (long arg_finishid, ref string arg_msg, boolean arg_ifcommit, integer arg_ifaudit);//自制:计件审, 外协:财审
- Long rslt = 1 ,i
- Long ll_taskid , ll_flag
- String ls_taskcode
- IF arg_finishid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF getinfo(arg_finishid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF secflag <> 1 THEN
- rslt = 0
- arg_msg = "完工单只有在已经仓库审核状态才可以执行计件审核"
- GOTO ext
- END IF
- IF thrflag <> 0 THEN
- rslt = 0
- arg_msg = "完工单只有在待计件审核状态才可以执行计件审核"
- GOTO ext
- END IF
- UPDATE u_finish
- SET thrauditingrep = :publ_operator,
- thrauditingdate = getdate(),
- thrflag = 1
- WHERE finishid = :arg_finishid
- AND secflag = 1
- And thrflag = 0;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "完工单计件审批操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF billtype = 0 THEN
- IF p_create_taskwork(s_finish_mx,arg_msg,arg_ifaudit) = 0 THEN
- arg_msg = '生成计件单失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- ELSE
- IF p_create_mustpay(s_finish_mx,arg_msg) = 0 THEN
- arg_msg = '生成应付帐失败,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- thrflag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer p_del_mustpay (s_finish_mx s_mx[], ref string arg_msg);Int rslt = 1
- Long i
- Long ll_moneyid_native
- Decimal jgsum_amt
- Long ll_payid
- string ls_unit
- uo_mustpay uo_pay
- uo_pay = Create uo_mustpay
- uo_spt_price uo_sptprice
- uo_sptprice = Create uo_spt_price
- SELECT moneyid INTO :ll_moneyid_native
- FROM cw_currency
- Where native = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询本位币资料失败'
- rslt = 0
- GOTO ext
- END IF
- FOR i = 1 To it_mxbt
- jgsum_amt += Round(s_mx[i].comqty * s_mx[i].workprice, 2)
-
- SELECT unit
- INTO :ls_unit
- FROM u_mtrldef
- Where mtrlid = :s_mx[i].mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询物料资料失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_sptprice.uof_del_sptprice_auto(wrkGrpid,finishid,s_mx[i].printid,s_mx[i].mtrlid,s_mx[i].status,s_mx[i].woodcode,s_mx[i].pcode,s_mx[i].proname,&
- ls_unit,ll_moneyid_native,False,arg_msg) = 0 THEN
- arg_msg = '更新行:'+String(i)+','+arg_msg
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF jgsum_amt <> 0 THEN
- SELECT payid
- INTO :ll_payid
- FROM u_bmstpay
- WHERE scid = :scid
- AND sptid = :wrkGrpid
- AND billcode = :finishcode
- And inwareid = :finishid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询应付账资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_pay.del_payrec(scid,1,ll_payid,wrkGrpid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- Destroy uo_pay
- Destroy uo_sptprice
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- RETURN rslt
- end function
- public function integer p_create_mustpay (s_finish_mx s_mx[], ref string arg_msg);Long rslt = 1
- Long i
- Int li_btype
- Long ll_accountsid
- Long ll_moneyid_native
- Long ll_dft_itemid,ll_dft_itemid_tax
- Decimal ld_jgprice_notax
- Decimal jgsum_amt
- String ls_unit
- String ls_about,ls_dscrp
- Decimal ld_payamt = 0,ld_mstpayamt = 0,ld_taxamt = 0
- uo_mustpay uo_pay
- uo_pay = Create uo_mustpay
- uo_spt_price uo_sptprice
- uo_sptprice = Create uo_spt_price
- SELECT btype,accountsid INTO :li_btype,:ll_accountsid
- FROM cw_banktype
- Where banktypeid = :wagemth Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询结算方式类型失败,'+ sqlca.SQLErrText
- GOTO ext
- END IF
- SELECT moneyid INTO :ll_moneyid_native
- FROM cw_currency
- Where native = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询本位币资料失败'
- rslt = 0
- GOTO ext
- END IF
- Decimal lde_rebate, lde_rate
- lde_rebate = 1
- lde_rate = 1
- jgsum_amt = 0
- FOR i = 1 To it_mxbt
- jgsum_amt += Round(s_mx[i].comqty * s_mx[i].workprice, 2)
-
- SELECT unit
- INTO :ls_unit
- FROM u_mtrldef
- Where mtrlid = :s_mx[i].mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询物料资料失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- ld_jgprice_notax = s_mx[i].workprice
- IF uo_sptprice.uof_update_sptprice(0,wrkGrpid,s_mx[i].mtrlid,ls_unit,s_mx[i].status,s_mx[i].woodcode,s_mx[i].pcode,s_mx[i].proname,&
- finishid,s_mx[i].workprice,lde_rebate,lde_rate,s_mx[i].workprice/lde_rate,ld_jgprice_notax /lde_rate , &
- finishdate,finishcode,0,'外协工序完工单',s_mx[i].printid,1,ll_moneyid_native,finishdate,DateTime(9999-01-01),False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF jgsum_amt <> 0 THEN
-
- ld_mstpayamt = jgsum_amt
- ld_taxamt = 0
-
- IF li_btype = 1 THEN
- ld_payamt = ld_mstpayamt
- ELSE
- ld_payamt = 0
- END IF
-
- ls_about = finishcode + "应付款,相关号:"+relcode
-
- SELECT itemid INTO :ll_dft_itemid
- FROM u_itemdef
- Where dfttype = 2 Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询默认采购外协退货项目资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
-
- ls_dscrp = ls_about
-
- s_bmstpay s_pay
- s_pay.scid = scid
- s_pay.sptid = wrkGrpid
- s_pay.paydate = finishdate
- s_pay.inrep = assign_emp
- s_pay.oriamt = ld_mstpayamt
- s_pay.mstpayamt = ld_mstpayamt
- s_pay.payamt = ld_payamt
- s_pay.payamt_cn = ld_payamt
- s_pay.dscrp = ls_about
- s_pay.billcode = finishcode
- s_pay.relcode = relcode
- s_pay.banktypeid = wagemth
- s_pay.viewdate = finishdate
- s_pay.opemp = publ_operator
- s_pay.buildtype = 1
- s_pay.inwareid = finishid
- s_pay.accountsid = ll_accountsid
- s_pay.itemid = ll_dft_itemid
- s_pay.moneyid = ll_moneyid_native
- s_pay.moneyid_cn = ll_moneyid_native
-
- IF uo_pay.add_payrec (s_pay,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- END IF
- ext:
- Destroy uo_pay
- Destroy uo_sptprice
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- RETURN rslt
- end function
- public function integer mod_price (long arg_finishid, long arg_printid, decimal arg_fprice, decimal arg_jgprice, decimal arg_taxrate, decimal arg_rebate, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- IF p_getinfo(arg_finishid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF secflag = 0 THEN
- rslt = 0
- arg_msg = '单据待审核状态下不能执行修改单价功能'
- GOTO ext
- END IF
- IF thrflag = 1 THEN
- rslt = 0
- arg_msg = '单据已财审,不能执行修改加工价'
- GOTO ext
- END IF
- Decimal ld_jgprice , ld_taxrate, ld_rebate
- SELECT workprice
- INTO :ld_jgprice
- FROM u_finishmx
- WHERE finishid = :arg_finishid
- AND printid = :arg_printid
- Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询单据明细内容失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- //ld_taxrate = 0
- //ld_rebate = 1
- //IF arg_taxrate = -1 THEN arg_taxrate = ld_taxrate
- //IF arg_rebate = -1 THEN arg_rebate = ld_rebate
- IF arg_jgprice = ld_jgprice THEN //没有修改,成功返回
- rslt = 1
- //arg_msg = '单价或税率没有任何修改,不能保存'
- GOTO ext
- END IF
- UPDATE u_finishmx
- SET workprice = :arg_jgprice
- WHERE finishid = :arg_finishid
- And printid = :arg_printid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新单据明细失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using sqlca;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using sqlca;
- END IF
- RETURN rslt
- end function
- on uo_finish.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_finish.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- event constructor;String str_optionvalue,arg_msg
- f_get_sys_option_value('138',str_optionvalue,arg_msg)
- uo_option_inware_mtrlcuscode = Long(str_optionvalue)
- f_get_sys_option_value('038',str_optionvalue,arg_msg)
- uo_option_taskplancode = Long(str_optionvalue)
- f_get_sys_option_value('401',str_optionvalue,arg_msg)
- uo_option_finish_wagemth_type = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('398',str_optionvalue,arg_msg)
- uo_option_orderrqwp_auditgj = Long(str_optionvalue)
- end event
|