UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR

Returns constituents with address and name format processing rules applied.

Return

Return Type
uniqueidentifier

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@SPOUSEID uniqueidentifier IN
@CONSTITUENTGENDERCODE tinyint IN
@SPOUSEGENDERCODE tinyint IN
@JOINTRULETYPECODE tinyint IN
@JOINTSELECTIONID uniqueidentifier IN
@JOINTSELECTIONBOTHRULETYPECODE tinyint IN
@JOINTSELECTIONNEITHERRULETYPECODE tinyint IN
@CONSTITUENTGENDERCODEID uniqueidentifier IN
@SPOUSEGENDERCODEID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR(
  @CONSTITUENTID uniqueidentifier,
  @SPOUSEID uniqueidentifier,
  @CONSTITUENTGENDERCODE tinyint,
  @SPOUSEGENDERCODE tinyint,
  @JOINTRULETYPECODE As tinyint,    
  @JOINTSELECTIONID As uniqueidentifier,    
  @JOINTSELECTIONBOTHRULETYPECODE As tinyint,    
  @JOINTSELECTIONNEITHERRULETYPECODE As tinyint,
  @CONSTITUENTGENDERCODEID uniqueidentifier,
  @SPOUSEGENDERCODEID uniqueidentifier)
returns uniqueidentifier
as
begin

    declare @MALEGENDERCODEID uniqueidentifier = dbo.UFN_GENDERCODEDEFAULTMAPPING_GETGENDERCODEID(1);
    declare @FEMALEGENDERCODEID uniqueidentifier = dbo.UFN_GENDERCODEDEFAULTMAPPING_GETGENDERCODEID(2);
    declare @UNKNOWNGENDERCODEID uniqueidentifier = dbo.UFN_GENDERCODEDEFAULTMAPPING_GETGENDERCODEID(0);

    if @SPOUSEID is null 
        return @CONSTITUENTID;

    if @JOINTRULETYPECODE = 1 /*default*/
        return @CONSTITUENTID;

    if @JOINTRULETYPECODE = 2 /*primary*/
        if dbo.UFN_CONSTITUENT_ISPRIMARYHOUSEHOLDMEMBER(@SPOUSEID) = 1 
            return @SPOUSEID
        else 
            return @CONSTITUENTID

    if @JOINTRULETYPECODE = 3 /* male */ 
        if isnull(@SPOUSEGENDERCODEID, @UNKNOWNGENDERCODEID) = @MALEGENDERCODEID
        and isnull(@CONSTITUENTGENDERCODEID, @UNKNOWNGENDERCODEID) <> @MALEGENDERCODEID 
            return @SPOUSEID
        else
            return @CONSTITUENTID

    if @JOINTRULETYPECODE = 4 /* female */
        if isnull(@SPOUSEGENDERCODEID, @UNKNOWNGENDERCODEID) = @FEMALEGENDERCODEID 
        and isnull(@CONSTITUENTGENDERCODEID, @UNKNOWNGENDERCODEID) <> @FEMALEGENDERCODEID
            return @SPOUSEID
        else
            return @CONSTITUENTID

    if @JOINTRULETYPECODE = 5 /* selection */ 
    begin
        declare @CONSTITUENTEXISTS bit = 0;
        declare @SPOUSEEXISTS bit = 0;

        set @CONSTITUENTEXISTS = dbo.UFN_IDSETREADER_EXISTSIN_GUID(@JOINTSELECTIONID, @CONSTITUENTID);

        set @SPOUSEEXISTS = dbo.UFN_IDSETREADER_EXISTSIN_GUID(@JOINTSELECTIONID, @SPOUSEID);

        if @CONSTITUENTEXISTS = 1 and @SPOUSEEXISTS = 0
            return @CONSTITUENTID;

        if @CONSTITUENTEXISTS = 0 and @SPOUSEEXISTS = 1
            return @SPOUSEID;

        if @CONSTITUENTEXISTS = 1 and @SPOUSEEXISTS = 1
        begin
            if @JOINTSELECTIONBOTHRULETYPECODE = 1 
                return @CONSTITUENTID;

            if @JOINTSELECTIONBOTHRULETYPECODE = 2 /*primary*/
                if dbo.UFN_CONSTITUENT_ISPRIMARYHOUSEHOLDMEMBER(@SPOUSEID) = 1 
                    return @SPOUSEID
                else 
                    return @CONSTITUENTID


            if @JOINTSELECTIONBOTHRULETYPECODE = 3 /* male */ 
                if isnull(@SPOUSEGENDERCODEID, @UNKNOWNGENDERCODEID) = @MALEGENDERCODEID and isnull(@CONSTITUENTGENDERCODEID, @UNKNOWNGENDERCODEID) <> @MALEGENDERCODEID
                    return @SPOUSEID
                else
                    return @CONSTITUENTID


            if @JOINTSELECTIONBOTHRULETYPECODE = 4 /* female */ 
                if isnull(@SPOUSEGENDERCODEID, @UNKNOWNGENDERCODEID) = @FEMALEGENDERCODEID and isnull(@CONSTITUENTGENDERCODEID, @UNKNOWNGENDERCODEID) <> @FEMALEGENDERCODEID
                    return @SPOUSEID
                else
                    return @CONSTITUENTID
        end

        if @CONSTITUENTEXISTS = 1 and @SPOUSEEXISTS = 1
        begin
            if @JOINTSELECTIONNEITHERRULETYPECODE = 1 
                return @CONSTITUENTID;

            if @JOINTSELECTIONNEITHERRULETYPECODE = 2 /*primary*/
                if dbo.UFN_CONSTITUENT_ISPRIMARYHOUSEHOLDMEMBER(@SPOUSEID) = 1 
                    return @SPOUSEID
                else 
                    return @CONSTITUENTID


            if @JOINTSELECTIONNEITHERRULETYPECODE = 3 /* male */ 
                if isnull(@SPOUSEGENDERCODEID, @UNKNOWNGENDERCODEID) = @MALEGENDERCODEID and isnull(@CONSTITUENTGENDERCODEID, @UNKNOWNGENDERCODEID) <> @MALEGENDERCODEID
                    return @SPOUSEID
                else
                    return @CONSTITUENTID


            if @JOINTSELECTIONNEITHERRULETYPECODE = 4 /* female */ 
                if isnull(@SPOUSEGENDERCODEID, @UNKNOWNGENDERCODEID) = @FEMALEGENDERCODEID and isnull(@CONSTITUENTGENDERCODEID, @UNKNOWNGENDERCODEID) <> @FEMALEGENDERCODEID
                    return @SPOUSEID
                else
                    return @CONSTITUENTID
        end                    


    end

    return @CONSTITUENTID;
end