IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[order_46_902_wrklink_before]') AND type = 'P')
DROP PROCEDURE [dbo].[order_46_902_wrklink_before]
GO

-- 生成时间:2018-05-17 09:23:37 by ebs-core  
CREATE  procedure order_46_902_wrklink_before(
     @cmpid int, 
     @useruid int,
     @bizid int, 
     @ordid bigint, 
     @wrkid int, 
     @jbid bigint, 
     @wsid int, 
     @wsstatus nvarchar(50), 
     @operation varchar(50) output, 
     @errorinfo nvarchar(4000) output
  ) 
as  
begin  
set nocount on  
declare @nonedate datetime 
set @nonedate = CONVERT(datetime,'1910-1-1')
declare @ord2group2 nvarchar(50) 
set @ord2group2 = '' 
declare @sys_recid bigint 
set @sys_recid = 0 
 set @operation = 'continue'
 set @errorinfo = '' 
 --- 以下是预处理事件中的临时表
 
exec drop_temp_table '#master' 
select * into #master from order_46 where ord_id=@ordid 
 ---- 以下是开发人员写的 before link job 事件 --------------
 /*根据分公司、部门、岗位 找到mps_depart_title 的dt_id .
如果没有找到，不允许提交
当业务步骤提交时，记账功能来实现人员编制（mps_account）信息的变更*/
update #master
setord_bgid = dt_id
frommps_depart with(nolock),
mps_title  with(nolock),
mps_depart_title  with(nolock),
mps_groupbranch  with(nolock)
where bc_cmpid = 1
and ord_bcid = dp_bcid
and ord_bm = dp_depart
and ord_zw = ot_title
and ot_id = dt_otid 
and dp_id = dt_dpid
and ord_bcid = bc_id

update #master
setord_bgid = dt_id
frommps_depart with(nolock),
mps_title  with(nolock),
mps_depart_title  with(nolock),
mps_groupbranch  with(nolock)
where bc_cmpid = 1
and ord_bcid = dp_bcid
and ord_zb = dp_depart
and ord_zw = ot_title
and ot_id = dt_otid 
and dp_id = dt_dpid
and ord_bcid = bc_id

if exists(select 1 from #master where isnull(ord_bgid,0)= 0)
begin
set @operation ='abort'
set @errorinfo ='在当前公司中没有找到所选部门及岗位'
end



 ---- 以上是开发人员写的 before libk job 事件 --------------
 
 if (@operation='continue') 
 begin
 set @nonedate= @nonedate  -- here useless 
 
update old set 
ord_createcuid=case when new.ord_createcuid is null or new.ord_createcuid = -999999999  then old.ord_createcuid else new.ord_createcuid end,ord_createdpid=case when new.ord_createdpid is null or new.ord_createdpid = -999999999  then old.ord_createdpid else new.ord_createdpid end,ord_fbizid=case when new.ord_fbizid is null or new.ord_fbizid = -999999999  then old.ord_fbizid else new.ord_fbizid end,ord_ford2tag=case when new.ord_ford2tag is null or new.ord_ford2tag = -999999999  then old.ord_ford2tag else new.ord_ford2tag end,ord_noi=case when new.ord_noi is null or new.ord_noi = -999999999  then old.ord_noi else new.ord_noi end,ord_rbizid=case when new.ord_rbizid is null or new.ord_rbizid = -999999999  then old.ord_rbizid else new.ord_rbizid end,ord_bgid=case when new.ord_bgid is null or new.ord_bgid = -999999999  then old.ord_bgid else new.ord_bgid end,ord_rord2tag=case when new.ord_rord2tag is null or new.ord_rord2tag = -999999999  then old.ord_rord2tag else new.ord_rord2tag end,ord_security=case when new.ord_security is null or new.ord_security = -999999999  then old.ord_security else new.ord_security end,ord_style=case when new.ord_style is null or new.ord_style = -999999999  then old.ord_style else new.ord_style end,ord_templateid=case when new.ord_templateid is null or new.ord_templateid = -999999999  then old.ord_templateid else new.ord_templateid end,ord_cuid=case when new.ord_cuid is null or new.ord_cuid = -999999999  then old.ord_cuid else new.ord_cuid end,ord_dpid=case when new.ord_dpid is null or new.ord_dpid = -999999999  then old.ord_dpid else new.ord_dpid end,ord_enddate=case when new.ord_enddate is null or new.ord_enddate = @nonedate then old.ord_enddate else new.ord_enddate end,ord_sqsj=case when new.ord_sqsj is null or new.ord_sqsj = @nonedate then old.ord_sqsj else new.ord_sqsj end,ord_yjlzsj=case when new.ord_yjlzsj is null or new.ord_yjlzsj = @nonedate then old.ord_yjlzsj else new.ord_yjlzsj end,ord_lzsj=case when new.ord_lzsj is null or new.ord_lzsj = @nonedate then old.ord_lzsj else new.ord_lzsj end,ord_gzsj=case when new.ord_gzsj is null or new.ord_gzsj = @nonedate then old.ord_gzsj else new.ord_gzsj end,ord_rzsj1=case when new.ord_rzsj1 is null or new.ord_rzsj1 = @nonedate then old.ord_rzsj1 else new.ord_rzsj1 end,ord_cbid=case when new.ord_cbid is null or new.ord_cbid = -999999999  then old.ord_cbid else new.ord_cbid end,ord_fjbid=case when new.ord_fjbid is null or new.ord_fjbid = -999999999  then old.ord_fjbid else new.ord_fjbid end,ord_ford2id=case when new.ord_ford2id is null or new.ord_ford2id = -999999999  then old.ord_ford2id else new.ord_ford2id end,ord_fordid=case when new.ord_fordid is null or new.ord_fordid = -999999999  then old.ord_fordid else new.ord_fordid end,ord_rord2id=case when new.ord_rord2id is null or new.ord_rord2id = -999999999  then old.ord_rord2id else new.ord_rord2id end,ord_rordid=case when new.ord_rordid is null or new.ord_rordid = -999999999  then old.ord_rordid else new.ord_rordid end,ord_fzcuid=case when new.ord_fzcuid is null or new.ord_fzcuid = -999999999  then old.ord_fzcuid else new.ord_fzcuid end,ord_fcuid=case when new.ord_fcuid is null or new.ord_fcuid = -999999999  then old.ord_fcuid else new.ord_fcuid end,ord_ftype=case when new.ord_ftype is null or new.ord_ftype = '_none_'  then old.ord_ftype else new.ord_ftype end,ord_key=case when new.ord_key is null or new.ord_key = '_none_'  then old.ord_key else new.ord_key end,ord_no=case when new.ord_no is null or new.ord_no = '_none_'  then old.ord_no else new.ord_no end,ord_rtype=case when new.ord_rtype is null or new.ord_rtype = '_none_'  then old.ord_rtype else new.ord_rtype end,ord_bm=case when new.ord_bm is null or new.ord_bm = '_none_'  then old.ord_bm else new.ord_bm end,ord_branch=case when new.ord_branch is null or new.ord_branch = '_none_'  then old.ord_branch else new.ord_branch end,ord_createbizids=case when new.ord_createbizids is null or new.ord_createbizids = '_none_'  then old.ord_createbizids else new.ord_createbizids end,ord_createdepart=case when new.ord_createdepart is null or new.ord_createdepart = '_none_'  then old.ord_createdepart else new.ord_createdepart end,ord_creator=case when new.ord_creator is null or new.ord_creator = '_none_'  then old.ord_creator else new.ord_creator end,ord_gh=case when new.ord_gh is null or new.ord_gh = '_none_'  then old.ord_gh else new.ord_gh end,ord_gzjjr=case when new.ord_gzjjr is null or new.ord_gzjjr = '_none_'  then old.ord_gzjjr else new.ord_gzjjr end,ord_jjx=case when new.ord_jjx is null or new.ord_jjx = '_none_'  then old.ord_jjx else new.ord_jjx end,ord_gzjl=case when new.ord_gzjl is null or new.ord_gzjl = '_none_'  then old.ord_gzjl else new.ord_gzjl end,ord_gzr=case when new.ord_gzr is null or new.ord_gzr = '_none_'  then old.ord_gzr else new.ord_gzr end,ord_gzrgh=case when new.ord_gzrgh is null or new.ord_gzrgh = '_none_'  then old.ord_gzrgh else new.ord_gzrgh end,ord_lzgzlx=case when new.ord_lzgzlx is null or new.ord_lzgzlx = '_none_'  then old.ord_lzgzlx else new.ord_lzgzlx end,ord_lzlb=case when new.ord_lzlb is null or new.ord_lzlb = '_none_'  then old.ord_lzlb else new.ord_lzlb end,ord_bz=case when new.ord_bz is null or new.ord_bz = '_none_'  then old.ord_bz else new.ord_bz end,ord_depart=case when new.ord_depart is null or new.ord_depart = '_none_'  then old.ord_depart else new.ord_depart end,ord_empname=case when new.ord_empname is null or new.ord_empname = '_none_'  then old.ord_empname else new.ord_empname end,ord_tx=case when new.ord_tx is null or new.ord_tx = '_none_'  then old.ord_tx else new.ord_tx end,ord_zb=case when new.ord_zb is null or new.ord_zb = '_none_'  then old.ord_zb else new.ord_zb end,ord_bmfzryj=case when new.ord_bmfzryj is null or new.ord_bmfzryj = '_none_'  then old.ord_bmfzryj else new.ord_bmfzryj end,ord_gzfs=case when new.ord_gzfs is null or new.ord_gzfs = '_none_'  then old.ord_gzfs else new.ord_gzfs end,ord_status=case when new.ord_status is null or new.ord_status = '_none_'  then old.ord_status else new.ord_status end,ord_template=case when new.ord_template is null or new.ord_template = '_none_'  then old.ord_template else new.ord_template end,ord_title=case when new.ord_title is null or new.ord_title = '_none_'  then old.ord_title else new.ord_title end,ord_type=case when new.ord_type is null or new.ord_type = '_none_'  then old.ord_type else new.ord_type end,ord_xm=case when new.ord_xm is null or new.ord_xm = '_none_'  then old.ord_xm else new.ord_xm end,ord_zw=case when new.ord_zw is null or new.ord_zw = '_none_'  then old.ord_zw else new.ord_zw end,ord_lzfs=case when new.ord_lzfs is null or new.ord_lzfs = '_none_'  then old.ord_lzfs else new.ord_lzfs end,ord_lzlx=case when new.ord_lzlx is null or new.ord_lzlx = '_none_'  then old.ord_lzlx else new.ord_lzlx end,ord_lzsh=case when new.ord_lzsh is null or new.ord_lzsh = '_none_'  then old.ord_lzsh else new.ord_lzsh end,ord_lzyy=case when new.ord_lzyy is null or new.ord_lzyy = '_none_'  then old.ord_lzyy else new.ord_lzyy end,ord_lzyylx=case when new.ord_lzyylx is null or new.ord_lzyylx = '_none_'  then old.ord_lzyylx else new.ord_lzyylx end,ord_rzsj=case when new.ord_rzsj is null or new.ord_rzsj = '_none_'  then old.ord_rzsj else new.ord_rzsj end,ord_jjlxr=case when new.ord_jjlxr is null or new.ord_jjlxr = '_none_'  then old.ord_jjlxr else new.ord_jjlxr end,ord_jjqk=case when new.ord_jjqk is null or new.ord_jjqk = '_none_'  then old.ord_jjqk else new.ord_jjqk end,ord_jy=case when new.ord_jy is null or new.ord_jy = '_none_'  then old.ord_jy else new.ord_jy end,ord_jylx=case when new.ord_jylx is null or new.ord_jylx = '_none_'  then old.ord_jylx else new.ord_jylx end,ord_lxdh=case when new.ord_lxdh is null or new.ord_lxdh = '_none_'  then old.ord_lxdh else new.ord_lxdh end,ord_lxrdh1=case when new.ord_lxrdh1 is null or new.ord_lxrdh1 = '_none_'  then old.ord_lxrdh1 else new.ord_lxrdh1 end
from order_46 old , #master new  where old.ord_id=new.ord_id 

end 
--- 清除临时表 
exec drop_temp_table '#master' 

set nocount off 
end