1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096 |
- $PBExportHeader$uo_emppay.sru
- forward
- global type uo_emppay from nonvisualobject
- end type
- end forward
- global type uo_emppay from nonvisualobject
- end type
- global uo_emppay uo_emppay
- type variables
- Public ProtectedWrite Long billid
- Public ProtectedWrite String billcode
- Public ProtectedWrite String auditemp
- Public ProtectedWrite DateTime auditdate
- Public ProtectedWrite Int flag
- Public ProtectedWrite Int secflag
- Public ProtectedWrite String Opemp
- Public ProtectedWrite DateTime Opdate
- Public ProtectedWrite String ModEmp
- Public ProtectedWrite DateTime ModDate
- Long scid
- Long banktypeid
- Decimal amt
- Long accountsid
- DateTime billdate
- String dscrp
- String rep
- Long rapmoneyid
- Long itemid
- Long relid
- Int billtype //0-其它收入支出,1-借款,2-还款
- Long empid
- Long deptid
- Int itemflag
- Long relrapid
- long ref_dateint
- string relcode
- Transaction commit_transaction //数据commit事务
- Private:
- Boolean IT_NEWBEGIN = False //新建标志
- Boolean IT_UPDATEBEGIN = False //修改标志
- Long it_mxbt = 0
- s_emppay_mx incomemx[]
- end variables
- forward prototypes
- public function integer p_reset ()
- public function integer newbegin (ref string arg_msg)
- public function integer cancel (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 updatebegin (long arg_billid, ref string arg_msg)
- public function integer save (string arg_operator, ref string arg_msg, boolean arg_ifcommit)
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit)
- public function integer p_clearmx ()
- public function integer getinfo (long arg_billid, ref string arg_msg)
- public function integer audit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer cancelaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer secaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer cancelsecaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer acceptmx (long arg_empid, decimal arg_amt, decimal arg_mstpayamt, string arg_mxdscrp, ref string arg_msg)
- end prototypes
- public function integer p_reset ();
- billid = 0
- billcode = ''
- banktypeid = 0
- amt = 0
- accountsid = 0
- setnull(billdate)
- dscrp = ''
- rep = ''
- relid = 0
- rapmoneyid = 0
- empid = 0
- billtype = 0
- itemid = 0
- deptid = 0
- flag = 0
- Opemp = ''
- setnull(Opdate)
- setnull(ModDate)
- ModEmp = ''
- auditemp = ''
- setnull(auditdate)
- relrapid = 0
- ref_dateint = 0
- it_newbegin=FALSE
- it_updatebegin=FALSE
- p_clearmx()
- RETURN 1
- end function
- public function integer newbegin (ref string arg_msg);//newbegin()
- //从置对象,设定业务类型,准备建立新单
- //0 fail 1 success
- LONG RSLT=1
- p_reset()
- it_newbegin=TRUE
- it_updatebegin=FALSE
- return RSLT
- end function
- public function integer cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
- //0 FAIL, 1 SUCCESS
- Int rslt = 1
- IF arg_billid <= 0 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
- DELETE FROM U_emppay
- Where U_emppay.billid = :arg_billid USING commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = "删除单据操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- DELETE FROM U_emppay_mx
- Where U_emppay_mx.billid = :arg_billid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据明细操作失败"+"~n"+commit_transaction.SQLErrText
- ROLLBACK USING commit_transaction;
- GOTO ext
- END IF
- it_newbegin = FALSE
- it_updatebegin = FALSE
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF arg_ifcommit AND rslt = 1 THEN
- COMMIT USING commit_transaction;
- END IF
- ext:
- p_reset()
- Return (rslt)
- end function
- public function integer p_getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- SELECT U_emppay.billid,
- U_emppay.billcode,
- U_emppay.banktypeid,
- U_emppay.amt,
- U_emppay.accountsid,
- U_emppay.billdate,
- U_emppay.Dscrp,
- U_emppay.rep,
- U_emppay.rapmoneyid,
- U_emppay.itemid,
- U_emppay.flag,
- U_emppay.secflag,
- U_emppay.Opemp,
- U_emppay.Opdate,
- U_emppay.ModDate,
- U_emppay.ModEmp,
- U_emppay.auditemp,
- U_emppay.auditdate,
- U_emppay.relid,
- U_emppay.billtype,
- U_emppay.scid,
- relrapid,
- ref_dateint
- INTO :billid,
- :billcode,
- :banktypeid,
- :amt,
- :accountsid,
- :billdate,
- :Dscrp,
- :rep,
- :rapmoneyid,
- :itemid,
- :flag,
- :secflag,
- :Opemp,
- :Opdate,
- :ModDate,
- :ModEmp,
- :auditemp,
- :auditdate,
- :relid,
- :billtype,
- :scid,
- :relrapid,
- :ref_dateint
- FROM U_emppay
- Where ( U_emppay.billid = :arg_billid ) ;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询工资发放单操作失败"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
- public function integer updatebegin (long arg_billid, ref string arg_msg);//UPDATEbegin(long arg_taskid,ref string arg_msg)
- //从置对象,设定业务类型与关联ID,准备更新进仓单
- //0 fail 1 success
- Long rslt = 1,CNT = 0
- IF arg_billid <= 0 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
- it_newbegin = False
- it_updatebegin = True
- p_clearmx() //清除明细
- amt = 0
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer save (string arg_operator, ref string arg_msg, boolean arg_ifcommit);
- Integer rslt = 1,cnt = 0,i
- Long ls_newid
- DateTime server_datetime
- Long ll_id
- String ls_sccode
- IF IsNull(banktypeid) THEN banktypeid = 0
- IF IsNull(amt) THEN amt = 0
- IF IsNull(accountsid) THEN accountsid = 0
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(relcode) THEN relcode = ''
- IF IsNull(rep) THEN rep = ''
- IF IsNull(arg_operator) THEN arg_operator = ''
- IF IsNull(rapmoneyid) THEN rapmoneyid = 0
- IF IsNull(itemid) THEN itemid = 0
- IF IsNull(scid) THEN scid = 0
- IF it_newbegin = False And it_updatebegin = False THEN
- rslt = 0
- arg_msg = "非编辑状态不可以提交"
- GOTO ext
- END IF
- IF it_mxbt = 0 THEN
- rslt = 0
- arg_msg = '没有明细内容'
- GOTO ext
- END IF
- amt = 0
- FOR i = 1 To it_mxbt
- amt = amt + incomemx[i].amt
- NEXT
- IF amt = 0 THEN
- rslt = 0
- arg_msg = "请输入金额"
- GOTO ext
- END IF
- IF f_check_inoutdate(0,billdate,False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF billtype = 1 Or billtype = 2 THEN
- IF itemid = 0 THEN
- rslt = 0
- arg_msg = "请选择收支项目"
- GOTO ext
- END IF
-
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_itemdef
- WHERE itemid = :itemid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- arg_msg = '查询项目资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF rep = '' THEN
- rslt = 0
- arg_msg = "请输入经手人"
- GOTO ext
- END IF
- IF banktypeid = 0 THEN
- rslt = 0
- arg_msg = "请选择结算方式"
- GOTO ext
- END IF
- IF accountsid = 0 THEN
- rslt = 0
- arg_msg = "请选择银行帐号"
- GOTO ext
- END IF
- SELECT moneyid
- INTO :rapmoneyid
- FROM u_accounts
- WHERE u_accounts.accountsid = :accountsid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- arg_msg = '查询当前的出纳帐号币种失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- SELECT Top 1 getdate() Into :server_datetime From u_user Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_user
- Where username = :arg_operator Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,操作员!"
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "操作员姓名未登记或已取消!"
- GOTO ext
- END IF
- opdate = server_datetime //填写单据建立时间(最近修改时间)
- ////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF billid = 0 THEN //新建
- ll_id = f_sys_scidentity(0,"U_emppay","billid",arg_msg,True,id_sqlca)
- IF ll_id <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- //取分部代号
- IF f_get_sccode(scid,commit_transaction,ls_sccode,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF billtype = 0 THEN
- billcode = getid(0,ls_sccode + 'SZ',Date(server_datetime),False,commit_transaction)
- ELSEIF billtype = 1 THEN
- billcode = getid(0,ls_sccode + 'JH',Date(server_datetime),False,commit_transaction)
- ELSEIF billtype = 2 THEN
- billcode = getid(0,ls_sccode + 'HH',Date(server_datetime),False,commit_transaction)
- END IF
-
- IF billcode = "err" THEN
- billcode = ''
- rslt = 0
- arg_msg = "无法获取单据编号"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- //读取新taskid
-
- INSERT INTO U_emppay
- ( billid,
- billcode,
- banktypeid,
- amt,
- accountsid,
- billdate,
- dscrp,
- rep,
- itemid,
- Opemp,
- Opdate,
- scid,
- relcode)
- VALUES
- (
- :ll_id,
- :billcode,
- :banktypeid,
- :amt,
- :accountsid,
- :billdate,
- :dscrp,
- :rep,
- :itemid,
- :arg_operator,
- :opdate,
- :scid,
- :relcode) Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "插入工资发放单操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- billid = ll_id
-
- ELSE //////////////////////////////////////////////// //更新
-
- UPDATE U_emppay
- SET
- billcode = :billcode,
- banktypeid = :banktypeid,
- amt = :amt,
- accountsid = :accountsid,
- billdate = :billdate,
- dscrp = :dscrp,
- rep = :rep,
- rapmoneyid = :rapmoneyid,
- itemid = :itemid,
- ModDate = getdate(),
- ModEmp = :arg_operator,
- relcode = :relcode,
- scid = :scid
- WHERE U_emppay.billID = :billID
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 Or commit_transaction.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "更新报价单操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- DELETE FROM U_emppay_mx
- Where U_emppay_mx.billid = :billid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有明细操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- END IF
- FOR i = 1 To it_mxbt
- INSERT INTO U_emppay_mx
- (billid,
- printid,
- amt,
- empid,
- mxdscrp,
- mstpayamt)
- VALUES (:billid,
- :incomemx[i].printid,
- :incomemx[i].amt,
- :incomemx[i].empid,
- :incomemx[i].mxdscrp,
- :incomemx[i].mstpayamt) Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- IF it_newbegin THEN billid = 0
- rslt = 0
- arg_msg = "插入工资发放单明细操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- NEXT
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- p_clearmx()
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT Using commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit);//add_dscrp(string arg_newdescppart)
- //0 fail 1 SUCCESS
- Int rslt = 1
- arg_newdescppart = Trim(arg_newdescppart)
- IF it_updatebegin Or it_newbegin THEN
- rslt = 0
- arG_MSG = "编辑状态下不可用"
- GOTO ext
- END IF
- IF arg_newdescppart = '' 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 <> 1 THEN
- rslt = 0
- arG_MSG = "待审核状态下不可用"
- GOTO ext
- END IF
- UPDATE U_emppay
- SET dscrp = ltrim(rtrim(dscrp))+' '+:arg_newdescppart
- Where U_emppay.billid = :arg_billid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "添加单据备注操作失败"+"~n"+commit_transaction.SQLErrText
- ROLLBACK Using commit_transaction;
- GOTO ext
- END IF
- IF relrapid > 0 THEN
- UPDATE u_rap_money
- SET dscrp = ltrim(rtrim(dscrp)) + ' '+:arg_newdescppart
- Where rapmoneyid = :relrapid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "添加相关出纳帐备注操作失败"+"~n"+commit_transaction.SQLErrText
- ROLLBACK Using commit_transaction;
- GOTO ext
- END IF
- END IF
- dscrp = dscrp+' '+arg_newdescppart
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF arg_ifcommit And rslt = 1 THEN
- COMMIT Using commit_transaction;
- END IF
- p_reset()
- Return (rslt)
- end function
- public function integer p_clearmx ();it_mxbt = 0
- return 1
- end function
- public function integer getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- Long i = 1 ,no_mxcheck
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- DECLARE cur_mx CURSOR FOR
- SELECT billid,printid, itemid, amt, empid, buildtype, relscid, relbillid, relbillcode,rel_dateint,mxdscrp
- FROM U_emppay_mx
- Where billid = :arg_billid Using commit_transaction;
-
- OPEN cur_mx;
- FETCH cur_mx INTO :incomemx[i].billid,
- :incomemx[i].printid,
- :incomemx[i].itemid,
- :incomemx[i].amt,
- :incomemx[i].empid,
- :incomemx[i].buildtype,
- :incomemx[i].relscid,
- :incomemx[i].relbillid,
- :incomemx[i].relbillcode,
- :incomemx[i].rel_dateint,
- :incomemx[i].mxdscrp;
-
- DO WHILE sqlca.SQLCode = 0
- i++
- FETCH cur_mx INTO :incomemx[i].billid,
- :incomemx[i].printid,
- :incomemx[i].itemid,
- :incomemx[i].amt,
- :incomemx[i].empid,
- :incomemx[i].buildtype,
- :incomemx[i].relscid,
- :incomemx[i].relbillid,
- :incomemx[i].relbillcode,
- :incomemx[i].rel_dateint,
- :incomemx[i].mxdscrp;
-
- LOOP
- CLOSE cur_mx;
- SELECT count(*) INTO :no_mxcheck
- FROM U_emppay_mx
- Where 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
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer audit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
- Int rslt = 1
- Long cnt = 0,ll_i
- uo_empinfo uo_ep
- uo_ep = Create uo_empinfo
- 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 flag <> 0 THEN
- rslt = 0
- arg_msg = "单据已经审核,操作取消"
- GOTO ext
- END IF
- FOR ll_i = 1 To it_mxbt
-
- IF uo_ep.uof_add_emppay( incomemx[ll_i].empid,billid,rapmoneyid,billcode,&
- billdate,incomemx[ll_i].amt,incomemx[ll_i].mxdscrp,1,False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- NEXT
- UPDATE U_emppay
- SET auditemp = :publ_operator ,
- auditdate = getdate(),
- flag = 1
- WHERE billid = :arg_billid
- AND flag = 0
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "单据审核操作失败 ~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- p_reset()
- Destroy uo_ep
- Return (rslt)
- end function
- public function integer cancelaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- DateTime nulldate
- Long ll_i
- SetNull(nulldate)
- uo_empinfo uo_ep
- uo_ep = Create uo_empinfo
- 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 flag <> 1 THEN
- rslt = 0
- arg_msg = "单据只有在已审核状态才可以执行撤消审核,请核对"
- GOTO ext
- END IF
- IF secflag = 1 THEN
- rslt = 0
- arg_msg = "单据已财务确认,不能执行撤消审核,请核对"
- GOTO ext
- END IF
- FOR ll_i = 1 To it_mxbt
- IF uo_ep.uof_del_emppay(incomemx[ll_i].empid,billid,rapmoneyid,billcode,1,False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- UPDATE U_emppay
- SET flag = 0,
- auditemp = '',
- auditdate = :nulldate
- WHERE U_emppay.billid = :arg_billid
- AND flag = 1
- AND secflag = 0
- Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "单据撤消审核操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLCode = 100 THEN
- rslt = 0
- arg_msg = "单据撤审失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- p_reset()
- Destroy uo_ep
- Return (rslt)
- end function
- public function integer secaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long cnt = 0
- Long ll_i
- Long ll_ref_rapmoneyid, ll_ref_dateint
- String ls_dscrp
- Dec ld_msttakeamt, ld_takeamt
- uo_iteminput uo_item
- uo_item = Create uo_iteminput
- uo_rapmoney uo_money
- uo_money = Create uo_rapmoney
- s_rap_money s_rap
- s_iteminput s_input
- 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 flag = 0 THEN
- rslt = 0
- ARG_MSG = "单据未审核,不能进行财务确认"
- GOTO ext
- END IF
- IF secflag = 1 THEN
- rslt = 0
- ARG_MSG = "单据已财务确认,请检查"
- GOTO ext
- END IF
- ///////////////////////////////////// //
- ls_dscrp = '工资发放单:' + billcode + ' 相关号:'+relcode+' ' +dscrp
- ld_msttakeamt = 0
- ld_takeamt = amt
- s_input.itemid = itemid
- s_input.dateint = 0
- s_input.outdate = billdate
- s_input.dscrp = ls_dscrp
- s_input.outamt = ld_takeamt
- s_input.accountsid = accountsid
- s_input.banktypeid = banktypeid
- s_input.billcode = billcode
- s_input.relcode = ''
- s_input.buildtype = 1
- s_input.opemp = publ_operator
- s_input.relrep = rep
- s_input.scid = scid
- IF uo_item.add_iteminput(s_input,ARG_MSG,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ll_ref_dateint = uo_item.ref_dateint
- s_rap.accountsid = accountsid
- s_rap.takedate = billdate
- s_rap.inrep = rep
- s_rap.dscrp = ls_dscrp
- s_rap.msttakeamt = ld_msttakeamt
- s_rap.takeamt = ld_takeamt
- s_rap.billcode = billcode
- s_rap.relcode = relcode
- s_rap.buildtype = 1
- s_rap.dcflag = 0
- s_rap.relid = 0
- s_rap.opemp = publ_operator
- s_rap.banktypeid = banktypeid
- s_rap.scid = scid
- IF uo_money.add_raprec(s_rap,ARG_MSG,False) = 0 THEN
- ARG_MSG = '增加出纳明细帐失败!~n' + ARG_MSG
- rslt = 0
- GOTO ext
- END IF
- ll_ref_rapmoneyid = uo_money.ref_rapid
- IF ll_ref_rapmoneyid = 0 THEN
- ARG_MSG = '增加出纳明细帐失败!'
- rslt = 0
- GOTO ext
- END IF
- UPDATE U_emppay
- SET secauditemp = :publ_operator ,
- secauditdate = getdate(),
- secflag = 1,
- relrapid = :ll_ref_rapmoneyid,
- ref_dateint = :ll_ref_dateint
- WHERE U_emppay.billid = :arg_billid
- AND U_emppay.secflag = 0
- AND U_emppay.flag = 1
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = "更单据审核操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- it_newbegin = False
- it_updatebegin = False
- ext:
- Destroy uo_item
- Destroy uo_money
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- p_reset()
- Return (rslt)
- end function
- public function integer cancelsecaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_i
- DateTime nulldate
- SetNull(nulldate)
- uo_iteminput uo_item
- uo_item = Create uo_iteminput
- uo_rapmoney uo_money
- uo_money = Create uo_rapmoney
- 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 secflag = 0 THEN
- rslt = 0
- arg_msg = "单据未财务确认,请检查"
- GOTO ext
- END IF
- IF relrapid > 0 THEN
- IF uo_money.del_raprec(relrapid,accountsid,1,arg_msg,False) = 0 THEN
- arg_msg = '删除出纳明细帐失败!~n' + arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF ref_dateint > 0 THEN
- IF uo_item.del_iteminput(itemid,ref_dateint,1,arg_msg,False) = 0 THEN
- arg_msg = '删除收支明细帐失败!~n' + arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- UPDATE U_emppay
- SET secflag = 0,
- secauditemp = '',
- secauditdate = :nulldate,
- relrapid = 0,
- ref_dateint = 0
- WHERE U_emppay.billid = :arg_billid
- AND secflag = 1
- Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "单据财务反确认操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- it_newbegin = False
- it_updatebegin = False
- ext:
- Destroy uo_item
- Destroy uo_money
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- p_reset()
- Return (rslt)
- end function
- public function integer acceptmx (long arg_empid, decimal arg_amt, decimal arg_mstpayamt, string arg_mxdscrp, ref string arg_msg);Int rslt = 1
- Long cnt
- Int li_ifdepart,li_ifemp
- IF it_newbegin = False And it_updatebegin = False THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- GOTO ext
- END IF
- it_mxbt++
- incomemx[it_mxbt].empid = arg_empid
- incomemx[it_mxbt].printid = it_mxbt
- incomemx[it_mxbt].amt = arg_amt
- incomemx[it_mxbt].mxdscrp = arg_mxdscrp
- incomemx[it_mxbt].mstpayamt = arg_mstpayamt
- ext:
- IF rslt = 0 THEN p_clearmx()
- RETURN rslt
- end function
- on uo_emppay.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_emppay.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|