USP_REVENUEBATCH_GETUNAPPLIEDMATCHINGGIFTSPLITS_ADDFROMXML

Adds a collection of unapplied matching gift splits database

Parameters

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

Definition

Copy


            CREATE PROCEDURE dbo.USP_REVENUEBATCH_GETUNAPPLIEDMATCHINGGIFTSPLITS_ADDFROMXML
            (
            @BATCHREVENUEID 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 (
               AMOUNT money,
               DESIGNATIONID uniqueidentifier,
               ID uniqueidentifier,
               SEQUENCE int)

            insert into @TempTbl select 
                AMOUNT,
                DESIGNATIONID,
                ID,
                SEQUENCE 
            from dbo.UFN_REVENUEBATCH_GETUNAPPLIEDMATCHINGGIFTSPLITS_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 BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT 
                (BATCHREVENUEID, 
                AMOUNT,
                DESIGNATIONID,
                ID,
                SEQUENCE,                
                ADDEDBYID, 
                CHANGEDBYID, 
                DATEADDED, 
                DATECHANGED)
            select @BATCHREVENUEID
                AMOUNT,
                DESIGNATIONID,
                ID,
                SEQUENCE
                @CHANGEAGENTID
                @CHANGEAGENTID
                @CHANGEDATE
                @CHANGEDATE
            from @TempTbl as [temp]

            if @@Error <> 0
                return 2;

            return 0;