USP_BATCHSPONSORSHIP_ADDGROUP

Adds a new sponsorship batch group.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(300) IN
@GROUPTYPEID uniqueidentifier IN
@GIVESANONYMOUSLY bit IN
@ADDRESSTYPECODEID uniqueidentifier IN
@COUNTRYID uniqueidentifier IN
@ADDRESSBLOCK nvarchar(150) IN
@CITY nvarchar(50) IN
@STATEID uniqueidentifier IN
@POSTCODE nvarchar(12) IN
@PHONETYPECODEID uniqueidentifier IN
@NUMBER nvarchar(100) IN
@EMAILADDRESSTYPECODEID uniqueidentifier IN
@EMAILADDRESS UDT_EMAILADDRESS IN
@WEBADDRESS UDT_WEBADDRESS IN
@MEMBERS xml IN
@STARTDATE datetime IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@DONOTMAIL bit IN
@DONOTMAILREASONCODEID uniqueidentifier IN
@OMITFROMVALIDATION bit IN
@CART nvarchar(10) IN
@DPC nvarchar(8) IN
@LOT nvarchar(5) IN
@COUNTYCODEID uniqueidentifier IN
@CONGRESSIONALDISTRICTCODEID uniqueidentifier IN
@LASTVALIDATIONATTEMPTDATE datetime IN
@VALIDATIONMESSAGE nvarchar(100) IN
@CERTIFICATIONDATA int IN
@DONOTCALL bit IN
@DONOTEMAIL bit IN

Definition

Copy


            CREATE procedure dbo.USP_BATCHSPONSORSHIP_ADDGROUP
            (
                @ID uniqueidentifier output,
                @NAME nvarchar(100),
                @DESCRIPTION nvarchar(300) = '',
                @GROUPTYPEID uniqueidentifier = null,
                @GIVESANONYMOUSLY bit = null,
                @ADDRESSTYPECODEID uniqueidentifier = null,
                @COUNTRYID uniqueidentifier = null,
                @ADDRESSBLOCK nvarchar(150) = '',
                @CITY nvarchar(50) = '',
                @STATEID uniqueidentifier = null,
                @POSTCODE nvarchar(12) = '',
                @PHONETYPECODEID uniqueidentifier = null,
                @NUMBER nvarchar(100) = '',
                @EMAILADDRESSTYPECODEID uniqueidentifier = null,
                @EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
                @WEBADDRESS dbo.UDT_WEBADDRESS = '',
                @MEMBERS xml = null,
                @STARTDATE datetime = null,
                @CHANGEAGENTID uniqueidentifier = null,
                @CURRENTAPPUSERID uniqueidentifier = null,
                @DONOTMAIL bit = 0,
                @DONOTMAILREASONCODEID uniqueidentifier = null,
                @OMITFROMVALIDATION bit = 0,
                @CART nvarchar(10) = '',
                @DPC nvarchar(8) = '',
                @LOT nvarchar(5) = '',
                @COUNTYCODEID uniqueidentifier = null,
                @CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
                @LASTVALIDATIONATTEMPTDATE datetime = null,
                @VALIDATIONMESSAGE nvarchar(100) = '',
                @CERTIFICATIONDATA integer = 0,
                @DONOTCALL bit = 0,
                @DONOTEMAIL bit = 0
            ) 
            as
                set nocount on;

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

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

                    if @DONOTMAIL = 0
                        set @DONOTMAILREASONCODEID = null

                    -- Create the batch constituent record for the group

                    insert into dbo.BATCHSPONSORSHIPCONSTITUENT
                    (
                        ID, 
                        ISGROUP, 
                        KEYNAME, 
                        GIVESANONYMOUSLY, 
                        GROUPTYPECODE,
                        GROUPTYPEID,
                        GROUPDESCRIPTION,
                        GROUPSTARTDATE,
                        ADDRESSTYPECODEID,
                        COUNTRYID,
                        STATEID,
                        ADDRESSBLOCK,
                        CITY,
                        POSTCODE,
                        OMITFROMVALIDATION,
                        CART,
                        DPC,
                        LOT,
                        COUNTYCODEID,
                        CONGRESSIONALDISTRICTCODEID,
                        LASTVALIDATIONATTEMPTDATE,
                        VALIDATIONMESSAGE,
                        CERTIFICATIONDATA,
                        PHONETYPECODEID,
                        NUMBER,
                        EMAILADDRESSTYPECODEID,
                        EMAILADDRESS,
                        WEBADDRESS,
                        CURRENTAPPUSERID,
                        ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,
                        DONOTMAIL,
                        DONOTMAILREASONCODEID,
                        DONOTCALL,
                        DONOTEMAIL
                    )
                    values
                    (
                        @ID
                        1
                        @NAME
                        @GIVESANONYMOUSLY
                        1, -- Indicates group

                        @GROUPTYPEID,
                        @DESCRIPTION,
                        @STARTDATE,
                        @ADDRESSTYPECODEID,
                        @COUNTRYID,
                        @STATEID,
                        @ADDRESSBLOCK,
                        @CITY,
                        @POSTCODE,
                        @OMITFROMVALIDATION,
                        @CART,
                        @DPC,
                        @LOT,
                        @COUNTYCODEID,
                        @CONGRESSIONALDISTRICTCODEID,
                        @LASTVALIDATIONATTEMPTDATE,
                        @VALIDATIONMESSAGE,
                        @CERTIFICATIONDATA,
                        @PHONETYPECODEID,
                        @NUMBER,
                        @EMAILADDRESSTYPECODEID,
                        @EMAILADDRESS,
                        @WEBADDRESS,
                        @CURRENTAPPUSERID,
                        @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE,
                        @DONOTMAIL,
                        @DONOTMAILREASONCODEID,
                        @DONOTCALL,
                        @DONOTEMAIL
                    );

                    -- Handle group members


                    declare @MEMBERSTABLE table 
                    (
                        ID uniqueidentifier,
                        ISPRIMARY bit,
                        BATCHSPONSORSHIPCONSTITUENTID uniqueidentifier,
                        MEMBERID uniqueidentifier
                    )

                    insert into @MEMBERSTABLE
                    (
                        ID,
                        ISPRIMARY,
                        BATCHSPONSORSHIPCONSTITUENTID,
                        MEMBERID
                    )
                    select 
                        case when ID is null then newid() else ID end,
                        ISPRIMARY,
                        newid(),
                        MEMBERID -- For constituents that exist CONSTITUENT, this is their CONSTITUENT.ID.  If they only exist in BATCHSPONSORSHIPCONSTITUENT, then it's BATCHSPONSORSHIPCONSTITUENT.ID.

                    from dbo.UFN_BATCHSPONSORSHIPCONSTITUENT_GETGROUPMEMBERS_FROMITEMLISTXML(@MEMBERS)

                    if (exists(select top 1 1 from @MEMBERSTABLE group by MEMBERID having count(1) > 1))
                    begin
                        raiserror('ERR_MEMBERSUNIQUE : Group members must be unique.', 13, 1);
                    end

                    -- Create BATCHSPONSORSHIPCONSTITUENT entries for the constituents that had a 

                    -- CONSTITUENT.ID passed in for MEMBERID.

                    insert into dbo.BATCHSPONSORSHIPCONSTITUENT
                    (
                        ID,
                        EXISTINGCONSTITUENTID,
                        ISORGANIZATION,
                        ISGROUP,
                        GROUPTYPECODE,
                        ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
                    )
                    select
                        M.BATCHSPONSORSHIPCONSTITUENTID,
                        M.MEMBERID,
                        C.ISORGANIZATION,
                        C.ISGROUP,
                        coalesce(GD.GROUPTYPECODE, 0),
                        @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                    from @MEMBERSTABLE M
                    left join dbo.CONSTITUENT C on M.MEMBERID = C.ID
                    left join dbo.GROUPDATA GD on C.ID = GD.ID
                    where C.ID is not null

                    -- For records that had a BATCHSPONSORSHIPCONSTITUENTID.ID passed

                    -- in for MEMBERID, update BATCHSPONSORSHIPCONSTITUENTID to MEMBERID.

                    update @MEMBERSTABLE set BATCHSPONSORSHIPCONSTITUENTID = MEMBERID
                    from @MEMBERSTABLE M
                    left join dbo.CONSTITUENT C on M.MEMBERID = C.ID
                    where C.ID is null

                    insert into dbo.BATCHSPONSORSHIPCONSTITUENTGROUPMEMBER
                    (
                        ID,
                        GROUPID,
                        MEMBERID,
                        ISPRIMARY,
                        ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
                    )
                    select
                        ID,
                        @ID,
                        BATCHSPONSORSHIPCONSTITUENTID,
                        ISPRIMARY,
                        @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                    from @MEMBERSTABLE
                end try
                begin catch
                    exec USP_RAISE_ERROR;
                    return 1;
                end catch