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

-- 生成时间:2018-06-13 17:44:24 by ebs-core  
CREATE  procedure order_18_modify(
@cmpid int,
@branchid int,
@userdpid int,
@useruid int,
@userotid int,
@jbid bigint,
@ordid bigint,@sourcefield varchar(50)=default, 
@ord_createcuid int =default ,@ord_createdpid int =default ,@ord_fbizid int =default ,@ord_ford2tag int =default ,@ord_noi int =default ,@ord_rbizid int =default ,@ord_dpid int =default ,@ord_xsrs int =default ,@ord_ybrs1 int =default ,@ord_zbrs1 int =default ,@ord_rord2tag int =default ,@ord_security int =default ,@ord_style int =default ,@ord_templateid int =default ,@ord_zprs int =default ,@ord_cuid int =default ,@ord_enddate datetime =default ,@ord_ydgrq datetime =default ,@ord_xzzw1 decimal(18,2) =default ,@ord_cbid bigint =default ,@ord_fjbid bigint =default ,@ord_ford2id bigint =default ,@ord_fordid bigint =default ,@ord_rord2id bigint =default ,@ord_rordid bigint =default ,@ord_gwfordid bigint =default ,@ord_dp_partid bigint =default ,@ord_fdqdpid bigint =default ,@ord_fgwbzid bigint =default ,@ord_ftype varchar(10) =default ,@ord_key varchar(30) =default ,@ord_no varchar(50) =default ,@ord_rtype varchar(10) =default ,@ord_branch nvarchar(50) =default ,@ord_byjy nvarchar(2000) =default ,@ord_bz nvarchar(100) =default ,@ord_bz1 nvarchar(100) =default ,@ord_createbizids nvarchar(200) =default ,@ord_createdepart nvarchar(50) =default ,@ord_xcfw nvarchar(100) =default ,@ord_xbyq nvarchar(100) =default ,@ord_zyyq nvarchar(100) =default ,@ord_zpzt nvarchar(100) =default ,@ord_zyzs nvarchar(1000) =default ,@ord_zzms nvarchar(1000) =default ,@ord_xcfw1 nvarchar(100) =default ,@ord_depart nvarchar(50) =default ,@ord_empname nvarchar(50) =default ,@ord_title nvarchar(100) =default ,@ord_type nvarchar(50) =default ,@ord_xzzw nvarchar(100) =default ,@ord_ybrs nvarchar(100) =default ,@ord_zbrs nvarchar(100) =default ,@ord_zpgw nvarchar(100) =default ,@ord_jysp nvarchar(100) =default ,@ord_nlsz nvarchar(500) =default ,@ord_sqyy nvarchar(100) =default ,@ord_status nvarchar(30) =default ,@ord_szbm nvarchar(100) =default ,@ord_template nvarchar(50) =default ,@ord_creator nvarchar(50) =default ,@ord_gwdj nvarchar(100) =default ,@ord_gzdd nvarchar(100) =default ,@ord_gznr nvarchar(2000) =default ,@ord_hbdx nvarchar(100) =default ,@ord_jnms nvarchar(1000) =default  ) 
as  
begin  
set nocount on  
declare @nonedate datetime 
set @nonedate = CONVERT(datetime,'1910-1-1')
 declare @operation varchar(50)
declare @errorinfo nvarchar(4000) 
 set @operation = 'continue' 
set @errorinfo = '' 
 --- 以下是预处理事件中的临时表
 
exec drop_temp_table '#old' 
select * into #old from order_18 where ord_id=@ordid 
exec drop_temp_table '#account' 
create table #account(acctype varchar(30),acccategory varchar(30),accdate varchar(30),fiidreal int,fiid int,objidreal bigint,objid bigint,origin int,value int,used int,suspended int,ready int,changed int,available int,actual int) 
exec drop_temp_table '#new' 
select * , case when ((@sourcefield is null) or (@sourcefield = '_none_')) then '' else @sourcefield end sourcefield into #new from #old 
update #new set 
ord_branch=case when @ord_branch is null or @ord_branch = '_none_'  then ord_branch else @ord_branch end,ord_byjy=case when @ord_byjy is null or @ord_byjy = '_none_'  then ord_byjy else @ord_byjy end,ord_bz=case when @ord_bz is null or @ord_bz = '_none_'  then ord_bz else @ord_bz end,ord_bz1=case when @ord_bz1 is null or @ord_bz1 = '_none_'  then ord_bz1 else @ord_bz1 end,ord_cbid=case when @ord_cbid is null or @ord_cbid = -999999999  then ord_cbid else @ord_cbid end,ord_createbizids=case when @ord_createbizids is null or @ord_createbizids = '_none_'  then ord_createbizids else @ord_createbizids end,ord_createcuid=case when @ord_createcuid is null or @ord_createcuid = -999999999  then ord_createcuid else @ord_createcuid end,ord_createdepart=case when @ord_createdepart is null or @ord_createdepart = '_none_'  then ord_createdepart else @ord_createdepart end,ord_createdpid=case when @ord_createdpid is null or @ord_createdpid = -999999999  then ord_createdpid else @ord_createdpid end,ord_creator=case when @ord_creator is null or @ord_creator = '_none_'  then ord_creator else @ord_creator end,ord_enddate=case when @ord_enddate is null or @ord_enddate = @nonedate then ord_enddate else @ord_enddate end,ord_fbizid=case when @ord_fbizid is null or @ord_fbizid = -999999999  then ord_fbizid else @ord_fbizid end,ord_fjbid=case when @ord_fjbid is null or @ord_fjbid = -999999999  then ord_fjbid else @ord_fjbid end,ord_ford2id=case when @ord_ford2id is null or @ord_ford2id = -999999999  then ord_ford2id else @ord_ford2id end,ord_ford2tag=case when @ord_ford2tag is null or @ord_ford2tag = -999999999  then ord_ford2tag else @ord_ford2tag end,ord_fordid=case when @ord_fordid is null or @ord_fordid = -999999999  then ord_fordid else @ord_fordid end,ord_ftype=case when @ord_ftype is null or @ord_ftype = '_none_'  then ord_ftype else @ord_ftype end,ord_gwdj=case when @ord_gwdj is null or @ord_gwdj = '_none_'  then ord_gwdj else @ord_gwdj end,ord_gzdd=case when @ord_gzdd is null or @ord_gzdd = '_none_'  then ord_gzdd else @ord_gzdd end,ord_gznr=case when @ord_gznr is null or @ord_gznr = '_none_'  then ord_gznr else @ord_gznr end,ord_hbdx=case when @ord_hbdx is null or @ord_hbdx = '_none_'  then ord_hbdx else @ord_hbdx end,ord_jnms=case when @ord_jnms is null or @ord_jnms = '_none_'  then ord_jnms else @ord_jnms end,ord_jysp=case when @ord_jysp is null or @ord_jysp = '_none_'  then ord_jysp else @ord_jysp end,ord_key=case when @ord_key is null or @ord_key = '_none_'  then ord_key else @ord_key end,ord_nlsz=case when @ord_nlsz is null or @ord_nlsz = '_none_'  then ord_nlsz else @ord_nlsz end,ord_no=case when @ord_no is null or @ord_no = '_none_'  then ord_no else @ord_no end,ord_noi=case when @ord_noi is null or @ord_noi = -999999999  then ord_noi else @ord_noi end,ord_rbizid=case when @ord_rbizid is null or @ord_rbizid = -999999999  then ord_rbizid else @ord_rbizid end,ord_rord2id=case when @ord_rord2id is null or @ord_rord2id = -999999999  then ord_rord2id else @ord_rord2id end,ord_rord2tag=case when @ord_rord2tag is null or @ord_rord2tag = -999999999  then ord_rord2tag else @ord_rord2tag end,ord_rordid=case when @ord_rordid is null or @ord_rordid = -999999999  then ord_rordid else @ord_rordid end,ord_rtype=case when @ord_rtype is null or @ord_rtype = '_none_'  then ord_rtype else @ord_rtype end,ord_security=case when @ord_security is null or @ord_security = -999999999  then ord_security else @ord_security end,ord_sqyy=case when @ord_sqyy is null or @ord_sqyy = '_none_'  then ord_sqyy else @ord_sqyy end,ord_status=case when @ord_status is null or @ord_status = '_none_'  then ord_status else @ord_status end,ord_style=case when @ord_style is null or @ord_style = -999999999  then ord_style else @ord_style end,ord_szbm=case when @ord_szbm is null or @ord_szbm = '_none_'  then ord_szbm else @ord_szbm end,ord_template=case when @ord_template is null or @ord_template = '_none_'  then ord_template else @ord_template end,ord_templateid=case when @ord_templateid is null or @ord_templateid = -999999999  then ord_templateid else @ord_templateid end,ord_title=case when @ord_title is null or @ord_title = '_none_'  then ord_title else @ord_title end,ord_type=case when @ord_type is null or @ord_type = '_none_'  then ord_type else @ord_type end,ord_xzzw=case when @ord_xzzw is null or @ord_xzzw = '_none_'  then ord_xzzw else @ord_xzzw end,ord_ybrs=case when @ord_ybrs is null or @ord_ybrs = '_none_'  then ord_ybrs else @ord_ybrs end,ord_ydgrq=case when @ord_ydgrq is null or @ord_ydgrq = @nonedate then ord_ydgrq else @ord_ydgrq end,ord_zbrs=case when @ord_zbrs is null or @ord_zbrs = '_none_'  then ord_zbrs else @ord_zbrs end,ord_zpgw=case when @ord_zpgw is null or @ord_zpgw = '_none_'  then ord_zpgw else @ord_zpgw end,ord_zprs=case when @ord_zprs is null or @ord_zprs = -999999999  then ord_zprs else @ord_zprs end,ord_zpzt=case when @ord_zpzt is null or @ord_zpzt = '_none_'  then ord_zpzt else @ord_zpzt end,ord_zyzs=case when @ord_zyzs is null or @ord_zyzs = '_none_'  then ord_zyzs else @ord_zyzs end,ord_zzms=case when @ord_zzms is null or @ord_zzms = '_none_'  then ord_zzms else @ord_zzms end,ord_gwfordid=case when @ord_gwfordid is null or @ord_gwfordid = -999999999  then ord_gwfordid else @ord_gwfordid end,ord_xcfw1=case when @ord_xcfw1 is null or @ord_xcfw1 = '_none_'  then ord_xcfw1 else @ord_xcfw1 end,ord_cuid=case when @ord_cuid is null or @ord_cuid = -999999999  then ord_cuid else @ord_cuid end,ord_depart=case when @ord_depart is null or @ord_depart = '_none_'  then ord_depart else @ord_depart end,ord_dpid=case when @ord_dpid is null or @ord_dpid = -999999999  then ord_dpid else @ord_dpid end,ord_empname=case when @ord_empname is null or @ord_empname = '_none_'  then ord_empname else @ord_empname end,ord_xcfw=case when @ord_xcfw is null or @ord_xcfw = '_none_'  then ord_xcfw else @ord_xcfw end,ord_dp_partid=case when @ord_dp_partid is null or @ord_dp_partid = -999999999  then ord_dp_partid else @ord_dp_partid end,ord_xsrs=case when @ord_xsrs is null or @ord_xsrs = -999999999  then ord_xsrs else @ord_xsrs end,ord_ybrs1=case when @ord_ybrs1 is null or @ord_ybrs1 = -999999999  then ord_ybrs1 else @ord_ybrs1 end,ord_zbrs1=case when @ord_zbrs1 is null or @ord_zbrs1 = -999999999  then ord_zbrs1 else @ord_zbrs1 end,ord_xbyq=case when @ord_xbyq is null or @ord_xbyq = '_none_'  then ord_xbyq else @ord_xbyq end,ord_zyyq=case when @ord_zyyq is null or @ord_zyyq = '_none_'  then ord_zyyq else @ord_zyyq end,ord_xzzw1=case when @ord_xzzw1 is null or @ord_xzzw1 = -999999999  then ord_xzzw1 else @ord_xzzw1 end,ord_fdqdpid=case when @ord_fdqdpid is null or @ord_fdqdpid = -999999999  then ord_fdqdpid else @ord_fdqdpid end,ord_fgwbzid=case when @ord_fgwbzid is null or @ord_fgwbzid = -999999999  then ord_fgwbzid else @ord_fgwbzid end
exec order_18_modify_before @cmpid,@branchid,@userdpid,@useruid,@userotid,@jbid,@ordid,@operation output,@errorinfo output   
 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_byjy=case when new.ord_byjy is null or new.ord_byjy = '_none_'  then old.ord_byjy else new.ord_byjy 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_bz1=case when new.ord_bz1 is null or new.ord_bz1 = '_none_'  then old.ord_bz1 else new.ord_bz1 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_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_gwdj=case when new.ord_gwdj is null or new.ord_gwdj = '_none_'  then old.ord_gwdj else new.ord_gwdj end,ord_gzdd=case when new.ord_gzdd is null or new.ord_gzdd = '_none_'  then old.ord_gzdd else new.ord_gzdd end,ord_gznr=case when new.ord_gznr is null or new.ord_gznr = '_none_'  then old.ord_gznr else new.ord_gznr end,ord_hbdx=case when new.ord_hbdx is null or new.ord_hbdx = '_none_'  then old.ord_hbdx else new.ord_hbdx end,ord_jnms=case when new.ord_jnms is null or new.ord_jnms = '_none_'  then old.ord_jnms else new.ord_jnms end,ord_jysp=case when new.ord_jysp is null or new.ord_jysp = '_none_'  then old.ord_jysp else new.ord_jysp 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_nlsz=case when new.ord_nlsz is null or new.ord_nlsz = '_none_'  then old.ord_nlsz else new.ord_nlsz 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_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_security=case when new.ord_security is null or new.ord_security = -999999999  then old.ord_security else new.ord_security end,ord_sqyy=case when new.ord_sqyy is null or new.ord_sqyy = '_none_'  then old.ord_sqyy else new.ord_sqyy 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_szbm=case when new.ord_szbm is null or new.ord_szbm = '_none_'  then old.ord_szbm else new.ord_szbm 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_xzzw=case when new.ord_xzzw is null or new.ord_xzzw = '_none_'  then old.ord_xzzw else new.ord_xzzw end,ord_ybrs=case when new.ord_ybrs is null or new.ord_ybrs = '_none_'  then old.ord_ybrs else new.ord_ybrs end,ord_ydgrq=case when new.ord_ydgrq is null or new.ord_ydgrq = @nonedate then old.ord_ydgrq else new.ord_ydgrq end,ord_zbrs=case when new.ord_zbrs is null or new.ord_zbrs = '_none_'  then old.ord_zbrs else new.ord_zbrs end,ord_zpgw=case when new.ord_zpgw is null or new.ord_zpgw = '_none_'  then old.ord_zpgw else new.ord_zpgw end,ord_zprs=case when new.ord_zprs is null or new.ord_zprs = -999999999  then old.ord_zprs else new.ord_zprs end,ord_zpzt=case when new.ord_zpzt is null or new.ord_zpzt = '_none_'  then old.ord_zpzt else new.ord_zpzt end,ord_zyzs=case when new.ord_zyzs is null or new.ord_zyzs = '_none_'  then old.ord_zyzs else new.ord_zyzs end,ord_zzms=case when new.ord_zzms is null or new.ord_zzms = '_none_'  then old.ord_zzms else new.ord_zzms end,ord_gwfordid=case when new.ord_gwfordid is null or new.ord_gwfordid = -999999999  then old.ord_gwfordid else new.ord_gwfordid end,ord_xcfw1=case when new.ord_xcfw1 is null or new.ord_xcfw1 = '_none_'  then old.ord_xcfw1 else new.ord_xcfw1 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_depart=case when new.ord_depart is null or new.ord_depart = '_none_'  then old.ord_depart else new.ord_depart 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_empname=case when new.ord_empname is null or new.ord_empname = '_none_'  then old.ord_empname else new.ord_empname end,ord_xcfw=case when new.ord_xcfw is null or new.ord_xcfw = '_none_'  then old.ord_xcfw else new.ord_xcfw end,ord_dp_partid=case when new.ord_dp_partid is null or new.ord_dp_partid = -999999999  then old.ord_dp_partid else new.ord_dp_partid end,ord_xsrs=case when new.ord_xsrs is null or new.ord_xsrs = -999999999  then old.ord_xsrs else new.ord_xsrs end,ord_ybrs1=case when new.ord_ybrs1 is null or new.ord_ybrs1 = -999999999  then old.ord_ybrs1 else new.ord_ybrs1 end,ord_zbrs1=case when new.ord_zbrs1 is null or new.ord_zbrs1 = -999999999  then old.ord_zbrs1 else new.ord_zbrs1 end,ord_xbyq=case when new.ord_xbyq is null or new.ord_xbyq = '_none_'  then old.ord_xbyq else new.ord_xbyq end,ord_zyyq=case when new.ord_zyyq is null or new.ord_zyyq = '_none_'  then old.ord_zyyq else new.ord_zyyq end,ord_xzzw1=case when new.ord_xzzw1 is null or new.ord_xzzw1 = -999999999  then old.ord_xzzw1 else new.ord_xzzw1 end,ord_fdqdpid=case when new.ord_fdqdpid is null or new.ord_fdqdpid = -999999999  then old.ord_fdqdpid else new.ord_fdqdpid end,ord_fgwbzid=case when new.ord_fgwbzid is null or new.ord_fgwbzid = -999999999  then old.ord_fgwbzid else new.ord_fgwbzid end,
old.ord_finished=case when old.ord_finished=0 then 1 else old.ord_finished end ,
old.ord_updated=getdate() 
from order_18 old,#new new where old.ord_id=new.ord_id 
 if (@ord_fordid>0) -- 说明有可能在修改上级关系
begin
if (dbo.checkprocedure('order_18_calc_relation')=0)
begin
exec order_18_calc_relation @cmpid , @ordid 
end
end 
 select 'ok' operation, '' errorinfo 
end  else 
begin
select @operation operation, @errorinfo errorinfo  
end

exec drop_temp_table '#new' 
exec drop_temp_table '#account' 
exec drop_temp_table '#old' 


-- 对项目进行处理
declare @style int 
declare @finished int 
select @style=ord_style , @finished=ord_finished from order_18 where ord_id=@ordid 
if (@style=0)
begin
if (@finished>=10 or @finished<=0) 
begin
delete mps_order where ord_bizid=18 and ord_id=@ordid 
end  else 
begin
if (exists (select 1 from mps_order where ord_bizid=18 and ord_id=@ordid)) 
begin
update a set 
a.ord_bcid=b.ord_bcid ,
a.ord_branch=b.ord_branch,
a.ord_createdpid=b.ord_createdpid,
a.ord_createdepart=b.ord_createdepart,
a.ord_dpid=b.ord_dpid,
a.ord_depart=b.ord_depart,
a.ord_createcuid=b.ord_createcuid,
a.ord_creator=b.ord_creator,
a.ord_cuid=b.ord_cuid,
a.ord_empname=b.ord_empname,
a.ord_date=b.ord_date,
a.ord_enddate=b.ord_enddate,
a.ord_finished=b.ord_finished,
a.ord_no=b.ord_no,
a.ord_title=b.ord_title,
a.ord_status=b.ord_status,
a.ord_type =b.ord_type
from mps_order a , order_18 b
where a.ord_bizid=18 and a.ord_id=b.ord_id and b.ord_id=@ordid 
end else
begin
insert into mps_order(
ord_bizid,
ord_id,
ord_cmpid,
ord_bcid,
ord_branch,
ord_createdpid,
ord_createdepart,
ord_dpid,
ord_depart,
ord_createcuid,
ord_creator,
ord_cuid,
ord_empname,
ord_date,
ord_enddate,
ord_finished,
ord_no,
ord_title,
ord_status,
ord_type )
select 
ord_bizid,
ord_id,
ord_cmpid,
ord_bcid,
ord_branch,
ord_createdpid,
ord_createdepart,
ord_dpid,
ord_depart,
ord_createcuid,
ord_creator,
ord_cuid,
ord_empname,
ord_date,
ord_enddate,
ord_finished,
ord_no,
ord_title,
ord_status,
ord_type
from order_18 where ord_id=@ordid 
end 
end 
end 
set nocount off 
end