UFN_REVENUEUPDATEBATCH_GETPAYMENTRECOGNITIONS

Returns recognitions for a revenue update batch ID grouped by application.

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@BATCHREVENUEID uniqueidentifier IN
@USESPLITS bit IN

Definition

Copy


CREATE function dbo.UFN_REVENUEUPDATEBATCH_GETPAYMENTRECOGNITIONS
(
    @BATCHREVENUEID uniqueidentifier,
    @USESPLITS bit
)
returns xml
as 
begin

    declare @APPLICATIONRECOGNITIONS xml
    declare @APPLICATIONRECOGNITIONSTABLE table
    (
        ADDITIONALAPPLICATIONTYPECODE tinyint,
        ADDITIONALAPPLICATIONDESIGNATIONID uniqueidentifier,
        APPLICATIONID uniqueidentifier,
        ADDITIONALAPPLICATIONDECLINESGIFTAID bit,
        ADDITIONALAPPLICATIONSPONSORSHIPID uniqueidentifier
    )

    insert into @APPLICATIONRECOGNITIONSTABLE (
        ADDITIONALAPPLICATIONTYPECODE, 
        ADDITIONALAPPLICATIONDESIGNATIONID, 
        APPLICATIONID, 
        ADDITIONALAPPLICATIONDECLINESGIFTAID, 
        ADDITIONALAPPLICATIONSPONSORSHIPID
    )
    select distinct 
        ADDITIONALAPPLICATIONTYPECODE, 
        ADDITIONALAPPLICATIONDESIGNATIONID, 
        APPLICATIONID, 
        ADDITIONALAPPLICATIONDECLINESGIFTAID, 
        ADDITIONALAPPLICATIONSPONSORSHIPID
    from
        dbo.BATCHREVENUERECOGNITION
    where
        BATCHREVENUEID = @BATCHREVENUEID

    if @USESPLITS = 1
        set @APPLICATIONRECOGNITIONS = (
            select 
                APPLICATIONID, 
                ADDITIONALAPPLICATIONTYPECODE, 
                ADDITIONALAPPLICATIONDESIGNATIONID, 
                BATCHREVENUESPLIT.AMOUNT as APPLICATIONAMOUNT,
                '' as APPLICATIONDESCRIPTION,
                dbo.UFN_REVENUEBATCH_GETCOLLECTIONDESCRIPTION_3(ART.ADDITIONALAPPLICATIONTYPECODE, ART.ADDITIONALAPPLICATIONDESIGNATIONID, @BATCHREVENUEID, 1, ART.ADDITIONALAPPLICATIONDECLINESGIFTAID, ART.ADDITIONALAPPLICATIONSPONSORSHIPID) as COLLECTIONDESCRIPTION,
                (
                    select 
                        AMOUNT, 
                        CONSTITUENTID, 
                        EFFECTIVEDATE, 
                        BATCHREVENUERECOGNITION.ID, 
                        REVENUERECOGNITIONTYPECODE.DESCRIPTION as RECOGNITIONTYPE, 
                        REVENUERECOGNITIONTYPECODEID, REVENUERECOGNITIONID
                    from dbo.BATCHREVENUERECOGNITION
                        left join dbo.REVENUERECOGNITIONTYPECODE on BATCHREVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODE.ID
                    where BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONTYPECODE = ART.ADDITIONALAPPLICATIONTYPECODE
                        and BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONDESIGNATIONID = ART.ADDITIONALAPPLICATIONDESIGNATIONID
                        and (BATCHREVENUERECOGNITION.APPLICATIONID = ART.APPLICATIONID or ART.APPLICATIONID is null)
                        and BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONDECLINESGIFTAID = ART.ADDITIONALAPPLICATIONDECLINESGIFTAID
                        and coalesce(BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000') = coalesce(ART.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000')
                        and BATCHREVENUERECOGNITION.BATCHREVENUEID = @BATCHREVENUEID
                    order by BATCHREVENUERECOGNITION.EFFECTIVEDATE
                    for xml raw('ITEM'),type,elements,BINARY BASE64
                ) as RECOGNITIONS,
                ADDITIONALAPPLICATIONDECLINESGIFTAID,
                ADDITIONALAPPLICATIONSPONSORSHIPID
            from @APPLICATIONRECOGNITIONSTABLE ART
                inner join dbo.DESIGNATION on ART.ADDITIONALAPPLICATIONDESIGNATIONID = DESIGNATION.ID
                inner join dbo.BATCHREVENUESPLIT on 
                    BATCHREVENUESPLIT.DESIGNATIONID = ART.ADDITIONALAPPLICATIONDESIGNATIONID 
                    and BATCHREVENUESPLIT.DECLINESGIFTAID = ART.ADDITIONALAPPLICATIONDECLINESGIFTAID 
                    and (BATCHREVENUESPLIT.REVENUESPLITID = ART.APPLICATIONID  or ART.APPLICATIONID is null)
                    and BATCHREVENUEID = @BATCHREVENUEID 
   for xml raw('ITEM'),type,elements,root('APPLICATIONRECOGNITIONS'),BINARY BASE64
        )
    else
        set @APPLICATIONRECOGNITIONS = (
            select
                APPLICATIONID, 
                ADDITIONALAPPLICATIONTYPECODE, 
                ADDITIONALAPPLICATIONDESIGNATIONID, 
                APPLICATIONAMOUNT, 
                COLLECTIONDESCRIPTION, 
                RECOGNITIONS, 
                ADDITIONALAPPLICATIONDECLINESGIFTAID, 
                ADDITIONALAPPLICATIONSPONSORSHIPID 
            from (
                select
                    BATCHREVENUEADDITIONALAPPLICATIONS.REVENUESPLITID as APPLICATIONID, 
                    BATCHREVENUEADDITIONALAPPLICATIONS.TYPECODE as ADDITIONALAPPLICATIONTYPECODE, 
                    BATCHREVENUEADDITIONALAPPLICATIONS.DESIGNATIONID as ADDITIONALAPPLICATIONDESIGNATIONID, 
                    BATCHREVENUEADDITIONALAPPLICATIONS.APPLIED as APPLICATIONAMOUNT,
                    '' as APPLICATIONDESCRIPTION,
                    coalesce(dbo.UFN_REVENUEBATCH_GETCOLLECTIONDESCRIPTION_3(BATCHREVENUEADDITIONALAPPLICATIONS.TYPECODE, BATCHREVENUEADDITIONALAPPLICATIONS.DESIGNATIONID, @BATCHREVENUEID, 1, BATCHREVENUEADDITIONALAPPLICATIONS.DECLINESGIFTAID, BATCHREVENUEADDITIONALAPPLICATIONS.SPONSORSHIPID), '') as COLLECTIONDESCRIPTION,
                    (
                        select 
                            BATCHREVENUERECOGNITION.AMOUNT, 
                            BATCHREVENUERECOGNITION.CONSTITUENTID, 
                            BATCHREVENUERECOGNITION.EFFECTIVEDATE, 
                            BATCHREVENUERECOGNITION.ID, 
                            REVENUERECOGNITIONTYPECODE.DESCRIPTION as RECOGNITIONTYPE, 
                            BATCHREVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID, 
                            BATCHREVENUERECOGNITION.REVENUERECOGNITIONID,
                            BATCHREVENUERECOGNITION.RECOGNITIONCREDITFKID, 
                            BATCHREVENUERECOGNITION.RECOGNITIONCREDITDESIGNATIONID as DESIGNATIONID, 
                            coalesce(BATCHREVENUERECOGNITION.DONORCHALLENGERECOGNITIONTYPECODE, 0) as DONORCHALLENGERECOGNITIONTYPECODE
                        from dbo.BATCHREVENUERECOGNITION
                            left join dbo.REVENUERECOGNITIONTYPECODE on BATCHREVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODE.ID
                        where BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONTYPECODE = ART.ADDITIONALAPPLICATIONTYPECODE
                          and (BATCHREVENUERECOGNITION.APPLICATIONID = ART.APPLICATIONID or ART.APPLICATIONID is null)
                          and BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONDESIGNATIONID = ART.ADDITIONALAPPLICATIONDESIGNATIONID
                          and BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONDECLINESGIFTAID = ART.ADDITIONALAPPLICATIONDECLINESGIFTAID
                          and coalesce(BATCHREVENUERECOGNITION.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000') = coalesce(ART.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000')
                          and BATCHREVENUERECOGNITION.BATCHREVENUEID = @BATCHREVENUEID
                        order by BATCHREVENUERECOGNITION.EFFECTIVEDATE
                        for xml raw('ITEM'),type,elements,BINARY BASE64
                    ) as RECOGNITIONS,
                    BATCHREVENUEADDITIONALAPPLICATIONS.DECLINESGIFTAID as ADDITIONALAPPLICATIONDECLINESGIFTAID,
                    BATCHREVENUEADDITIONALAPPLICATIONS.SPONSORSHIPID as ADDITIONALAPPLICATIONSPONSORSHIPID
                from BATCHREVENUEADDITIONALAPPLICATIONS
                    left join @APPLICATIONRECOGNITIONSTABLE ART on 
                        BATCHREVENUEADDITIONALAPPLICATIONS.DESIGNATIONID = ART.ADDITIONALAPPLICATIONDESIGNATIONID
                        and BATCHREVENUEADDITIONALAPPLICATIONS.TYPECODE = ART.ADDITIONALAPPLICATIONTYPECODE
                        and  (BATCHREVENUEADDITIONALAPPLICATIONS.REVENUESPLITID = ART.APPLICATIONID or ART.APPLICATIONID is null)
                        and BATCHREVENUEADDITIONALAPPLICATIONS.DECLINESGIFTAID = ART.ADDITIONALAPPLICATIONDECLINESGIFTAID
                        and coalesce(BATCHREVENUEADDITIONALAPPLICATIONS.SPONSORSHIPID,'00000000-0000-0000-0000-000000000000') = coalesce(ART.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000')  
                where
                    BATCHREVENUEID = @BATCHREVENUEID

            union all

                select APPLICATIONID, ADDITIONALAPPLICATIONTYPECODE, ADDITIONALAPPLICATIONDESIGNATIONID, BATCHREVENUEAPPLICATION.APPLIED as APPLICATIONAMOUNT,
               '' as APPLICATIONDESCRIPTION,
               dbo.UFN_REVENUEUPDATEBATCH_GETCOLLECTIONDESCRIPTION(ART.APPLICATIONID, 1) as COLLECTIONDESCRIPTION,
               (select BATCHREVENUERECOGNITION.AMOUNT, 
                        BATCHREVENUERECOGNITION.CONSTITUENTID, 
                        BATCHREVENUERECOGNITION.EFFECTIVEDATE, 
                        BATCHREVENUERECOGNITION.ID, 
                        REVENUERECOGNITIONTYPECODE.DESCRIPTION as RECOGNITIONTYPE, 
                        BATCHREVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID, 
                        BATCHREVENUERECOGNITION.REVENUERECOGNITIONID,
                        BATCHREVENUERECOGNITION.RECOGNITIONCREDITFKID, 
                        BATCHREVENUERECOGNITION.RECOGNITIONCREDITDESIGNATIONID as DESIGNATIONID, 
                        coalesce(BATCHREVENUERECOGNITION.DONORCHALLENGERECOGNITIONTYPECODE, 0) as DONORCHALLENGERECOGNITIONTYPECODE
                from dbo.BATCHREVENUERECOGNITION
                left join dbo.REVENUERECOGNITIONTYPECODE on BATCHREVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODE.ID
                where BATCHREVENUERECOGNITION.APPLICATIONID =  ART.APPLICATIONID
                  and BATCHREVENUERECOGNITION.BATCHREVENUEID = @BATCHREVENUEID
                         order by BATCHREVENUERECOGNITION.EFFECTIVEDATE
                for xml raw('ITEM'),type,elements,BINARY BASE64) as RECOGNITIONS,
                ADDITIONALAPPLICATIONDECLINESGIFTAID,
           ADDITIONALAPPLICATIONSPONSORSHIPID
              from @APPLICATIONRECOGNITIONSTABLE ART
              --inner join dbo.DESIGNATION on ART.ADDITIONALAPPLICATIONDESIGNATIONID = DESIGNATION.ID

              inner join dbo.BATCHREVENUEAPPLICATION on coalesce(BATCHREVENUEAPPLICATION.REVENUESPLITID, BATCHREVENUEAPPLICATION.REVENUEID, BATCHREVENUEAPPLICATION.REGISTRANTID) = ART.APPLICATIONID
                and BATCHREVENUEID = @BATCHREVENUEID                
                 ) as RECOGNITIONSSET                                      
              for xml raw('ITEM'),type,elements,root('APPLICATIONRECOGNITIONS'),BINARY BASE64)

    return @APPLICATIONRECOGNITIONS
end