UFN_REVENUEBATCH_GETAUTOMGSPLITS

Adds splits to a matching gift created from revenue batch.

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_REVENUEBATCH_GETAUTOMGSPLITS
            (
                @AMOUNT money,
                @MATCHINGGIFTAMOUNT money,
                @SPLITS xml,
                @TYPECODE tinyint,
                @APPLICATIONCODE tinyint
            )
            returns xml
            as
            begin
                declare @DECIMALDIGITS tinyint = 2;
                select
                    @DECIMALDIGITS = DECIMALDIGITS
                from dbo.CURRENCY
                where CURRENCY.ID = @SPLITS.value('(/SPLITS/ITEM/TRANSACTIONCURRENCYID)[1]', 'uniqueidentifier');

                -- Update the xml so that it has the proper root element

                declare @NEWSPLITS xml;
                set @NEWSPLITS = 
                    (
                        select 
                            AMOUNT, 
                            DESIGNATIONID as ID
                        from dbo.UFN_REVENUE_GETSPLITS_2_FROMITEMLISTXML(@SPLITS)
                        where TYPECODE = @TYPECODE
                        for xml raw('ITEM'),type,elements,root('AMOUNTSTOPRORATE'),binary base64
                    )

                return 
                    (
                        select 
                            AMOUNT, 
                            ID as DESIGNATIONID, 
                            T.c.value('(DESIGNATIONTRANSLATION)[1]', 'nvarchar(200)') as [DESIGNATIONTRANSLATION],
                            @TYPECODE as TYPECODE, 
                            @APPLICATIONCODE as APPLICATIONCODE,
                            coalesce(T.c.value('(SEQUENCE)[1]', 'int'), 0) as SEQUENCE
                        from dbo.UFN_SPLITS_PRORATEAMOUNTS(@AMOUNT, @MATCHINGGIFTAMOUNT, @DECIMALDIGITS, @NEWSPLITS) as [NEWSPLITS]
                        inner join @SPLITS.nodes('/SPLITS/ITEM') T(c) on T.c.value('(DESIGNATIONID)[1]', 'uniqueidentifier') = [NEWSPLITS].ID
                        for xml raw('ITEM'),type,elements,root('SPLITS'),binary base64
                    )
            end