USP_DATAFORMTEMPLATE_EDIT_DEMOGRAPHIC_2
The save procedure used by the edit dataform template "Demographic Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@ETHNICITYCODEID | uniqueidentifier | IN | Ethnicity |
@RELIGIONCODEID | uniqueidentifier | IN | Religion |
@TARGETCODEID | uniqueidentifier | IN | Target |
@INCOMECODEID | uniqueidentifier | IN | Income |
@BIRTHPLACE | nvarchar(50) | IN | Birthplace |
@DEMOGRAPHICETHNICITIES | xml | IN | Ethnicities |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DEMOGRAPHIC_2
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ETHNICITYCODEID uniqueidentifier,
@RELIGIONCODEID uniqueidentifier,
@TARGETCODEID uniqueidentifier,
@INCOMECODEID uniqueidentifier,
@BIRTHPLACE nvarchar(50),
@DEMOGRAPHICETHNICITIES xml
) as
set nocount on;
declare @CURRENTDATE datetime;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
declare @EXISTINGID uniqueidentifier;
set @EXISTINGID = (select ID from dbo.DEMOGRAPHIC where ID = @ID);
declare @CONSTITUENTTYPE tinyint;
select @CONSTITUENTTYPE = case
when (C.ISORGANIZATION = 0) and (C.ISGROUP = 0) then 0 -- Individual
when (C.ISORGANIZATION = 1) then 1 -- Organization
when (GD.GROUPTYPECODE = 0) then 2 -- Household
else 3 end -- Group
from dbo.CONSTITUENT C
left outer join dbo.DEMOGRAPHIC D with (nolock) on D.ID = C.ID
left outer join dbo.GROUPDATA GD with (nolock) on GD.ID = C.ID
where
C.ID = @ID
-- these fields are only applicable for individuals
if @CONSTITUENTTYPE <> 0
begin
set @ETHNICITYCODEID = null;
set @RELIGIONCODEID = null;
set @BIRTHPLACE = ''
end;
begin try
if @EXISTINGID is null
insert into dbo.DEMOGRAPHIC
(ID, RELIGIONCODEID, TARGETCODEID, INCOMECODEID, BIRTHPLACE, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
values
(@ID, @RELIGIONCODEID, @TARGETCODEID, @INCOMECODEID, @BIRTHPLACE, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
else
update dbo.DEMOGRAPHIC
set
[RELIGIONCODEID] = @RELIGIONCODEID,
[TARGETCODEID] = @TARGETCODEID,
[INCOMECODEID] = @INCOMECODEID,
[BIRTHPLACE] = @BIRTHPLACE,
[DATECHANGED] = @CURRENTDATE,
[CHANGEDBYID] = @CHANGEAGENTID
where ID = @ID;
exec dbo.USP_CONSTITUENT_GETETHNICITIES_UPDATEFROMXML @ID, @DEMOGRAPHICETHNICITIES, @CHANGEAGENTID;
-- update obsolete ETHNICITYCODEID last so that trigger can handle pushing value into DEMOGRAPHICETHNICITIES only if it is missing
update dbo.DEMOGRAPHIC
set
[ETHNICITYCODEID] = @ETHNICITYCODEID,
[DATECHANGED] = @CURRENTDATE,
[CHANGEDBYID] = @CHANGEAGENTID
where ID = @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;