UFN_ADDRESSPROCESS_GETCONSTITUENTS_BYCONSTITUENT

Returns constituents and household information for address processing.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@DATE datetime IN
@INCLUDEHOUSEHOLDPROCESSING bit IN

Definition

Copy


   CREATE FUNCTION dbo.UFN_ADDRESSPROCESS_GETCONSTITUENTS_BYCONSTITUENT  
   (    
    @CONSTITUENTID uniqueidentifier,
    @DATE datetime,    
    @INCLUDEHOUSEHOLDPROCESSING bit    
   )    
   returns table    
   as    
   return    
    (    
     with HOUSEHOLD_CTE as (    
      select    
       CONSTITUENT.ID [CONSTITUENTID],    
       GROUPDATA.ID [HOUSEHOLDID]    
      from    
       dbo.CONSTITUENT    
      inner join    
       dbo.GROUPMEMBER on GROUPMEMBER.MEMBERID = CONSTITUENT.ID    
      inner join    
       dbo.GROUPDATA on GROUPDATA.ID = GROUPMEMBER.GROUPID    
      inner join    
       dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GROUPMEMBER.ID    
      where    
        GROUPDATA.GROUPTYPECODE = 0    
      and    
       ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > dbo.UFN_DATE_GETEARLIESTTIME(@DATE)))    
        or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= dbo.UFN_DATE_GETEARLIESTTIME(@DATE)))     
        or (GMDR.DATEFROM <= dbo.UFN_DATE_GETEARLIESTTIME(@DATE) and GMDR.DATETO > dbo.UFN_DATE_GETEARLIESTTIME(@DATE)))    
     )    
     select    
      C.ID [ID],    
      C.ID [CONSTITUENTID],    
      case    
       when GROUPDATA.GROUPTYPECODE = 0 then C.ID    
       else HOUSEHOLD_CTE.HOUSEHOLDID    
      end [HOUSEHOLDID],    
      0 [RETURNEDASHOUSEHOLDMEMBER],    
      C.ISORGANIZATION,    
      C.ISGROUP    
     from    
      dbo.CONSTITUENT C    
     left outer join    
      HOUSEHOLD_CTE on HOUSEHOLD_CTE.CONSTITUENTID = C.ID    
     left outer join    
      dbo.GROUPDATA on GROUPDATA.ID = C.ID    
     where C.ID = @CONSTITUENTID

    union  

     select    
      CONSTITUENT.ID,    
      CONSTITUENT.ID,    
      CONSTITUENT.ID,    
      1,    
      0,    
      1    
     from    
      dbo.CONSTITUENT    
     inner join    
      dbo.GROUPDATA on CONSTITUENT.ID = GROUPDATA.ID    
     where 
     GROUPDATA.ID  = @CONSTITUENTID   
     and
      GROUPDATA.GROUPTYPECODE = 0    
     and    
      @INCLUDEHOUSEHOLDPROCESSING = 1    

    union  

     select    
      GD.ID,    
      GM.MEMBERID,    
      GD.ID,    
      1,    
      0, -- org    

      1 -- group         

     from    
      dbo.GROUPMEMBER GM    
     left outer join    
      dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID    
     left outer join    
      dbo.GROUPDATA GD on GD.ID = GM.GROUPID    
     where
     GM.MEMBERID = @CONSTITUENTID    
     and
      @INCLUDEHOUSEHOLDPROCESSING = 1    
     and    
      GD.GROUPTYPECODE = 0    
     and    
      ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > dbo.UFN_DATE_GETEARLIESTTIME(@DATE)))    
       or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= dbo.UFN_DATE_GETEARLIESTTIME(@DATE)))     
       or (GMDR.DATEFROM <= dbo.UFN_DATE_GETEARLIESTTIME(@DATE) and GMDR.DATETO > dbo.UFN_DATE_GETEARLIESTTIME(@DATE)))    

    )