UFN_MATCHINGGIFT_GETAUTOADDSPLITS_2

Stored procedure to add matching gifts from spouse relationship based on matching gift preferences

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@AMOUNT money IN
@MATCHINGGIFTAMOUNT money IN
@SPLITS xml IN
@TYPECODE tinyint IN
@APPLICATIONCODE tinyint IN

Definition

Copy


            CREATE FUNCTION dbo.UFN_MATCHINGGIFT_GETAUTOADDSPLITS_2
            (
                @AMOUNT money,
                @MATCHINGGIFTAMOUNT money,
                @SPLITS xml,
                @TYPECODE tinyint,
                @APPLICATIONCODE tinyint
            )
            returns xml
            as
            BEGIN
                -- Update the xml so that it has the proper root element

                -- 17 and 9 are both sponsorships (sponsorship additional gift and sponsorship)

                set @SPLITS = (
                    select AMOUNT, DESIGNATIONID as ID, TRANSACTIONCURRENCYID
                        from dbo.UFN_REVENUE_GETSPLITS_2_FROMITEMLISTXML(@SPLITS)
                        where  (case when TYPECODE = 17 then 9 else TYPECODE end) = @TYPECODE
                        for xml raw('ITEM'),type,elements,root('AMOUNTSTOPRORATE'),binary base64
                )

                declare @DECIMALDIGITS tinyint = 2;
                select
                    @DECIMALDIGITS = DECIMALDIGITS
                from dbo.CURRENCY
                where CURRENCY.ID = @SPLITS.value('(/AMOUNTSTOPRORATE/ITEM/TRANSACTIONCURRENCYID)[1]', 'uniqueidentifier');


                return
                    (
                        select
                            PRORATEDSPLIT.AMOUNT,
                            PRORATEDSPLIT.ID as DESIGNATIONID,
                            @TYPECODE as TYPECODE,
                            @APPLICATIONCODE as APPLICATIONCODE,
                            ORIGINALSPLIT.ITEM.value('TRANSACTIONCURRENCYID[1]', 'uniqueidentifier') [TRANSACTIONCURRENCYID]
                        from
                            dbo.UFN_SPLITS_PRORATEAMOUNTS(@AMOUNT, @MATCHINGGIFTAMOUNT, @DECIMALDIGITS, @SPLITS) PRORATEDSPLIT
                            inner join @SPLITS.nodes('/AMOUNTSTOPRORATE/ITEM') ORIGINALSPLIT(ITEM) on ORIGINALSPLIT.ITEM.value('ID[1]', 'uniqueidentifier') = PRORATEDSPLIT.ID
                        for xml raw('ITEM'),type,elements,root('SPLITS'),binary base64
                    )
            END