USP_DATAFORMTEMPLATE_EDIT_EDUCATIONDEMOGRAPHIC
The save procedure used by the edit dataform template "Education Demographic Edit Data 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 |
@INCOMECODEID | uniqueidentifier | IN | Income |
@BIRTHPLACE | nvarchar(50) | IN | Birthplace |
Definition
Copy
create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EDUCATIONDEMOGRAPHIC
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ETHNICITYCODEID uniqueidentifier,
@RELIGIONCODEID uniqueidentifier,
@INCOMECODEID uniqueidentifier,
@BIRTHPLACE nvarchar(50)
) 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 end -- Organization
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 not null) and (@ETHNICITYCODEID is null) and (@RELIGIONCODEID is null) and (@INCOMECODEID is null) and (len(coalesce(@BIRTHPLACE, '')) = 0)
delete from dbo.DEMOGRAPHIC where ID = @ID;
else
begin
if @EXISTINGID is null
insert into dbo.DEMOGRAPHIC
(ID, ETHNICITYCODEID, RELIGIONCODEID, INCOMECODEID, BIRTHPLACE, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
values
(@ID, @ETHNICITYCODEID, @RELIGIONCODEID, @INCOMECODEID, @BIRTHPLACE, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
else
update dbo.DEMOGRAPHIC
set
[ETHNICITYCODEID] = @ETHNICITYCODEID,
[RELIGIONCODEID] = @RELIGIONCODEID,
[INCOMECODEID] = @INCOMECODEID,
[BIRTHPLACE] = @BIRTHPLACE,
[DATECHANGED] = @CURRENTDATE,
[CHANGEDBYID] = @CHANGEAGENTID
where ID = @ID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;