$PBExportHeader$uo_bmsttake_hedge.sru forward global type uo_bmsttake_hedge from nonvisualobject end type end forward global type uo_bmsttake_hedge from nonvisualobject end type global uo_bmsttake_hedge uo_bmsttake_hedge type variables long uo_billid string uo_billcode decimal ins_sumamt end variables forward prototypes public function integer p_getflag (long arg_billid, ref integer arg_flag, ref string arg_msg) 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 add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit) public function integer getinfo (long arg_billid, ref s_bmsttake_hedgemx arg_ref_mx[], ref long arg_arr_cnt, ref string arg_msg) public function integer audit (long arg_billid, 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 save (s_bmsttake_hedge arg_s_hedge, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) end prototypes public function integer p_getflag (long arg_billid, ref integer arg_flag, ref string arg_msg);Int rslt = 1 SELECT flag INTO :arg_flag FROM u_bmsttake_hedge WHERE billid = :arg_billid; IF sqlca.SQLCode <> 0 THEN ARG_MSG = '查询单据审核标记失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: RETURN rslt end function public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Int li_flag IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF p_getflag(arg_billid,li_flag,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF li_flag = 1 THEN rslt = 0 arg_msg = '单据不是在待审状态,不可以删除' GOTO ext END IF DELETE FROM u_bmsttake_hedge WHERE billid = :arg_billid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF DELETE FROM u_bmsttake_hedgemx 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 Int li_flag Long cnt IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF p_getflag(arg_billid,li_flag,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF li_flag = 1 THEN rslt = 0 arg_msg = '单据已经审核,不可以再修改' GOTO ext END IF ext: RETURN rslt end function public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Int li_flag If arg_newdescppart = '' Then rslt = 0 arG_MSG = "要添加内容为空,操作取消" Goto ext End If If p_getflag(arg_billid,li_flag,arG_MSG) = 0 Then rslt = 0 Goto ext End If If li_flag = 0 Then rslt = 0 arG_MSG = "待审核状态下不可用" Goto ext End If Update u_bmsttake_hedge Set DSCRP = DSCRP+' '+:arg_newdescppart Where u_bmsttake_hedge.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 getinfo (long arg_billid, ref s_bmsttake_hedgemx arg_ref_mx[], ref long arg_arr_cnt, ref string arg_msg);Int rslt = 1 Long i = 1 ,no_mxcheck = 0 If arg_billid <= 0 Then rslt = 0 arg_msg = '错误单据唯一码' Goto ext End If ins_sumamt = 0 Declare cur_mx Cursor For Select u_bmsttake_hedgemx.printid, u_bmsttake_hedgemx.cusid, u_bmsttake_hedgemx.amt, u_bmsttake_hedgemx.mxdscrp, u_bmsttake_hedgemx.reltakeid, u_bmsttake_hedgemx.salebillid, u_bmsttake_hedgemx.takeid, u_Bmsttake.Billcode, u_Bmsttake.banktypeid, u_bmsttake_hedgemx.moneyid, u_bmsttake_hedgemx.mrate From u_bmsttake_hedgemx LEFT Outer JOIN u_Bmsttake ON u_bmsttake_hedgemx.takeid = u_Bmsttake.takeid Where u_bmsttake_hedgemx.billid = :arg_billid; Open cur_mx; Fetch cur_mx Into :arg_ref_mx[i].printid, :arg_ref_mx[i].cusid, :arg_ref_mx[i].amt, :arg_ref_mx[i].mxdscrp, :arg_ref_mx[i].reltakeid, :arg_ref_mx[i].salebillid, :arg_ref_mx[i].takeid, :arg_ref_mx[i].billcode, :arg_ref_mx[i].banktypeid, :arg_ref_mx[i].moneyid, :arg_ref_mx[i].mrate; Do While sqlca.SQLCode = 0 ins_sumamt = ins_sumamt + arg_ref_mx[i].amt * arg_ref_mx[i].mrate i++ Fetch cur_mx Into :arg_ref_mx[i].printid, :arg_ref_mx[i].cusid, :arg_ref_mx[i].amt, :arg_ref_mx[i].mxdscrp, :arg_ref_mx[i].reltakeid, :arg_ref_mx[i].salebillid, :arg_ref_mx[i].takeid, :arg_ref_mx[i].billcode, :arg_ref_mx[i].banktypeid, :arg_ref_mx[i].moneyid, :arg_ref_mx[i].mrate; Loop Close cur_mx; //检验明细是否读入完整 Select count(*) Into :no_mxcheck From u_bmsttake_hedgemx Where billid = :arg_billid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = "查询操作失败,单据明细数量" Goto ext End If If i <> (no_mxcheck + 1) Then rslt = 0 arg_msg = "查询操作失败,单据明细内容" Goto ext End If arg_arr_cnt = i - 1 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 Int li_flag Long ll_arr_cnt Long ll_i Decimal ld_takeamt String ls_billcode, ls_billemp DateTime ld_billdate Long ll_cusid, ll_moneyid,ll_scid,ll_banktypeid Decimal ld_amt,ld_mrate Long ll_billtype string ls_dscrp s_bmsttake s_take uo_musttake uo_take uo_take = Create uo_musttake uo_salebill uo_bill uo_bill = Create uo_salebill IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误的单据唯一码' GOTO ext END IF IF p_getflag(arg_billid,li_flag,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF li_flag <> 0 THEN rslt = 0 arg_msg = '单据不是待审核状态,不可以再审' GOTO ext END IF SELECT billcode, billdate, billemp, cusid, moneyid, amt, scid, mrate, billtype, dscrp INTO :ls_billcode, :ld_billdate, :ls_billemp, :ll_cusid, :ll_moneyid, :ld_amt, :ll_scid, :ld_mrate, :ll_billtype, :ls_dscrp FROM u_bmsttake_hedge Where billid = :arg_billid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询单据信息失败,'+sqlca.SQLErrText GOTO ext END IF //ld_mrate = f_get_mrate(ll_moneyid) //if ld_mrate = 0 then // rslt = 0 // arg_msg = '错误的币种汇率' // goto ext //end if s_bmsttake_hedgemx s_mx[] IF getinfo(arg_billid,s_mx,ll_arr_cnt,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF FOR ll_i = 1 To ll_arr_cnt IF ll_i = 1 THEN ll_banktypeid = s_mx[ll_i].banktypeid END IF IF ll_billtype = 0 THEN SELECT takeamt INTO :ld_takeamt FROM U_Bmsttake Where takeid = :s_mx[ll_i].takeid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '第'+String(ll_i)+'行,查询应收帐信息失败,'+sqlca.SQLErrText GOTO ext END IF IF ld_takeamt > 0 THEN rslt = 0 arg_msg = '第'+String(ll_i)+'行,应收帐已有已收金额,不能使用本单据冲帐' GOTO ext END IF END IF //增加对冲应收帐 s_take.scid = ll_scid s_take.cusid = s_mx[ll_i].cusid s_take.takedate = ld_billdate s_take.inrep = ls_billemp IF ll_billtype = 0 THEN s_take.oriamt = 0 - s_mx[ll_i].amt s_take.msttakeamt = 0 - s_mx[ll_i].amt s_take.takeamt = 0 ELSE s_take.oriamt = s_mx[ll_i].amt s_take.msttakeamt = 0 s_take.takeamt = 0 - s_mx[ll_i].amt END IF s_take.dscrp = ls_dscrp s_take.billcode = ls_billcode s_take.relcode = '' s_take.banktypeid = s_mx[ll_i].banktypeid s_take.opemp = publ_operator s_take.buildtype = 5 s_take.outwareid = 0 s_take.accountsid = 0 s_take.itemid = 0 s_take.moneyid = s_mx[ll_i].moneyid s_take.mrate = s_mx[ll_i].mrate IF uo_take.add_takerec (s_take,arg_msg,False) = 0 THEN arg_msg = '第'+String(ll_i)+'行,'+arg_msg rslt = 0 GOTO ext END IF //对单 IF uo_bill.newbegin() = 0 THEN rslt = 0 GOTO ext END IF uo_bill.opemp = publ_operator uo_bill.takedate = ld_billdate uo_bill.relcode = '' uo_bill.inrep = publ_operator uo_bill.banktypeid = s_mx[ll_i].banktypeid uo_bill.dscrp = ls_dscrp uo_bill.cusid = s_mx[ll_i].cusid uo_bill.msttakeamt = 0 uo_bill.takeamt = 0 uo_bill.accountsid = 0 uo_bill.itemid = 0 IF ll_billtype = 0 THEN IF uo_bill.acceptmx(s_mx[ll_i].takeid,& s_mx[ll_i].billcode,& 0,& s_mx[ll_i].amt,& s_mx[ll_i].amt,& s_mx[ll_i].amt,& 0,& ls_billcode,& ll_moneyid,& ld_mrate,& '',& arg_msg) = 0 THEN arg_msg = '第'+String(ll_i)+'行,'+arg_msg rslt = 0 GOTO ext END IF IF uo_bill.acceptmx(uo_take.ref_takeid,& ls_billcode,& 0,& 0 - s_mx[ll_i].amt,& 0 - s_mx[ll_i].amt,& 0 - s_mx[ll_i].amt,& 0,& s_mx[ll_i].billcode,& ll_moneyid,& ld_mrate,& '',& arg_msg) = 0 THEN arg_msg = '第'+String(ll_i)+'行,'+arg_msg rslt = 0 GOTO ext END IF ELSE IF uo_bill.acceptmx(s_mx[ll_i].takeid,& s_mx[ll_i].billcode,& 0,& 0 - s_mx[ll_i].amt,& 0 - s_mx[ll_i].amt,& 0,& s_mx[ll_i].amt,& ls_billcode,& ll_moneyid,& ld_mrate,& '',& arg_msg) = 0 THEN arg_msg = '第'+String(ll_i)+'行,'+arg_msg rslt = 0 GOTO ext END IF IF uo_bill.acceptmx(uo_take.ref_takeid,& ls_billcode,& 0,& s_mx[ll_i].amt,& s_mx[ll_i].amt,& 0,& 0 - s_mx[ll_i].amt,& s_mx[ll_i].billcode,& ll_moneyid,& ld_mrate,& '',& arg_msg) = 0 THEN arg_msg = '第'+String(ll_i)+'行,'+arg_msg rslt = 0 GOTO ext END IF END IF IF uo_bill.Save(arg_msg,False) = 0 THEN arg_msg = '第'+String(ll_i)+'行,'+arg_msg rslt = 0 GOTO ext END IF //记录相关ID UPDATE u_bmsttake_hedgemx SET reltakeid = :uo_take.ref_takeid, salebillid = :uo_bill.salebillid WHERE billid = :arg_billid And printid = :s_mx[ll_i].printid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '第'+String(ll_i)+'行,更新相关应收帐唯一码失败(明细),'+sqlca.SQLErrText GOTO ext END IF NEXT //增加调入客户应收帐 s_take.scid = ll_scid s_take.cusid = ll_cusid s_take.takedate = ld_billdate s_take.inrep = ls_billemp IF ll_billtype = 0 THEN s_take.oriamt = ins_sumamt / ld_mrate s_take.msttakeamt = ins_sumamt / ld_mrate s_take.takeamt = 0 ELSE s_take.oriamt = 0 - ins_sumamt / ld_mrate s_take.msttakeamt = 0 s_take.takeamt = ins_sumamt / ld_mrate END IF s_take.dscrp = ls_dscrp s_take.billcode = ls_billcode s_take.relcode = '' s_take.banktypeid = ll_banktypeid s_take.opemp = publ_operator s_take.buildtype = 5 s_take.outwareid = 0 s_take.accountsid = 0 s_take.itemid = 0 s_take.moneyid = ll_moneyid s_take.mrate = ld_mrate IF uo_take.add_takerec (s_take,arg_msg,False) = 0 THEN arg_msg = '更新调入客户应收帐失败,'+arg_msg rslt = 0 GOTO ext END IF UPDATE u_bmsttake_hedge SET auditemp = :arg_opemp, auditdate = getdate(), flag = 1, reltakeid = :uo_take.ref_takeid WHERE billid = :arg_billid And flag = 0 ; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '单据审核操作失败,'+sqlca.SQLErrText GOTO ext ELSEIF sqlca.SQLNRows = 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 caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt rslt = 1 Int li_flag,li_flag_bill DateTime null_datetime SetNull(null_datetime) String ls_billcode DateTime ld_billdate String ls_billemp Long ll_cusid, ll_moneyid, ll_scid,ll_arr_cnt Decimal ld_amt Long ll_i,ll_reltakeid uo_musttake uo_take uo_take = Create uo_musttake uo_salebill uo_bill uo_bill = Create uo_salebill If arg_billid <= 0 Then rslt = 0 arg_msg = '错误的单据唯一码' Goto ext End If If p_getflag(arg_billid,li_flag,arg_msg) = 0 Then rslt = 0 Goto ext End If If li_flag <> 1 Then rslt = 0 arg_msg = '单据不是审核状态,不可以撤审' Goto ext End If Select billcode, billdate, billemp, cusid, moneyid, amt,scid,reltakeid Into :ls_billcode, :ld_billdate, :ls_billemp, :ll_cusid, :ll_moneyid, :ld_amt,:ll_scid,:ll_reltakeid From u_bmsttake_hedge Where billid = :arg_billid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询单据信息失败,'+sqlca.SQLErrText Goto ext End If s_bmsttake_hedgemx s_mx[] If getinfo(arg_billid,s_mx,ll_arr_cnt,arg_msg) = 0 Then rslt = 0 Goto ext End If For ll_i = 1 To ll_arr_cnt //删除对数单 Select flag Into :li_flag_bill From u_salebill Where salebillid = :s_mx[ll_i].salebillid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第'+String(ll_i)+'行,查询相关应收对数单状态失败,'+sqlca.SQLErrText Goto ext End If If li_flag_bill = 1 Then If uo_bill.c_auditing(s_mx[ll_i].salebillid,publ_operator,arg_msg,False) = 0 Then rslt = 0 arg_msg = '第'+String(ll_i)+'行,'+arg_msg Goto ext End If End If If uo_bill.del(s_mx[ll_i].salebillid,arg_msg,False) = 0 Then rslt = 0 arg_msg = '第'+String(ll_i)+'行,'+arg_msg Goto ext End If //删除应收帐 If s_mx[ll_i].reltakeid > 0 Then If uo_take.del_takerec(ll_scid,1,s_mx[ll_i].reltakeid,s_mx[ll_i].cusid,arg_msg,False) = 0 Then rslt = 0 Goto ext End If End If Update u_bmsttake_hedgemx Set reltakeid = 0, salebillid = 0 Where billid = :arg_billid And printid = :s_mx[ll_i].printid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第'+String(ll_i)+'行,更新相关应收帐唯一码失败(明细),'+sqlca.SQLErrText Goto ext End If Next If ll_reltakeid > 0 Then If uo_take.del_takerec(ll_scid,1,ll_reltakeid,ll_cusid,arg_msg,False) = 0 Then rslt = 0 Goto ext End If End If Update u_bmsttake_hedge Set auditemp = '', auditdate = :null_datetime, flag = 0, reltakeid = 0 Where billid = :arg_billid And flag = 1 ; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '撤审核操作失败,'+sqlca.SQLErrText Goto ext ElseIf sqlca.SQLNRows = 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 save (s_bmsttake_hedge arg_s_hedge, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long ll_i Long it_mxbt DateTime server_dt Long ll_billid String ls_billcode,ls_sccode Decimal ld_sum_amt IF IsNull(arg_s_hedge.scid) THEN arg_s_hedge.scid = 0 IF IsNull(arg_s_hedge.billid) THEN arg_s_hedge.billid = 0 IF IsNull(arg_s_hedge.billemp) THEN arg_s_hedge.billemp = '' IF IsNull(arg_s_hedge.relcode) THEN arg_s_hedge.relcode = '' IF IsNull(arg_s_hedge.billtype) THEN arg_s_hedge.billtype = 0 IF IsNull(arg_s_hedge.cusid) THEN arg_s_hedge.cusid = 0 IF IsNull(arg_s_hedge.moneyid) THEN arg_s_hedge.moneyid = 0 IF IsNull(arg_s_hedge.amt) THEN arg_s_hedge.amt = 0 IF IsNull(arg_s_hedge.dscrp) THEN arg_s_hedge.dscrp = '' IF IsNull(arg_s_hedge.mrate) THEN arg_s_hedge.mrate = 1 IF arg_s_hedge.billemp = '' THEN arg_msg = '请输入经手人' rslt = 0 GOTO ext END IF it_mxbt = UpperBound(arg_s_hedge.arg_s_mx) IF it_mxbt = 0 THEN rslt = 0 arg_msg = '没有明细内容' GOTO ext END IF ld_sum_amt = 0 FOR ll_i = 1 To it_mxbt IF arg_s_hedge.arg_s_mx[ll_i].cusid = arg_s_hedge.cusid THEN rslt = 0 arg_msg = '第'+String(ll_i)+'行,明细客户不能与应收调入客户相同' GOTO ext END IF ld_sum_amt = ld_sum_amt + arg_s_hedge.arg_s_mx[ll_i].amt * arg_s_hedge.arg_s_mx[ll_i].mrate NEXT IF ld_sum_amt = 0 THEN rslt = 0 arg_msg = '合计金额为0,不能保存' GOTO ext END IF arg_s_hedge.amt = ld_sum_amt 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_hedge.billid = 0 THEN ll_billid = f_sys_scidentity(0,"u_bmsttake_hedge","billid",arg_msg,True,id_sqlca) IF ll_billid <= 0 THEN rslt = 0 GOTO ext END IF IF f_get_sccode(arg_s_hedge.scid,sqlca,ls_sccode,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF ls_billcode = getid(arg_s_hedge.scid,ls_sccode + 'HB',Date(server_dt),False,sqlca) IF ls_billcode = "err" THEN rslt = 0 arg_msg = "无法获取单据编号"+"~n"+sqlca.SQLErrText GOTO ext END IF INSERT INTO u_bmsttake_hedge (scid, billid, billcode, billdate, billemp, relcode, billtype, cusid, moneyid, amt, dscrp, opemp, opdate, mrate) VALUES (:arg_s_hedge.scid, :ll_billid, :ls_billcode, :arg_s_hedge.billdate, :arg_s_hedge.billemp, :arg_s_hedge.relcode, :arg_s_hedge.billtype, :arg_s_hedge.cusid, :arg_s_hedge.moneyid, :arg_s_hedge.amt, :arg_s_hedge.dscrp, :arg_opemp, :server_dt, :arg_s_hedge.mrate); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致建立单据操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF FOR ll_i = 1 To it_mxbt INSERT INTO u_bmsttake_hedgemx (billid, printid, cusid, takeid, amt, mxdscrp, moneyid, mrate) VALUES (:ll_billid, :arg_s_hedge.arg_s_mx[ll_i].printid, :arg_s_hedge.arg_s_mx[ll_i].cusid, :arg_s_hedge.arg_s_mx[ll_i].takeid, :arg_s_hedge.arg_s_mx[ll_i].amt, :arg_s_hedge.arg_s_mx[ll_i].mxdscrp, :arg_s_hedge.arg_s_mx[ll_i].moneyid, :arg_s_hedge.arg_s_mx[ll_i].mrate); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF NEXT uo_billid = ll_billid uo_billcode = ls_billcode ELSE UPDATE u_bmsttake_hedge SET billdate = :arg_s_hedge.billdate, billemp = :arg_s_hedge.billemp, relcode = :arg_s_hedge.relcode, cusid = :arg_s_hedge.cusid, moneyid = :arg_s_hedge.moneyid, amt = :arg_s_hedge.amt, dscrp = :arg_s_hedge.dscrp, modemp = :arg_opemp, moddate = :server_dt, mrate = :arg_s_hedge.mrate WHERE billid = :arg_s_hedge.billid And flag = 0 ; IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF DELETE FROM u_bmsttake_hedgemx Where billid = :arg_s_hedge.billid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "删除原有明细操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF FOR ll_i = 1 To it_mxbt INSERT INTO u_bmsttake_hedgemx (billid, printid, cusid, takeid, amt, mxdscrp, moneyid, mrate) VALUES (:arg_s_hedge.billid, :arg_s_hedge.arg_s_mx[ll_i].printid, :arg_s_hedge.arg_s_mx[ll_i].cusid, :arg_s_hedge.arg_s_mx[ll_i].takeid, :arg_s_hedge.arg_s_mx[ll_i].amt, :arg_s_hedge.arg_s_mx[ll_i].mxdscrp, :arg_s_hedge.arg_s_mx[ll_i].moneyid, :arg_s_hedge.arg_s_mx[ll_i].mrate); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF NEXT uo_billid = arg_s_hedge.billid END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF arg_ifcommit And rslt = 1 THEN COMMIT; END IF RETURN rslt end function on uo_bmsttake_hedge.create call super::create TriggerEvent( this, "constructor" ) end on on uo_bmsttake_hedge.destroy TriggerEvent( this, "destructor" ) call super::destroy end on