USP_PLANNEDGIFT_GETPAYOUTSPLITS_ADDFROMXML_2

Used to add a set of records defined by UFN_PLANNEDGIFT_GETPAYOUTSPLITS 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_GETPAYOUTSPLITS_ADDFROMXML_2
            (
                @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,
                BASECURRENCYID uniqueidentifier,
                BASEEXCHANGERATEID uniqueidentifier,
                ORGANIZATIONAMOUNT money,
                ORGANIZATIONEXCHANGERATEID uniqueidentifier,
                TRANSACTIONAMOUNT money,
                TRANSACTIONCURRENCYID uniqueidentifier
            )

            insert into @TempTbl select 
                AMOUNT,
                DESIGNATIONID,
                ID,
                BASECURRENCYID,
                BASEEXCHANGERATEID,
                ORGANIZATIONAMOUNT,
                ORGANIZATIONEXCHANGERATEID,
                TRANSACTIONAMOUNT,
                TRANSACTIONCURRENCYID
            from dbo.UFN_PLANNEDGIFT_DESIGNATION_2_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 PLANNEDGIFTPAYOUTSPLIT 
                (REVENUEID, 
                AMOUNT,
                APPLICATIONCODE,
                DESIGNATIONID,
                ID,
                TYPECODE,                
                ADDEDBYID, 
                CHANGEDBYID, 
                DATEADDED, 
                DATECHANGED,
                BASECURRENCYID,
                BASEEXCHANGERATEID,
                ORGANIZATIONAMOUNT,
                ORGANIZATIONEXCHANGERATEID,
                TRANSACTIONAMOUNT,
                TRANSACTIONCURRENCYID
            )
            select @REVENUEID
                AMOUNT,
                0,
                DESIGNATIONID,
                ID,
                0
                @CHANGEAGENTID
                @CHANGEAGENTID
                @CHANGEDATE
                @CHANGEDATE,
                BASECURRENCYID,
                BASEEXCHANGERATEID,
                ORGANIZATIONAMOUNT,
                ORGANIZATIONEXCHANGERATEID,
                TRANSACTIONAMOUNT,
                TRANSACTIONCURRENCYID
            from @TempTbl as [temp]

            if @@Error <> 0
                return 2;

            return 0;