USP_CONSTITUENTUPDATEBATCH_ADDUPDATENAMEFORMATS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@NAMEFORMATSXML | xml | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN |
Definition
Copy
create procedure dbo.USP_CONSTITUENTUPDATEBATCH_ADDUPDATENAMEFORMATS (
@CONSTITUENTID uniqueidentifier,
@NAMEFORMATSXML xml = null,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null
) as begin
set nocount on;
if (@NAMEFORMATSXML is null) return 0;
if @CONSTITUENTID is null
begin
raiserror('The constituent ID is required to process name format updates',16,1);
return -2;
end
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CHANGEDATE is null
set @CHANGEDATE = getdate();
begin try
merge
dbo.[NAMEFORMAT] as TARGET
using
(
select
NF.[NAMEFORMATTYPECODEID], NF.[CUSTOMNAME], NFD.[NAMEFORMATFUNCTIONID]
from
dbo.UFN_BATCHCONSTITUENTUPDATE_GETNAMEFORMATS_FROMITEMLISTXML(@NAMEFORMATSXML) NF
left join
dbo.[NAMEFORMATDEFAULT] NFD on NFD.[NAMEFORMATTYPECODEID] = NF.[NAMEFORMATTYPECODEID] and NFD.[APPLYTOCODE] = 0
where
NF.[CUSTOMNAME] <> '' or NFD.[NAMEFORMATFUNCTIONID] is not null
) as SOURCE ([NAMEFORMATTYPECODEID], [CUSTOMNAME], [DEFAULTFUNCTIONID])
on
(TARGET.[NAMEFORMATTYPECODEID] = SOURCE.[NAMEFORMATTYPECODEID] and TARGET.[CONSTITUENTID] = @CONSTITUENTID)
when matched and TARGET.FORMATTEDNAME <> SOURCE.[CUSTOMNAME] then
update set
[NAMEFORMATFUNCTIONID] = case when SOURCE.[CUSTOMNAME] <> '' then NULL else SOURCE.[DEFAULTFUNCTIONID] end,
[CUSTOMNAME] = coalesce(SOURCE.[CUSTOMNAME], ''),
[ADDEDBYID] = @CHANGEAGENTID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATEADDED] = @CHANGEDATE,
[DATECHANGED] = @CHANGEDATE
when not matched then
insert (
[CONSTITUENTID],
[NAMEFORMATTYPECODEID],
[NAMEFORMATFUNCTIONID],
[CUSTOMNAME],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values (
@CONSTITUENTID,
SOURCE.NAMEFORMATTYPECODEID,
case when SOURCE.[CUSTOMNAME] <> '' then NULL else SOURCE.DEFAULTFUNCTIONID end,
coalesce(SOURCE.[CUSTOMNAME], ''),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end