TR_EDUCATIONALHISTORYSTATUSHISTORY_MARKASCONSTITUENT

Definition

Copy


CREATE trigger TR_EDUCATIONALHISTORYSTATUSHISTORY_MARKASCONSTITUENT on dbo.EDUCATIONALHISTORYSTATUSHISTORY 
after insert, update
not for replication
as begin
  if (update(EDUCATIONALHISTORYSTATUSID) or update(EDUCATIONALHISTORYID))
  begin
    declare @ISCONSTITUENTWHENCODE tinyint;
    select @ISCONSTITUENTWHENCODE = ISCONSTITUENTWHENCODE from dbo.STUDENTCONSTITUENCYSETTINGS;

    if (@ISCONSTITUENTWHENCODE = 0)
      begin
        update dbo.CONSTITUENT set
          ISCONSTITUENT = 1,
          CHANGEDBYID = inserted.CHANGEDBYID,
          DATECHANGED = GetDate()
        from inserted
        inner join dbo.EDUCATIONALHISTORY on inserted.EDUCATIONALHISTORYID = EDUCATIONALHISTORY.ID
        where (CONSTITUENT.ID = EDUCATIONALHISTORY.CONSTITUENTID)
        and (CONSTITUENT.ISCONSTITUENT = 0)
        and (dbo.UFN_CONSTITUENT_ISSTUDENT(CONSTITUENT.ID) = 1);
      end
    else if (@ISCONSTITUENTWHENCODE = 1)
      begin
        update dbo.CONSTITUENT set
          ISCONSTITUENT = 1,
          CHANGEDBYID = inserted.CHANGEDBYID,
          DATECHANGED = GetDate()
        from inserted
        inner join dbo.EDUCATIONALHISTORY on inserted.EDUCATIONALHISTORYID = EDUCATIONALHISTORY.ID
        where (CONSTITUENT.ID = EDUCATIONALHISTORY.CONSTITUENTID)
        and (CONSTITUENT.ISCONSTITUENT = 0)
        and (dbo.UFN_CONSTITUENT_ISALUMNUS(CONSTITUENT.ID) = 1);
      end

    /* Update relationship records based on Student Relationship Constituency Criteria */
    update dbo.CONSTITUENT set
      ISCONSTITUENT = 1,
      CHANGEDBYID = INSERTED.CHANGEDBYID,
      DATECHANGED = GetDate()
    from dbo.UFN_CONSTITUENT_STUDENTRELATIONCONSTITUENCIES() as RELATIONCONSTITUENCIES
    inner join dbo.EDUCATIONALHISTORY on RELATIONCONSTITUENCIES.RECIPROCALCONSTITUENTID = EDUCATIONALHISTORY.CONSTITUENTID 
    inner join INSERTED on EDUCATIONALHISTORY.ID = INSERTED.EDUCATIONALHISTORYID
    where RELATIONCONSTITUENCIES.CONSTITUENTID = CONSTITUENT.ID
    and CONSTITUENT.ISCONSTITUENT = 0;
  end
end