USP_PLANNEDGIFT_GETSPLITS_ADDFROMXML

Used to add a set of records defined by UFN_PLANNEDGIFT_GETSPLITS from the given xml string.

Parameters

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

Definition

Copy


            create procedure dbo.USP_PLANNEDGIFT_GETSPLITS_ADDFROMXML 
            (
                @REVENUEID 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)

            insert into @TempTbl select 
                AMOUNT,
                DESIGNATIONID,
                ID
            from dbo.UFN_PLANNEDGIFT_DESIGNATION_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 REVENUESPLIT 
                (REVENUEID, 
                AMOUNT,
                APPLICATIONCODE,
                DESIGNATIONID,
                ID,
                TYPECODE,                
                ADDEDBYID, 
                CHANGEDBYID, 
                DATEADDED, 
                DATECHANGED)
            select @REVENUEID
                AMOUNT,
                0,
                DESIGNATIONID,
                ID,
                0
                @CHANGEAGENTID
                @CHANGEAGENTID
                @CHANGEDATE
                @CHANGEDATE
            from @TempTbl as [temp]

            if @@Error <> 0
                return 2;

            return 0;