UFN_REVENUEBATCH_GETAPPLICATIONSWITHCHILDREN

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@BATCHREVENUEID uniqueidentifier IN

Definition

Copy


            CREATE function [dbo].[UFN_REVENUEBATCH_GETAPPLICATIONSWITHCHILDREN]
            (
                @BATCHREVENUEID uniqueidentifier
            )
            returns table
                return
                        --Applications to pledges created in batch

                        select 
                            BATCHREVENUEAPPLICATION.ID as ID, 
                            '9B9C1DC8-7960-4D31-A0BC-8199AB7F94DA' as 'APPLICATIONID'
                            BATCHREVENUE.CONSTITUENTID as 'CONSTITUENTID'
                            isnull(CONSTITUENT_NF.NAME, BATCHREVENUECONSTITUENT.NAME) as CONSTITUENTNAME, 
                            BATCHREVENUEAPPLICATION.APPLIED, 
                            BATCHREVENUEAPPLICATIONPLEDGE.AMOUNT as 'BALANCE'
                            BATCHREVENUEAPPLICATION_NF.AMOUNTDUE,
                            BATCHREVENUEAPPLICATION_NF.DATEDUE,
                            1 as 'TYPECODE'
                            BATCHREVENUEAPPLICATION.RECEIPTAMOUNT as 'RECEIPTAMOUNT',
                            0 as 'DONOTRECEIPT'
                            '' as 'DESCRIPTION'
                            BATCHREVENUEAPPLICATION.WASGENERATED,
                            (select 
                                    ID, 
                                    CONSTITUENTID, 
                                    GIVENANONYMOUSLY, 
                                    FINDERNUMBER, 
                                    DATE
                                    AMOUNT, 
                                    SOURCECODE, 
                                    CHANNELCODEID, 
                                    APPEALID, 
                                    MAILINGID, 
                                    PLEDGESUBTYPEID, 
                                    BENEFITSWAIVED, 
                                    FREQUENCYCODE, 
                                    NUMBEROFINSTALLMENTS,
                                    INSTALLMENTAMOUNT, 
                                    STARTDATE, 
                                    POSTDATE, 
                                    POSTSTATUSCODE, 
                                    SENDPLEDGEREMINDER, 
                                    DONOTACKNOWLEDGE, 
                                    (select 
                                            ID, 
                                            BATCHREVENUEAPPLICATIONPLEDGEID, 
                                            DESIGNATIONID, 
                                            AMOUNT, 
                                            0 as APPLICATIONCODE, 
                                            0 as TYPECODE, 
                                            DECLINESGIFTAID
                                        from dbo.BATCHREVENUEAPPLICATIONPLEDGESPLIT
                                        where BATCHREVENUEAPPLICATIONPLEDGESPLIT.BATCHREVENUEAPPLICATIONPLEDGEID = BATCHREVENUEAPPLICATIONPLEDGE.ID
                                        for xml raw('ITEM'), type, elements, root('SPLITS'), binary base64
                                    ),
                                    (select 
                                            ID, 
                                            BATCHREVENUEAPPLICATIONPLEDGEID, 
                                            AMOUNT, 
                                            RECEIPTAMOUNT,
                                            DATE
                                            SEQUENCE,
                                            (select 
                                                 ID,
                                                 INSTALLMENTSPLITID,
                                                 DESIGNATIONID, 
                                                 AMOUNT
                                             from dbo.BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENTSPLIT 
                                             where BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT.ID = BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENTSPLIT.BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENTID
                                             for xml raw('ITEM'), type, elements, root('INSTALLMENTSPLITS'), binary base64
                                            )
                                        from dbo.BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT 
                                        where BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT.BATCHREVENUEAPPLICATIONPLEDGEID = BATCHREVENUEAPPLICATIONPLEDGE.ID
                                        for xml raw('ITEM'), type, elements, root('INSTALLMENTS'), binary base64
                                    ),
                                    (select 
                                            ID, 
                                            BATCHREVENUEAPPLICATIONPLEDGEID, 
                                            BENEFITID, 
                                            QUANTITY, 
                                            UNITVALUE, 
                                            DETAILS, 
                                            SEQUENCE
                                        from dbo.BATCHREVENUEAPPLICATIONPLEDGEBENEFIT 
                                        where BATCHREVENUEAPPLICATIONPLEDGEBENEFIT.BATCHREVENUEAPPLICATIONPLEDGEID = BATCHREVENUEAPPLICATIONPLEDGE.ID
                                        for xml raw('ITEM'), type, elements, root('BENEFITS'), binary base64
                                    ),
                                    (select 
                                            ID, 
                                            BATCHREVENUEAPPLICATIONPLEDGEID, 
                                            BENEFITID, 
                                            PERCENTAPPLICABLEAMOUNT, 
                                            VALUEPERCENT, 
                                            DETAILS, 
                                            SEQUENCE
                                        from dbo.BATCHREVENUEAPPLICATIONPLEDGEPERCENTAGEBENEFIT 
                                        where BATCHREVENUEAPPLICATIONPLEDGEPERCENTAGEBENEFIT.BATCHREVENUEAPPLICATIONPLEDGEID = BATCHREVENUEAPPLICATIONPLEDGE.ID
                                        for xml raw('ITEM'), type, elements, root('PERCENTAGEBENEFITS'), binary base64
                                    ),
                                    REFERENCE,
                                    GLREVENUECATEGORYMAPPINGID CATEGORYCODEID,
                                    OPPORTUNITYID,
                                    PROSPECT_NF.NAME as OPPORTUNITYCONSTITUENTNAME,
                                    OPPORTUNITY.ASKDATE as OPPORTUNITYASKDATE,
                                    OPPORTUNITY.ASKAMOUNT as OPPORTUNITYASKAMOUNT,
                                    BATCHREVENUEAPPLICATIONPLEDGE.BASEEXCHANGERATEID,
                                    BATCHREVENUEAPPLICATIONPLEDGE.EXCHANGERATE
                                from dbo.BATCHREVENUEAPPLICATIONPLEDGE
                                where BATCHREVENUEAPPLICATIONPLEDGE.ID = BATCHREVENUEAPPLICATION.BATCHREVENUEAPPLICATIONPLEDGEID
                                for xml raw('ITEM'), type, elements, binary base64
                            ) as 'PLEDGES',
                            null as 'MEMBERSHIPS',
                            null as 'BATCHREVENUEREGISTRANTID',
                            case
                                when BATCHREVENUEAPPLICATION.OVERPAYMENTAPPLICATIONTYPECODE = 255 
                                    then null
                                else BATCHREVENUEAPPLICATION.OVERPAYMENTAPPLICATIONTYPECODE
                            end as 'OVERPAYMENTAPPLICATIONTYPECODE',
                            (select top 1
                                    dbo.UDA_BUILDLIST(DESIGNATION.USERID) as DESIGNATIONLIST 
                                from dbo.BATCHREVENUEAPPLICATIONPLEDGESPLIT 
                                    inner join dbo.DESIGNATION on BATCHREVENUEAPPLICATIONPLEDGESPLIT.DESIGNATIONID = DESIGNATION.ID
                                where BATCHREVENUEAPPLICATIONPLEDGESPLIT.BATCHREVENUEAPPLICATIONPLEDGEID = BATCHREVENUEAPPLICATIONPLEDGE.ID
                            ) as 'DESIGNATIONLIST',
                            (select top 1    
                                    coalesce(
                                        (select NAME from SPONSORSHIPOPPORTUNITYCHILD where ID=SPONSORSHIP.SPONSORSHIPOPPORTUNITYID),
                                        (select NAME from SPONSORSHIPOPPORTUNITYPROJECT where ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID)
                                    ) as SPONSORSHIPOPPORTUNITY
                                from dbo.SPONSORSHIP
                                    inner join FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = SPONSORSHIP.REVENUESPLITID
                                where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = BATCHREVENUEAPPLICATION.REVENUEID
                                    and SPONSORSHIP.ISMOSTRECENTFORCOMMITMENT = 1
                            ) as SPONSORSHIPOPPORTUNITY,
                            BATCHREVENUEAPPLICATION.REVENUESPLITID,
                            BATCHREVENUE.TRANSACTIONCURRENCYID as APPLICATIONCURRENCYID,
                            case
                when BATCHREVENUEAPPLICATION.REVENUEID is null then
                  BATCHREVENUE.PDACCOUNTSYSTEMID
                else
                  PDAS.PDACCOUNTSYSTEMID
              end as PDACCOUNTSYSTEMID,
                            0 as SPONSORSHIPRGADDITIONALGIFT,
                            BATCHREVENUEAPPLICATIONPLEDGE.GLREVENUECATEGORYMAPPINGID as CATEGORYCODEID
                        from dbo.BATCHREVENUEAPPLICATION
                            inner join dbo.BATCHREVENUE on BATCHREVENUE.ID = BATCHREVENUEAPPLICATION.BATCHREVENUEID
                            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(BATCHREVENUE.CONSTITUENTID) CONSTITUENT_NF
                            left join dbo.BATCHREVENUECONSTITUENT on BATCHREVENUECONSTITUENT.ID = BATCHREVENUE.CONSTITUENTID
                            left join dbo.BATCHREVENUEAPPLICATIONPLEDGE on BATCHREVENUEAPPLICATION.BATCHREVENUEAPPLICATIONPLEDGEID = BATCHREVENUEAPPLICATIONPLEDGE.ID
                            left join dbo.OPPORTUNITY on OPPORTUNITY.ID = BATCHREVENUEAPPLICATIONPLEDGE.OPPORTUNITYID
                            left outer join dbo.PROSPECTPLAN on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
                            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PROSPECTPLAN.PROSPECTID) PROSPECT_NF
                            left join dbo.PDACCOUNTSYSTEMFORREVENUE PDAS on BATCHREVENUEAPPLICATION.REVENUEID = PDAS.ID
              outer apply 
                            ( select    
                                top 1 sum(BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT.AMOUNT) as 'AMOUNTDUE',BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT.DATE as 'DATEDUE'
                                from dbo.BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT
                                where BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT.BATCHREVENUEAPPLICATIONPLEDGEID = BATCHREVENUEAPPLICATIONPLEDGE.ID 
                                group by BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT.DATE
                                order by BATCHREVENUEAPPLICATIONPLEDGEINSTALLMENT.DATE) BATCHREVENUEAPPLICATION_NF
                        where BATCHREVENUEAPPLICATION.BATCHREVENUEID = @BATCHREVENUEID
                            and not BATCHREVENUEAPPLICATION.BATCHREVENUEAPPLICATIONPLEDGEID is null

                        union all

                        --Applications to memberships created in this batch.

                        select 
                            BATCHREVENUEAPPLICATION.ID as ID, 
                            BATCHREVENUEAPPLICATIONMEMBERSHIP.MEMBERSHIPID as [APPLICATIONID], 
                            BATCHREVENUE.CONSTITUENTID, 
                            isnull(CONSTITUENT_NF.NAME, BATCHREVENUECONSTITUENT.NAME) as CONSTITUENTNAME, 
                            BATCHREVENUEAPPLICATION.APPLIED, 
                            MEMBERSHIPLEVELTERM.AMOUNT as BALANCE, 
                            MEMBERSHIPLEVELTERM.AMOUNT as AMOUNTDUE,
                            BATCHREVENUEAPPLICATIONMEMBERSHIP.EXPIRATIONDATE as DATEDUE,
                            5 as TYPECODE, 
                            BATCHREVENUEAPPLICATION.RECEIPTAMOUNT as [RECEIPTAMOUNT],
                            0 as [DONOTRECEIPT],    --Default to 'Not receipted' like a payment made from the Add Payment screen

                            dbo.UFN_MEMBERSHIPPROGRAM_GETNAME(BATCHREVENUEAPPLICATIONMEMBERSHIP.MEMBERSHIPPROGRAMID) + ' - ' + dbo.UFN_MEMBERSHIPLEVEL_GETNAME(BATCHREVENUEAPPLICATIONMEMBERSHIP.MEMBERSHIPLEVELID) as [DESCRIPTION],
                            0 as WASGENERATED,
                            null
                            (select 
                                    ID, 
                                    MEMBERSHIPPROGRAMID, 
                                    MEMBERSHIPLEVELID, 
                                    MEMBERSHIPLEVELTERMID, 
                                    MEMBERSHIPLEVELTYPECODEID, 
                                    NUMBEROFCHILDREN, 
                                    COMMENTS, 
                                    ISGIFT, 
                                    SENDRENEWALCODE, 
                                    EXPIRATIONDATE, 
                                    GIVENBYID,  
                                    (
                                        select
                                            coalesce(MEMBERID, ID) as ID, --For backwards compat return the member ID in this column, we don't use the table's PK anyways

                                            CONSTITUENTID,
                                            ISPRIMARY,
                                            dbo.UFN_REVENUEBATCH_GETMEMBERSHIPMEMBERMEMBERSHIPCARDS_TOITEMLISTXML(ID)
                                        from dbo.BATCHREVENUEAPPLICATIONMEMBERSHIPMEMBER
                                        where BATCHREVENUEAPPLICATIONMEMBERSHIPMEMBER.BATCHREVENUEAPPLICATIONMEMBERSHIPID = MEM.ID
                                        for xml raw('ITEM'), type, elements, binary base64
                                    ) as MEMBERS
                                from dbo.BATCHREVENUEAPPLICATIONMEMBERSHIP MEM
                                where MEM.ID = BATCHREVENUEAPPLICATIONMEMBERSHIP.ID
                                for xml raw('ITEM'), type, elements, binary base64
                            ) as 'MEMBERSHIPS',
                            null as 'BATCHREVENUEREGISTRANTID',
                            case
                                when BATCHREVENUEAPPLICATION.OVERPAYMENTAPPLICATIONTYPECODE = 255 
                                    then null
                                else BATCHREVENUEAPPLICATION.OVERPAYMENTAPPLICATIONTYPECODE
                            end as 'OVERPAYMENTAPPLICATIONTYPECODE',
                            '' as 'DESIGNATIONLIST',
                            (select top 1     
                                    coalesce(
                                        (select NAME from SPONSORSHIPOPPORTUNITYCHILD where ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID),
                                        (select NAME from SPONSORSHIPOPPORTUNITYPROJECT where ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID)
                                    ) as SPONSORSHIPOPPORTUNITY
                                from dbo.SPONSORSHIP
                                    inner join FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = SPONSORSHIP.REVENUESPLITID
                                where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = BATCHREVENUEAPPLICATION.REVENUEID
                                    and SPONSORSHIP.ISMOSTRECENTFORCOMMITMENT = 1
                            ) as SPONSORSHIPOPPORTUNITY,
                            BATCHREVENUEAPPLICATION.REVENUESPLITID,
                            MEMBERSHIPLEVELTERM.BASECURRENCYID as APPLICATIONCURRENCYID,
                            PDAS.PDACCOUNTSYSTEMID,
                            0 as SPONSORSHIPRGADDITIONALGIFT,
                            null as CATEGORYCODEID
                        from 
                            dbo.BATCHREVENUEAPPLICATION
                            inner join dbo.BATCHREVENUE on BATCHREVENUE.ID = BATCHREVENUEAPPLICATION.BATCHREVENUEID
                            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(BATCHREVENUE.CONSTITUENTID) CONSTITUENT_NF
                            left join dbo.BATCHREVENUECONSTITUENT on BATCHREVENUECONSTITUENT.ID = BATCHREVENUE.CONSTITUENTID
                            left join dbo.BATCHREVENUEAPPLICATIONMEMBERSHIP on BATCHREVENUEAPPLICATION.BATCHREVENUEAPPLICATIONMEMBERSHIPID = BATCHREVENUEAPPLICATIONMEMBERSHIP.ID
                            left join dbo.MEMBERSHIPLEVELTERM on BATCHREVENUEAPPLICATIONMEMBERSHIP.MEMBERSHIPLEVELTERMID = MEMBERSHIPLEVELTERM.ID
                            left join dbo.PDACCOUNTSYSTEMFORREVENUE PDAS on BATCHREVENUEAPPLICATION.REVENUEID = PDAS.ID
                        where BATCHREVENUEAPPLICATION.BATCHREVENUEID = @BATCHREVENUEID 
                            and not BATCHREVENUEAPPLICATION.BATCHREVENUEAPPLICATIONMEMBERSHIPID is null

                        union all

                        --Applications to commitments already in the system or non-pledge commitments created in batch.

                        select 
                            ID, 
                            APPLICATIONID, 
                            CONSTITUENTID, 
                            CONSTITUENTNAME, 
                            APPLIED, 
                            BALANCE, 
                            AMOUNTDUE, 
                            DATEDUE, 
                            TYPECODE, 
                            RECEIPTAMOUNT, 
                            DONOTRECEIPT, 
                            [DESCRIPTION], 
                            WASGENERATED, 
                            null
                            null
                            BATCHREVENUEREGISTRANTID, 
                            OVERPAYMENTAPPLICATIONTYPECODE, 
                            DESIGNATIONLIST, 
                            SPONSORSHIPOPPORTUNITY,
                            REVENUESPLITID,
                            APPLICATIONCURRENCYID,
                            PDACCOUNTSYSTEMID,
                            SPONSORSHIPRGADDITIONALGIFT,
                            CATEGORYCODEID
                        from dbo.UFN_REVENUEBATCH_GETAPPLICATIONS(@BATCHREVENUEID) BATCHREVENUEAPPLICATIONS
                        where (BATCHREVENUEAPPLICATIONS.TYPECODE <> 5)