123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- $PBExportHeader$uo_oaflowdef.sru
- forward
- global type uo_oaflowdef from nonvisualobject
- end type
- end forward
- global type uo_oaflowdef from nonvisualobject
- end type
- global uo_oaflowdef uo_oaflowdef
- type variables
- end variables
- forward prototypes
- public function integer uof_flow_del (long arg_flowid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_flow_add (s_oa_flow arg_s_oa_flow, ref string arg_msg, string arg_opemp, boolean arg_ifcommit)
- public function integer uof_flow_stepadd (s_oaflow_step arg_s_oaflow_step, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_flow_stepdel (long arg_flowid, long arg_flowsort, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer uof_flow_del (long arg_flowid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long ll_flowid
- Long cnt
- IF arg_flowid = 0 THEN
- rslt = 0
- arg_msg = '没有删除对象'
- GOTO ext
- END IF
- //检查
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM oa_doc
- Where Flowid = :arg_flowid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询流程是否已用于公文失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF cnt > 0 THEN
- arg_msg = "流程已用于公文,不能删除"
- rslt = 0
- GOTO ext
- END IF
- DELETE FROM oa_flowdef
- Where Flowid = :arg_flowid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "删除流程操作失败,请重试!"+'~n'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE FROM OA_FLOWDEF_STEP
- Where Flowid = :arg_flowid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "删除流程明细操作失败,请重试!"+'~n'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- DELETE FROM OA_FLOWDEF_STEPEMP
- Where Flowid = :arg_flowid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "删除流程明细已经指定的经办人操作失败,请重试!"+'~n'+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_flow_add (s_oa_flow arg_s_oa_flow, ref string arg_msg, string arg_opemp, boolean arg_ifcommit);Int rslt = 1
- Long ll_flowid
- If IsNull(arg_s_oa_flow.flowid) Then arg_s_oa_flow.flowid = 0
- If IsNull(arg_s_oa_flow.sortnum) Then arg_s_oa_flow.sortnum = ''
- If IsNull(arg_s_oa_flow.flowtype) Then arg_s_oa_flow.flowtype = ''
- If IsNull(arg_s_oa_flow.flowname) Then arg_s_oa_flow.flowname = ''
- If IsNull(arg_s_oa_flow.billtypead) Then arg_s_oa_flow.billtypead = 0
- If IsNull(arg_s_oa_flow.if_rivet) Then arg_s_oa_flow.if_rivet = 0
- If IsNull(arg_s_oa_flow.dscrp) Then arg_s_oa_flow.dscrp = ''
- If IsNull(arg_s_oa_flow.relation) Then arg_s_oa_flow.relation = ''
- If IsNull(arg_s_oa_flow.expression) Then arg_s_oa_flow.expression = ''
- If arg_s_oa_flow.sortnum = '' Then
- arg_msg = '请输入编号'
- rslt = 0
- Goto ext
- End If
- If arg_s_oa_flow.flowname = '' Then
- arg_msg = '请输入名称'
- rslt = 0
- Goto ext
- End If
- If arg_s_oa_flow.billtypead = 0 Then
- arg_s_oa_flow.relation = ''
- arg_s_oa_flow.expression = ''
- End If
- If arg_s_oa_flow.flowid = 0 Then
- ll_flowid = f_sys_scidentity(0,"oa_flowdef","flowid",arg_msg,True,id_sqlca)
- If ll_flowid <= 0 Then
- rslt = 0
- Goto ext
- End If
-
- Insert Into oa_flowdef
- (
- flowid,
- flowname,
- flowtype,
- dscrp,
- opemp,
- opdate,
- sortnum,
- if_rivet,
- billtypead,
- relation,
- expression)
- Values
- (
- :ll_flowid,
- :arg_s_oa_flow.flowname,
- :arg_s_oa_flow.flowtype,
- :arg_s_oa_flow.dscrp,
- :arg_opemp,
- getdate(),
- :arg_s_oa_flow.sortnum,
- :arg_s_oa_flow.if_rivet,
- :arg_s_oa_flow.billtypead,
- :arg_s_oa_flow.relation,
- :arg_s_oa_flow.expression);
-
- If sqlca.SQLCode <> 0 Then
- arg_msg = "流程新建失败,请重试!"+'~n'+sqlca.SQLErrText
- rslt = 0
- Goto ext
- End If
- Else
- Update oa_flowdef
- Set flowname = :arg_s_oa_flow.flowname ,
- flowtype = :arg_s_oa_flow.flowtype ,
- dscrp = :arg_s_oa_flow.dscrp ,
- modemp = :arg_opemp,
- moddate = getdate(),
- sortnum = :arg_s_oa_flow.sortnum,
- if_rivet = :arg_s_oa_flow.if_rivet,
- billtypead = :arg_s_oa_flow.billtypead,
- relation = :arg_s_oa_flow.relation,
- expression = :arg_s_oa_flow.expression
- Where flowid = :arg_s_oa_flow.flowid;
- If sqlca.SQLCode <> 0 Then
- arg_msg = "流程更新失败,请重试!"+'~n'+sqlca.SQLErrText
- rslt = 0
- Goto ext
- End If
-
- //如果是直接完成审批类型,不需要流程明细
- If arg_s_oa_flow.if_rivet = 2 Then
- Delete From OA_FLOWDEF_STEP
- Where flowid = :arg_s_oa_flow.flowid;
- If sqlca.SQLCode <> 0 Then
- arg_msg = "删除流程明细操作失败,请重试!"+'~n'+sqlca.SQLErrText
- rslt = 0
- Goto ext
- End If
- 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_flow_stepadd (s_oaflow_step arg_s_oaflow_step, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long i
- If IsNull(arg_s_oaflow_step.flowid) Then arg_s_oaflow_step.flowid = 0
- If IsNull(arg_s_oaflow_step.flowstepname) Then arg_s_oaflow_step.flowstepname = ''
- If IsNull(arg_s_oaflow_step.flowsort) Then arg_s_oaflow_step.flowsort = 0
- If IsNull(arg_s_oaflow_step.ifopflag) Then arg_s_oaflow_step.ifopflag = 0
- If IsNull(arg_s_oaflow_step.flowempstr) Then arg_s_oaflow_step.flowempstr = ''
- If IsNull(arg_s_oaflow_step.flowinfo) Then arg_s_oaflow_step.flowinfo = ''
- If IsNull(arg_s_oaflow_step.limithour) Then arg_s_oaflow_step.limithour = 0
- If IsNull(arg_s_oaflow_step.ifnecessary) Then arg_s_oaflow_step.ifnecessary = 0
- If IsNull(arg_s_oaflow_step.ifjoin) Then arg_s_oaflow_step.ifjoin = 0
- If IsNull(arg_s_oaflow_step.ifmod_relqty) Then arg_s_oaflow_step.ifmod_relqty = 0
- If arg_s_oaflow_step.flowid = 0 Then
- arg_msg = '错误的流程id,请检查'
- rslt = 0
- Goto ext
- End If
- If arg_s_oaflow_step.flowstepname = '' Then
- arg_msg = '请输入步骤名称'
- rslt = 0
- Goto ext
- End If
- If arg_s_oaflow_step.flowsort = 0 Then
- arg_msg = '请输入步骤'
- rslt = 0
- Goto ext
- End If
- //不是发起者处理的,需要选择具体人员
- If arg_s_oaflow_step.ifopflag = 0 Then
- If arg_s_oaflow_step.flowempstr = '' Then
- arg_msg = '请设置相关人员'
- rslt = 0
- Goto ext
- End If
-
- If UpperBound(arg_s_oaflow_step.empid) = 0 Then
- arg_msg = '请选择相关人员'
- rslt = 0
- Goto ext
- End If
- End If
- Insert Into oa_flowdef_step
- ( flowid,
- flowstepname,
- flowsort,
- flowempstr,
- ifopflag,
- flowinfo,
- limithour,
- ifnecessary,
- ifjoin,
- ifmod_relqty)
- Values(
- :arg_s_oaflow_step.flowid,
- :arg_s_oaflow_step.flowstepname,
- :arg_s_oaflow_step.flowsort,
- :arg_s_oaflow_step.flowempstr,
- :arg_s_oaflow_step.ifopflag,
- :arg_s_oaflow_step.flowinfo,
- :arg_s_oaflow_step.limithour,
- :arg_s_oaflow_step.ifnecessary,
- :arg_s_oaflow_step.ifjoin,
- :arg_s_oaflow_step.ifmod_relqty);
- If sqlca.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '新增步骤操作,'+sqlca.SQLErrText
- Goto ext
- End If
- For i = 1 To UpperBound(arg_s_oaflow_step.empid)
- Insert Into oa_flowdef_stepemp
- (flowid,
- flowsort,
- empid)
- Values(
- :arg_s_oaflow_step.flowid,
- :arg_s_oaflow_step.flowsort,
- :arg_s_oaflow_step.empid[i]);
- If sqlca.SQLCode <> 0 Then
- rslt = 0
- arg_msg = '新增步骤操作,'+sqlca.SQLErrText
- Goto ext
- End If
- Next
- ext:
- If rslt = 0 Then
- Rollback;
- ElseIf rslt = 1 And arg_ifcommit Then
- Commit;
- End If
- Return rslt
- end function
- public function integer uof_flow_stepdel (long arg_flowid, long arg_flowsort, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- //arg_flowsort = -1 全删
- IF IsNull(arg_flowid) THEN arg_flowid = 0
- IF IsNull(arg_flowsort) THEN arg_flowsort = 0
- IF arg_flowid = 0 THEN
- arg_msg = '错误的流程id,请检查'
- rslt = 0
- GOTO ext
- END IF
- IF arg_flowsort = 0 THEN
- arg_msg = '请错误的步骤,请检查'
- rslt = 0
- GOTO ext
- END IF
- DELETE FROM oa_flowdef_stepemp
- WHERE flowid = :arg_flowid
- AND (flowsort = :arg_flowsort or :arg_flowsort = -1);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除步骤人员操作失败,'+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM OA_FLOWDEF_STEP
- WHERE flowid = :arg_flowid
- AND (flowsort = :arg_flowsort or :arg_flowsort = -1);
- IF sqlca.SQLCode <> 0 THEN
- 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
- on uo_oaflowdef.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_oaflowdef.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|