USP_DATAFORMTEMPLATE_ADD_WEALTHCAPACITYFORMULAAPPLY
The save procedure used by the add dataform template "Apply Wealth Capacity Formula Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@WEALTHCAPACITYFORMULAID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@APPLYTOCODE | tinyint | IN | Apply to |
@CONSTITUENTID | uniqueidentifier | IN | Constituent |
@RESEARCHGROUPID | uniqueidentifier | IN | Research group |
@IDSETREGISTERID | uniqueidentifier | IN | Selection |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_WEALTHCAPACITYFORMULAAPPLY (
@ID uniqueidentifier output,
@CHANGEAGENTID uniqueidentifier = null,
@WEALTHCAPACITYFORMULAID uniqueidentifier,
@APPLYTOCODE tinyint = 0,
@CONSTITUENTID uniqueidentifier = null,
@RESEARCHGROUPID uniqueidentifier = null,
@IDSETREGISTERID uniqueidentifier = null
) with execute as owner as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
if @APPLYTOCODE = 0 and @CONSTITUENTID is not null begin
update
dbo.WEALTHCAPACITY
set
WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.WEALTHCAPACITY
where
WEALTHCAPACITY.ID = @CONSTITUENTID and
WEALTHCAPACITY.CONFIRMED = 0;
insert into dbo.WEALTHCAPACITY (
ID,
WEALTHCAPACITYFORMULAID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
C.ID,
@WEALTHCAPACITYFORMULAID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.CONSTITUENT C
left join
dbo.WEALTHCAPACITY WC
on
WC.ID = C.ID
where
C.ID = @CONSTITUENTID and
WC.ID is null;
end
else if @APPLYTOCODE = 1 and @RESEARCHGROUPID is not null begin
update
dbo.WEALTHCAPACITY
set
WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.WEALTHCAPACITY
left join
dbo.RESEARCHGROUPMEMBER RGM
on
RGM.CONSTITUENTID = WEALTHCAPACITY.ID
where
RGM.RESEARCHGROUPID = @RESEARCHGROUPID and
WEALTHCAPACITY.CONFIRMED = 0;
insert into dbo.WEALTHCAPACITY (
ID,
WEALTHCAPACITYFORMULAID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
RGM.CONSTITUENTID,
@WEALTHCAPACITYFORMULAID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.RESEARCHGROUPMEMBER RGM
left join
dbo.WEALTHCAPACITY WC
on
WC.ID = RGM.CONSTITUENTID
where
RGM.RESEARCHGROUPID = @RESEARCHGROUPID and
WC.ID is null;
end
else if @APPLYTOCODE = 2 and @IDSETREGISTERID is not null begin
declare @DBOBJECTNAME nvarchar(128);
declare @DBOBJECTTYPE smallint;
select
@DBOBJECTNAME = IDSETREGISTER.DBOBJECTNAME,
@DBOBJECTTYPE = IDSETREGISTER.OBJECTTYPE
from
dbo.IDSETREGISTER
where
IDSETREGISTER.ID = @IDSETREGISTERID;
if not @DBOBJECTNAME is null and @DBOBJECTNAME <> '' begin
if @DBOBJECTTYPE = 1 set @DBOBJECTNAME = @DBOBJECTNAME + '()';
else if @DBOBJECTTYPE = 2 set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @ID) + ''')';
declare @SQLTOEXEC nvarchar(max);
set @SQLTOEXEC = N'set nocount on;
update
dbo.WEALTHCAPACITY
set
WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.WEALTHCAPACITY
inner join
' + nchar(13);
set @SQLTOEXEC = @SQLTOEXEC + @DBOBJECTNAME + N' as SELECTION
on
WEALTHCAPACITY.[ID] = SELECTION.[ID]
where
WEALTHCAPACITY.CONFIRMED = 0;
insert into dbo.WEALTHCAPACITY (
ID,
WEALTHCAPACITYFORMULAID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
SELECTION.ID,
@WEALTHCAPACITYFORMULAID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
' + nchar(13);
set @SQLTOEXEC = @SQLTOEXEC + @DBOBJECTNAME + N' as SELECTION
left join
dbo.WEALTHCAPACITY WC
on
WC.ID = SELECTION.ID
where
WC.ID is null;' + nchar(13);
exec sp_executesql @SQLTOEXEC,
N'@WEALTHCAPACITYFORMULAID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime',
@WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID,
@CHANGEAGENTID=@CHANGEAGENTID,
@CURRENTDATE=@CURRENTDATE;
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;