TR_GROUPMEMBER_UPDATEISCONSTITUENT
Definition
Copy
CREATE trigger [dbo].[TR_GROUPMEMBER_UPDATEISCONSTITUENT]
on [dbo].[GROUPMEMBER]
after insert, update
as begin
if (update(GROUPID) or update(MEMBERID))
begin
-- Make sure the household is marked as a constituent,
-- if any member is a constituent
update dbo.CONSTITUENT
set CONSTITUENT.ISCONSTITUENT = 1,
CONSTITUENT.CHANGEDBYID = inserted.CHANGEDBYID,
CONSTITUENT.DATECHANGED = GetDate()
from dbo.CONSTITUENT -- Group
inner join inserted
on CONSTITUENT.ID = inserted.GROUPID
inner join dbo.GROUPDATA
on (GROUPDATA.ID = inserted.GROUPID)
inner join CONSTITUENT as CONSTITUENT_MEMBER
on (CONSTITUENT_MEMBER.ID = inserted.MEMBERID)
where (GROUPDATA.GROUPTYPECODE = 0) and -- Group is a household
(CONSTITUENT.ISCONSTITUENT = 0) and -- Household is NOT a constituent
(CONSTITUENT_MEMBER.ISCONSTITUENT = 1) -- New member is a constituent
-- Make sure to mark the member as a constituent,
-- if the group is NOT a household.
update dbo.CONSTITUENT
set CONSTITUENT.ISCONSTITUENT = 1,
CONSTITUENT.CHANGEDBYID = inserted.CHANGEDBYID,
CONSTITUENT.DATECHANGED = GetDate()
from dbo.CONSTITUENT
inner join inserted
on CONSTITUENT.ID = inserted.MEMBERID
inner join dbo.GROUPDATA
on (GROUPDATA.ID = inserted.GROUPID)
inner join CONSTITUENT as CONSTITUENT_GROUP
on (CONSTITUENT_GROUP.ID = inserted.GROUPID)
where (GROUPDATA.GROUPTYPECODE != 0) and -- Group is NOT a household
(CONSTITUENT_GROUP.ISCONSTITUENT = 1) and -- Group is a constituent
(CONSTITUENT.ISCONSTITUENT = 0) -- New member is NOT a constituent
end
end