USP_DATAFORMTEMPLATE_ADD_CONSITUENTSPOUSE

The save procedure used by the add dataform template "Constituent Spouse Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@RECIPROCALCONSTITUENTID uniqueidentifier IN Full name
@RECIPROCALTYPECODEID uniqueidentifier IN Reciprocal relationship type
@RELATIONSHIPTYPECODEID uniqueidentifier IN Relationship type
@COPYPRIMARYINFORMATION bit IN Copy primary information
@STARTDATE datetime IN Start date
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit IN Apply to <Constituent> for revenue from <Reciprocal>
@PRIMARYSOFTCREDITMATCHFACTOR decimal(5, 2) IN Recognition credit match percent
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit IN Apply to <Reciprocal> for revenue from <Constituent>
@RECIPROCALSOFTCREDITMATCHFACTOR decimal(5, 2) IN Recognition credit match percent
@LASTNAME nvarchar(100) IN Last name
@FIRSTNAME nvarchar(50) IN First name
@MIDDLENAME nvarchar(50) IN Middle name
@TITLECODEID uniqueidentifier IN Title
@SUFFIXCODEID uniqueidentifier IN Suffix
@NICKNAME nvarchar(50) IN Nickname
@MAIDENNAME nvarchar(100) IN Maiden name
@GENDERCODE tinyint IN Gender
@BIRTHDATE UDT_FUZZYDATE IN Birth date
@HOUSEHOLDCOPYPRIMARYCONTACTINFO bit IN Copy primary contact information
@SKIP_ADDING_SECURITYGROUPS bit IN Skip adding security groups
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SKIP_ADDING_SITES bit IN Skip adding sites
@TITLE2CODEID uniqueidentifier IN Title 2
@SUFFIX2CODEID uniqueidentifier IN Suffix 2
@INFOSOURCECODEID uniqueidentifier IN Constituent information source

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CONSITUENTSPOUSE(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,    
    @CONSTITUENTID uniqueidentifier,
    @RECIPROCALCONSTITUENTID uniqueidentifier = null,
    @RECIPROCALTYPECODEID uniqueidentifier,
    @RELATIONSHIPTYPECODEID uniqueidentifier,
    @COPYPRIMARYINFORMATION bit = 1,
    @STARTDATE datetime = null,
    @PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
    @PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
    @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0,
    @RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
    @LASTNAME nvarchar(100) = '',
    @FIRSTNAME nvarchar(50) = '',
    @MIDDLENAME nvarchar(50) = '',
    @TITLECODEID uniqueidentifier = null,
    @SUFFIXCODEID uniqueidentifier = null,
    @NICKNAME nvarchar(50) = '',
    @MAIDENNAME nvarchar(100) = '',
    @GENDERCODE tinyint = 0,
    @BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
    @HOUSEHOLDCOPYPRIMARYCONTACTINFO bit = null,
    @SKIP_ADDING_SECURITYGROUPS bit=0,
    @CURRENTAPPUSERID uniqueidentifier,
    @SKIP_ADDING_SITES bit = 0,
    @TITLE2CODEID uniqueidentifier = null,
    @SUFFIX2CODEID uniqueidentifier = null,
    @INFOSOURCECODEID uniqueidentifier = null
)
as
    set nocount on;

    declare @CURRENTDATE datetime;

    if @ID is null
        set @ID = newid();

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    set @CURRENTDATE = getdate();

    begin try                            
        if @RECIPROCALCONSTITUENTID is null
        begin
            set @RECIPROCALCONSTITUENTID = newid();

            -- Determine if the new spouse should be a constituent

            declare @ISCONSTITUENT bit = 0;

            if (dbo.UFN_CONSTITUENCYCRITERIASPOUSE_SPOUSEISCONSTITUENT() = 1)
            begin
                select @ISCONSTITUENT = CONSTITUENT.ISCONSTITUENT
                from dbo.CONSTITUENT
                where CONSTITUENT.ID = @CONSTITUENTID;
            end

            insert into dbo.CONSTITUENT
            (
                ID,
                KEYNAME,
                FIRSTNAME,
                MIDDLENAME,
                TITLECODEID,
                TITLE2CODEID,
                SUFFIXCODEID,
                SUFFIX2CODEID,
                NICKNAME,
                MAIDENNAME,
                GENDERCODE,
                BIRTHDATE,
                ISCONSTITUENT,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            )
            values
            (
                @RECIPROCALCONSTITUENTID,
                @LASTNAME,
                @FIRSTNAME,
                @MIDDLENAME,
                @TITLECODEID,
                @TITLE2CODEID,
                @SUFFIXCODEID,
                @SUFFIX2CODEID,
                @NICKNAME,
                @MAIDENNAME,
                @GENDERCODE,
                @BIRTHDATE,
                @ISCONSTITUENT,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            );

            if @INFOSOURCECODEID is not null
            begin
                insert into dbo.CONSTITUENTORIGINATION
                (
                    ID,
                    INFOSOURCECODEID,
                    ADDEDBYID,
                    CHANGEDBYID,
                    DATEADDED,
                    DATECHANGED
                )
                values
                (
                    @RECIPROCALCONSTITUENTID,
                    @INFOSOURCECODEID,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CURRENTDATE,
                    @CURRENTDATE
                );
            end;

            insert into dbo.[NAMEFORMAT]
                ([CONSTITUENTID]
                ,[NAMEFORMATTYPECODEID]
                ,[NAMEFORMATFUNCTIONID]
                ,[ADDEDBYID]
                ,[CHANGEDBYID]
                ,[DATEADDED]
                ,[DATECHANGED]
                ,[PRIMARYADDRESSEE]
                ,[PRIMARYSALUTATION])
            select
                @RECIPROCALCONSTITUENTID
                ,NFD.NAMEFORMATTYPECODEID
                ,NFD.NAMEFORMATFUNCTIONID
                ,@CHANGEAGENTID
                ,@CHANGEAGENTID
                ,@CURRENTDATE
                ,@CURRENTDATE
                ,NFD.PRIMARYADDRESSEE
                ,NFD.PRIMARYSALUTATION
            from dbo.NAMEFORMATDEFAULT as NFD
            where NFD.APPLYTOCODE = 0                 

            /*Start security groups*/
            if COALESCE(@SKIP_ADDING_SECURITYGROUPS,0) = 0
            begin
                exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
                        @APPUSERID =@CURRENTAPPUSERID,
                        @DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
                        @CONSTITUENTID  =@RECIPROCALCONSTITUENTID,
                        @DATEADDEDTOUSE =@CURRENTDATE,
                        @CHANGEAGENTID = @CHANGEAGENTID;
            end
            /*end security groups*/    

            if coalesce(@SKIP_ADDING_SITES,0) = 0
                exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD 
                    @APPUSERID = @CURRENTAPPUSERID,
                    @DATAFORMTEMPLATEID = '9d3aff90-42d0-4db0-a4c1-703d25fd1902',
                    @CONSTITUENTID = @RECIPROCALCONSTITUENTID,
                    @DATEADDEDTOUSE = @CURRENTDATE,
                    @CHANGEAGENTID = @CHANGEAGENTID;
        end

        declare @SETID uniqueidentifier = newid();

        insert into dbo.RELATIONSHIPSET
        (
            ID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @SETID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        insert into dbo.RELATIONSHIP
        (
            ID,
            RELATIONSHIPCONSTITUENTID,
            RECIPROCALCONSTITUENTID,
            RELATIONSHIPTYPECODEID,
            RECIPROCALTYPECODEID,
            ISSPOUSE,
            STARTDATE,
            RELATIONSHIPSETID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @ID,
            @CONSTITUENTID,
            @RECIPROCALCONSTITUENTID,
            @RELATIONSHIPTYPECODEID,
            @RECIPROCALTYPECODEID,
            1,
            @STARTDATE,
            @SETID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @RELATIONSHIPTYPECODEID, @RECIPROCALTYPECODEID, @CHANGEAGENTID, @CURRENTDATE

        if @COPYPRIMARYINFORMATION = 1
            exec dbo.USP_CONSTITUENT_COPYPRIMARYCONTACTINFO @CHANGEAGENTID, @CONSTITUENTID, @RECIPROCALCONSTITUENTID;

        exec dbo.USP_SPOUSERELATIONSHIP_SETUPHOUSEHOLD @CONSTITUENTID, @RECIPROCALCONSTITUENTID
                @HOUSEHOLDCOPYPRIMARYCONTACTINFO, @CHANGEAGENTID, @CURRENTDATE,
                @SKIP_ADDING_SECURITYGROUPS,@CURRENTAPPUSERID;
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;