$PBExportHeader$uo_rap_money_transfer.sru forward global type uo_rap_money_transfer from nonvisualobject end type type s_saleplanmx from structure within uo_rap_money_transfer end type end forward type s_saleplanmx from structure long mtrlid string mtrlcode long printid decimal { 10 } planqty string mxdscrp end type global type uo_rap_money_transfer from nonvisualobject end type global uo_rap_money_transfer uo_rap_money_transfer type variables Long uo_billid Int cwauditingflag = 0 //总账审核标记 DateTime cwauditingdate //总账审核时间 String cwauditingrep //总账审核操作员 end variables forward prototypes public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer updatebegin (long arg_billid, ref string arg_msg) public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg) public function integer p_getinfo (long arg_billid, ref s_rap_money_transfer arg_s_rap_money_transfer, ref string arg_msg) public function integer save (s_rap_money_transfer arg_s_transfer, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer secaudit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer csecaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg) public function integer c_audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg) end prototypes public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 s_rap_money_transfer arg_s_rap_money_transfer IF arg_billid <= 0 THEN rslt = 0 ARG_MSG = '错误单据唯一码' GOTO ext END IF IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN rslt = 0 GOTO ext END IF IF arg_s_rap_money_transfer.flag = 1 THEN rslt = 0 ARG_MSG = '单据已经审核,不可以删除' GOTO ext END IF DELETE FROM u_rap_money_transfer Where billid = :arg_billid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "删除单据操作失败"+"~n"+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 updatebegin (long arg_billid, ref string arg_msg);Int rslt = 1 s_rap_money_transfer arg_s_rap_money_transfer IF arg_billid <= 0 THEN rslt = 0 ARG_MSG = '错误单据唯一码' GOTO ext END IF IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN rslt = 0 GOTO ext END IF IF arg_s_rap_money_transfer.flag = 1 THEN rslt = 0 ARG_MSG = '单据已经审核,不可以修改,要修改请先撤销审核' GOTO ext END IF ext: RETURN rslt end function public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long it_mxbt uo_rapmoney uo_rap uo_rap = CREATE uo_rapmoney uo_rap.commit_transaction = sqlca s_rap_money_transfer arg_s_rap_money_transfer Long ll_rapmoneyid_out,ll_rapmoneyid_in,ll_native_out,ll_moneyid_in,ll_native_in string account_in,account_out IF arg_billid <= 0 THEN rslt = 0 ARG_MSG = '错误单据唯一码' GOTO ext END IF IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN rslt = 0 GOTO ext END IF IF arg_s_rap_money_transfer.flag = 1 THEN rslt = 0 ARG_MSG = '单据已经审核,不可以再审' GOTO ext END IF long ll_moneyid_out SELECT moneyid INTO :ll_moneyid_out FROM u_accounts Where accountsid = :arg_s_rap_money_transfer.accountid_out; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = '查询转出帐号币种失败,'+sqlca.SQLErrText GOTO ext END IF SELECT native INTO :ll_native_out FROM cw_currency Where moneyid = :ll_moneyid_out; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = '查询转出帐号币种属性失败,'+sqlca.SQLErrText GOTO ext END IF SELECT moneyid INTO :ll_moneyid_in FROM u_accounts Where accountsid = :arg_s_rap_money_transfer.accountid_in; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = '查询转入帐号币种失败,'+sqlca.SQLErrText GOTO ext END IF SELECT native INTO :ll_native_in FROM cw_currency Where moneyid = :ll_moneyid_in; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = '查询转入帐号币种属性失败,'+sqlca.SQLErrText GOTO ext END IF SELECT accountsname INTO :account_in FROM u_accounts Where accountsid = :arg_s_rap_money_transfer.accountid_in; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = '查询转入帐号名称失败,'+sqlca.SQLErrText GOTO ext END IF SELECT accountsname INTO :account_out FROM u_accounts Where accountsid = :arg_s_rap_money_transfer.accountid_out; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = '查询转出帐号名称失败,'+sqlca.SQLErrText GOTO ext END IF //更新审核标记 UPDATE u_rap_money_transfer SET permit_emp = :arg_opemp, permit_date = getdate(), flag = 1 WHERE billid = :arg_billid AND flag = 0; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF s_rap_money s_rap_out,s_rap_in //转出 s_rap_out.accountsid = arg_s_rap_money_transfer.accountid_out s_rap_out.rapid = 0 s_rap_out.takedate = arg_s_rap_money_transfer.checkdate s_rap_out.billcode = arg_s_rap_money_transfer.billcode // arg_s_rap_money_transfer.relcode s_rap_out.dscrp = '转帐单号:'+arg_s_rap_money_transfer.billcode+',转出:' + account_out + ',转入:' + account_in +',备注:'+arg_s_rap_money_transfer.dscrp s_rap_out.msttakeamt = 0 s_rap_out.takeamt = arg_s_rap_money_transfer.transferamt s_rap_out.inrep = arg_s_rap_money_transfer.checkemp s_rap_out.banktypeid = arg_s_rap_money_transfer.banktypeid s_rap_out.opemp = arg_opemp s_rap_out.buildtype = 1 s_rap_out.dcflag = 0 s_rap_out.relid = arg_s_rap_money_transfer.billid s_rap_out.relcode = arg_s_rap_money_transfer.relcode //IF uo_rap.add_raprec(s_rap_out,ARG_MSG,FALSE) = 0 THEN // ARG_MSG = '增加(转出)出纳明细帐失败!~n' + ARG_MSG // rslt = 0 // GOTO ext //END IF //scid 传-1进去 IF uo_rap.add_raprec(0,s_rap_out IF uo_rap.add_raprec(-1,s_rap_out.accountsid,s_rap_out.takedate,publ_operator,s_rap_out.dscrp,0,& s_rap_out.takeamt,s_rap_out.billcode,s_rap_out.buildtype,0,s_rap_out.relid,publ_operator,arg_msg,FALSE,s_rap_out.banktypeid,s_rap_out.relcode) = 0 THEN arg_msg = '增加出纳明细帐失败!~n' + arg_msg rslt = 0 GOTO ext END IF ll_rapmoneyid_out = uo_rap.ref_rapid IF ll_rapmoneyid_out = 0 THEN ARG_MSG = '增加(转出)出纳明细帐失败!' rslt = 0 GOTO ext END IF //转入 s_rap_in.accountsid = arg_s_rap_money_transfer.accountid_in s_rap_in.rapid = 0 s_rap_in.takedate = arg_s_rap_money_transfer.checkdate s_rap_in.billcode = arg_s_rap_money_transfer.billcode // arg_s_rap_money_transfer.relcode s_rap_in.dscrp = '转帐单号:'+arg_s_rap_money_transfer.billcode+',备注:'+arg_s_rap_money_transfer.dscrp //s_rap_in.msttakeamt = arg_s_rap_money_transfer.transferamt IF ll_native_out = 1 And ll_native_in = 0 THEN s_rap_in.msttakeamt = Round(arg_s_rap_money_transfer.transferamt/arg_s_rap_money_transfer.mrate,2) ELSE s_rap_in.msttakeamt = Round(arg_s_rap_money_transfer.transferamt * arg_s_rap_money_transfer.mrate,2) END IF s_rap_in.takeamt = 0 s_rap_in.inrep = arg_s_rap_money_transfer.checkemp s_rap_in.banktypeid = arg_s_rap_money_transfer.banktypeid s_rap_in.opemp = arg_opemp s_rap_in.buildtype = 1 s_rap_in.dcflag = 0 s_rap_in.relid = arg_s_rap_money_transfer.billid s_rap_in.relcode = arg_s_rap_money_transfer.relcode //IF uo_rap.add_raprec(s_rap_in,ARG_MSG,FALSE) = 0 THEN // ARG_MSG = '增加(转入)出纳明细帐失败!~n' + ARG_MSG // rslt = 0 // GOTO ext //END IF //scid 传-1进去IF uo_rap.add_raprec(0,s_rap_in IF uo_rap.add_raprec(-1,s_rap_in.accountsid,s_rap_in.takedate,publ_operator,s_rap_in.dscrp,s_rap_in.msttakeamt,& 0,s_rap_in.billcode,s_rap_in.buildtype,0,s_rap_in.relid,publ_operator,arg_msg,FALSE,s_rap_in.banktypeid,s_rap_in.relcode) = 0 THEN arg_msg = '增加出纳明细帐失败!~n' + arg_msg rslt = 0 GOTO ext END IF ll_rapmoneyid_in = uo_rap.ref_rapid IF ll_rapmoneyid_in = 0 THEN ARG_MSG = '增加(转入)出纳明细帐失败!' rslt = 0 GOTO ext END IF UPDATE u_rap_money_transfer SET rapmoneyid_in = :ll_rapmoneyid_in, rapmoneyid_out = :ll_rapmoneyid_out WHERE billid = :arg_billid; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = "因网络或其它原因导致更新单据转出转入相关资料失败操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF DESTROY uo_rap RETURN rslt end function public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg);Int rslt = 1 s_rap_money_transfer arg_s_rap_money_transfer IF arg_billid <= 0 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_s_rap_money_transfer,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF arg_s_rap_money_transfer.flag = 0 THEN rslt = 0 arg_msg = '转帐单未审核,不可以增加备注' GOTO ext END IF UPDATE u_rap_money_transfer SET DSCRP = DSCRP+' '+:arg_newdescppart WHERE u_rap_money_transfer.billid = :arg_billid AND flag = 1; IF SQLCA.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致添加备注操作失败"+"~n"+SQLCA.SQLErrText GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF Return (rslt) end function public function integer p_getinfo (long arg_billid, ref s_rap_money_transfer arg_s_rap_money_transfer, ref string arg_msg);Int rslt = 1 IF arg_billid <= 0 THEN rslt = 0 ARG_MSG = '错误单据唯一码' GOTO ext END IF SELECT u_rap_money_transfer.flag, u_rap_money_transfer.relcode, u_rap_money_transfer.banktypeid, u_rap_money_transfer.accountid_out, u_rap_money_transfer.accountid_in, u_rap_money_transfer.transferamt, u_rap_money_transfer.checkemp, u_rap_money_transfer.dscrp, u_rap_money_transfer.rapmoneyid_out, u_rap_money_transfer.rapmoneyid_in, u_rap_money_transfer.billcode, u_rap_money_transfer.checkdate, u_rap_money_transfer.secflag, u_rap_money_transfer.secemp, u_rap_money_transfer.secdate, u_rap_money_transfer.cwauditingflag, u_rap_money_transfer.cwauditingrep, u_rap_money_transfer.cwauditingdate, u_rap_money_transfer.mrate INTO :arg_s_rap_money_transfer.flag, :arg_s_rap_money_transfer.relcode, :arg_s_rap_money_transfer.banktypeid, :arg_s_rap_money_transfer.accountid_out, :arg_s_rap_money_transfer.accountid_in, :arg_s_rap_money_transfer.transferamt, :arg_s_rap_money_transfer.checkemp, :arg_s_rap_money_transfer.dscrp, :arg_s_rap_money_transfer.rapmoneyid_out, :arg_s_rap_money_transfer.rapmoneyid_in, :arg_s_rap_money_transfer.billcode, :arg_s_rap_money_transfer.checkdate, :arg_s_rap_money_transfer.secflag, :arg_s_rap_money_transfer.secemp, :arg_s_rap_money_transfer.secdate, :cwauditingflag, :cwauditingrep, :cwauditingdate, :arg_s_rap_money_transfer.mrate FROM u_rap_money_transfer Where u_rap_money_transfer.billid = :arg_billid; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = '查询单据内容失败(错误单据唯一码)' GOTO ext END IF ext: RETURN rslt end function public function integer save (s_rap_money_transfer arg_s_transfer, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1 DateTime server_dt Long ll_billid String ls_billcode Long cnt IF IsNull(arg_s_transfer.billid) THEN arg_s_transfer.billid = 0 IF IsNull(arg_s_transfer.relcode) THEN arg_s_transfer.relcode = '' IF IsNull(arg_s_transfer.banktypeid) THEN arg_s_transfer.banktypeid = 0 IF IsNull(arg_s_transfer.accountid_out) THEN arg_s_transfer.accountid_out = 0 IF IsNull(arg_s_transfer.accountid_in) THEN arg_s_transfer.accountid_in = 0 IF IsNull(arg_s_transfer.transferamt) THEN arg_s_transfer.transferamt = 0 IF IsNull(arg_s_transfer.dscrp) THEN arg_s_transfer.dscrp = '' IF IsNull(arg_s_transfer.checkemp) THEN arg_s_transfer.checkemp = '' IF IsNull(arg_s_transfer.mrate) THEN arg_s_transfer.mrate =1.00 cnt = 0 SELECT count(*) INTO :cnt FROM u_accounts Where accountsid = :arg_s_transfer.accountid_out; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询转出帐号资料失败,请检查' rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '转出帐号资料不存在或重复,请检查' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_accounts Where accountsid = :arg_s_transfer.accountid_in; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询转入帐号资料失败,请检查' rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '转入帐号资料不存在或重复,请检查' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM cw_banktype Where banktypeid = :arg_s_transfer.banktypeid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询结算方式资料失败,请检查' rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '结算方式资料不存在或重复,请检查' rslt = 0 GOTO ext END IF IF arg_s_transfer.checkemp = '' THEN arg_msg = '请输入经手人' rslt = 0 GOTO ext END IF IF arg_s_transfer.transferamt <= 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_transfer.billid = 0 THEN ll_billid = f_sys_scidentity(0,"u_rap_money_transfer","billid",arg_msg,TRUE,sqlca) IF ll_billid <= 0 THEN rslt = 0 GOTO ext END IF ls_billcode = getid(0,'TF',Date(server_dt),TRUE,sqlca) IF ls_billcode = "err" THEN rslt = 0 arg_msg = "无法获取单据编号"+"~n"+sqlca.SQLErrText GOTO ext END IF INSERT INTO u_rap_money_transfer (billid, billcode, checkdate, opdate, opemp, relcode, transferamt, banktypeid, accountid_out, checkemp, accountid_in, dscrp,mrate) VALUES ( :ll_billid, :ls_billcode, :arg_s_transfer.checkdate, getdate(), :arg_opemp, :arg_s_transfer.relcode, :arg_s_transfer.transferamt, :arg_s_transfer.banktypeid, :arg_s_transfer.accountid_out, :arg_s_transfer.checkemp, :arg_s_transfer.accountid_in, :arg_s_transfer.dscrp, :arg_s_transfer.mrate) ; IF sqlca.SQLCode <> 0 THEN rslt = 0 IF Pos(Lower(sqlca.SQLErrText),'PK_u_rap_money_transfer') > 0 THEN arg_msg = '建立转帐单操作失败,关键字单据ID重复' ELSEIF Pos(Lower(sqlca.SQLErrText),'IX_u_rap_money_transfer') > 0 THEN arg_msg = '建立转帐单操作失败,单据编号重复' ELSE arg_msg = "因网络或其它原因导致建立转帐单操作失败"+"~n"+sqlca.SQLErrText END IF GOTO ext END IF uo_billid = ll_billid ELSE UPDATE u_rap_money_transfer SET checkdate = :arg_s_transfer.checkdate, moddate = getdate(), modemp = :arg_opemp, relcode = :arg_s_transfer.relcode, accountid_in = :arg_s_transfer.accountid_in, transferamt = :arg_s_transfer.transferamt, banktypeid = :arg_s_transfer.banktypeid, checkemp = :arg_s_transfer.checkemp, dscrp = :arg_s_transfer.dscrp, accountid_out = :arg_s_transfer.accountid_out, mrate = :arg_s_transfer.mrate WHERE billid = :arg_s_transfer.billid AND flag = 0; IF sqlca.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致更新转帐单操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF uo_billid = arg_s_transfer.billid END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF arg_ifcommit AND rslt = 1 THEN COMMIT; END IF RETURN rslt end function public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 DateTime null_dt uo_rapmoney uo_rap uo_rap = CREATE uo_rapmoney uo_rap.commit_transaction = sqlca s_rap_money_transfer arg_s_rap_money_transfer SetNull(null_dt) IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN rslt = 0 GOTO ext END IF IF arg_s_rap_money_transfer.flag = 0 THEN rslt = 0 arg_msg = '单据未审核,不可以撤审' GOTO ext END IF UPDATE u_rap_money_transfer SET flag = 0, permit_emp = '', permit_date = :null_dt WHERE billid = :arg_billid AND flag = 1; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致单据撤消审核操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF //转出 IF uo_rap.del_raprec(arg_s_rap_money_transfer.rapmoneyid_out,arg_s_rap_money_transfer.accountid_out,1,arg_msg,FALSE) = 0 THEN arg_msg = '删除(转出)出纳明细帐失败!~n' + arg_msg rslt = 0 GOTO ext END IF //转入 IF uo_rap.del_raprec(arg_s_rap_money_transfer.rapmoneyid_in,arg_s_rap_money_transfer.accountid_in,1,arg_msg,FALSE) = 0 THEN arg_msg = '删除(转入)出纳明细帐失败!~n' + arg_msg rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF destroy uo_rap RETURN rslt end function public function integer secaudit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 s_rap_money_transfer arg_s_rap_money_transfer Long ll_rapmoneyid_out,ll_rapmoneyid_in IF arg_billid <= 0 THEN rslt = 0 ARG_MSG = '错误单据唯一码' GOTO ext END IF IF p_getinfo(arg_billid,arg_s_rap_money_transfer,ARG_MSG) = 0 THEN rslt = 0 GOTO ext END IF IF arg_s_rap_money_transfer.secflag = 1 THEN rslt = 0 ARG_MSG = '单据已经审核,不可以再审' GOTO ext END IF //更新审核标记 UPDATE u_rap_money_transfer SET secemp = :arg_opemp, secdate = getdate(), secflag = 1 WHERE billid = :arg_billid AND secflag = 0 and flag = 1; IF sqlca.SQLCode <> 0 THEN rslt = 0 ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+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 csecaudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 DateTime null_dt s_rap_money_transfer arg_s_rap_money_transfer SetNull(null_dt) IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF p_getinfo(arg_billid,arg_s_rap_money_transfer,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF arg_s_rap_money_transfer.secflag = 0 THEN rslt = 0 arg_msg = '单据未审核,不可以撤审' GOTO ext END IF UPDATE u_rap_money_transfer SET secflag = 0, secemp = '', secdate = :null_dt WHERE billid = :arg_billid AND secflag = 1 AND flag = 1; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致单据撤消审核操作失败"+"~n"+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 audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg);s_rap_money_transfer ss_rap_money_transfer Int rslt = 1,cnt = 0 IF arg_billid = 0 THEN rslt = 0 arg_msg = "没有审核对象" GOTO ext END IF IF p_getinfo(arg_billid,ss_rap_money_transfer,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF ss_rap_money_transfer.secflag = 0 THEN rslt = 0 arg_msg = "单据没有终审" GOTO ext END IF IF cwauditingflag = 1 THEN rslt = 0 arg_msg = "单据已经总账审核" GOTO ext END IF UPDATE u_rap_money_transfer SET cwauditingflag = 1, cwauditingdate = getdate(), cwauditingrep = :publ_operator Where ( u_rap_money_transfer.billid = :arg_billid ) Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致总账审核操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF ext: IF arg_ifcommit And rslt = 1 THEN COMMIT Using sqlca; END IF Return (rslt) end function public function integer c_audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg);s_rap_money_transfer ss_rap_money_transfer Int rslt = 1,cnt = 0 IF arg_billid = 0 THEN rslt = 0 arg_msg = "没有审核对象" GOTO ext END IF IF p_getinfo(arg_billid,ss_rap_money_transfer,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF ss_rap_money_transfer.secflag = 0 THEN rslt = 0 arg_msg = "单据没有终审" GOTO ext END IF IF cwauditingflag = 0 THEN rslt = 0 arg_msg = "单据没有总账审核" GOTO ext END IF IF cwauditingflag = 0 THEN rslt = 0 arg_msg = "单据没有总账审核" GOTO ext END IF UPDATE u_rap_money_transfer SET cwauditingflag = 0, cwauditingdate =null, cwauditingrep = '' WHERE ( u_rap_money_transfer.billid = :arg_billid ) Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致总账撤审操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF ext: IF arg_ifcommit And rslt = 1 THEN COMMIT Using sqlca; END IF Return (rslt) end function on uo_rap_money_transfer.create call super::create TriggerEvent( this, "constructor" ) end on on uo_rap_money_transfer.destroy TriggerEvent( this, "destructor" ) call super::destroy end on global type uo_incase from nonvisualobject end type