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

-- 生成时间:2018-06-12 13:49:00 by ebs-core  
CREATE  procedure order_144_newbiz_before(
     @cmpid int,
     @branchid int,
     @userdpid int,
     @useruid int,
     @userotid int,
     @jbid bigint,
     @ordid bigint,
     @stype varchar(20),
     @sbizid int,
     @sord2tag int,
     @sord2id bigint,
     @sordidstr varchar(max),
     @extparam1 nvarchar(1000),
     @extparam2 nvarchar(1000),
     @extparam3 nvarchar(1000),
     @operation varchar(50) output,
     @errorinfo nvarchar(4000) output
  ) 
as  
begin  
set nocount on  
if ((@extparam1 is null) or (@extparam1='_none_'))  set @extparam1 = '' 
  if ((@extparam2 is null) or (@extparam2='_none_'))  set @extparam2 = '' 
  if ((@extparam3 is null) or (@extparam3='_none_'))  set @extparam3 = '' 
declare @ord2group2 nvarchar(50) 
set @ord2group2 = '' 
declare @sys_recid bigint 
set @sys_recid = 0 
declare @newordid bigint  
declare @sordids table(ordid bigint)  
 set @newordid = @ordid  
 declare @i int , @curInd int , @strlen int , @ordid_s varchar ( 20 )  
 declare @sordid bigint  
 set @sordid = 0  
 declare @nonedate datetime 
set @nonedate = CONVERT(datetime,'1910-1-1')
 if ( charindex ( ',' ,@sordidstr ) = 0 and @sordidstr > '' )  
 begin  
 set @sordid = convert ( bigint ,@sordidstr )  
 insert into @sordids ( ordid ) values ( @sordid )  
 end   
 else 
 begin  
 select @curInd = 1 , @strlen = LEN ( @sordidstr )  
 while ( @curInd <= @strlen )  
 begin  
 select @i = charindex ( ',' ,@sordidstr , @curInd )  
 if ( @i > 0 )  
 begin  
 select @ordid_s = SUBSTRING ( @sordidstr , @curInd , @i  - @curInd )  
 insert into @sordids ( ordid ) values ( convert ( bigint , @ordid_s ) )  
 set @curInd = @i  + 1  
 end  
 else if ( @curInd <= @strlen )  
 begin  
 select @ordid_s = SUBSTRING ( @sordidstr , @curInd , @strlen  - @curInd  + 1 )  
 insert into @sordids ( ordid ) values ( convert ( bigint , @ordid_s ) )  
 break  
 end  
 end  
 end 
 set @operation = 'continue'
 set @errorinfo = '' 
 --- 以下是预处理事件中的临时表
 
exec drop_temp_table '#new' 
select * ,'' sourcefield  into #new from order_144 where ord_id=@newordid 
exec drop_temp_table '#detail1' 
select *,null recid into #detail1 from order_144_1 where ord2_ordid=@newordid  

 alter table #detail1 add default 0 for ord2_fbizid   alter table #detail1 add default 0 for ord2_ford2tag   alter table #detail1 add default 0 for ord2_order   alter table #detail1 add default 0 for ord2_rbizid   alter table #detail1 add default 0 for ord2_rord2tag   alter table #detail1 add default 0 for ord2_tag   alter table #detail1 add default '1900-1-1' for ord2_date   alter table #detail1 add default '1900-1-1' for ord2_updated   alter table #detail1 add default 0 for ord2_yj   alter table #detail1 add default 0 for ord2_fatherord2id   alter table #detail1 add default 0 for ord2_ford2id   alter table #detail1 add default 0 for ord2_fordid   alter table #detail1 add default 0 for ord2_ordid   alter table #detail1 add default 0 for ord2_rord2id   alter table #detail1 add default 0 for ord2_rordid   alter table #detail1 add default '' for ord2_code   alter table #detail1 add default '' for ord2_ftype   alter table #detail1 add default '' for ord2_key   alter table #detail1 add default '' for ord2_rtype   alter table #detail1 add default '' for ord2_tags   alter table #detail1 add default '' for ord2_bz   alter table #detail1 add default '' for ord2_caption   alter table #detail1 add default '' for ord2_group   alter table #detail1 add default '' for ord2_status   alter table #detail1 add default '' for ord2_yf 
update #detail1 set recid=ord2_id 

 ---- 以下是开发人员写的 before new order 事件 --------------
 /*带出子模板数据*/
update #new 
set ord_template = '加盟商信息'
,ord_templateid = '463' 
where ord_dplx = '加盟' 
/*店铺为加盟店时，更新店铺负责人*/
declare @mdlx nvarchar(10)
select @mdlx=ord_dplx from #new 
if @mdlx='加盟'
    begin
    update n
        set n.ord_dpfzr = n.ord_jmsxm,
            n.ord_lxfs = n.ord_lxdh
        from #new n
    end
/*自动添加业绩明细表中的月份信息*/
insert into #detail1(ord2_yf) values('一月'),('二月'),('三月'),('四月'),('五月'),('六月'),
('七月'),('八月'),('九月'),('十月'),('十一月'),('十二月'),('平均业绩')
/*带出加盟商信息*/
/*declare @mdlx nvarchar(10)
select @mdlx=ord_mdlx from #new 
if @mdlx='加盟'
update n
set n.ord_jmsxm=r.ord_jmsmc,
    n.ord_lxdh=r.ord_jmsdh
from #new n,order_188 r
where n.ord_dpbh=n.ord_dpbh*/
 ---- 以上是开发人员写的 before new order 事件 --------------
 
 if (@operation='continue') 
 begin
 set @nonedate = @nonedate 
 
update old set 
ord_branch=case when new.ord_branch is null or new.ord_branch = '_none_'  then old.ord_branch else new.ord_branch 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_cbid=case when new.ord_cbid is null or new.ord_cbid = -999999999  then old.ord_cbid else new.ord_cbid 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_createcuid=case when new.ord_createcuid is null or new.ord_createcuid = -999999999  then old.ord_createcuid else new.ord_createcuid 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_createdpid=case when new.ord_createdpid is null or new.ord_createdpid = -999999999  then old.ord_createdpid else new.ord_createdpid 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_cuid=case when new.ord_cuid is null or new.ord_cuid = -999999999  then old.ord_cuid else new.ord_cuid end,ord_cz=case when new.ord_cz is null or new.ord_cz = -999999999  then old.ord_cz else new.ord_cz 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_dlslj=case when new.ord_dlslj is null or new.ord_dlslj = '_none_'  then old.ord_dlslj else new.ord_dlslj end,ord_dnts=case when new.ord_dnts is null or new.ord_dnts = '_none_'  then old.ord_dnts else new.ord_dnts end,ord_dpbh=case when new.ord_dpbh is null or new.ord_dpbh = '_none_'  then old.ord_dpbh else new.ord_dpbh end,ord_dpdz=case when new.ord_dpdz is null or new.ord_dpdz = '_none_'  then old.ord_dpdz else new.ord_dpdz end,ord_dpfzr=case when new.ord_dpfzr is null or new.ord_dpfzr = '_none_'  then old.ord_dpfzr else new.ord_dpfzr 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_dplx=case when new.ord_dplx is null or new.ord_dplx = '_none_'  then old.ord_dplx else new.ord_dplx end,ord_dpmc=case when new.ord_dpmc is null or new.ord_dpmc = '_none_'  then old.ord_dpmc else new.ord_dpmc end,ord_dpmj=case when new.ord_dpmj is null or new.ord_dpmj = -999999999  then old.ord_dpmj else new.ord_dpmj end,ord_dpzt=case when new.ord_dpzt is null or new.ord_dpzt = '_none_'  then old.ord_dpzt else new.ord_dpzt end,ord_dqsj=case when new.ord_dqsj is null or new.ord_dqsj = @nonedate then old.ord_dqsj else new.ord_dqsj end,ord_ds32c=case when new.ord_ds32c is null or new.ord_ds32c = '_none_'  then old.ord_ds32c else new.ord_ds32c end,ord_dzhpg=case when new.ord_dzhpg is null or new.ord_dzhpg = '_none_'  then old.ord_dzhpg else new.ord_dzhpg end,ord_dzqk=case when new.ord_dzqk is null or new.ord_dzqk = '_none_'  then old.ord_dzqk else new.ord_dzqk 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_enddate=case when new.ord_enddate is null or new.ord_enddate = @nonedate then old.ord_enddate else new.ord_enddate 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_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_ford2tag=case when new.ord_ford2tag is null or new.ord_ford2tag = -999999999  then old.ord_ford2tag else new.ord_ford2tag 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_ftype=case when new.ord_ftype is null or new.ord_ftype = '_none_'  then old.ord_ftype else new.ord_ftype end,ord_fz=case when new.ord_fz is null or new.ord_fz = '_none_'  then old.ord_fz else new.ord_fz end,ord_gkyck=case when new.ord_gkyck is null or new.ord_gkyck = -999999999  then old.ord_gkyck else new.ord_gkyck end,ord_hf=case when new.ord_hf is null or new.ord_hf = -999999999  then old.ord_hf else new.ord_hf end,ord_hj=case when new.ord_hj is null or new.ord_hj = '_none_'  then old.ord_hj else new.ord_hj end,ord_htbh=case when new.ord_htbh is null or new.ord_htbh = '_none_'  then old.ord_htbh else new.ord_htbh end,ord_jdys=case when new.ord_jdys is null or new.ord_jdys = '_none_'  then old.ord_jdys else new.ord_jdys end,ord_jz=case when new.ord_jz is null or new.ord_jz = '_none_'  then old.ord_jz else new.ord_jz 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_kt=case when new.ord_kt is null or new.ord_kt = '_none_'  then old.ord_kt else new.ord_kt end,ord_kyrq=case when new.ord_kyrq is null or new.ord_kyrq = @nonedate then old.ord_kyrq else new.ord_kyrq end,ord_lxfs=case when new.ord_lxfs is null or new.ord_lxfs = '_none_'  then old.ord_lxfs else new.ord_lxfs end,ord_mdyj=case when new.ord_mdyj is null or new.ord_mdyj = -999999999  then old.ord_mdyj else new.ord_mdyj end,ord_mdzj=case when new.ord_mdzj is null or new.ord_mdzj = -999999999  then old.ord_mdzj else new.ord_mdzj 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_noi=case when new.ord_noi is null or new.ord_noi = -999999999  then old.ord_noi else new.ord_noi end,ord_pdrq=case when new.ord_pdrq is null or new.ord_pdrq = @nonedate then old.ord_pdrq else new.ord_pdrq end,ord_pqdd=case when new.ord_pqdd is null or new.ord_pqdd = '_none_'  then old.ord_pqdd else new.ord_pqdd end,ord_pqzj=case when new.ord_pqzj is null or new.ord_pqzj = '_none_'  then old.ord_pqzj else new.ord_pqzj end,ord_qdsj=case when new.ord_qdsj is null or new.ord_qdsj = @nonedate then old.ord_qdsj else new.ord_qdsj end,ord_qyjl=case when new.ord_qyjl is null or new.ord_qyjl = '_none_'  then old.ord_qyjl else new.ord_qyjl 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_rord2id=case when new.ord_rord2id is null or new.ord_rord2id = -999999999  then old.ord_rord2id else new.ord_rord2id 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_rordid=case when new.ord_rordid is null or new.ord_rordid = -999999999  then old.ord_rordid else new.ord_rordid 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_ryqk=case when new.ord_ryqk is null or new.ord_ryqk = '_none_'  then old.ord_ryqk else new.ord_ryqk end,ord_sdqsj=case when new.ord_sdqsj is null or new.ord_sdqsj = @nonedate then old.ord_sdqsj else new.ord_sdqsj 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_slc=case when new.ord_slc is null or new.ord_slc = '_none_'  then old.ord_slc else new.ord_slc end,ord_sly=case when new.ord_sly is null or new.ord_sly = '_none_'  then old.ord_sly else new.ord_sly end,ord_sp=case when new.ord_sp is null or new.ord_sp = -999999999  then old.ord_sp else new.ord_sp end,ord_spcj=case when new.ord_spcj is null or new.ord_spcj = '_none_'  then old.ord_spcj else new.ord_spcj end,ord_ssyj=case when new.ord_ssyj is null or new.ord_ssyj = -999999999  then old.ord_ssyj else new.ord_ssyj end,ord_sszj=case when new.ord_sszj is null or new.ord_sszj = -999999999  then old.ord_sszj else new.ord_sszj 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_style=case when new.ord_style is null or new.ord_style = -999999999  then old.ord_style else new.ord_style end,ord_symdzj=case when new.ord_symdzj is null or new.ord_symdzj = -999999999  then old.ord_symdzj else new.ord_symdzj end,ord_syzj=case when new.ord_syzj is null or new.ord_syzj = -999999999  then old.ord_syzj else new.ord_syzj end,ord_szpq=case when new.ord_szpq is null or new.ord_szpq = '_none_'  then old.ord_szpq else new.ord_szpq 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_templateid=case when new.ord_templateid is null or new.ord_templateid = -999999999  then old.ord_templateid else new.ord_templateid 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_xdzr=case when new.ord_xdzr is null or new.ord_xdzr = '_none_'  then old.ord_xdzr else new.ord_xdzr end,ord_xfsp=case when new.ord_xfsp is null or new.ord_xfsp = '_none_'  then old.ord_xfsp else new.ord_xfsp end,ord_ysj=case when new.ord_ysj is null or new.ord_ysj = '_none_'  then old.ord_ysj else new.ord_ysj end,ord_yz=case when new.ord_yz is null or new.ord_yz = '_none_'  then old.ord_yz else new.ord_yz end,ord_zdlx=case when new.ord_zdlx is null or new.ord_zdlx = '_none_'  then old.ord_zdlx else new.ord_zdlx end,ord_zdyy=case when new.ord_zdyy is null or new.ord_zdyy = '_none_'  then old.ord_zdyy else new.ord_zdyy end,ord_zffs=case when new.ord_zffs is null or new.ord_zffs = '_none_'  then old.ord_zffs else new.ord_zffs end,ord_zgfa=case when new.ord_zgfa is null or new.ord_zgfa = '_none_'  then old.ord_zgfa else new.ord_zgfa end,ord_zjdzqk=case when new.ord_zjdzqk is null or new.ord_zjdzqk = '_none_'  then old.ord_zjdzqk else new.ord_zjdzqk end,ord_zjfy=case when new.ord_zjfy is null or new.ord_zjfy = -999999999  then old.ord_zjfy else new.ord_zjfy end,ord_zjzffs=case when new.ord_zjzffs is null or new.ord_zjzffs = '_none_'  then old.ord_zjzffs else new.ord_zjzffs end,ord_zrf=case when new.ord_zrf is null or new.ord_zrf = -999999999  then old.ord_zrf else new.ord_zrf end,ord_jmsxm=case when new.ord_jmsxm is null or new.ord_jmsxm = '_none_'  then old.ord_jmsxm else new.ord_jmsxm 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_sfzhm=case when new.ord_sfzhm is null or new.ord_sfzhm = '_none_'  then old.ord_sfzhm else new.ord_sfzhm end,ord_szgs=case when new.ord_szgs is null or new.ord_szgs = '_none_'  then old.ord_szgs else new.ord_szgs end,ord_zdzz=case when new.ord_zdzz is null or new.ord_zdzz = '_none_'  then old.ord_zdzz else new.ord_zdzz end,ord_szfgs=case when new.ord_szfgs is null or new.ord_szfgs = '_none_'  then old.ord_szfgs else new.ord_szfgs end,ord_dz=case when new.ord_dz is null or new.ord_dz = '_none_'  then old.ord_dz else new.ord_dz end,ord_df=case when new.ord_df is null or new.ord_df = -999999999  then old.ord_df else new.ord_df end,ord_kdf=case when new.ord_kdf is null or new.ord_kdf = -999999999  then old.ord_kdf else new.ord_kdf end,ord_sf=case when new.ord_sf is null or new.ord_sf = -999999999  then old.ord_sf else new.ord_sf end,ord_qtl=case when new.ord_qtl is null or new.ord_qtl = '_none_'  then old.ord_qtl else new.ord_qtl end,ord_zdjg=case when new.ord_zdjg is null or new.ord_zdjg = '_none_'  then old.ord_zdjg else new.ord_zdjg end,ord_spgd=case when new.ord_spgd is null or new.ord_spgd = '_none_'  then old.ord_spgd else new.ord_spgd end,ord_fyhsjg=case when new.ord_fyhsjg is null or new.ord_fyhsjg = '_none_'  then old.ord_fyhsjg else new.ord_fyhsjg end
from order_144 old , #new new  where old.ord_id=new.ord_id 

 set @ord2group2='' 
 select top 1 @ord2group2=ord2_group from #detail1 where ord2_group>'' 
 set @ord2group2 = isnull(@ord2group2 , '') 

 insert into order_144_1(ord2_date,ord2_updated,ord2_tag,ord2_group,ord2_ordid,ord2_fbizid,ord2_ford2tag,ord2_order,ord2_rbizid,ord2_rord2tag,ord2_yj,ord2_fatherord2id,ord2_ford2id,ord2_fordid,ord2_rord2id,ord2_rordid,ord2_code,ord2_ftype,ord2_key,ord2_rtype,ord2_tags,ord2_bz,ord2_caption,ord2_status,ord2_yf) 
 select case when new.ord2_date>getdate()-40000 then new.ord2_date else getdate() end ,getdate(),1,
 case when new.ord2_group>'' then new.ord2_group else @ord2group2 end , @ordid,
new.ord2_fbizid,new.ord2_ford2tag,new.ord2_order,new.ord2_rbizid,new.ord2_rord2tag,new.ord2_yj,new.ord2_fatherord2id,new.ord2_ford2id,new.ord2_fordid,new.ord2_rord2id,new.ord2_rordid,new.ord2_code,new.ord2_ftype,new.ord2_key,new.ord2_rtype,new.ord2_tags,new.ord2_bz,new.ord2_caption,new.ord2_status,new.ord2_yf
 from #detail1 new where recid is null 

update old set 
ord2_bz=case when new.ord2_bz is null or new.ord2_bz = '_none_'  then old.ord2_bz else new.ord2_bz end,ord2_caption=case when new.ord2_caption is null or new.ord2_caption = '_none_'  then old.ord2_caption else new.ord2_caption end,ord2_code=case when new.ord2_code is null or new.ord2_code = '_none_'  then old.ord2_code else new.ord2_code end,ord2_date=case when new.ord2_date is null or new.ord2_date = @nonedate then old.ord2_date else new.ord2_date end,ord2_fatherord2id=case when new.ord2_fatherord2id is null or new.ord2_fatherord2id = -999999999  then old.ord2_fatherord2id else new.ord2_fatherord2id end,ord2_fbizid=case when new.ord2_fbizid is null or new.ord2_fbizid = -999999999  then old.ord2_fbizid else new.ord2_fbizid end,ord2_ford2id=case when new.ord2_ford2id is null or new.ord2_ford2id = -999999999  then old.ord2_ford2id else new.ord2_ford2id end,ord2_ford2tag=case when new.ord2_ford2tag is null or new.ord2_ford2tag = -999999999  then old.ord2_ford2tag else new.ord2_ford2tag end,ord2_fordid=case when new.ord2_fordid is null or new.ord2_fordid = -999999999  then old.ord2_fordid else new.ord2_fordid end,ord2_ftype=case when new.ord2_ftype is null or new.ord2_ftype = '_none_'  then old.ord2_ftype else new.ord2_ftype end,ord2_group=case when new.ord2_group is null or new.ord2_group = '_none_'  then old.ord2_group else new.ord2_group end,ord2_key=case when new.ord2_key is null or new.ord2_key = '_none_'  then old.ord2_key else new.ord2_key end,ord2_order=case when new.ord2_order is null or new.ord2_order = -999999999  then old.ord2_order else new.ord2_order end,ord2_rbizid=case when new.ord2_rbizid is null or new.ord2_rbizid = -999999999  then old.ord2_rbizid else new.ord2_rbizid end,ord2_rord2id=case when new.ord2_rord2id is null or new.ord2_rord2id = -999999999  then old.ord2_rord2id else new.ord2_rord2id end,ord2_rord2tag=case when new.ord2_rord2tag is null or new.ord2_rord2tag = -999999999  then old.ord2_rord2tag else new.ord2_rord2tag end,ord2_rordid=case when new.ord2_rordid is null or new.ord2_rordid = -999999999  then old.ord2_rordid else new.ord2_rordid end,ord2_rtype=case when new.ord2_rtype is null or new.ord2_rtype = '_none_'  then old.ord2_rtype else new.ord2_rtype end,ord2_status=case when new.ord2_status is null or new.ord2_status = '_none_'  then old.ord2_status else new.ord2_status end,ord2_tags=case when new.ord2_tags is null or new.ord2_tags = '_none_'  then old.ord2_tags else new.ord2_tags end,ord2_yf=case when new.ord2_yf is null or new.ord2_yf = '_none_'  then old.ord2_yf else new.ord2_yf end,ord2_yj=case when new.ord2_yj is null or new.ord2_yj = -999999999  then old.ord2_yj else new.ord2_yj end
from order_144_1 old , #detail1 new  
where old.ord2_id=new.ord2_id and new.recid is not null 

end 
--- 清除临时表 
exec drop_temp_table '#new' 
exec drop_temp_table '#detail1'

set nocount off 
end