USP_CONSTITUENTBATCH_GETSOLICITCODES_ADDFROMXML_DEFAULTID

Parameters

Parameter Parameter Type Mode Description
@BATCHCONSTITUENTID uniqueidentifier IN
@XML xml IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            CREATE PROCEDURE dbo.USP_CONSTITUENTBATCH_GETSOLICITCODES_ADDFROMXML_DEFAULTID
            (
                @BATCHCONSTITUENTID uniqueidentifier,
                @XML xml,
                @CHANGEAGENTID uniqueidentifier = null,
                @CHANGEDATE datetime = null
            )
            as

            set nocount on;

            if @CHANGEAGENTID is null
                exec USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

            if @CHANGEDATE is null
                set @CHANGEDATE = getdate();

            -- build a temporary table containing the values from the XML

            declare @TempTbl table (
                [COMMENTS] nvarchar(100),
                [CONSENTPREFERENCECODE] tinyint,
                [CONSENTSTATEMENT] nvarchar(max),
                [ENDDATE] datetime,
                [ID] uniqueidentifier,
                [PRIVACYPOLICYFILEPATH] nvarchar(260),
                [SEQUENCE] int,
                [SOLICITCODEID] uniqueidentifier,
                [SOURCECODEID] uniqueidentifier,
                [SOURCEFILEPATH] nvarchar(260),
                [STARTDATE] datetime,
                [SUPPORTINGINFORMATION] nvarchar(max));

            insert into @TempTbl select 
                coalesce([COMMENTS], ''),
                coalesce([CONSENTPREFERENCECODE], ''),
                coalesce([CONSENTSTATEMENT], ''),
                [ENDDATE],
                [ID],
                coalesce([PRIVACYPOLICYFILEPATH], ''),
                [SEQUENCE],
                [SOLICITCODEID],
                [SOURCECODEID],
                coalesce([SOURCEFILEPATH], ''),
                [STARTDATE],
                coalesce([SUPPORTINGINFORMATION], '')
            from dbo.UFN_CONSTITUENTBATCH_GETSOLICITCODES_FROMITEMLISTXML(@XML);

            update @TempTbl set ID = newid() where (ID is null) or (ID = '00000000-0000-0000-0000-000000000000');

            if @@error <> 0
                return 1;

            -- insert new items

            insert into [BATCHCONSTITUENTSOLICITCODE]
            (
                [BATCHCONSTITUENTID],
                [COMMENTS],
                [CONSENTPREFERENCECODE],
                [CONSENTSTATEMENT],
                [ENDDATE],
                [ID],
                [PRIVACYPOLICYFILEPATH],
                [SEQUENCE],
                [SOLICITCODEID],
                [SOURCECODEID],
                [SOURCEFILEPATH],
                [STARTDATE],
                [SUPPORTINGINFORMATION],
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED, 
                DATECHANGED
            )
            select @BATCHCONSTITUENTID,
                [COMMENTS],
                [CONSENTPREFERENCECODE],
                [CONSENTSTATEMENT],
                [ENDDATE],
                [ID],
                [PRIVACYPOLICYFILEPATH],
                [SEQUENCE],
                [SOLICITCODEID],
                [SOURCECODEID],
                [SOURCEFILEPATH],
                [STARTDATE],
                [SUPPORTINGINFORMATION],
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CHANGEDATE,
                @CHANGEDATE
            from @TempTbl as [temp];

            if @@error <> 0
                return 2;

            return 0;