1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719 |
- $PBExportHeader$uo_scwg_taskwork_day.sru
- forward
- global type uo_scwg_taskwork_day from nonvisualobject
- end type
- end forward
- global type uo_scwg_taskwork_day from nonvisualobject
- end type
- global uo_scwg_taskwork_day uo_scwg_taskwork_day
- type variables
- PUBLIC PROTECTEDWRITE Long billid
- PUBLIC PROTECTEDWRITE Long scid
- PUBLIC PROTECTEDWRITE String billcode
- PUBLIC PROTECTEDWRITE DateTime opdate
- PUBLIC PROTECTEDWRITE String opemp
- PUBLIC PROTECTEDWRITE DateTime moddate
- PUBLIC PROTECTEDWRITE String modemp
- PUBLIC PROTECTEDWRITE Int flag
- PUBLIC PROTECTEDWRITE DateTime auditingdate
- PUBLIC PROTECTEDWRITE String auditingrep
- PUBLIC PROTECTEDWRITE Int affirmflag
- PUBLIC PROTECTEDWRITE DateTime affirmdate
- PUBLIC PROTECTEDWRITE String affirmemp
- DateTime billdate
- String dscrp
- Long wagemth
- String rep
- String relcode
- Long wageid
- Long wrkgrpid
- long billtype
- string relempstr
- long wkpid
- long relid
- Transaction commit_transaction
- Boolean if_getid_ture = false
- s_scwg_taskwork_day taskworkmx[]
- s_scwg_taskwork_day_emp empmx[]
- Long it_mxbt = 0
- Long it_mxbt_emp = 0
- Boolean it_newbegin = FALSE
- Boolean it_updatebegin = FALSE
- Int uo_option_taskwork_not_affirm
- Int uo_option_taskwork_day_noorder
- Int uo_option_taskwork_procode_order
- Int uo_option_taskwork_price_if_mod
- Int uo_option_if_taskwork_acmpqty
- int uo_option_check_noworkprice
- end variables
- forward prototypes
- public function integer p_clearmx ()
- public function integer p_reset ()
- public function integer updatebegin (long arg_billid, ref string arg_msg)
- public function integer save (ref string arg_msg, boolean arg_ifcommit)
- public function integer newbegin (long arg_scid, ref string arg_msg)
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit)
- public function integer affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer p_getinfo (long arg_billid, ref string arg_msg)
- public function integer auditmx (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer cauditmx (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer auditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer cauditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer getinfo (long arg_billid, ref string arg_msg)
- public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer acceptmx_emp (integer arg_ifhelp, long arg_empid, string arg_empname, decimal arg_workhours, decimal arg_workhours2, decimal arg_workhours3, decimal arg_prwageamt, decimal arg_wageamt, string arg_mxdscrp, ref string arg_msg, long arg_printid)
- public function integer acceptmx (long arg_mtrlid, string arg_procode, string arg_proname, decimal arg_qty, decimal arg_price, string arg_mxdscrp, ref string arg_msg, long arg_printid, string arg_status, string arg_woodcode, string arg_pcode, long arg_orderid, string arg_reason, string arg_unit, string arg_wpcode)
- public function integer auditing (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg)
- public function integer c_auditing (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg)
- public function integer auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg)
- public function integer c_auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg)
- public function integer uf_update_emp (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer updateempbegin (long arg_billid, ref string arg_msg)
- end prototypes
- public function integer p_clearmx ();//INT p_clearmx()
- //清除明细
- it_mxbt = 0
- it_mxbt_emp = 0
- RETURN 1
- end function
- public function integer p_reset ();//INT p_RESET()
- //清除对象及其明细
- billid = 0
- billcode = ''
- opemp = ''
- auditingrep = ''
- flag = 0
- wagemth = 0
- rep = ""
- wageid = 0
- dscrp = ''
- relcode = ''
- relempstr = ''
- wkpid = 0
- it_newbegin = FALSE
- it_updatebegin = FALSE
- //清除明细
- P_CLEARMX()
- RETURN 1
- end function
- public function integer updatebegin (long arg_billid, ref string arg_msg);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF affirmflag = 1 THEN
- rslt = 0
- arg_msg = '单据已经确认,不可以修改'
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,不可以修改'
- GOTO ext
- END IF
- billid = arg_billid
- p_clearmx()
- it_newbegin = FALSE
- it_updatebegin = TRUE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer save (ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1
- Long cnt = 0,i,j
- DateTime server_dt
- Long ls_newid
- IF IsNull(wageid) THEN wageid = 0
- IF IsNull(wrkgrpid) THEN wrkgrpid = 0
- IF IsNull(relcode) THEN relcode = ''
- IF IsNull(rep) THEN rep = ''
- IF IsNull(wagemth) THEN wagemth = 0
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(billtype) THEN billtype = 0
- if isnull(relempstr) then relempstr = ''
- if isnull(wkpid) then wkpid = 0
- if isnull(relid) then relid = 0
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以提交"
- GOTO ext
- END IF
- SELECT Top 1 getdate() INTO :server_dt FROM u_user USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- IF it_mxbt = 0 THEN //
- rslt = 0
- arg_msg = "没有计件明细"
- GOTO ext
- END IF
- IF it_mxbt_emp = 0 THEN //
- rslt = 0
- arg_msg = "没有计件员工明细"
- GOTO ext
- END IF
- IF Year(Date(billdate)) < 2000 OR IsNull(billdate) THEN
- rslt = 0
- arg_msg = "缺少计件时间或不合理"
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_gz_wageitem
- Where wageid = :wageid USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询工资项目失败!"
- GOTO ext
- END IF
- IF cnt <> 1 THEN
- rslt = 0
- arg_msg = "不存在工资项目!"
- GOTO ext
- END IF
- if trim(rep) = '' then
- rslt = 0
- arg_msg = '请填写经手人'
- goto ext
- end if
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_workgroup
- Where workgroupid = :wrkgrpid USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询工作组失败!"
- GOTO ext
- END IF
- IF cnt <> 1 THEN
- rslt = 0
- arg_msg = "不存在工作组!"
- GOTO ext
- END IF
- //cnt = 0
- //SELECT count(*) INTO :cnt
- // FROM u_scwg_taskwork_day
- // WHERE flag = 1
- // AND wagemth = :wagemth
- // AND wrkgrpid = :wrkgrpid
- // AND wageid = :wageid USING commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // arg_msg = '查询本月是否有单审核失败,'+commit_transaction.SQLErrText
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //IF cnt > 0 THEN
- // arg_msg = '查询本月已有单审核,不能保存'
- // rslt = 0
- // GOTO ext
- //END IF
- ////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF billid = 0 THEN //新建
- ls_newid = f_sys_scidentity(0,"u_scwg_taskwork_day","billid",arg_msg,TRUE,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF billtype = 0 THEN //
- billcode = getid(0,"JD",Date(server_dt),if_getid_ture,commit_transaction) //取得新单据编号
- ELSEIF billtype = 1 THEN // 异常计件单
- billcode = getid(0,"AD",Date(server_dt),if_getid_ture,commit_transaction) //取得新单据编号
- END IF
-
- IF billcode = "err" THEN
- billcode = ''
- rslt = 0
- arg_msg = "无法获取单据编号"
- GOTO ext
- END IF
-
- INSERT INTO u_scwg_taskwork_day (
- billid,
- billdate,
- wagemth,
- rep,
- relcode,
- dscrp,
- scid,
- billcode,
- wrkgrpid,
- opemp,
- opdate,
- wageid,
- billtype,
- relempstr,
- wkpid,
- relid)
- VALUES (
- :ls_newid,
- :billdate,
- :wagemth,
- :rep,
- :relcode,
- :dscrp,
- :scid,
- :billcode,
- :wrkgrpid,
- :publ_operator,
- :server_dt ,
- :wageid,
- :billtype,
- :relempstr,
- :wkpid,
- :relid) USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入操作失败>>"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- //
- billid = ls_newid
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_scwg_taskwork_day_mx (
- billid,
- procode,
- proname,
- qty,
- price,
- mxdscrp,
- mtrlid,
- printid,
- status,
- woodcode,
- pcode,
- orderid,
- ordercode,
- reason,
- unit,
- wpcode)
- VALUES (
- :ls_newid,
- :taskworkmx[i].procode,
- :taskworkmx[i].proname,
- :taskworkmx[i].qty,
- :taskworkmx[i].price,
- :taskworkmx[i].mxdscrp,
- :taskworkmx[i].mtrlid,
- :taskworkmx[i].printid,
- :taskworkmx[i].status,
- :taskworkmx[i].woodcode,
- :taskworkmx[i].pcode,
- :taskworkmx[i].orderid,
- :taskworkmx[i].ordercode,
- :taskworkmx[i].reason,
- :taskworkmx[i].unit,
- :taskworkmx[i].wpcode) USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- billid = 0 //还原noticeid
- rslt = 0
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK ;
- GOTO ext
- END IF
- NEXT
-
- FOR j = 1 TO it_mxbt_emp
- INSERT INTO u_scwg_taskwork_day_mx_emp (
- billid,
- printid,
- empid,
- workhours,
- workhours2,
- workhours3,
- wageamt,
- mxdscrp,
- ifhelp,
- prwageamt)
- VALUES (
- :ls_newid,
- :empmx[j].printid,
- :empmx[j].empid,
- :empmx[j].workhours,
- :empmx[j].workhours2,
- :empmx[j].workhours3,
- :empmx[j].wageamt,
- :empmx[j].mxdscrp,
- :empmx[j].ifhelp,
- :empmx[j].prwageamt) USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- billid = 0 //还原noticeid
- rslt = 0
- arg_msg = "因网络或其它原因导致插入员工明细操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK ;
- GOTO ext
- END IF
- NEXT
-
- ELSE //////////////////////////////////////////////// //更新
- UPDATE u_scwg_taskwork_day
- SET billdate = :billdate,
- wagemth = :wagemth,
- rep = :rep,
- relcode = :relcode,
- dscrp = :dscrp,
- billcode = :billcode,
- wrkgrpid = :wrkgrpid,
- modemp = :publ_operator,
- moddate = :server_dt,
- wageid = :wageid,
- relempstr = :relempstr,
- wkpid = :wkpid,
- relid = :relid
- WHERE billid = :billid
- AND flag = 0 USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 OR commit_transaction.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- // 删除原有明细
- DELETE FROM u_scwg_taskwork_day_mx
- Where billid = :billid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_scwg_taskwork_day_mx (
- billid,
- procode,
- proname,
- qty,
- price,
- mxdscrp,
- mtrlid,
- printid,
- status,
- woodcode,
- pcode,
- orderid,
- ordercode,
- reason,
- unit,
- wpcode)
- VALUES (
- :billid,
- :taskworkmx[i].procode,
- :taskworkmx[i].proname,
- :taskworkmx[i].qty,
- :taskworkmx[i].price,
- :taskworkmx[i].mxdscrp,
- :taskworkmx[i].mtrlid,
- :taskworkmx[i].printid,
- :taskworkmx[i].status,
- :taskworkmx[i].woodcode,
- :taskworkmx[i].pcode,
- :taskworkmx[i].orderid,
- :taskworkmx[i].ordercode,
- :taskworkmx[i].reason,
- :taskworkmx[i].unit,
- :taskworkmx[i].wpcode) USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- // 删除原有明细
- DELETE FROM u_scwg_taskwork_day_mx_emp
- Where billid = :billid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有员工明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
- FOR j = 1 TO it_mxbt_emp
- INSERT INTO u_scwg_taskwork_day_mx_emp (
- billid,
- printid,
- empid,
- workhours,
- workhours2,
- workhours3,
- wageamt,
- mxdscrp,
- ifhelp,
- prwageamt)
- VALUES (
- :billid,
- :empmx[j].printid,
- :empmx[j].empid,
- :empmx[j].workhours,
- :empmx[j].workhours2,
- :empmx[j].workhours3,
- :empmx[j].wageamt,
- :empmx[j].mxdscrp,
- :empmx[j].ifhelp,
- :empmx[j].prwageamt) USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- billid = 0 //还原id
- rslt = 0
- arg_msg = "因网络或其它原因导致插入员工明细操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK ;
- GOTO ext
- END IF
- NEXT
- NEXT
- //
- END IF
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- p_clearmx()
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- Return(rslt)
- end function
- public function integer newbegin (long arg_scid, ref string arg_msg);
- p_reset()
- if arg_scid < 0 then
- arg_msg = '请选择分部'
- return 0
- end if
- scid=arg_scid
- it_newbegin=TRUE
- it_updatebegin=FALSE
- return 1
- end function
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit);int rslt = 1
- arg_newdescppart = trim(arg_newdescppart)
- if arg_billid <= 0 then
- rslt = 0
- arg_msg = "没有删除对象,操作取消"
- goto ext
- end if
- if it_newbegin or it_updatebegin then
- rslt=0
- arg_msg="编辑状态下不可以执行,操作取消"
- goto ext
- end if
- if p_getinfo(arg_billid,arg_msg) = 0 then
- rslt = 0
- goto ext
- end if
- if flag = 0 then
- rslt = 0
- arg_msg = "非审核状态下不可用"
- goto ext
- end if
- update u_scwg_taskwork_day
- set dscrp = dscrp+' '+:arg_newdescppart
- where u_scwg_taskwork_day.billid = :billid
- using commit_transaction;
- if commit_transaction.sqlcode <> 0 then
- rslt = 0
- arg_msg = "因网络或其它原因导致添加单据备注操作失败"+"~n"+sqlca.sqlerrtext
- goto ext
- end if
- dscrp = dscrp+' '+arg_newdescppart
- ext:
- if rslt = 0 then
- rollback;
- elseif rslt = 1 and arg_ifcommit then
- commit;
- end if
- return rslt
- end function
- public function integer affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long i
- uo_order_ml uo_ml
- uo_ml = CREATE uo_order_ml
- IF arg_billid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF affirmflag = 1 THEN
- rslt = 0
- arg_msg = '该单据已确认'
- GOTO ext
- END IF
- UPDATE u_scwg_taskwork_day
- SET affirmemp = :publ_operator,
- affirmdate = getdate(),
- affirmflag = 1
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND affirmflag = 0
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致确认单据操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在确认,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- IF taskworkmx[i].orderid > 0 THEN
- IF uo_ml.uof_add_procode_qty(scid,taskworkmx[i].orderid,&
- taskworkmx[i].procode,billdate,taskworkmx[i].qty,arg_msg,FALSE) = 0 THEN
- arg_msg = '第'+string(i)+'行,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- DESTROY uo_ml
- RETURN rslt
- end function
- public function integer c_affirm (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- DateTime null_dt
- SetNull(null_dt)
- Long i
- uo_order_ml uo_ml
- uo_ml = CREATE uo_order_ml
- IF arg_billid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF affirmflag = 0 THEN
- rslt = 0
- arg_msg = '该单据未确认,不能反确认'
- GOTO ext
- END IF
- UPDATE u_scwg_taskwork_day
- SET affirmemp = '',
- affirmdate = :null_dt,
- affirmflag = 0
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND affirmflag = 1
- AND flag = 0
- USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致反确认单据操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在反确认,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- IF taskworkmx[i].orderid > 0 THEN
- IF uo_ml.uof_add_procode_qty(scid,taskworkmx[i].orderid,&
- taskworkmx[i].procode,billdate,0 - taskworkmx[i].qty,arg_msg,FALSE) = 0 THEN
- arg_msg = '第'+string(i)+'行,'+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- DESTROY uo_ml
- RETURN rslt
- end function
- public function integer p_getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- arG_MSG = "非法的单据唯一码"
- GOTO ext
- END IF
- SELECT billid,
- billdate,
- wagemth,
- rep,
- relcode,
- dscrp,
- scid,
- billcode,
- wrkgrpid,
- flag,
- affirmflag,
- scid,
- billtype,
- wageid,
- relid
- INTO
- :billid,
- :billdate,
- :wagemth,
- :rep,
- :relcode,
- :dscrp,
- :scid,
- :billcode,
- :wrkgrpid,
- :flag,
- :affirmflag,
- :scid,
- :billtype,
- :wageid,
- :relid
- FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "查询操作失败(错误单据唯一码),单据"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- billid = arg_billid
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer auditmx (long arg_billid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- uo_wage u_wage
- u_wage = CREATE uo_wage
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = -1000 THEN
- arg_msg = '选项:[240]计件单没有工价不能审核,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF getinfo(arg_billid ,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = 0 THEN
- IF affirmflag = 0 THEN
- rslt = 0
- arg_msg = '单据未确认,不能审核'
- GOTO ext
- END IF
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,操作取消'
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = 1 THEN
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day INNER JOIN
- u_scwg_taskwork_day_mx ON
- u_scwg_taskwork_day.billid = u_scwg_taskwork_day_mx.billid
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day_mx.price = 0
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '计件单存在没有填工价的问题,不能审核!'
- GOTO ext
- END IF
- END IF
- FOR i = 1 TO it_mxbt_emp
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = empmx[i].wageamt + empmx[i].prwageamt
- IF u_wage.f_setwagemxdata(wagemth,empmx[i].empid,wageid,ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate()
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 0
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate(),
- u_scwg_taskwork_day.affirmdate = getdate(),
- u_scwg_taskwork_day.affirmemp = :publ_operator,
- u_scwg_taskwork_day.affirmflag = 1
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 0
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer cauditmx (long arg_billid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- DateTime ls_null
- SetNull(ls_null)
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- uo_wage u_wage
- u_wage = CREATE uo_wage
- IF getinfo(arg_billid ,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag = 0 THEN
- rslt = 0
- arg_msg = '单据还没有审核,操作取消'
- GOTO ext
- END IF
- IF f_check_wage_audit(wagemth,scid,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- //检查该月份,该工资项目是否已开工资变更单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wageid = :wageid
- AND wagemth = :wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份该工资项目已开工资变更单,不能撤审'
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt_emp
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = empmx[i].wageamt + empmx[i].prwageamt
- IF u_wage.f_setwagemxdata(wagemth,empmx[i].empid,wageid,0 - ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.auditingrep = '',
- u_scwg_taskwork_day.auditingdate = :ls_null
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 0
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.auditingrep = '',
- u_scwg_taskwork_day.auditingdate = :ls_null,
- u_scwg_taskwork_day.affirmdate = :ls_null,
- u_scwg_taskwork_day.affirmemp = '',
- u_scwg_taskwork_day.affirmflag = 0
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 0
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer auditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- uo_wage u_wage
- u_wage = CREATE uo_wage
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = -1000 THEN
- arg_msg = '选项:[240]计件单没有工价不能审核,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF getinfo(arg_billid ,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = 0 THEN
- IF affirmflag = 0 THEN
- rslt = 0
- arg_msg = '单据还没有确认,不能审核'
- GOTO ext
- END IF
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,操作取消'
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = 1 THEN
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day INNER JOIN
- u_scwg_taskwork_day_mx ON
- u_scwg_taskwork_day.billid = u_scwg_taskwork_day_mx.billid
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day_mx.price = 0
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '计件单存在没有填工价的问题,不能审核!'
- GOTO ext
- END IF
- END IF
- FOR i = 1 TO it_mxbt_emp
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = empmx[i].wageamt + empmx[i].prwageamt
- IF u_wage.f_setwagemxdata(wagemth,empmx[i].empid,wageid,ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate()
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate(),
- u_scwg_taskwork_day.affirmdate = getdate(),
- u_scwg_taskwork_day.affirmemp = :publ_operator,
- u_scwg_taskwork_day.affirmflag = 1
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer cauditmx_1 (long arg_billid, ref string arg_msg, boolean arg_ifcommit);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- DateTime ls_null
- SetNull(ls_null)
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- uo_wage u_wage
- u_wage = CREATE uo_wage
- IF getinfo(arg_billid ,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag = 0 THEN
- rslt = 0
- arg_msg = '单据还没有审核,操作取消'
- GOTO ext
- END IF
- IF f_check_wage_audit(wagemth,scid,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- //检查该月份,该工资项目是否已开工资变更单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wageid = :wageid
- AND wagemth = :wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份该工资项目已开工资变更单,不能撤审'
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt_emp
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = empmx[i].wageamt + empmx[i].prwageamt
- IF u_wage.f_setwagemxdata(wagemth,empmx[i].empid,wageid,0 - ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.auditingrep = '',
- u_scwg_taskwork_day.auditingdate = :ls_null
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.auditingrep = '',
- u_scwg_taskwork_day.auditingdate = :ls_null,
- u_scwg_taskwork_day.affirmdate = :ls_null,
- u_scwg_taskwork_day.affirmemp = '',
- u_scwg_taskwork_day.affirmflag = 0
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer getinfo (long arg_billid, ref string arg_msg);
- Int rslt = 1
- Long i = 1,no_mxcheck = 0
- Long j = 1 ,no_mxcheck_emp = 0
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = "非法单据唯一码("+String(arg_billid)+')'
- GOTO ext
- END IF
- rslt = p_getinfo(arg_billid,arg_msg)
- IF rslt = 0 THEN GOTO ext
- //用游标读取明细
- DECLARE cur_mx CURSOR FOR
- SELECT u_scwg_taskwork_day_mx.mtrlid,
- u_scwg_taskwork_day_mx.qty,
- u_scwg_taskwork_day_mx.orderid,
- u_scwg_taskwork_day_mx.ordercode,
- u_scwg_taskwork_day_mx.procode,
- u_scwg_taskwork_day_mx.price,
- u_scwg_taskwork_day_mx.wpcode
- FROM u_scwg_taskwork_day_mx
- WHERE u_scwg_taskwork_day_mx.billid = :arg_billid
- Using commit_transaction;
-
- OPEN cur_mx;
- FETCH cur_mx INTO :taskworkmx[i].mtrlid,:taskworkmx[i].qty,
- :taskworkmx[i].orderid,:taskworkmx[i].ordercode,
- :taskworkmx[i].procode,:taskworkmx[i].price,:taskworkmx[i].wpcode;
- DO WHILE commit_transaction.SQLCode = 0
- i++
- FETCH cur_mx INTO :taskworkmx[i].mtrlid,:taskworkmx[i].qty,
- :taskworkmx[i].orderid,:taskworkmx[i].ordercode,
- :taskworkmx[i].procode,:taskworkmx[i].price,:taskworkmx[i].wpcode;
- LOOP
- CLOSE cur_mx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM u_scwg_taskwork_day_mx
- WHERE u_scwg_taskwork_day_mx.billid = :arg_billid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,单据明细数量"
- GOTO ext
- END IF
- IF i <> (no_mxcheck+1) THEN
- rslt = 0
- arg_msg = "查询操作失败,单据明细"
- GOTO ext
- END IF
- it_mxbt = i - 1
- // //
- DECLARE cur_empmx CURSOR FOR
- SELECT u_scwg_taskwork_day_mx_emp.printid,
- u_scwg_taskwork_day_mx_emp.empid,
- u_scwg_taskwork_day_mx_emp.workhours,
- u_scwg_taskwork_day_mx_emp.workhours2,
- u_scwg_taskwork_day_mx_emp.workhours3,
- u_scwg_taskwork_day_mx_emp.wageamt,
- u_scwg_taskwork_day_mx_emp.prwageamt
- FROM u_scwg_taskwork_day_mx_emp
- WHERE u_scwg_taskwork_day_mx_emp.billid = :arg_billid
- Using commit_transaction;
-
- OPEN cur_empmx;
- FETCH cur_empmx INTO :empmx[j].printid,:empmx[j].empid,
- :empmx[j].workhours,:empmx[j].workhours2,:empmx[j].workhours3,:empmx[j].wageamt,
- :empmx[j].prwageamt;
- DO WHILE commit_transaction.SQLCode = 0
- j++
- FETCH cur_empmx INTO :empmx[j].printid,:empmx[j].empid,
- :empmx[j].workhours,:empmx[j].workhours2,:empmx[j].workhours3,:empmx[j].wageamt,
- :empmx[j].prwageamt;
- LOOP
- CLOSE cur_empmx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck_emp
- FROM u_scwg_taskwork_day_mx_emp
- WHERE u_scwg_taskwork_day_mx_emp.billid = :arg_billid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,单据明细数量"
- GOTO ext
- END IF
- IF j <> (no_mxcheck_emp+1) THEN
- rslt = 0
- arg_msg = "查询操作失败,单据明细"
- GOTO ext
- END IF
- billid = arg_billid
- it_mxbt_emp = j - 1
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = "没有删除对象,操作取消"
- GOTO ext
- END IF
- rslt = p_getinfo(arg_billid,arg_msg)
- IF rslt = 0 THEN GOTO ext
- IF affirmflag = 1 THEN
- rslt = 0
- arg_msg = '单据已经确认,不可以修改'
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = "单据已经审核,不可以删除"
- GOTO ext
- END IF
- DELETE FROM u_scwg_taskwork_day_mx
- WHERE u_scwg_taskwork_day_mx.billid = :arg_billid
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_scwg_taskwork_day_mx_emp
- WHERE u_scwg_taskwork_day_mx_emp.billid = :arg_billid
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据人员明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.billid = :arg_billid
- USING commit_transaction;
- IF commit_transaction.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 acceptmx_emp (integer arg_ifhelp, long arg_empid, string arg_empname, decimal arg_workhours, decimal arg_workhours2, decimal arg_workhours3, decimal arg_prwageamt, decimal arg_wageamt, string arg_mxdscrp, ref string arg_msg, long arg_printid);
- Int rslt = 1
- Long cnt = 0,ls_i
- String ls_ordercode
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- GOTO ext
- END IF
- if isnull(arg_ifhelp) then arg_ifhelp = 0
- IF IsNull(arg_empid) THEN arg_empid = 0
- IF IsNull(arg_empname) THEN arg_empname = ''
- IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
- IF IsNull(arg_workhours) THEN arg_workhours = 0
- IF IsNull(arg_prwageamt) THEN arg_prwageamt = 0
- IF IsNull(arg_wageamt) THEN arg_wageamt = 0
- IF IsNull(arg_printid) THEN arg_printid = 0
- IF arg_empid = 0 THEN
- rslt = 0
- arg_msg = '员工明细行:'+String(arg_printid)+',错误的员工ID'
- GOTO ext
- END IF
- IF arg_workhours < 0 THEN
- rslt = 0
- arg_msg = '员工:'+arg_empname+'请输入正确工时!'
- GOTO ext
- END IF
- //if arg_prwageamt < 0 then
- // rslt = 0
- // arg_msg = '员工:'+arg_empname+'请错误的预提工资!'
- // GOTO ext
- //END IF
- //
- //IF arg_wageamt < 0 THEN
- // rslt = 0
- // arg_msg = '员工:'+arg_empname+'错误的分配工资!'
- // GOTO ext
- //END IF
- relempstr = relempstr + arg_empname +','
- //写入内容
- it_mxbt_emp++
- empmx[it_mxbt_emp].empid = arg_empid
- empmx[it_mxbt_emp].workhours = arg_workhours
- empmx[it_mxbt_emp].workhours2 = arg_workhours2
- empmx[it_mxbt_emp].workhours3 = arg_workhours3
- empmx[it_mxbt_emp].wageamt = arg_wageamt
- empmx[it_mxbt_emp].printid = arg_printid
- empmx[it_mxbt_emp].mxdscrp = arg_mxdscrp
- empmx[it_mxbt_emp].ifhelp = arg_ifhelp
- empmx[it_mxbt_emp].prwageamt = arg_prwageamt
- ext:
- IF rslt = 0 THEN p_clearmx()
- Return(rslt)
- end function
- public function integer acceptmx (long arg_mtrlid, string arg_procode, string arg_proname, decimal arg_qty, decimal arg_price, string arg_mxdscrp, ref string arg_msg, long arg_printid, string arg_status, string arg_woodcode, string arg_pcode, long arg_orderid, string arg_reason, string arg_unit, string arg_wpcode);
- Int rslt = 1
- Long cnt = 0,ls_i,ll_i
- String ls_ordercode
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_day_noorder = -1000 THEN
- arg_msg = '选项:[105]日分配计件单可以不选计划,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_price_if_mod = -1000 THEN
- arg_msg = '选项:[081]计件单限制工价,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_if_taskwork_acmpqty = -1000 THEN
- arg_msg = '选项:[202]计件单选生产计划时按已进仓数限制,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_procode_order = -1000 THEN
- arg_msg = '选项:[064]计件单按生产计划工序,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- IF IsNull(arg_procode) THEN arg_procode = ''
- IF IsNull(arg_proname) THEN arg_proname = ''
- IF IsNull(arg_qty) THEN arg_qty = 0
- IF IsNull(arg_price) THEN arg_price = 0
- IF IsNull(arg_printid) THEN arg_printid = 0
- IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
- IF IsNull(arg_status) THEN arg_status = ''
- IF IsNull(arg_woodcode) THEN arg_woodcode = ''
- IF IsNull(arg_pcode) THEN arg_pcode = ''
- IF IsNull(arg_orderid) THEN arg_orderid = 0
- IF IsNull(arg_reason) THEN arg_reason = ''
- IF IsNull(arg_unit) THEN arg_unit = ''
- IF IsNull(arg_wpcode) THEN arg_wpcode = ''
- IF billtype = 0 THEN
- IF Trim(arg_procode) = '' THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序编号不能为空!'
- GOTO ext
- END IF
-
- IF Trim(arg_proname) = '' THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序名称不能为空'
- GOTO ext
- END IF
- END IF
- IF arg_qty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF billtype = 0 AND uo_option_taskwork_day_noorder = 0 AND arg_orderid = 0 THEN
- rslt = 0
- arg_msg = '请选择生产计划,第'+String(arg_printid)+'行'
- GOTO ext
- END IF
- IF arg_orderid > 0 THEN
-
- Decimal ld_orderqty,ld_acmpqty,ld_trueqty
-
- SELECT ordercode,orderqty,acmpqty
- INTO :ls_ordercode,:ld_orderqty,:ld_acmpqty
- FROM u_order_ml
- WHERE scid = :scid
- AND orderid = :arg_orderid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询生产计划号失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_option_if_taskwork_acmpqty = 1 THEN
- ld_trueqty = ld_acmpqty
- ELSE
- ld_trueqty = ld_orderqty
- END IF
-
- Decimal ld_othertask_qty
- Decimal ld_Otherbill_qty,ld_Otherbill_qty_2
- Decimal ld_workqty
- Decimal ld_mx_qty
- Decimal ld_finish_qty,ld_collect_qty
- Long l
-
- IF uo_option_taskwork_procode_order = 1 THEN
- SELECT (proqty / :ld_orderqty) * :ld_trueqty INTO :ld_workqty
- FROM U_OrderRqwp
- WHERE scid = :scid
- AND orderid = :arg_orderid
- AND procode = :arg_procode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询计划:'+ls_ordercode+',工序:'+arg_procode+',计划数量失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- //查询产品是否组合配置
- Long ll_statusflag
- Decimal ld_pzqty
- Boolean lb_iffind = FALSE
- String ls_pz_status
- s_mtrlcfg_expr s_pz[]
-
- SELECT statusflag INTO :ll_statusflag
- FROM u_mtrldef
- Where mtrlid = :arg_mtrlid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询产品是否使用组合配置失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- SELECT status INTO :ls_pz_status
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- AND procode = :arg_procode
- and wpcode = :arg_wpcode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询产品工序配置失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF ll_statusflag = 2 AND ls_pz_status <> '' THEN
- f_checkpz(arg_status,s_pz[])
- lb_iffind = FALSE
- FOR ll_i = 1 TO UpperBound(s_pz)
- IF s_pz[ll_i].cfgname = ls_pz_status THEN
- ld_pzqty = Dec(s_pz[ll_i].qty)
- lb_iffind = TRUE
- EXIT
- END IF
- NEXT
-
- IF lb_iffind = FALSE THEN
- ld_pzqty = 1
- END IF
- ELSE
- ld_pzqty = 1
- END IF
-
- SELECT workqty * :ld_trueqty * :ld_pzqty INTO :ld_workqty
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- AND procode = :arg_procode
- and wpcode = :arg_wpcode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询单件产品工序数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- SELECT isnull(sum(finishqty),0) INTO :ld_finish_qty
- FROM U_OrderRqwp
- WHERE orderid = :arg_orderid
- AND scid = :scid
- AND procode = :arg_procode;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'已确认数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- SELECT isnull(sum(qty),0) INTO :ld_othertask_qty
- FROM u_scwg_taskwork_day,u_scwg_taskwork_day_mx
- WHERE u_scwg_taskwork_day_mx.billid = u_scwg_taskwork_day.billid
- AND u_scwg_taskwork_day_mx.mtrlid = :arg_mtrlid
- AND u_scwg_taskwork_day_mx.orderid = :arg_orderid
- AND u_scwg_taskwork_day_mx.procode = :arg_procode
- AND u_scwg_taskwork_day_mx.billid <> :billid
- And (u_scwg_taskwork_day.affirmflag = 0 OR :uo_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'其它开单数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- SELECT isnull(sum(qty),0) INTO :ld_Otherbill_qty
- FROM u_scwg_taskwork_2,u_scwg_taskwork_2_mx
- WHERE u_scwg_taskwork_2_mx.billid = u_scwg_taskwork_2.billid
- AND u_scwg_taskwork_2_mx.mtrlid = :arg_mtrlid
- AND u_scwg_taskwork_2_mx.orderid = :arg_orderid
- AND u_scwg_taskwork_2_mx.procode = :arg_procode
- AND u_scwg_taskwork_2.scid = :scid
- And (u_scwg_taskwork_2.affirmflag = 0 OR :uo_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'工作组产品日分配计件单开单数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
-
- SELECT isnull(sum(Amount),0) INTO :ld_Otherbill_qty_2
- FROM u_sc_taskwork,u_sc_taskworkmx
- WHERE u_sc_taskworkmx.scid = u_sc_taskwork.scid
- AND u_sc_taskworkmx.billid = u_sc_taskwork.billid
- AND u_sc_taskwork.mtrlid = :arg_mtrlid
- AND u_sc_taskwork.orderid = :arg_orderid
- AND u_sc_taskworkmx.procode = :arg_procode
- AND u_sc_taskwork.scid = :scid
- And ( u_sc_taskwork.affirmflag = 0 OR :uo_option_taskwork_not_affirm = 1 );
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询指令单号:'+ls_ordercode+',工序:'+arg_procode+'产品个人计件单开单数失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- SELECT isnull(sum(u_data_wage.zx_qty),0)
- INTO :ld_collect_qty
- FROM u_data_collect INNER JOIN
- u_data_wage ON u_data_collect.collectid = u_data_wage.collectid
- WHERE u_data_collect.scid = :scid
- and u_data_collect.orderid = :arg_orderid
- and u_data_wage.procode = :arg_procode;
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '行:'+String(arg_printid)+',查询工序:'+arg_procode+'注塑质检单杂项数量失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- FOR l = 1 TO it_mxbt
- IF taskworkmx[l].procode = arg_procode AND &
- taskworkmx[l].orderid = arg_orderid THEN
- ld_mx_qty = ld_mx_qty + taskworkmx[l].qty
- END IF
- NEXT
-
- IF uo_option_taskwork_not_affirm = 1 THEN
- ld_finish_qty = 0
- END IF
-
- IF arg_qty + ld_finish_qty + ld_othertask_qty + ld_Otherbill_qty + ld_Otherbill_qty_2 + ld_mx_qty + ld_collect_qty > ld_workqty THEN
- rslt = 0
- IF uo_option_if_taskwork_acmpqty = 0 THEN
- arg_msg = '第 '+String(arg_printid)+' 行,指令单号:'+ls_ordercode+',工序:'+arg_procode+',计件数量不能大于计划生产数,计划工序数:'+String(ld_workqty,'####0.####')+',已完成数:'+String(ld_finish_qty,'####0.####')+',本单已开单:'+String(ld_mx_qty,'####0.####')+',其它单已开单数:'+String(ld_othertask_qty + ld_Otherbill_qty + ld_Otherbill_qty_2 + ld_collect_qty,'####0.####')+',不能开单:'+String(arg_qty,'####0.####')
- ELSE
- arg_msg = '第 '+String(arg_printid)+' 行,指令单号:'+ls_ordercode+',工序:'+arg_procode+',计件数量不能大于生产计划已进仓数,已进仓工序数:'+String(ld_workqty,'####0.####')+',已完成数:'+String(ld_finish_qty,'####0.####')+',本单已开单:'+String(ld_mx_qty,'####0.####')+',其它单已开单数:'+String(ld_othertask_qty + ld_Otherbill_qty + ld_Otherbill_qty_2 + ld_collect_qty,'####0.####')+',不能开单:'+String(arg_qty,'####0.####')
-
- END IF
-
- GOTO ext
- END IF
- END IF
- IF billtype = 0 THEN
- Decimal ld_workprice
- //检查限价
- IF uo_option_taskwork_price_if_mod = 1 THEN //启用检查限价选项
- IF uo_option_taskwork_procode_order = 0 OR arg_orderid = 0 THEN //按工价表限价
- SELECT workPrice INTO :ld_workprice
- FROM u_sc_workprice
- WHERE mtrlid = :arg_mtrlid
- AND procode = :arg_procode
- and wpcode = :arg_wpcode;
- IF sqlca.SQLCode = 0 THEN
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序:'+arg_procode+' 工价表工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- ELSE
- SELECT workprice INTO :ld_workprice
- FROM u_sc_workprocedure
- WHERE code = :arg_procode
- AND ifpubl = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',查询公共工序:'+arg_procode+' 工价失败'+'~n'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',公共工序:'+arg_procode+' 工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- END IF
- ELSE //按生产计划工序明细限价
- SELECT workPrice INTO :ld_workprice
- FROM U_OrderRqwp
- WHERE scid = :scid
- AND orderid = :arg_orderid
- AND procode = :arg_procode;
- IF sqlca.SQLCode = 0 THEN
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',工序:'+arg_procode+' 生产计划工序明细工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- ELSE
- SELECT workprice INTO :ld_workprice
- FROM u_sc_workprocedure
- WHERE code = :arg_procode
- AND ifpubl = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',查询公共工序:'+arg_procode+' 工价失败'+'~n'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF ld_workprice <> arg_price THEN
- rslt = 0
- arg_msg = '行:'+String(arg_printid)+',公共工序:'+arg_procode+' 工价为:'+String(ld_workprice,'#,##0.00########')+',不能输入工价:'+String(arg_price,'#,##0.00########')
- GOTO ext
- END IF
- END IF
- END IF
- END IF
- END IF
- //写入内容
- it_mxbt++
- taskworkmx[it_mxbt].mtrlid = arg_mtrlid
- taskworkmx[it_mxbt].procode = arg_procode
- taskworkmx[it_mxbt].proname = arg_proname
- taskworkmx[it_mxbt].qty = arg_qty
- taskworkmx[it_mxbt].price = arg_price
- taskworkmx[it_mxbt].mxdscrp = arg_mxdscrp
- taskworkmx[it_mxbt].printid = arg_printid
- taskworkmx[it_mxbt].status = arg_status
- taskworkmx[it_mxbt].woodcode = arg_woodcode
- taskworkmx[it_mxbt].pcode = arg_pcode
- taskworkmx[it_mxbt].orderid = arg_orderid
- taskworkmx[it_mxbt].ordercode = ls_ordercode
- taskworkmx[it_mxbt].reason = arg_reason
- taskworkmx[it_mxbt].unit = arg_unit
- taskworkmx[it_mxbt].wpcode = arg_wpcode
- ext:
- IF rslt = 0 THEN p_clearmx()
- Return(rslt)
- end function
- public function integer auditing (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- datastore ds_emp_sumwage
- uo_wage u_wage
- u_wage = Create uo_wage
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = -1000 THEN
- arg_msg = '选项:[240]计件单没有工价不能审核,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = 0 THEN
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_day.affirmflag = 0
- AND u_scwg_taskwork_day.billtype = 0
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单未确认操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份存在未确认的单据('+String(cnt)+'),请先全部确认'
- GOTO ext
- END IF
- END IF
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 0
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '该月份不存在要审核的单据,请检查'
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = 1 THEN
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day INNER JOIN
- u_scwg_taskwork_day_mx ON
- u_scwg_taskwork_day.billid = u_scwg_taskwork_day_mx.billid
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 0
- AND u_scwg_taskwork_day_mx.price = 0
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '当月存在没有填工价的计件单,不能审核!'
- GOTO ext
- END IF
- END IF
- //SELECT count(*)
- // INTO :cnt
- // FROM u_scwg_taskwork_day
- // WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- // AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- // AND u_scwg_taskwork_day.flag = 1
- // AND u_scwg_taskwork_day.billtype = 0
- // USING commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询是否有单已经审核操作失败,'+commit_transaction.SQLErrText
- // GOTO ext
- //END IF
- //
- //IF cnt > 0 THEN
- // rslt = 0
- // arg_msg = '该月份的工资项目存在部分已审核的记录,请先撤审'
- // GOTO ext
- //END IF
- ds_emp_sumwage = Create datastore
- ds_emp_sumwage.DataObject = 'dw_emp_sumwage_17'
- ds_emp_sumwage.SetTransObject(sqlca)
- IF ds_emp_sumwage.Retrieve(arg_scid,arg_wagemth,arg_wageid,0) <= 0 THEN
- rslt = 0
- arg_msg = '本月没有工作组产品日分配计件单可审核或查询单据失败'
- GOTO ext
- END IF
- FOR i = 1 To ds_emp_sumwage.RowCount()
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = ds_emp_sumwage.Object.sumwage[i]
-
- IF u_wage.f_setwagemxdata(arg_wagemth,ds_emp_sumwage.Object.u_scwg_taskwork_day_mx_emp_empid[i],arg_wageid,ls_emp_sumwage,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate()
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 0
- Using commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate(),
- u_scwg_taskwork_day.affirmdate = getdate(),
- u_scwg_taskwork_day.affirmemp = :publ_operator,
- u_scwg_taskwork_day.affirmflag = 1
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1)
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 0
- Using commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSE
- COMMIT Using commit_transaction;
- END IF
- Destroy u_wage
- RETURN rslt
- end function
- public function integer c_auditing (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg);Int rslt = 1
- Long ll_flagnum,i
- decimal ls_emp_sumwage
- DateTime ls_null
- SetNull(ls_null)
- long cnt
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF f_check_wage_audit(arg_wagemth,arg_scid,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- //检查该月份,该工资项目是否已开工资变更单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wageid = :arg_wageid
- AND wagemth = :arg_wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份该工资项目已开工资变更单,不能撤审'
- GOTO ext
- END IF
- uo_wage u_wage
- u_wage = CREATE uo_wage
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and ( u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1 )
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 0
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否已有单据已审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_flagnum <= 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目不存在审核的记录'
- GOTO ext
- END IF
- //IF u_wage.f_wage_clear(arg_wageid,arg_wagemth,arg_msg,FALSE) = 0 THEN
- // rslt = 0
- // GOTO ext
- //END IF
- datastore ds_emp_sumwage
- ds_emp_sumwage = Create datastore
- ds_emp_sumwage.DataObject = 'dw_emp_sumwage_17'
- ds_emp_sumwage.SetTransObject(sqlca)
- IF ds_emp_sumwage.Retrieve(arg_scid,arg_wagemth,arg_wageid,1) <= 0 THEN
- rslt = 0
- arg_msg = '本月没有工作组产品日分配计件单已审核或查询单据失败'
- GOTO ext
- END IF
- FOR i = 1 To ds_emp_sumwage.RowCount()
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = 0 - ds_emp_sumwage.Object.sumwage[i]
-
- IF u_wage.f_setwagemxdata(arg_wagemth,ds_emp_sumwage.Object.u_scwg_taskwork_day_mx_emp_empid[i],arg_wageid,ls_emp_sumwage,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- //更新审核标志
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.Auditingrep = '',
- u_scwg_taskwork_day.Auditingdate = :ls_null
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and ( u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1 )
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 0
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.Auditingrep = '',
- u_scwg_taskwork_day.Auditingdate = :ls_null,
- u_scwg_taskwork_day.affirmdate = :ls_null,
- u_scwg_taskwork_day.affirmemp = '',
- u_scwg_taskwork_day.affirmflag = 0
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and ( u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1 )
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 0
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在撤审,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg);//arg_wrkgrpid : -1 全部工作组
- Long cnt,i
- Int rslt = 1
- Decimal ls_emp_sumwage
- datastore ds_emp_sumwage
- uo_wage u_wage
- u_wage = CREATE uo_wage
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = -1000 THEN
- arg_msg = '选项:[240]计件单没有工价不能审核,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_taskwork_not_affirm = 0 THEN
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and ( u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1 )
- AND u_scwg_taskwork_day.affirmflag = 0
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单未确认操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份存在未确认的单据('+String(cnt)+'),请先全部确认'
- GOTO ext
- END IF
- END IF
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and ( u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1 )
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '该月份不存在要审核的单据,请检查'
- GOTO ext
- END IF
- IF uo_option_check_noworkprice = 1 THEN
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_scwg_taskwork_day INNER JOIN
- u_scwg_taskwork_day_mx ON
- u_scwg_taskwork_day.billid = u_scwg_taskwork_day_mx.billid
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 1
- AND u_scwg_taskwork_day_mx.price = 0
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否有单要审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '当月存在没有填工价的计件单,不能审核!'
- GOTO ext
- END IF
- END IF
- //SELECT count(*)
- // INTO :cnt
- // FROM u_scwg_taskwork_day
- // WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- // AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- // AND u_scwg_taskwork_day.flag = 1
- // AND u_scwg_taskwork_day.billtype = 1
- // USING commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询是否有单已经审核操作失败,'+commit_transaction.SQLErrText
- // GOTO ext
- //END IF
- //
- //IF cnt > 0 THEN
- // rslt = 0
- // arg_msg = '该月份的工资项目存在部分已审核的记录,请先撤审'
- // GOTO ext
- //END IF
- ds_emp_sumwage = CREATE datastore
- ds_emp_sumwage.DataObject = 'dw_emp_sumwage_19'
- ds_emp_sumwage.SetTransObject(sqlca)
- IF ds_emp_sumwage.Retrieve(arg_scid,arg_wagemth,arg_wageid,0) <= 0 THEN
- rslt = 0
- arg_msg = '本月没有工作组产品日分配计件单可审核或查询单据失败'
- GOTO ext
- END IF
- FOR i = 1 TO ds_emp_sumwage.RowCount()
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = ds_emp_sumwage.Object.sumwage[i]
- IF u_wage.f_setwagemxdata(arg_wagemth,ds_emp_sumwage.Object.u_scwg_taskwork_day_mx_emp_empid[i],arg_wageid,ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate()
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and ( u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1 )
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 1,
- u_scwg_taskwork_day.auditingrep = :publ_operator,
- u_scwg_taskwork_day.auditingdate = getdate(),
- u_scwg_taskwork_day.affirmdate = getdate(),
- u_scwg_taskwork_day.affirmemp = :publ_operator,
- u_scwg_taskwork_day.affirmflag = 1
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- and ( u_scwg_taskwork_day.scid = :arg_scid or :arg_scid = -1 )
- AND u_scwg_taskwork_day.flag = 0
- AND u_scwg_taskwork_day.billtype = 1
- USING commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSE
- COMMIT USING commit_transaction;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- public function integer c_auditing_1 (long arg_scid, long arg_wageid, long arg_wagemth, ref string arg_msg);Int rslt = 1
- Long ll_flagnum,i
- decimal ls_emp_sumwage
- DateTime ls_null
- SetNull(ls_null)
- Long cnt
- IF uo_option_taskwork_not_affirm = -1000 THEN
- arg_msg = '选项:[080]计件单不使用确认功能,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF f_check_wage_audit(arg_wagemth,arg_scid,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- //检查该月份,该工资项目是否已开工资变更单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wageid = :arg_wageid
- And wagemth = :arg_wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份该工资项目已开工资变更单,不能撤审'
- GOTO ext
- END IF
- uo_wage u_wage
- u_wage = Create uo_wage
- SELECT count(*)
- INTO :ll_flagnum
- FROM u_scwg_taskwork_day
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- AND (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid)
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 1
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询是否已有单据已审核操作失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_flagnum <= 0 THEN
- rslt = 0
- arg_msg = '该月份的工资项目不存在审核的记录'
- GOTO ext
- END IF
- //IF u_wage.f_wage_clear(arg_wageid,arg_wagemth,arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- //END IF
- datastore ds_emp_sumwage
- ds_emp_sumwage = CREATE datastore
- ds_emp_sumwage.DataObject = 'dw_emp_sumwage_19'
- ds_emp_sumwage.SetTransObject(sqlca)
- IF ds_emp_sumwage.Retrieve(arg_scid,arg_wagemth,arg_wageid,1) <= 0 THEN
- rslt = 0
- arg_msg = '本月没有工作组产品日分配计件单已审核或查询单据失败'
- GOTO ext
- END IF
- FOR i = 1 TO ds_emp_sumwage.RowCount()
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = 0 - ds_emp_sumwage.Object.sumwage[i]
- IF u_wage.f_setwagemxdata(arg_wagemth,ds_emp_sumwage.Object.u_scwg_taskwork_day_mx_emp_empid[i],arg_wageid,ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- //更新审核标志
- IF uo_option_taskwork_not_affirm = 0 THEN
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.Auditingrep = '',
- u_scwg_taskwork_day.Auditingdate = :ls_null
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- AND (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid)
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 1
- Using commit_transaction;
- ELSE
- UPDATE u_scwg_taskwork_day
- SET u_scwg_taskwork_day.flag = 0,
- u_scwg_taskwork_day.Auditingrep = '',
- u_scwg_taskwork_day.Auditingdate = :ls_null,
- u_scwg_taskwork_day.affirmdate = :ls_null,
- u_scwg_taskwork_day.affirmemp = '',
- u_scwg_taskwork_day.affirmflag = 0
- WHERE u_scwg_taskwork_day.wageid = :arg_wageid
- AND u_scwg_taskwork_day.wagemth = :arg_wagemth
- AND (u_scwg_taskwork_day.scid = :arg_scid or :arg_scid)
- AND u_scwg_taskwork_day.flag = 1
- AND u_scwg_taskwork_day.billtype = 1
- Using commit_transaction;
- END IF
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新审核标志失败,原因:'+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在撤审,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSE
- COMMIT Using commit_transaction;
- END IF
- Destroy u_wage
- RETURN rslt
- end function
- public function integer uf_update_emp (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1
- Long cnt = 0,i,j
- DateTime server_dt
- Long ls_newid
- int li_flag
- IF IsNull(wageid) THEN wageid = 0
- IF IsNull(relempstr) THEN relempstr = ''
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误的ID'
- GOTO ext
- END IF
- IF it_mxbt_emp = 0 THEN //
- rslt = 0
- arg_msg = "没有计件员工明细"
- GOTO ext
- END IF
- //检查审核
- SELECT u_scwg_taskwork_day.flag
- INTO :li_flag
- FROM u_scwg_taskwork_day
- Where u_scwg_taskwork_day.billid = :arg_billid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询单据信息失败,'+commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF li_flag = 1 THEN
- arg_msg = '已经工资审'
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_scwg_taskwork_day
- SET modemp = :publ_operator,
- moddate = GETDATE(),
- relempstr = :relempstr
- WHERE billid = :arg_billid
- And flag = 0 Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 Or commit_transaction.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- // 删除原有明细
- DELETE FROM u_scwg_taskwork_day_mx_emp
- Where billid = :arg_billid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有员工明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- FOR j = 1 To it_mxbt_emp
- INSERT INTO u_scwg_taskwork_day_mx_emp (
- billid,
- printid,
- empid,
- workhours,
- workhours2,
- workhours3,
- wageamt,
- mxdscrp,
- ifhelp,
- prwageamt)
- VALUES (
- :arg_billid,
- :empmx[j].printid,
- :empmx[j].empid,
- :empmx[j].workhours,
- :empmx[j].workhours2,
- :empmx[j].workhours3,
- :empmx[j].wageamt,
- :empmx[j].mxdscrp,
- :empmx[j].ifhelp,
- :empmx[j].prwageamt) Using commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入员工明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- p_clearmx()
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Return(rslt)
- end function
- public function integer updateempbegin (long arg_billid, ref string arg_msg);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //IF affirmflag = 1 THEN
- // rslt = 0
- // arg_msg = '单据已经确认,不可以修改'
- // GOTO ext
- //END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,不可以修改'
- GOTO ext
- END IF
- billid = arg_billid
- p_clearmx()
- it_newbegin = FALSE
- it_updatebegin = TRUE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- on uo_scwg_taskwork_day.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_scwg_taskwork_day.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- event constructor;String arg_msg
- String str_optionvalue
- str_optionvalue = ''
- f_get_sys_option_value('080',str_optionvalue,arg_msg)
- uo_option_taskwork_not_affirm = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('105',str_optionvalue,arg_msg)
- uo_option_taskwork_day_noorder = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('064',str_optionvalue,arg_msg)
- uo_option_taskwork_procode_order = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('081',str_optionvalue,arg_msg)
- uo_option_taskwork_price_if_mod = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('202',str_optionvalue,arg_msg)
- uo_option_if_taskwork_acmpqty = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('240',str_optionvalue,arg_msg)
- uo_option_check_noworkprice = Long(str_optionvalue)
- end event
|