USP_DATAFORMTEMPLATE_ADD_ORGTOIND_RELATIONSHIP_3

The save procedure used by the add dataform template "Relationship Organization to Individual Add Form 3".

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 Related constituent
@RECIPROCALTYPECODEID uniqueidentifier IN Reciprocal relationship type
@RELATIONSHIPTYPECODEID uniqueidentifier IN Relationship type
@RELATIONSHIPSTARTDATE datetime IN Start date
@RELATIONSHIPENDDATE datetime IN End date
@ISCONTACT bit IN The individual is a contact for this organization
@ISPRIMARYCONTACT bit IN Primary contact
@CONTACTTYPECODEID uniqueidentifier IN Contact type
@POSITION nvarchar(50) IN Job title
@ISPRIMARYBUSINESS bit IN This is the primary business
@ISMATCHINGGIFTRELATIONSHIP bit IN The organization will match contributions for this relationship
@ADDADDRESS bit IN Add Address
@ADDRESSTYPECODEID uniqueidentifier IN Type
@PRIMARY bit IN Set as primary address
@DONOTMAIL bit IN Do not send mail to this address
@STARTDATE UDT_MONTHDAY IN Start date
@ENDDATE UDT_MONTHDAY IN End date
@COUNTRYID uniqueidentifier IN Country
@STATEID uniqueidentifier IN State
@ADDRESSBLOCK nvarchar(150) IN Address
@CITY nvarchar(50) IN City
@POSTCODE nvarchar(12) IN ZIP
@CART nvarchar(10) IN CART
@DPC nvarchar(8) IN DPC
@LOT nvarchar(5) IN LOT
@UPDATEMATCHINGSPOUSEADDRESSES bit IN Update matching address information for spouse
@OMITFROMVALIDATION bit IN Omit this address from validation
@COUNTYCODEID uniqueidentifier IN County
@CONGRESSIONALDISTRICTCODEID uniqueidentifier IN Congressional district
@STATEHOUSEDISTRICTCODEID uniqueidentifier IN State house district
@STATESENATEDISTRICTCODEID uniqueidentifier IN State senate district
@LOCALPRECINCTCODEID uniqueidentifier IN Local precinct
@INFOSOURCECODEID uniqueidentifier IN Info source
@REGIONCODEID uniqueidentifier IN Region
@LASTVALIDATIONATTEMPTDATE datetime IN Last attempt
@VALIDATIONMESSAGE nvarchar(200) IN Validation message
@CERTIFICATIONDATA int IN
@DONOTMAILREASONCODEID uniqueidentifier IN Reason
@KEYNAME nvarchar(100) IN Last name
@FIRSTNAME nvarchar(50) IN First name
@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
@JOBCATEGORYCODEID uniqueidentifier IN Category
@CAREERLEVELCODEID uniqueidentifier IN Career level
@REPLACERELATIONSHIP bit IN This replaces the relationship with:
@REPLACEMENTRELATIONSHIPID uniqueidentifier IN Replacement relationship

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ORGTOIND_RELATIONSHIP_3
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @CONSTITUENTID uniqueidentifier,
                        @RECIPROCALCONSTITUENTID uniqueidentifier = null,
                        @RECIPROCALTYPECODEID uniqueidentifier,
                        @RELATIONSHIPTYPECODEID uniqueidentifier,                
                        @RELATIONSHIPSTARTDATE datetime = null,
                        @RELATIONSHIPENDDATE datetime = null,
                        @ISCONTACT bit = 0,
                        @ISPRIMARYCONTACT bit = 0,
                        @CONTACTTYPECODEID uniqueidentifier = null,
                        @POSITION nvarchar(50) = '',
                        @ISPRIMARYBUSINESS bit = 0,
                        @ISMATCHINGGIFTRELATIONSHIP bit = 0,
                        @ADDADDRESS bit = 0,
                        @ADDRESSTYPECODEID uniqueidentifier = null,
                        @PRIMARY bit = 0,
                        @DONOTMAIL bit = 0,
                        @STARTDATE dbo.UDT_MONTHDAY = '0000',
                        @ENDDATE dbo.UDT_MONTHDAY = '0000',
                        @COUNTRYID uniqueidentifier = null,
                        @STATEID uniqueidentifier = null,
                        @ADDRESSBLOCK nvarchar(150) = '',
                        @CITY nvarchar(50) = '',
                        @POSTCODE nvarchar(12) = '',
                        @CART nvarchar(10) = '',
                        @DPC nvarchar(8) = '',
                        @LOT nvarchar(5) = '',
                        @UPDATEMATCHINGSPOUSEADDRESSES bit = 0,
                        @OMITFROMVALIDATION bit = 0,                        
                        @COUNTYCODEID uniqueidentifier = null,
                        @CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
                        @STATEHOUSEDISTRICTCODEID uniqueidentifier = null,
                        @STATESENATEDISTRICTCODEID uniqueidentifier = null,
                        @LOCALPRECINCTCODEID uniqueidentifier = null,
                        @INFOSOURCECODEID uniqueidentifier = null,
                        @REGIONCODEID uniqueidentifier = null,                    
                        @LASTVALIDATIONATTEMPTDATE datetime = null,
                        @VALIDATIONMESSAGE nvarchar(200) = '',
                        @CERTIFICATIONDATA integer = 0,
                        @DONOTMAILREASONCODEID uniqueidentifier = null,
                        @KEYNAME nvarchar(100),
                        @FIRSTNAME nvarchar(50) = null,
                        @SKIP_ADDING_SECURITYGROUPS bit = 0,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @SKIP_ADDING_SITES bit = 0,
                        @JOBCATEGORYCODEID uniqueidentifier = null,
                        @CAREERLEVELCODEID uniqueidentifier = null,
                        @REPLACERELATIONSHIP bit = 0,
                        @REPLACEMENTRELATIONSHIPID uniqueidentifier = null
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

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

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

                        if @DONOTMAIL = 0 
                          set @DONOTMAILREASONCODEID = null

                        begin try
                            if @RELATIONSHIPSTARTDATE > @CURRENTDATE
                                raiserror('BBERR_STARTDATEFUTURE', 13, 1)


                            if @REPLACERELATIONSHIP = 1 and @REPLACEMENTRELATIONSHIPID is not null
                            begin
                                --Check if start date was supplied for replace.

                                if @RELATIONSHIPSTARTDATE is null 
                                    raiserror('BBERR_STARTDATEREQUIRED', 13, 1)

                                update
                                    dbo.RELATIONSHIP
                                set
                                    ENDDATE = dateadd(d,-1, @RELATIONSHIPSTARTDATE),
                                    DATECHANGED = @CURRENTDATE,
                                    CHANGEDBYID = @CHANGEAGENTID
                                where
                                    ID = @REPLACEMENTRELATIONSHIPID;

                                update
                                    dbo.RELATIONSHIPJOBINFO
                                set
                                    ENDDATE = dateadd(d,-1, @RELATIONSHIPSTARTDATE),
                                    DATECHANGED = @CURRENTDATE,
                                    CHANGEDBYID = @CHANGEAGENTID
                                from dbo.RELATIONSHIPJOBINFO
                                inner join dbo.RELATIONSHIP
                                    on RELATIONSHIPJOBINFO.RELATIONSHIPSETID = RELATIONSHIP.RELATIONSHIPSETID
                                where
                                    RELATIONSHIP.ID = @REPLACEMENTRELATIONSHIPID
                                    and 
                                    (RELATIONSHIPJOBINFO.ENDDATE is null 
                                    or
                                    RELATIONSHIPJOBINFO.ENDDATE > @RELATIONSHIPSTARTDATE);


                            end


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

                                insert into dbo.CONSTITUENT(ID,KEYNAME,FIRSTNAME,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                                    values (@RECIPROCALCONSTITUENTID,@KEYNAME,@FIRSTNAME,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);

                                if coalesce(@SKIP_ADDING_SECURITYGROUPS,0) = 0
                                begin
                                    exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
                                            @APPUSERID = @CURRENTAPPUSERID,
                                            @DATAFORMTEMPLATEID = 'AFB63308-8261-4EF1-8C53-9AA2F5F6822B',
                                            @CONSTITUENTID = @RECIPROCALCONSTITUENTID,
                                            @DATEADDEDTOUSE = @CURRENTDATE,
                                            @CHANGEAGENTID = @CHANGEAGENTID;
                                end

                                if coalesce(@SKIP_ADDING_SITES,0) = 0
                                    exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
                                        @APPUSERID = @CURRENTAPPUSERID,
                                        @DATAFORMTEMPLATEID = 'AFB63308-8261-4EF1-8C53-9AA2F5F6822B',
                                        @CONSTITUENTID = @RECIPROCALCONSTITUENTID,
                                        @DATEADDEDTOUSE = @CURRENTDATE,
                                        @CHANGEAGENTID = @CHANGEAGENTID;                                
                            end

                            if @ISMATCHINGGIFTRELATIONSHIP = 1
                                update
                                    dbo.RELATIONSHIP
                                set
                                    ISMATCHINGGIFTRELATIONSHIP = 0,
                                    DATECHANGED = @CURRENTDATE,
                                    CHANGEDBYID = @CHANGEAGENTID
                                where
                                    RELATIONSHIPCONSTITUENTID = @CONSTITUENTID and
                                    RECIPROCALCONSTITUENTID = @RECIPROCALCONSTITUENTID and
                                    ISMATCHINGGIFTRELATIONSHIP = 1;

                            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,
                                ISCONTACT,
                                ISPRIMARYCONTACT,
                                CONTACTTYPECODEID,
                                STARTDATE,
                                ENDDATE,
                                ISPRIMARYBUSINESS,
                                ISMATCHINGGIFTRELATIONSHIP,
                                RELATIONSHIPSETID,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                @ID,
                                @CONSTITUENTID,
                                @RECIPROCALCONSTITUENTID,
                                @RELATIONSHIPTYPECODEID,
                                @RECIPROCALTYPECODEID,
                                @ISCONTACT,
                                @ISPRIMARYCONTACT,
                                @CONTACTTYPECODEID,
                                @RELATIONSHIPSTARTDATE,
                                @RELATIONSHIPENDDATE,
                                @ISPRIMARYBUSINESS,
                                @ISMATCHINGGIFTRELATIONSHIP,
                                @SETID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

                            if @ADDADDRESS = 1
                            begin
                                declare @ADDRESSID uniqueidentifier

                                exec dbo.USP_ADDRESS_CREATE @ADDRESSID output, @CHANGEAGENTID, @RECIPROCALCONSTITUENTID, @ADDRESSTYPECODEID, @PRIMARY, @DONOTMAIL,
                                    @STARTDATE, @ENDDATE, @COUNTRYID, @STATEID, @ADDRESSBLOCK, @CITY, @POSTCODE, @CART, @DPC, @LOT,
                                    @UPDATEMATCHINGSPOUSEADDRESSES, @OMITFROMVALIDATION, @COUNTYCODEID, @CONGRESSIONALDISTRICTCODEID,
                                    @STATEHOUSEDISTRICTCODEID, @STATESENATEDISTRICTCODEID, @LOCALPRECINCTCODEID, @INFOSOURCECODEID,
                                    @REGIONCODEID, @LASTVALIDATIONATTEMPTDATE, @VALIDATIONMESSAGE, @CERTIFICATIONDATA, @DONOTMAILREASONCODEID

                                if @ADDRESSID is not null
                                begin
                                    update ADDRESS
                                    set
                                        RELATIONSHIPID=@ID,
                                        CHANGEDBYID = @CHANGEAGENTID,
                                        DATECHANGED = @CURRENTDATE
                                    where 
                                        ID=@ADDRESSID
                                end
                            end

                            if (@JOBCATEGORYCODEID is not null) or 
                               (@CAREERLEVELCODEID is not null) or
                               (len(@POSITION) > 0)

                                insert into dbo.RELATIONSHIPJOBINFO
                                (
                                    RELATIONSHIPSETID,
                                    JOBTITLE,
                                    JOBCATEGORYCODEID,
                                    CAREERLEVELCODEID,
                                    STARTDATE,
                                    ADDEDBYID,
                                    CHANGEDBYID,
                                    DATEADDED,
                                    DATECHANGED
                                )
                                values
                                (
                                    @SETID,
                                    @POSITION,
                                    @JOBCATEGORYCODEID,
                                    @CAREERLEVELCODEID,
                                    @RELATIONSHIPSTARTDATE,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE
                                )

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

                        end try

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

                        return 0;