123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054 |
- $PBExportHeader$uo_empinfo.sru
- forward
- global type uo_empinfo from nonvisualobject
- end type
- end forward
- global type uo_empinfo from nonvisualobject
- end type
- global uo_empinfo uo_empinfo
- type variables
- long uo_empid
- int uo_option_emp_audit
- end variables
- forward prototypes
- public function integer uof_add_empinfo (s_empinfo arg_s_empinfo, string arg_opemp, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_del_leftemp (long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_empinfo (long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_train (s_train arg_s_train, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_record (s_record arg_s_record, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_train (long arg_trainid, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_record (long arg_mxid, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_move (integer arg_moveflag, s_moverecord arg_s_moverecord, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_contract (s_contract arg_s_contract, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_contract (long arg_contractid, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_audit_emp (long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_caudit_emp (long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_empmtrl_ly (long arg_empid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, decimal arg_addqty, decimal arg_price, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_add_empmtrl_gh (long arg_empid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, decimal arg_addqty, decimal arg_price, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_add_emptake (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, datetime arg_takedate, decimal arg_amt, string arg_dscrp, integer arg_taketype, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_del_emptake (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, integer arg_taketype, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_add_insure (s_insure arg_s_insure, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_idcard (s_idcard arg_s_idcard, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_insure (long arg_insureid, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_del_idcard (long arg_mxid, long arg_empid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_audit_contract (long arg_empid, long arg_contractid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_caudit_contract (long arg_empid, long arg_contractid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_add_emppay (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, datetime arg_paydate, decimal arg_amt, string arg_dscrp, integer arg_paytype, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_del_emppay (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, integer arg_paytype, boolean arg_ifcommit, ref string arg_msg)
- end prototypes
- public function integer uof_add_empinfo (s_empinfo arg_s_empinfo, string arg_opemp, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- Long ll_new_empid
- DateTime server_dt
- String ls_deptype,ls_handtype
- Long cnt = 0
- IF IsNull(arg_s_empinfo.scid) THEN arg_s_empinfo.scid = 0
- IF IsNull(arg_s_empinfo.empid) THEN arg_s_empinfo.empid = 0
- IF IsNull(arg_s_empinfo.empcode) THEN arg_s_empinfo.empcode = ''
- IF IsNull(arg_s_empinfo.empname) THEN arg_s_empinfo.empname = ''
- IF IsNull(arg_s_empinfo.sex) THEN arg_s_empinfo.sex = ''
- IF IsNull(arg_s_empinfo.idcard) THEN arg_s_empinfo.idcard = ''
- IF IsNull(arg_s_empinfo.Homeplace) THEN arg_s_empinfo.Homeplace = ''
- IF IsNull(arg_s_empinfo.stature) THEN arg_s_empinfo.stature = 0
- IF IsNull(arg_s_empinfo.diploma) THEN arg_s_empinfo.diploma = ''
- IF IsNull(arg_s_empinfo.hometel) THEN arg_s_empinfo.hometel = ''
- IF IsNull(arg_s_empinfo.handtel) THEN arg_s_empinfo.handtel = ''
- IF IsNull(arg_s_empinfo.Address) THEN arg_s_empinfo.Address = ''
- IF IsNull(arg_s_empinfo.Postcode) THEN arg_s_empinfo.Postcode = ''
- IF IsNull(arg_s_empinfo.Duty) THEN arg_s_empinfo.Duty = ''
- IF IsNull(arg_s_empinfo.wrktpye) THEN arg_s_empinfo.wrktpye = ''
- IF IsNull(arg_s_empinfo.deptid) THEN arg_s_empinfo.deptid = 0
- IF IsNull(arg_s_empinfo.officetel) THEN arg_s_empinfo.officetel = ''
- IF IsNull(arg_s_empinfo.Cardcode) THEN arg_s_empinfo.Cardcode = ''
- IF IsNull(arg_s_empinfo.Bedcode) THEN arg_s_empinfo.Bedcode = ''
- IF IsNull(arg_s_empinfo.wage) THEN arg_s_empinfo.wage = 0
- IF IsNull(arg_s_empinfo.Bankcode) THEN arg_s_empinfo.Bankcode = ''
- IF IsNull(arg_s_empinfo.Language) THEN arg_s_empinfo.Language = ''
- IF IsNull(arg_s_empinfo.introducer) THEN arg_s_empinfo.introducer = ''
- IF IsNull(arg_s_empinfo.dscrp) THEN arg_s_empinfo.dscrp = ''
- IF IsNull(arg_s_empinfo.jobtype) THEN arg_s_empinfo.jobtype = 0
- IF IsNull(arg_s_empinfo.jobid) THEN arg_s_empinfo.jobid = 0
- IF IsNull(arg_s_empinfo.hourwage) THEN arg_s_empinfo.hourwage = 0
- IF IsNull(arg_s_empinfo.status) THEN arg_s_empinfo.status = 1
- IF IsNull(arg_s_empinfo.bankamt) THEN arg_s_empinfo.bankamt = 0
- IF IsNull(arg_s_empinfo.pempid) THEN arg_s_empinfo.pempid = 0
- IF IsNull(arg_s_empinfo.nation) THEN arg_s_empinfo.nation = ''
- IF IsNull(arg_s_empinfo.likestr) THEN arg_s_empinfo.likestr = ''
- IF IsNull(arg_s_empinfo.specialty) THEN arg_s_empinfo.specialty = ''
- IF IsNull(arg_s_empinfo.computergrade) THEN arg_s_empinfo.computergrade = ''
- IF IsNull(arg_s_empinfo.health) THEN arg_s_empinfo.health = ''
- IF IsNull(arg_s_empinfo.ifmarry) THEN arg_s_empinfo.ifmarry = 0
- IF IsNull(arg_s_empinfo.gztype) THEN arg_s_empinfo.gztype = 0
- IF IsNull(arg_s_empinfo.insurecode) THEN arg_s_empinfo.insurecode = ''
- IF IsNull(arg_s_empinfo.contractcode) THEN arg_s_empinfo.contractcode = ''
- IF IsNull(arg_s_empinfo.DayMaxExpend) THEN arg_s_empinfo.DayMaxExpend = 0
- IF IsNull(arg_s_empinfo.MonthMaxExpend) THEN arg_s_empinfo.MonthMaxExpend = 0
- IF arg_s_empinfo.empname = '' THEN
- rslt = 0
- arg_msg = "姓名不能为空"
- GOTO ext
- END IF
- IF arg_s_empinfo.empcode = '' THEN
- rslt = 0
- arg_msg = "工号不能为空"
- GOTO ext
- END IF
- SELECT count(*) INTO :cnt
- FROM u_rs_empinfo
- WHERE Empcode = :arg_s_empinfo.Empcode
- And empid <> :arg_s_empinfo.empid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询工号失败'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '员工编号重复,请重新输入另一个编号'
- GOTO ext
- END IF
- IF arg_s_empinfo.sex = '' THEN
- rslt = 0
- arg_msg = '性别不能为空,请选择'
- GOTO ext
- END IF
- IF arg_s_empinfo.wrktpye = '' THEN
- rslt = 0
- arg_msg = '工种不能为空,请选择'
- GOTO ext
- END IF
- s_idcard_change s_idcard
- CHOOSE CASE Len(arg_s_empinfo.idcard)
- CASE 0
- //通过
- CASE 15,18
- f_idcard(arg_s_empinfo.idcard,s_idcard)
-
- IF arg_s_empinfo.birthday <> s_idcard.birthday THEN
- arg_msg = '身份证号的出生日期与出生日期不对应,请核对。'
- rslt = 0
- GOTO ext
- END IF
- CASE ELSE
- arg_msg = '身份证长度不合法'
- rslt = 0
- GOTO ext
- END CHOOSE
- IF arg_s_empinfo.Joindate <= arg_s_empinfo.birthday THEN
- rslt = 0
- arg_msg = '出生日期不能大于入职日期'
- GOTO ext
- END IF
- IF arg_s_empinfo.deptid = 0 THEN
- arg_msg = '请选择部门'
- rslt = 0
- GOTO ext
- END IF
- //IF arg_s_empinfo.duty = '' THEN
- // arg_msg = '请选择职务'
- // rslt = 0
- // GOTO ext
- //END IF
- SELECT departmentname,handtype
- INTO :ls_deptype,:ls_handtype
- FROM cw_department
- Where departmentid = :arg_s_empinfo.deptid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询部门资料失败,可能部门资料不存在,请检查'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_empinfo.jobtype <> 1 THEN
- arg_s_empinfo.jobid = 0
- END IF
- IF arg_s_empinfo.pempid > 0 THEN
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_rs_empinfo
- Where empid = :arg_s_empinfo.pempid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询上司资料失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "上司资料不存在"
- GOTO ext
- END IF
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_user
- Where username = :arg_opemp ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,操作员"
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "操作员姓名未登记或已取消"
- GOTO ext
- END IF
- SELECT Top 1 getdate() Into :server_dt From u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- IF arg_s_empinfo.empid = 0 THEN //新建
- ll_new_empid = f_sys_scidentity(0,"u_rs_empinfo","empid",arg_msg,True,id_sqlca)
- IF ll_new_empid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_rs_empinfo (
- scid,
- empid,
- Deptid,
- wrktpye,
- Empname,
- Empcode,
- Sex,
- Birthday,
- Homeplace,
- Stature,
- introducer,
- Language,
- Idcard,
- Joindate,
- diploma,
- hometel,
- officetel,
- Bedcode,
- Cardcode,
- handtel,
- Address,
- Postcode,
- Bankcode,
- wage,
- Duty,
- status,
- Dscrp,
- deptype,
- handtype,
- jobtype,
- jobid,
- hourwage,
- ondutydate,
- Opdate,
- Opemp,
- nation,
- likestr,
- ifmarry,
- specialty,
- computergrade,
- health,
- bankamt,
- gztype,
- insurecode,
- contractcode,
- DayMaxExpend,
- MonthMaxExpend,
- pempid)
- VALUES (
- :arg_s_empinfo.scid,
- :ll_new_empid,
- :arg_s_empinfo.Deptid,
- :arg_s_empinfo.wrktpye,
- :arg_s_empinfo.Empname,
- :arg_s_empinfo.Empcode,
- :arg_s_empinfo.Sex,
- :arg_s_empinfo.Birthday,
- :arg_s_empinfo.Homeplace,
- :arg_s_empinfo.Stature,
- :arg_s_empinfo.introducer,
- :arg_s_empinfo.Language,
- :arg_s_empinfo.Idcard,
- :arg_s_empinfo.Joindate,
- :arg_s_empinfo.diploma,
- :arg_s_empinfo.hometel,
- :arg_s_empinfo.officetel,
- :arg_s_empinfo.Bedcode,
- :arg_s_empinfo.Cardcode,
- :arg_s_empinfo.handtel,
- :arg_s_empinfo.Address,
- :arg_s_empinfo.Postcode,
- :arg_s_empinfo.Bankcode,
- :arg_s_empinfo.wage,
- :arg_s_empinfo.Duty,
- :arg_s_empinfo.status,
- :arg_s_empinfo.Dscrp,
- :ls_deptype,
- :ls_handtype,
- :arg_s_empinfo.jobtype,
- :arg_s_empinfo.jobid,
- :arg_s_empinfo.hourwage,
- :arg_s_empinfo.ondutydate,
- :server_dt,
- :arg_opemp,
- :arg_s_empinfo.nation,
- :arg_s_empinfo.likestr,
- :arg_s_empinfo.ifmarry,
- :arg_s_empinfo.specialty,
- :arg_s_empinfo.computergrade,
- :arg_s_empinfo.health,
- :arg_s_empinfo.bankamt,
- :arg_s_empinfo.gztype,
- :arg_s_empinfo.insurecode,
- :arg_s_empinfo.contractcode,
- :arg_s_empinfo.DayMaxExpend,
- :arg_s_empinfo.MonthMaxExpend,
- :arg_s_empinfo.pempid);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- uo_empid = ll_new_empid
- ELSE
- UPDATE u_rs_empinfo
- SET
- scid = :arg_s_empinfo.scid,
- Deptid = :arg_s_empinfo.Deptid,
- deptype = :ls_deptype,
- handtype = :ls_handtype,
- wrktpye = :arg_s_empinfo.wrktpye,
- Empname = :arg_s_empinfo.Empname,
- Empcode = :arg_s_empinfo.Empcode,
- Sex = :arg_s_empinfo.Sex,
- Birthday = :arg_s_empinfo.Birthday,
- Homeplace = :arg_s_empinfo.Homeplace,
- Stature = :arg_s_empinfo.Stature,
- introducer = :arg_s_empinfo.introducer,
- Language = :arg_s_empinfo.Language,
- Idcard = :arg_s_empinfo.Idcard,
- Joindate = :arg_s_empinfo.Joindate,
- diploma = :arg_s_empinfo.diploma,
- hometel = :arg_s_empinfo.hometel,
- officetel = :arg_s_empinfo.officetel,
- Bedcode = :arg_s_empinfo.Bedcode,
- Cardcode = :arg_s_empinfo.Cardcode,
- handtel = :arg_s_empinfo.handtel,
- Address = :arg_s_empinfo.Address,
- Postcode = :arg_s_empinfo.Postcode,
- Bankcode = :arg_s_empinfo.Bankcode,
- wage = :arg_s_empinfo.wage,
- Duty = :arg_s_empinfo.Duty,
- Dscrp = :arg_s_empinfo.Dscrp,
- status = :arg_s_empinfo.status,
- jobtype = :arg_s_empinfo.jobtype,
- jobid = :arg_s_empinfo.jobid,
- hourwage = :arg_s_empinfo.hourwage,
- ondutydate = :arg_s_empinfo.ondutydate,
- moddate = :server_dt,
- modemp = :arg_opemp,
- nation = :arg_s_empinfo.nation,
- likestr = :arg_s_empinfo.likestr,
- ifmarry = :arg_s_empinfo.ifmarry,
- specialty = :arg_s_empinfo.specialty,
- computergrade = :arg_s_empinfo.computergrade,
- health = :arg_s_empinfo.health,
- bankamt = :arg_s_empinfo.bankamt,
- gztype = :arg_s_empinfo.gztype,
- insurecode = :arg_s_empinfo.insurecode,
- contractcode = :arg_s_empinfo.contractcode,
- DayMaxExpend = :arg_s_empinfo.DayMaxExpend,
- MonthMaxExpend = :arg_s_empinfo.MonthMaxExpend,
- pempid = :arg_s_empinfo.pempid
- Where u_rs_empinfo.empid = :arg_s_empinfo.empid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新人员资料操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- uo_empid = arg_s_empinfo.empid
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_del_leftemp (long arg_empid, ref string arg_msg, boolean arg_ifcommit);//删除离职员工
- Int rslt = 1
- Long ls_newid
- Int ls_status
- SELECT status INTO :ls_status
- From u_rs_empinfo Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ls_status <> 0 THEN
- arg_msg = '该员工不是离职状态,不能进行删除。'
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_gz_wage Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关工资表资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_gz_wagemx Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关工资表明细资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_emprecord Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关简历资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_insure Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关社保资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_Train Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关培训资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_moverecord Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关调动资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_emppic Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关相片资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_empinfo Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工基本资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- IF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_del_empinfo (long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long cnt
- Long ll_status
- IF uo_option_emp_audit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[221]员工资料需要审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- IF uo_option_emp_audit = 1 THEN
- SELECT status INTO :ll_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(员工状态)'
- rslt = 0
- GOTO ext
- END IF
-
- IF ll_status = 1 THEN
- rslt = 0
- arg_msg = '员工必须先撤审后才能删除'
- GOTO ext
- END IF
-
- END IF
- SELECT count(*) INTO :cnt
- From u_gz_wagemx Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(工资明细)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在工资明细中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_gz_wage Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(工资表)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在工资表中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_gz_wage Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(工资表)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在工资表中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_gz_loanwage Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(借支单)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在借支单中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_kq_cworkmx Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(考勤单)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在考勤单中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_gz_award_punish Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(奖罚单)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在奖罚单中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From U_Test Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(职位绩效考核单)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在职位绩效考核单中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_sc_taskworkmx Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(计件单)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在计件单中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_sc_abnormitymx Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(异常计件单)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在异常计件单中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_scwg_taskwork_2 WHERE wrkGrpid = :arg_empid
- And billtype = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(计件单2)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在计件单2中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- From u_scwg_taskwork_money Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(工作组计件单工资分配)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在工作组计件单工资分配中存在,不能删除'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_outware WHERE relid = :arg_empid
- And billtype = 10;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工相关资料出错(扣费品领用单)'
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该员工已在扣费品领用单中存在,不能删除'
- GOTO ext
- END IF
- DELETE From u_rs_emprecord Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关简历资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_insure Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关社保资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_Train Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关培训资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_moverecord Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关调动资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_emppic Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工相关相片资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_empinfo Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除员工基本资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_train (s_train arg_s_train, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ls_newid
- Int ls_status
- string ls_empname
- DateTime server_dt
- IF IsNull(arg_s_train.trainid) THEN arg_s_train.trainid = 0
- IF IsNull(arg_s_train.empid) THEN arg_s_train.empid = 0
- IF IsNull(arg_s_train.content) THEN arg_s_train.content = ''
- IF IsNull(arg_s_train.result) THEN arg_s_train.result = ''
- IF IsNull(arg_s_train.othercode) THEN arg_s_train.othercode = ''
- IF IsNull(arg_s_train.dscrp) THEN arg_s_train.dscrp = ''
- IF IsNull(arg_s_train.relid) THEN arg_s_train.relid = 0
- IF IsNull(arg_s_train.relcode) THEN arg_s_train.relcode = ''
- SELECT status,empname
- INTO :ls_status,:ls_empname
- FROM u_rs_empinfo
- Where empid = :arg_s_train.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '员工:'+ls_empname+' 不在职,不能进行增加培训内容'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_train.content = '' THEN
- arg_msg = '请输入培训内容'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_train.trainid = 0 THEN
-
- ls_newid = f_sys_scidentity(0,"u_rs_train","trainid",arg_msg,TRUE,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- 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
-
- INSERT INTO u_rs_Train
- (Trainid,
- empid,
- Traindate,
- content,
- Result,
- Othercode,
- Dscrp,
- relid,
- relcode,
- Opemp,
- Opdate)
- VALUES(
- :ls_newid,
- :arg_s_train.empid,
- :arg_s_train.Traindate,
- :arg_s_train.content,
- :arg_s_train.Result,
- :arg_s_train.Othercode,
- :arg_s_train.Dscrp,
- :arg_s_train.relid,
- :arg_s_train.relcode,
- :arg_opemp,
- :server_dt);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '增加培训内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- UPDATE u_rs_Train
- SET Traindate = :arg_s_train.Traindate,
- content = :arg_s_train.content,
- Result = :arg_s_train.Result,
- Othercode = :arg_s_train.Othercode,
- Dscrp = :arg_s_train.Dscrp,
- relid = :arg_s_train.relid,
- relcode = :arg_s_train.relcode,
- moddate = :server_dt,
- modemp = :arg_opemp
- Where trainid = :arg_s_train.trainid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新培训内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_record (s_record arg_s_record, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ls_newid
- Int ls_status
- DateTime server_dt
- IF IsNull(arg_s_record.mxid) THEN arg_s_record.mxid = 0
- IF IsNull(arg_s_record.empid) THEN arg_s_record.empid = 0
- IF IsNull(arg_s_record.rectype) THEN arg_s_record.rectype = 0
- IF IsNull(arg_s_record.techlevel) THEN arg_s_record.techlevel = ''
- IF IsNull(arg_s_record.cmpname) THEN arg_s_record.cmpname = ''
- IF IsNull(arg_s_record.reljob) THEN arg_s_record.reljob = ''
- IF IsNull(arg_s_record.wage) THEN arg_s_record.wage = 0
- IF IsNull(arg_s_record.cause) THEN arg_s_record.cause = ''
- IF IsNull(arg_s_record.dscrp) THEN arg_s_record.dscrp = ''
- SELECT status
- INTO :ls_status
- FROM u_rs_empinfo
- Where empid = :arg_s_record.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行增加简历内容'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_record.cmpname = '' THEN
- arg_msg = '请输入单位名称'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_record.mxid = 0 THEN
-
- ls_newid = f_sys_scidentity(0,"u_rs_emprecord","mxid",arg_msg,TRUE,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- 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
-
- INSERT INTO u_rs_emprecord
- (mxid,
- empid,
- Techlevel,
- Rectype,
- Cmpname,
- Address,
- Reljob,
- wage,
- Start_date,
- End_date,
- Cause,
- Dscrp,
- Opemp,
- Opdate)
- VALUES(
- :ls_newid,
- :arg_s_record.empid,
- :arg_s_record.Techlevel,
- :arg_s_record.Rectype,
- :arg_s_record.Cmpname,
- :arg_s_record.Address,
- :arg_s_record.Reljob,
- :arg_s_record.wage,
- :arg_s_record.Start_date,
- :arg_s_record.End_date,
- :arg_s_record.Cause,
- :arg_s_record.Dscrp,
- :arg_opemp,
- :server_dt);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '增加简历内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- UPDATE u_rs_emprecord
- SET Techlevel = :arg_s_record.Techlevel,
- Rectype = :arg_s_record.Rectype,
- Cmpname = :arg_s_record.Cmpname,
- Address = :arg_s_record.Address,
- Reljob = :arg_s_record.Reljob,
- wage = :arg_s_record.wage,
- Start_date = :arg_s_record.Start_date,
- End_date = :arg_s_record.End_date,
- Cause = :arg_s_record.Cause,
- Dscrp = :arg_s_record.Dscrp,
- moddate = :server_dt,
- modemp = :arg_opemp
- Where mxid = :arg_s_record.mxid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新简历内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_del_train (long arg_trainid, long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_empid
- Int ls_status
- String ls_empname
- Long ll_relid
- String ls_relcode
- IF IsNull(arg_trainid) THEN arg_trainid = 0
- SELECT u_rs_empinfo.status,
- u_rs_train.empid,
- u_rs_empinfo.empname,
- u_rs_train.relid,
- u_rs_train.relcode
- INTO :ls_status,
- :ll_empid,
- :ls_empname,
- :ll_relid,
- :ls_relcode
- FROM u_rs_empinfo,u_rs_train
- WHERE u_rs_empinfo.empid = u_rs_train.empid
- AND u_rs_train.trainid = :arg_trainid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ll_relid > 0 THEN
- rslt = 0
- arg_msg = '该培训资料是员工培训单:'+ls_relcode+'审核自动建立的,不能手动删除'
- GOTO ext
- END IF
- IF ll_empid <> arg_empid THEN
- arg_msg = '选择删除培训资料的员工资料不相符'
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '员工:'+ls_empname+' 不在职,不能进行删除培训内容'
- rslt = 0
- GOTO ext
- END IF
- DELETE FROM u_rs_train Where trainid = :arg_trainid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除培训内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_del_record (long arg_mxid, long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_empid
- Int ls_status
- IF IsNull(arg_mxid) THEN arg_mxid = 0
- SELECT status,u_rs_emprecord.empid
- INTO :ls_status,:ll_empid
- FROM u_rs_empinfo,u_rs_emprecord
- WHERE u_rs_empinfo.empid = u_rs_emprecord.empid
- AND u_rs_emprecord.mxid = :arg_mxid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ll_empid <> arg_empid THEN
- arg_msg = '选择删除简历资料的员工资料不相符'
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行删除简历内容'
- rslt = 0
- GOTO ext
- END IF
- DELETE FROM u_rs_emprecord Where mxid = :arg_mxid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除社保内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_move (integer arg_moveflag, s_moverecord arg_s_moverecord, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ls_newid
- Int ls_status
- String ls_empcode
- DateTime server_dt
- String ls_sdeptype,ls_shandtype
- String ls_ddeptype,ls_dhandtype
- IF IsNull(arg_s_moverecord.moveid) THEN arg_s_moverecord.moveid = 0
- IF IsNull(arg_s_moverecord.empid) THEN arg_s_moverecord.empid = 0
- IF IsNull(arg_s_moverecord.movetype) THEN arg_s_moverecord.movetype = 0
- IF IsNull(arg_s_moverecord.cause) THEN arg_s_moverecord.cause = ''
- IF IsNull(arg_s_moverecord.sjob) THEN arg_s_moverecord.sjob = ''
- IF IsNull(arg_s_moverecord.djob) THEN arg_s_moverecord.djob = ''
- IF IsNull(arg_s_moverecord.sdeptid) THEN arg_s_moverecord.sdeptid = 0
- IF IsNull(arg_s_moverecord.ddeptid) THEN arg_s_moverecord.ddeptid = 0
- IF IsNull(arg_s_moverecord.filecode) THEN arg_s_moverecord.filecode = ''
- IF IsNull(arg_s_moverecord.wage) THEN arg_s_moverecord.wage = 0
- IF IsNull(arg_s_moverecord.firetype) THEN arg_s_moverecord.firetype = ''
- IF IsNull(arg_s_moverecord.dscrp) THEN arg_s_moverecord.dscrp = ''
- IF IsNull(arg_s_moverecord.scid) THEN arg_s_moverecord.scid = 0
- IF IsNull(arg_s_moverecord.ifBlackList) THEN arg_s_moverecord.ifBlackList = 0
- IF arg_s_moverecord.moveid = 0 THEN //新建
-
- SELECT status,empcode
- INTO :ls_status,:ls_empcode
- FROM u_rs_empinfo
- Where empid = :arg_s_moverecord.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- //arg_moveflag 1-入职,0-其它
-
- IF arg_moveflag = 0 And ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行操作'
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_s_moverecord.movetype = 1 Or arg_s_moverecord.movetype = 2 THEN
- IF arg_s_moverecord.sdeptid = 0 THEN
- arg_msg = '不存在的调出部门。'
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_s_moverecord.sjob = '' THEN
- arg_msg = '调动前职位不能为空或不存在的职位。'
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- IF arg_s_moverecord.movetype = 1 Or arg_s_moverecord.movetype = 0 THEN
- IF arg_s_moverecord.ddeptid = 0 THEN
- arg_msg = '不存在的调入部门。'
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_s_moverecord.djob = '' THEN
- arg_msg = '调动后职位不能为空或不存在的职位。'
- rslt = 0
- GOTO ext
- END IF
- END IF
-
-
- IF arg_s_moverecord.sdeptid > 0 THEN
-
- SELECT departmentname,handtype
- INTO :ls_sdeptype,:ls_shandtype
- FROM cw_department
- Where departmentid = :arg_s_moverecord.sdeptid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调出部门资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- IF arg_s_moverecord.ddeptid > 0 THEN
- SELECT departmentname,handtype
- INTO :ls_ddeptype,:ls_dhandtype
- FROM cw_department
- Where departmentid = :arg_s_moverecord.ddeptid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调入部门资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- ls_newid = f_sys_scidentity(0,"u_rs_moverecord","moveid",arg_msg,True,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- 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
-
- INSERT INTO u_rs_moverecord
- (Moveid,
- empid,
- Movedate,
- Movetype,
- cause,
- Sdept,
- Ddept,
- Sdeptid,
- Ddeptid,
- Sjob,
- Djob,
- wage,
- Filecode,
- Opemp,
- Opdate,
- dscrp)
- VALUES(:ls_newid,
- :arg_s_moverecord.empid,
- :arg_s_moverecord.Movedate,
- :arg_s_moverecord.movetype,
- :arg_s_moverecord.cause,
- :ls_Sdeptype,
- :ls_Ddeptype,
- :arg_s_moverecord.Sdeptid,
- :arg_s_moverecord.Ddeptid,
- :arg_s_moverecord.sjob,
- :arg_s_moverecord.djob,
- :arg_s_moverecord.wage,
- :arg_s_moverecord.filecode,
- :arg_opemp,
- :server_dt,
- :arg_s_moverecord.dscrp);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '操作失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- IF arg_s_moverecord.movetype = 1 THEN
- UPDATE u_rs_empinfo
- SET Deptid = :arg_s_moverecord.Ddeptid,
- deptype = :ls_ddeptype,
- handtype = :ls_dhandtype,
- duty = :arg_s_moverecord.djob,
- wage = :arg_s_moverecord.wage,
- scid = :arg_s_moverecord.scid
- Where empid = :arg_s_moverecord.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSEIF arg_s_moverecord.movetype = 2 THEN //离职
-
- String ls_ordercode
- Long cnt = 0
- SELECT count(*) INTO :cnt FROM u_rs_empinfo
- WHERE empcode LIKE 'LZ_'+:ls_empcode+'%'
- And status = 0;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工编号失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- ls_ordercode = String(cnt+1)
-
- UPDATE u_rs_empinfo
- SET empcode = 'LZ'+rtrim(empcode)+'-'+:ls_ordercode,
- status = 0,
- ifBlackList = :arg_s_moverecord.ifBlackList
- Where empid = :arg_s_moverecord.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- //更新用户资料, u_user
- UPDATE u_user
- SET ifnotin = 1 , descrp = '员工离职自动禁用'
- Where (empid = :arg_s_moverecord.empid);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新员工用户权限失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- END IF
- ELSE //修改
- UPDATE u_rs_moverecord
- SET cause = :arg_s_moverecord.cause,
- dscrp = :arg_s_moverecord.dscrp
- Where moveid = :arg_s_moverecord.moveid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新调动记录失败,' + sqlca.SQLErrText
- GOTO ext
- END IF
-
- UPDATE u_rs_empinfo
- SET ifBlackList = :arg_s_moverecord.ifBlackList
- Where empid = :arg_s_moverecord.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- IF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_contract (s_contract arg_s_contract, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ls_newid
- Int ls_status
- DateTime server_dt
- IF IsNull(arg_s_contract.contractid) THEN arg_s_contract.contractid = 0
- IF IsNull(arg_s_contract.empid) THEN arg_s_contract.empid = 0
- IF IsNull(arg_s_contract.dscrp) THEN arg_s_contract.dscrp = ''
- SELECT status
- INTO :ls_status
- FROM u_rs_empinfo
- Where empid = :arg_s_contract.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行增加合同内容'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_contract.contractid = 0 THEN
-
- ls_newid = f_sys_scidentity(0,"u_rs_contract","contractid",arg_msg,TRUE,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- 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
-
- INSERT INTO u_rs_contract
- (contractid,
- empid,
- bdate,
- edate,
- Dscrp,
- Opemp,
- Opdate)
- VALUES(
- :ls_newid,
- :arg_s_contract.empid,
- :arg_s_contract.bdate,
- :arg_s_contract.edate,
- :arg_s_contract.Dscrp,
- :arg_opemp,
- :server_dt);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '增加合同内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
-
- UPDATE u_rs_contract
- SET edate = :arg_s_contract.edate,
- Bdate = :arg_s_contract.Bdate,
- Dscrp = :arg_s_contract.Dscrp,
- moddate = :server_dt,
- modemp = :arg_opemp
- Where contractid = :arg_s_contract.contractid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新合同内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_del_contract (long arg_contractid, long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_empid
- Int ls_status, li_flag
- IF IsNull(arg_contractid) THEN arg_contractid = 0
- SELECT status,u_rs_contract.empid
- INTO :ls_status,:ll_empid
- FROM u_rs_empinfo,u_rs_contract
- WHERE u_rs_empinfo.empid = u_rs_contract.empid
- AND u_rs_contract.contractid = :arg_contractid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ll_empid <> arg_empid THEN
- arg_msg = '选择删除合同资料的员工资料不相符'
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行删除社保内容'
- rslt = 0
- GOTO ext
- END IF
- SELECT flag
- INTO :li_flag
- FROM u_rs_contract
- WHERE empid = :arg_empid
- And contractid = :arg_contractid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询员工合同审核状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_flag = 1 THEN
- rslt = 0
- arg_msg = '员工合同已审核'
- GOTO ext
- END IF
- DELETE FROM u_rs_contract Where contractid = :arg_contractid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除社保内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_audit_emp (long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt
- rslt = 1
- Int li_status
- datetime server_dt
- SELECT Top 1 getdate() INTO :server_dt FROM u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- SELECT status INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询员工状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_status <> 3 THEN
- rslt = 0
- arg_msg = '员工状态不是待审核,不能执行审核操作'
- GOTO ext
- END IF
- UPDATE u_rs_empinfo
- SET status = 1,
- auditemp = :publ_operator,
- auditdate = :server_dt
- WHERE empid = :arg_empid
- And status = 3 ;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = '员工正在审核,请稍后查询'
- GOTO ext
- END IF
- ELSE
- rslt = 0
- arg_msg = '更新员工状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_caudit_emp (long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt
- rslt = 1
- Int li_status
- datetime ld_nulldt
- IF uo_option_emp_audit = -1000 THEN
- rslt = 0
- arg_msg = '选项:[221]员工资料需要审核,读取初始默认值失败,操作取消!'
- GOTO ext
- END IF
- setnull(ld_nulldt)
- IF uo_option_emp_audit = 0 THEN
- rslt = 0
- arg_msg = '系统选项 "(221)员工资料需要审核" 已关闭,不能执行员工撤审操作'
- GOTO ext
- END IF
- SELECT status INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询员工状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_status <> 1 THEN
- rslt = 0
- arg_msg = '员工状态不是在职,不能执行撤审操作'
- GOTO ext
- END IF
- UPDATE u_rs_empinfo
- SET status = 3,
- auditemp = '',
- auditdate = :ld_nulldt
- WHERE empid = :arg_empid
- And status = 1 ;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = '员工正在撤审,请稍后查询'
- GOTO ext
- END IF
- ELSE
- rslt = 0
- arg_msg = '更新员工状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_empmtrl_ly (long arg_empid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, decimal arg_addqty, decimal arg_price, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- Int li_status
- Decimal lde_qty, lde_billqty
- IF IsNull(arg_empid) THEN arg_empid = 0
- IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- IF IsNull(arg_status) THEN arg_status = ''
- IF IsNull(arg_woodcode) THEN arg_woodcode = ''
- IF IsNull(arg_pcode) THEN arg_pcode = ''
- IF IsNull(arg_addqty) THEN arg_addqty = 0
- IF arg_addqty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- SELECT status
- INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- //IF li_status = 0 THEN
- // arg_msg = '该员工不在职,不能操作'
- // rslt = 0
- // GOTO ext
- //END IF
- IF arg_addqty > 0 THEN
-
- UPDATE u_rs_empmtrl_ly
- SET qty = qty + :arg_addqty,
- wareamt = case qty + :arg_addqty when 0 then 0 else wareamt + :arg_addqty * :arg_price end ,
- cost = case qty + :arg_addqty when 0 then cost else (wareamt + :arg_addqty * :arg_price) / (qty + :arg_addqty) end
- WHERE empid = :arg_empid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- And pcode = :arg_pcode;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_rs_empmtrl_ly
- (empid,
- mtrlid,
- status,
- woodcode,
- pcode,
- qty,
- cost,
- wareamt)
- VALUES
- (:arg_empid,
- :arg_mtrlid,
- :arg_status,
- :arg_woodcode,
- :arg_pcode,
- :arg_addqty,
- :arg_price,
- :arg_price * :arg_addqty);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入员工物品领用信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- END IF
- ELSE
- rslt = 0
- arg_msg = "更新员工物品领用信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- ELSE
-
- SELECT qty
- INTO :lde_qty
- FROM u_rs_empmtrl_ly
- WHERE empid = :arg_empid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- And pcode = :arg_pcode;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询员工物品领用信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
- SELECT sum(qty)
- INTO :lde_billqty
- FROM u_inware INNER join u_inwaremx
- on u_inware.inwareid = u_inwaremx.inwareid
- WHERE sptid = :arg_empid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- AND billtype = 28
- And flag = 0;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询员工物品归还单开单未审数信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
- IF Abs(arg_addqty) > lde_qty - lde_billqty THEN
- rslt = 0
- arg_msg = "员工剩余领用物品数量只有["+String(lde_qty, '#,##0.##')+"],开单未审数["+String(lde_billqty, '#,##0.##')+"],不能撤审["+String(Abs(arg_addqty), '#,##0.##')+"]"
- GOTO ext
- END IF
-
- UPDATE u_rs_empmtrl_ly
- SET qty = qty + :arg_addqty,
- wareamt = case qty + :arg_addqty when 0 then 0 else wareamt + :arg_addqty * :arg_price end ,
- cost = case qty + :arg_addqty when 0 then cost else (wareamt + :arg_addqty * :arg_price) / (qty + :arg_addqty) end
- WHERE empid = :arg_empid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- And pcode = :arg_pcode;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新员工物品领用信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- 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
- public function integer uof_add_empmtrl_gh (long arg_empid, long arg_mtrlid, string arg_status, string arg_woodcode, string arg_pcode, decimal arg_addqty, decimal arg_price, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- Int li_status
- Decimal lde_qty
- IF IsNull(arg_empid) THEN arg_empid = 0
- IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- IF IsNull(arg_status) THEN arg_status = ''
- IF IsNull(arg_woodcode) THEN arg_woodcode = ''
- IF IsNull(arg_pcode) THEN arg_pcode = ''
- IF IsNull(arg_addqty) THEN arg_addqty = 0
- IF arg_addqty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- SELECT status
- INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- //IF li_status = 0 THEN
- // arg_msg = '该员工不在职,不能操作'
- // rslt = 0
- // GOTO ext
- //END IF
- IF arg_addqty < 0 THEN
- //arg_addqty = abs(arg_addqty)
-
- UPDATE u_rs_empmtrl_ly
- SET qty = qty - :arg_addqty,
- wareamt = case qty - :arg_addqty when 0 then 0 else wareamt - :arg_addqty * :arg_price END ,
- cost = case qty - :arg_addqty when 0 then cost else (wareamt - :arg_addqty * :arg_price) / (qty - :arg_addqty) END
-
- WHERE empid = :arg_empid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- And pcode = :arg_pcode;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新员工物品领用信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- ELSE
-
- SELECT qty
- INTO :lde_qty
- FROM u_rs_empmtrl_ly
- WHERE empid = :arg_empid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- And pcode = :arg_pcode;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询员工物品领用信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF arg_addqty > lde_qty THEN
- rslt = 0
- arg_msg = "员工剩余领用物品数量只有["+String(lde_qty, '#,##0.##')+"],不能归还["+String(arg_addqty, '#,##0.##')+"]"
- GOTO ext
- END IF
-
- UPDATE u_rs_empmtrl_ly
- SET qty = qty - :arg_addqty,
- wareamt = case qty - :arg_addqty when 0 then 0 else wareamt - :arg_addqty * :arg_price END ,
- cost = case qty - :arg_addqty when 0 then cost else (wareamt - :arg_addqty * :arg_price) / (qty - :arg_addqty) END
-
- WHERE empid = :arg_empid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- And pcode = :arg_pcode;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新员工物品领用信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- 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
- public function integer uof_add_emptake (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, datetime arg_takedate, decimal arg_amt, string arg_dscrp, integer arg_taketype, boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // 事件: uo_empinfo.uof_add_emptake()
- //--------------------------------------------------------------------
- // 描述:
- //--------------------------------------------------------------------
- // 参数:
- // value long arg_empid //人员ID
- // value long arg_relid //单据ID
- // value long arg_moneyid //币种
- // value string arg_relcode //单据编号
- // value datetime arg_takedate //发生日期
- // value decimal arg_amt //发生金额
- // value string arg_dscrp //备注
- // value integer arg_taketype //0:借 1:还
- // value boolean arg_ifcommit
- // reference string arg_msg
- //--------------------------------------------------------------------
- // 返回: integer
- //--------------------------------------------------------------------
- // 作者: LHD 日期: 2011年10月20日
- //--------------------------------------------------------------------
- // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Int rslt = 1
- Int li_status
- Decimal lde_Msttakeamt, lde_takeamt
- IF IsNull(arg_empid) THEN arg_empid = 0
- IF IsNull(arg_relid) THEN arg_relid = 0
- IF IsNull(arg_moneyid) THEN arg_moneyid = 0
- IF IsNull(arg_relcode) THEN arg_relcode = ''
- IF IsNull(arg_amt) THEN arg_amt = 0
- IF IsNull(arg_dscrp) THEN arg_dscrp = ''
- IF IsNull(arg_taketype) THEN arg_taketype = 0
- IF arg_amt = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- SELECT status
- INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- //默认 arg_amt > 0
- IF arg_taketype = 0 THEN //借
- lde_Msttakeamt = arg_amt
- lde_takeamt = 0
- ELSE
-
- lde_Msttakeamt = 0
- lde_takeamt = arg_amt
-
- arg_amt = 0 - arg_amt
- END IF
- UPDATE u_rs_emptake
- SET amt = amt + :arg_amt
- WHERE empid = :arg_empid
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_rs_emptake
- (empid,
- moneyid,
- amt)
- VALUES
- (:arg_empid,
- :arg_moneyid,
- :arg_amt);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入员工借/还款信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- END IF
- ELSE
- rslt = 0
- arg_msg = "更新员工借/还款信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
- INSERT INTO u_rs_emptakemx
- (empid, relid, moneyid, takedate, Msttakeamt, takeamt, dscrp, relcode, taketype)
- VALUES
- (:arg_empid,
- :arg_relid,
- :arg_moneyid,
- :arg_takedate,
- :lde_Msttakeamt,
- :lde_takeamt,
- :arg_dscrp,
- :arg_relcode,
- :arg_taketype);
- 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
- public function integer uof_del_emptake (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, integer arg_taketype, boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // 事件: uo_empinfo.uof_del_emptake()
- //--------------------------------------------------------------------
- // 描述:
- //--------------------------------------------------------------------
- // 参数:
- // value long arg_empid //人员ID
- // value long arg_relid //单据ID
- // value long arg_moneyid //币种
- // value string arg_relcode //单据编号
- // value integer arg_taketype //0:借 1:还
- // value boolean arg_ifcommit
- // reference string arg_msg
- //--------------------------------------------------------------------
- // 返回: integer
- //--------------------------------------------------------------------
- // 作者: LHD 日期: 2011年10月20日
- //--------------------------------------------------------------------
- // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Int rslt = 1
- Int li_status, li_cnt
- dec lde_amt
- IF IsNull(arg_empid) THEN arg_empid = 0
- IF IsNull(arg_relid) THEN arg_relid = 0
- IF IsNull(arg_moneyid) THEN arg_moneyid = 0
- IF IsNull(arg_relcode) THEN arg_relcode = ''
- IF IsNull(arg_taketype) THEN arg_taketype = 0
- SELECT status
- INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- SELECT count(*)
- INTO :li_cnt
- FROM u_rs_emptakemx
- WHERE empid = :arg_empid
- AND relid = :arg_relid
- AND relcode = :arg_relcode
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询员工借/还款明细信息失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF li_cnt = 0 THEN
- arg_msg = "没有对应的员工借/还款明细信息"
- rslt = 0
- GOTO ext
- END IF
- SELECT case :arg_taketype when 0 then msttakeamt else takeamt end
- INTO :lde_amt
- FROM u_rs_emptakemx
- WHERE empid = :arg_empid
- AND relid = :arg_relid
- AND relcode = :arg_relcode
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询员工借/还款明细信息失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ////默认 arg_amt < 0
- //lde_amt = 0 - lde_amt
- if arg_taketype = 0 then
- lde_amt = 0 - lde_amt
- else
- lde_amt = lde_amt
- end if
- UPDATE u_rs_emptake
- SET amt = amt + :lde_amt
- WHERE empid = :arg_empid
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_rs_emptake
- (empid,
- moneyid,
- amt)
- VALUES
- (:arg_empid,
- :arg_moneyid,
- :lde_amt);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入员工借/还款信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- ELSE
- rslt = 0
- arg_msg = "更新员工借/还款信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_rs_emptakemx
- WHERE empid = :arg_empid
- AND relid = :arg_relid
- AND relcode = :arg_relcode
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询员工借/还款明细信息失败,"+sqlca.SQLErrText
- rslt = 0
- 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
- public function integer uof_add_insure (s_insure arg_s_insure, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ls_newid
- Int ls_status
- DateTime server_dt
- IF IsNull(arg_s_insure.insureid) THEN arg_s_insure.insureid = 0
- IF IsNull(arg_s_insure.empid) THEN arg_s_insure.empid = 0
- IF IsNull(arg_s_insure.BuyMth) THEN arg_s_insure.BuyMth = 0
- IF IsNull(arg_s_insure.Subsidy) THEN arg_s_insure.Subsidy = 0
- IF IsNull(arg_s_insure.Payself) THEN arg_s_insure.Payself = 0
- IF IsNull(arg_s_insure.dscrp) THEN arg_s_insure.dscrp = ''
- SELECT status
- INTO :ls_status
- FROM u_rs_empinfo
- Where empid = :arg_s_insure.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行增加社保内容'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_insure.BuyMth = 0 THEN
- arg_msg = '请输入购买月份'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_insure.insureid = 0 THEN
-
- ls_newid = f_sys_scidentity(0,"u_rs_insure","insureid",arg_msg,TRUE,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- 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
-
- INSERT INTO u_rs_insure
- (insureid,
- empid,
- BuyMth,
- Buydate,
- Subsidy,
- Payself,
- Dscrp,
- Opemp,
- Opdate)
- VALUES(
- :ls_newid,
- :arg_s_insure.empid,
- :arg_s_insure.BuyMth,
- :arg_s_insure.Buydate,
- :arg_s_insure.Subsidy,
- :arg_s_insure.Payself,
- :arg_s_insure.Dscrp,
- :arg_opemp,
- :server_dt);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '增加社保内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- UPDATE u_rs_insure
- SET BuyMth = :arg_s_insure.BuyMth,
- Buydate = :arg_s_insure.Buydate,
- Subsidy = :arg_s_insure.Subsidy,
- Payself = :arg_s_insure.Payself,
- Dscrp = :arg_s_insure.Dscrp,
- moddate = :server_dt,
- modemp = :arg_opemp
- Where insureid = :arg_s_insure.insureid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新社保内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_idcard (s_idcard arg_s_idcard, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ls_newid
- Int ls_status
- DateTime server_dt
- IF IsNull(arg_s_idcard.mxid) THEN arg_s_idcard.mxid = 0
- IF IsNull(arg_s_idcard.empid) THEN arg_s_idcard.empid = 0
- IF IsNull(arg_s_idcard.idcard) THEN arg_s_idcard.idcard = ''
- IF IsNull(arg_s_idcard.fzjg) THEN arg_s_idcard.fzjg = ''
- SELECT status
- INTO :ls_status
- FROM u_rs_empinfo
- Where empid = :arg_s_idcard.empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行增加身份证'
- rslt = 0
- 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
- IF arg_s_idcard.mxid = 0 THEN
-
- ls_newid = f_sys_scidentity(0,"u_rs_emp_idcard","mxid",arg_msg,TRUE,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_rs_emp_idcard
- (mxid,
- empid,
- idcard,
- fzjg,
- limit_date,
- Opemp,
- Opdate)
- VALUES(
- :ls_newid,
- :arg_s_idcard.empid,
- :arg_s_idcard.idcard,
- :arg_s_idcard.fzjg,
- :arg_s_idcard.limit_date,
- :arg_opemp,
- :server_dt);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '增加身份证内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- UPDATE u_rs_emp_idcard
- SET idcard = :arg_s_idcard.idcard,
- fzjg = :arg_s_idcard.fzjg,
- limit_date = :arg_s_idcard.limit_date,
- empid = :arg_s_idcard.empid,
- moddate = :server_dt,
- modemp = :arg_opemp
- Where mxid = :arg_s_idcard.mxid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新社保内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_del_insure (long arg_insureid, long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_empid
- Int ls_status
- IF IsNull(arg_insureid) THEN arg_insureid = 0
- SELECT status,u_rs_insure.empid
- INTO :ls_status,:ll_empid
- FROM u_rs_empinfo,u_rs_insure
- WHERE u_rs_empinfo.empid = u_rs_insure.empid
- AND u_rs_insure.insureid = :arg_insureid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ll_empid <> arg_empid THEN
- arg_msg = '选择删除社保资料的员工资料不相符'
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行删除社保内容'
- rslt = 0
- GOTO ext
- END IF
- DELETE FROM u_rs_insure Where insureid = :arg_insureid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除社保内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_del_idcard (long arg_mxid, long arg_empid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_empid
- Int ls_status
- IF IsNull(arg_mxid) THEN arg_mxid = 0
- SELECT u_rs_empinfo.status, u_rs_emp_idcard.empid
- INTO :ls_status, :ll_empid
- FROM u_rs_empinfo INNER JOIN
- u_rs_emp_idcard ON u_rs_empinfo.empid = u_rs_emp_idcard.empid
- Where (u_rs_emp_idcard.mxid = :arg_mxid);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF ll_empid <> arg_empid THEN
- arg_msg = '选择删除身份证资料的员工资料不相符'
- rslt = 0
- GOTO ext
- END IF
- IF ls_status = 0 THEN
- arg_msg = '该员工不在职,不能进行删除身份证内容'
- rslt = 0
- GOTO ext
- END IF
- DELETE From u_rs_emp_idcard Where mxid = :arg_mxid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除社保内容失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_audit_contract (long arg_empid, long arg_contractid, ref string arg_msg, boolean arg_ifcommit);Int rslt
- rslt = 1
- Int li_status, li_flag
- DateTime server_dt
- SELECT Top 1 getdate() Into :server_dt From u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- SELECT status INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询员工状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_status = 0 THEN
- arg_msg = '该员工不在职,不能进行审核合同'
- rslt = 0
- GOTO ext
- END IF
- SELECT flag
- INTO :li_flag
- FROM u_rs_contract
- WHERE empid = :arg_empid
- And contractid = :arg_contractid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询员工合同审核状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_flag = 1 THEN
- rslt = 0
- arg_msg = '员工合同已审核'
- GOTO ext
- END IF
- UPDATE u_rs_contract
- SET flag = 1,
- auditemp = :publ_operator,
- auditdate = :server_dt
- WHERE empid = :arg_empid
- AND contractid = :arg_contractid
- And flag = 0;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = '员工合同正在审核,请稍后查询'
- GOTO ext
- END IF
- ELSE
- rslt = 0
- arg_msg = '更新员工合同状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_caudit_contract (long arg_empid, long arg_contractid, ref string arg_msg, boolean arg_ifcommit);Int rslt, li_flag
- rslt = 1
- SELECT flag
- INTO :li_flag
- FROM u_rs_contract
- WHERE empid = :arg_empid
- And contractid = :arg_contractid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询员工合同审核状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF li_flag <> 1 THEN
- rslt = 0
- arg_msg = '员工合同未审核'
- GOTO ext
- END IF
- UPDATE u_rs_contract
- SET flag = 0,
- auditemp = '',
- auditdate = null
- WHERE empid = :arg_empid
- And contractid = :arg_contractid
- and flag = 1;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = '员工合同正在撤审,请稍后查询'
- GOTO ext
- END IF
- ELSE
- rslt = 0
- arg_msg = '更新员工合同状态失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long cnt,ll_repid
- IF IsNull(arg_s_item.itemid) THEN arg_s_item.itemid = 0
- IF IsNull(arg_s_item.relid) THEN arg_s_item.relid = 0
- IF IsNull(arg_s_item.reltype) THEN arg_s_item.reltype = 0
- IF IsNull(arg_s_item.dscrp) THEN arg_s_item.dscrp = ''
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_item_cust_spt_def
- Where itemid = :arg_s_item.itemid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询辅助项目资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- cnt = 0
- IF arg_s_item.reltype = 2 THEN
- SELECT count(*) INTO :cnt
- FROM u_rs_empinfo
- Where empid = :arg_s_item.relid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询人事资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- arg_msg = '错误的项目类型'
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_item_cust_spt
- SET dscrp = :arg_s_item.dscrp
- WHERE itemid = :arg_s_item.itemid
- AND relid = :arg_s_item.relid
- AND reltype = :arg_s_item.reltype;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_item_cust_spt
- (itemid,
- relid,
- reltype,
- dscrp)
- VALUES(:arg_s_item.itemid,
- :arg_s_item.relid,
- :arg_s_item.reltype,
- :arg_s_item.dscrp);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '建立辅助项目资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSE
- arg_msg = '更新辅助项目资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_add_emppay (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, datetime arg_paydate, decimal arg_amt, string arg_dscrp, integer arg_paytype, boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // 事件: uo_empinfo.uof_add_emppay()
- //--------------------------------------------------------------------
- // 描述:
- //--------------------------------------------------------------------
- // 参数:
- // value long arg_empid //人员ID
- // value long arg_relid //单据ID
- // value long arg_moneyid //币种
- // value string arg_relcode //单据编号
- // value datetime arg_paydate //发生日期
- // value decimal arg_amt //发生金额
- // value string arg_dscrp //备注
- // value integer arg_paytype //0:计算增加 1:发工资,减少
- // value boolean arg_ifcommit
- // reference string arg_msg
- //--------------------------------------------------------------------
- // 返回: integer
- //--------------------------------------------------------------------
- // 作者: LHD 日期: 2011年10月20日
- //--------------------------------------------------------------------
- // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Int rslt = 1
- Int li_status
- Decimal lde_Mstpayamt, lde_payamt
- IF IsNull(arg_empid) THEN arg_empid = 0
- IF IsNull(arg_relid) THEN arg_relid = 0
- IF IsNull(arg_moneyid) THEN arg_moneyid = 0
- IF IsNull(arg_relcode) THEN arg_relcode = ''
- IF IsNull(arg_amt) THEN arg_amt = 0
- IF IsNull(arg_dscrp) THEN arg_dscrp = ''
- IF IsNull(arg_paytype) THEN arg_paytype = 0
- IF arg_amt = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- SELECT status
- INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- //默认 arg_amt > 0
- IF arg_paytype = 0 THEN //借
- lde_Mstpayamt = arg_amt
- lde_payamt = 0
- ELSE
-
- lde_Mstpayamt = 0
- lde_payamt = arg_amt
-
- arg_amt = 0 - arg_amt
- END IF
- UPDATE u_rs_emppay
- SET amt = amt + :arg_amt
- WHERE empid = :arg_empid
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_rs_emppay
- (empid,
- moneyid,
- amt)
- VALUES
- (:arg_empid,
- :arg_moneyid,
- :arg_amt);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入员工借/还款信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- END IF
- ELSE
- rslt = 0
- arg_msg = "更新员工借/还款信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
- INSERT INTO u_rs_emppaymx
- (empid, relid, moneyid, paydate, Mstpayamt, payamt, dscrp, relcode, paytype)
- VALUES
- (:arg_empid,
- :arg_relid,
- :arg_moneyid,
- :arg_paydate,
- :lde_Mstpayamt,
- :lde_payamt,
- :arg_dscrp,
- :arg_relcode,
- :arg_paytype);
- 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
- public function integer uof_del_emppay (long arg_empid, long arg_relid, long arg_moneyid, string arg_relcode, integer arg_paytype, boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // 事件: uo_empinfo.uof_del_emppay()
- //--------------------------------------------------------------------
- // 描述:
- //--------------------------------------------------------------------
- // 参数:
- // value long arg_empid //人员ID
- // value long arg_relid //单据ID
- // value long arg_moneyid //币种
- // value string arg_relcode //单据编号
- // value integer arg_paytype //0:计算增加 1:发工资,减少
- // value boolean arg_ifcommit
- // reference string arg_msg
- //--------------------------------------------------------------------
- // 返回: integer
- //--------------------------------------------------------------------
- // 作者: LHD 日期: 2011年10月20日
- //--------------------------------------------------------------------
- // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Int rslt = 1
- Int li_status, li_cnt
- Dec lde_amt
- IF IsNull(arg_empid) THEN arg_empid = 0
- IF IsNull(arg_relid) THEN arg_relid = 0
- IF IsNull(arg_moneyid) THEN arg_moneyid = 0
- IF IsNull(arg_relcode) THEN arg_relcode = ''
- IF IsNull(arg_paytype) THEN arg_paytype = 0
- SELECT status
- INTO :li_status
- FROM u_rs_empinfo
- Where empid = :arg_empid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询员工资料失败,原因:'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- SELECT count(*)
- INTO :li_cnt
- FROM u_rs_emppaymx
- WHERE empid = :arg_empid
- AND relid = :arg_relid
- AND relcode = :arg_relcode
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询员工工资记录明细信息失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF li_cnt = 0 THEN //没有找到的,成功返回//有些旧程序没有的,这里提示出错
- rslt = 1
- goto ext
- // arg_msg = "没有对应的员工工资记录明细信息"
- // rslt = 0
- // GOTO ext
- END IF
- SELECT CASE :arg_paytype when 0 THEN mstpayamt ELSE payamt END
- Into :lde_amt
- From u_rs_emppaymx
- Where empid = :arg_empid
- And relid = :arg_relid
- And relcode = :arg_relcode
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询员工工资记录明细信息失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- // //默认 arg_amt < 0
- //lde_amt = 0 - lde_amt
- IF arg_paytype = 0 THEN
- lde_amt = 0 - lde_amt
- ELSE
- lde_amt = lde_amt
- END IF
- UPDATE u_rs_emppay
- SET amt = amt + :lde_amt
- WHERE empid = :arg_empid
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_rs_emppay
- (empid,
- moneyid,
- amt)
- VALUES
- (:arg_empid,
- :arg_moneyid,
- :lde_amt);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入员工工资记录信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- ELSE
- rslt = 0
- arg_msg = "更新员工工资记录信息失败,"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_rs_emppaymx
- WHERE empid = :arg_empid
- AND relid = :arg_relid
- AND relcode = :arg_relcode
- And moneyid = :arg_moneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询员工工资记录明细信息失败,"+sqlca.SQLErrText
- rslt = 0
- 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_empinfo.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_empinfo.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- event constructor;String str_optionvalue,arg_msg
- f_get_sys_option_value('221',str_optionvalue,arg_msg)
- uo_option_emp_audit = Long(str_optionvalue)
- end event
|