USP_DATAFORMTEMPLATE_ADD_INDIVIDUAL

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@LASTNAME nvarchar(100) IN Last name
@FIRSTNAME nvarchar(50) IN First name
@MIDDLENAME nvarchar(50) IN Middle name
@MAIDENNAME nvarchar(100) IN Maiden name
@NICKNAME nvarchar(50) IN Nickname
@TITLECODEID uniqueidentifier IN Title
@SUFFIXCODEID uniqueidentifier IN Suffix
@GENDERCODE tinyint IN Gender
@BIRTHDATE UDT_FUZZYDATE IN Birth date
@PICTURE varbinary IN Image
@PICTURETHUMBNAIL varbinary IN
@WEBADDRESS UDT_WEBADDRESS IN Website
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier IN Address type
@ADDRESS_DONOTMAIL bit IN Do not send mail to this address
@ADDRESS_COUNTRYID uniqueidentifier IN Country
@ADDRESS_STATEID uniqueidentifier IN State
@ADDRESS_ADDRESSBLOCK nvarchar(150) IN Address
@ADDRESS_CITY nvarchar(50) IN City
@ADDRESS_POSTCODE nvarchar(12) IN ZIP
@PHONE_PHONETYPECODEID uniqueidentifier IN Phone type
@PHONE_NUMBER nvarchar(100) IN Phone number
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier IN Email type
@EMAILADDRESS_EMAILADDRESS UDT_EMAILADDRESS IN Email address
@SKIP_ADDING_SECURITYGROUPS bit IN Skip adding security groups
@MARITALSTATUSCODEID uniqueidentifier IN Marital status
@JOBTITLE nvarchar(100) IN Job title
@OMITFROMVALIDATION bit IN Omit from validation
@CART nvarchar(10) IN
@DPC nvarchar(8) IN
@LOT nvarchar(5) IN
@COUNTYCODEID uniqueidentifier IN
@CONGRESSIONALDISTRICTCODEID uniqueidentifier IN
@LASTVALIDATIONATTEMPTDATE datetime IN
@VALIDATIONMESSAGE nvarchar(200) IN
@CERTIFICATIONDATA int IN
@SKIP_ADDING_SITES bit IN Skip adding sites
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier IN Reason
@TITLE2CODEID uniqueidentifier IN Title 2
@SUFFIX2CODEID uniqueidentifier IN Suffix 2
@INFOSOURCECODEID uniqueidentifier IN Information source
@ORIGINCODE tinyint IN Origin
@GENDERCODEID uniqueidentifier IN

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_INDIVIDUAL 
                    (
                        @ID uniqueidentifier = null output,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @LASTNAME nvarchar(100),
                        @FIRSTNAME nvarchar(50) = '',
                        @MIDDLENAME nvarchar(50) = '',
                        @MAIDENNAME nvarchar(100) = '',
                        @NICKNAME nvarchar(50) = '',
                        @TITLECODEID uniqueidentifier = null,
                        @SUFFIXCODEID uniqueidentifier = null,
                        @GENDERCODE tinyint = 0,
                        @BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
                        @PICTURE varbinary(max) = null,
                        @PICTURETHUMBNAIL varbinary(max) = null,
                        @WEBADDRESS dbo.UDT_WEBADDRESS = '',
                        @ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,
                        @ADDRESS_DONOTMAIL bit = 0,
                        @ADDRESS_COUNTRYID uniqueidentifier = null,
                        @ADDRESS_STATEID uniqueidentifier = null,
                        @ADDRESS_ADDRESSBLOCK nvarchar(150) = '',
                        @ADDRESS_CITY nvarchar(50) = '',
                        @ADDRESS_POSTCODE nvarchar(12) = '',
                        @PHONE_PHONETYPECODEID uniqueidentifier = null,
                        @PHONE_NUMBER nvarchar(100) = '',
                        @EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
                        @EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
                        @SKIP_ADDING_SECURITYGROUPS bit=0,
                        @MARITALSTATUSCODEID uniqueidentifier = null,
                        @JOBTITLE nvarchar(100) = '',
                        @OMITFROMVALIDATION bit = 0,
                        @CART nvarchar(10) = '',
                        @DPC nvarchar(8) = '',
                        @LOT nvarchar(5) = '',
                        @COUNTYCODEID uniqueidentifier = null,
                        @CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
                        @LASTVALIDATIONATTEMPTDATE datetime = null,
                        @VALIDATIONMESSAGE nvarchar(200) = '',
                        @CERTIFICATIONDATA integer = 0,
                        @SKIP_ADDING_SITES bit = 0,
                        @ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null,
                        @TITLE2CODEID uniqueidentifier = null,
                        @SUFFIX2CODEID uniqueidentifier = null,
                        @INFOSOURCECODEID uniqueidentifier = null,
                        @ORIGINCODE tinyint = 0,
                        @GENDERCODEID 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();

                        if @ADDRESS_DONOTMAIL = 0 
                            set @ADDRESS_DONOTMAILREASONCODEID = null

                        if @ORIGINCODE <> 0
                            set @INFOSOURCECODEID = null

                        begin try
                            insert into dbo.CONSTITUENT
                            (
                                [ID],
                                [ISORGANIZATION],
                                [KEYNAME],
                                [FIRSTNAME],
                                [MIDDLENAME],
                                [MAIDENNAME],
                                [NICKNAME],
                                [TITLECODEID],
                                [TITLE2CODEID],
                                [SUFFIXCODEID],
                                [SUFFIX2CODEID],
                                [GENDERCODE],
                                [BIRTHDATE],
                                [PICTURE],
                                [PICTURETHUMBNAIL],
                                [WEBADDRESS],
                                [MARITALSTATUSCODEID],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED],
                                [ISCONSTITUENT],
                                [GENDERCODEID]
                            )
                            values
                            (
                                @ID,
                                0,
                                @LASTNAME,
                                @FIRSTNAME,
                                @MIDDLENAME,
                                @MAIDENNAME,
                                @NICKNAME,
                                @TITLECODEID,
                                @TITLE2CODEID,
                                @SUFFIXCODEID,
                                @SUFFIX2CODEID,
                                @GENDERCODE,
                                @BIRTHDATE,
                                @PICTURE,
                                @PICTURETHUMBNAIL,
                                @WEBADDRESS,
                                @MARITALSTATUSCODEID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE,
                                1,
                                @GENDERCODEID
                            );

                            --If the origin is Web Forms, we want to label the constituent now regardless of first revenue

                            if @ORIGINCODE = 1
                            begin
                                insert dbo.[CONSTITUENTORIGINATION] (
                                    [ID],
                                    [ORIGINCODE],
                                    [ADDEDBYID],
                                    [CHANGEDBYID],
                                    [DATEADDED],
                                    [DATECHANGED]
                                )
                                values (
                                    @ID,
                                    @ORIGINCODE,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE
                                )
                            end

                            if @MAIDENNAME is not null and @MAIDENNAME != ''
                            begin
                                insert into dbo.ALIAS
                                    (CONSTITUENTID, KEYNAME, FIRSTNAME, MIDDLENAME, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
                                values
                                    (@ID, @MAIDENNAME, @FIRSTNAME, @MIDDLENAME, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
                            end

                            /*JOBTITLE*/
                            if len(@JOBTITLE) > 0
                                insert into dbo.CONSTITUENTJOBINFO (ID, JOBTITLE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                                values (@ID, @JOBTITLE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

                            if 
                            (
                                (@ADDRESS_STATEID is not null
                                or (coalesce(@ADDRESS_ADDRESSBLOCK,'') <> ''
                                or (coalesce(@ADDRESS_CITY,'') <> ''
                                or (coalesce(@ADDRESS_POSTCODE,'') <> ''
                                or (@ADDRESS_ADDRESSTYPECODEID is not null
                                or (@ADDRESS_COUNTRYID is not null)
                                or (@ADDRESS_DONOTMAIL = 1)
                                or (@ADDRESS_DONOTMAILREASONCODEID is not null)
                            )
                                begin
                                    declare @ADDRESSID uniqueidentifier;
                                    set @ADDRESSID = newID();

                                    insert into dbo.[ADDRESS]
                                    (
                                        [ID],
                                        [CONSTITUENTID],
                                        [ADDRESSTYPECODEID],
                                        [ISPRIMARY],
                                        [DONOTMAIL],
                                        [COUNTRYID],
                                        [STATEID],
                                        [ADDRESSBLOCK],
                                        [CITY],
                                        [POSTCODE],                                
                                        [CART],
                                        [DPC],
                                        [LOT],
                                        [ADDEDBYID],
                                        [CHANGEDBYID],
                                        [DATEADDED],
                                        [DATECHANGED],
                                        [DONOTMAILREASONCODEID]
                                    )
                                    values
                                    (
                                        @ADDRESSID,
                                        @ID,
                                        @ADDRESS_ADDRESSTYPECODEID,
                                        1,
                                        @ADDRESS_DONOTMAIL,
                                        @ADDRESS_COUNTRYID,
                                        @ADDRESS_STATEID,
                                        @ADDRESS_ADDRESSBLOCK,
                                        @ADDRESS_CITY,
                                        @ADDRESS_POSTCODE,
                                        @CART,
                                        @DPC,
                                        @LOT,                        
                                        @CHANGEAGENTID,
                                        @CHANGEAGENTID,
                                        @CURRENTDATE,
                                        @CURRENTDATE,
                                        @ADDRESS_DONOTMAILREASONCODEID
                                    );      

                                    insert into dbo.ADDRESSVALIDATIONUPDATE
                                    (
                                        [ID],
                                        [COUNTYCODEID],
                                        [CONGRESSIONALDISTRICTCODEID],
                                        [LASTVALIDATIONATTEMPTDATE],
                                        [VALIDATIONMESSAGE],
                                        [CERTIFICATIONDATA],
                                        [OMITFROMVALIDATION],
                                        [ORIGINCODE],
                                        [ADDEDBYID],
                                        [CHANGEDBYID],
                                        [DATEADDED],
                                        [DATECHANGED],
                                        [INFOSOURCECODEID]
                                    )
                                    values
                                    (
                                        @ADDRESSID,
                                        @COUNTYCODEID,
                                        @CONGRESSIONALDISTRICTCODEID,
                                        @CURRENTDATE,
                                        @VALIDATIONMESSAGE,
                                        @CERTIFICATIONDATA,
                                        @OMITFROMVALIDATION,
                                        @ORIGINCODE,
                                        @CHANGEAGENTID,
                                        @CHANGEAGENTID,
                                        @CURRENTDATE,
                                        @CURRENTDATE,
                                        @INFOSOURCECODEID
                                    );
                                end

                            /*Start Primary Phone */
                            if (@PHONE_PHONETYPECODEID is not null) or (coalesce(@PHONE_NUMBER,'') <> '')
                                begin
                                    insert into dbo.[PHONE]
                                    (
                                        [CONSTITUENTID],
                                        [PHONETYPECODEID],
                                        [NUMBER],
                                        [ISPRIMARY],
                                        [ORIGINCODE],
                                        [ADDEDBYID],
                                        [CHANGEDBYID],
                                        [DATEADDED],
                                        [DATECHANGED],
                                        [INFOSOURCECODEID],
                                        [COUNTRYID]
                                    )
                                    values
                                    (
                                        @ID,
                                        @PHONE_PHONETYPECODEID,
                                        @PHONE_NUMBER,
                                        1,
                                        @ORIGINCODE,
                                        @CHANGEAGENTID,
                                        @CHANGEAGENTID,
                                        @CURRENTDATE,
                                        @CURRENTDATE,
                                        @INFOSOURCECODEID,
                                        @ADDRESS_COUNTRYID
                                    );
                                end
                            /*End Primary Phone */

                            /*Start Primary Email Address */
                            if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '')
                                begin
                                    insert into dbo.[EMAILADDRESS]
                                    (
                                        [CONSTITUENTID],
                                        [EMAILADDRESSTYPECODEID],
                                        [EMAILADDRESS],
                                        [ISPRIMARY],
                                        [ORIGINCODE],
                                        [ADDEDBYID],
                                        [CHANGEDBYID],
                                        [DATEADDED],
                                        [DATECHANGED],
                                        [INFOSOURCECODEID]
                                    )
                                    values
                                    (
                                        @ID,
                                        @EMAILADDRESS_EMAILADDRESSTYPECODEID,
                                        @EMAILADDRESS_EMAILADDRESS,
                                        1,
                                        @ORIGINCODE,
                                        @CHANGEAGENTID,
                                        @CHANGEAGENTID,
                                        @CURRENTDATE,
                                        @CURRENTDATE,
                                        @INFOSOURCECODEID
                                    );
                                end
                            /*End Primary Email Address */


                            /*Start security groups*/
                            if COALESCE(@SKIP_ADDING_SECURITYGROUPS,0) = 0
                            BEGIN


                                exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
                                        @APPUSERID =@CURRENTAPPUSERID,
                                        @DATAFORMTEMPLATEID='B4A8C2CB-FE50-4c50-A587-DC3C409B0E6A',
                                        @CONSTITUENTID  =@ID,
                                        @DATEADDEDTOUSE =@CURRENTDATE,
                                        @CHANGEAGENTID = @CHANGEAGENTID;                                                                                                                                                


                            END
                            /*end security groups*/

                            if coalesce(@SKIP_ADDING_SITES,0) = 0
                                exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
                                    @APPUSERID = @CURRENTAPPUSERID,
                                    @DATAFORMTEMPLATEID = 'B4A8C2CB-FE50-4c50-A587-DC3C409B0E6A',
                                    @CONSTITUENTID = @ID,
                                    @DATEADDEDTOUSE = @CURRENTDATE,
                                    @CHANGEAGENTID = @CHANGEAGENTID;                                

                            /*Start name format defaults*/
                            INSERT INTO [dbo].[NAMEFORMAT]
                                ([CONSTITUENTID]
                                ,[NAMEFORMATTYPECODEID]
                                ,[NAMEFORMATFUNCTIONID]
                                ,[ADDEDBYID]
                                ,[CHANGEDBYID]
                                ,[DATEADDED]
                                ,[DATECHANGED]
                                ,[PRIMARYADDRESSEE]
                                ,[PRIMARYSALUTATION]
                                ,[SEQUENCE])
                            SELECT
                                @ID
                                ,NFD.NAMEFORMATTYPECODEID
                                ,NFD.NAMEFORMATFUNCTIONID
                                ,@CHANGEAGENTID
                                ,@CHANGEAGENTID
                                ,@CURRENTDATE
                                ,@CURRENTDATE
                                ,NFD.PRIMARYADDRESSEE
                                ,NFD.PRIMARYSALUTATION
                                ,(select count(ID) 
                                    from dbo.NAMEFORMATDEFAULT as SUBNFD 
                                    where NFD.ID > SUBNFD.ID 
                                    and NFD.APPLYTOCODE = SUBNFD.APPLYTOCODE)
                            FROM dbo.NAMEFORMATDEFAULT as NFD
                            WHERE NFD.APPLYTOCODE = 0 
                            /*End name format defaults*/

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

                        return 0;