USP_DATALIST_ACCOUNTDISTRIBUTIONREPORT

Returns account distribution information for posted revenue records.

Parameters

Parameter Parameter Type Mode Description
@IDSETREGISTERID uniqueidentifier IN Selected revenue
@FROM datetime IN From
@TO datetime IN To

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_ACCOUNTDISTRIBUTIONREPORT
            (
                @IDSETREGISTERID uniqueidentifier = null,
                @FROM datetime,
                @TO datetime
            )
            as
              set nocount on;

              begin try

                if @IDSETREGISTERID is null
                begin
                    set @FROM = dbo.[UFN_DATE_GETEARLIESTTIME](@FROM);
                    set @TO = dbo.[UFN_DATE_GETLATESTTIME](@TO);

                    with REVENUE_CTE (REVENUEID, DATE, CONSTITUENTNAME)as (
                        select 
                            REVENUE.ID as REVENUEID,
                            REVENUE.DATE,
                            CONSTITUENT.NAME as CONSTITUENTNAME
                        from
                            dbo.REVENUE
                        inner join
                            dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
                        where
                            REVENUE.DATE between @FROM and @TO and
                            REVENUE.TRANSACTIONTYPECODE not in (
                                2,--Recurring gift

                                3,--Matching gift claim

                                8--Donor challenge

                            ) 
                    )

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    outer apply 
                        dbo.UFN_REVENUE_GETGLDISTRIBUTION(CTE.REVENUEID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID

                    union all

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    inner join
                        dbo.REVENUEPAYMENTMETHOD on CTE.REVENUEID = REVENUEPAYMENTMETHOD.REVENUEID
                    outer apply 
                        dbo.UFN_REVENUE_GETSTOCKDETAILGLDISTRIBUTION(REVENUEPAYMENTMETHOD.ID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID

                    union all

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    inner join
                        dbo.REVENUEPAYMENTMETHOD on CTE.REVENUEID = REVENUEPAYMENTMETHOD.REVENUEID
                    outer apply 
                        dbo.UFN_REVENUE_GETPROPERTYDETAILGLDISTRIBUTION(REVENUEPAYMENTMETHOD.ID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID

                    union all

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    inner join 
                        dbo.WRITEOFF on CTE.REVENUEID = WRITEOFF.REVENUEID
                    outer apply 
                        dbo.UFN_REVENUE_GETWRITEOFFGLDISTRIBUTION(WRITEOFF.ID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID
                    order by 
                        CTE.DATE,CTE.CONSTITUENTNAME,CTE.REVENUEID,MAP.DESCRIPTION,tf.DEBITCREDIT desc
                end

                else
                begin

                    set @FROM = dbo.[UFN_DATE_GETEARLIESTTIME](@FROM);
                    set @TO = dbo.[UFN_DATE_GETLATESTTIME](@TO);

                    with REVENUE_CTE (REVENUEID, DATE, CONSTITUENTNAME)as (
                        select 
                            REVENUE.ID as REVENUEID,
                            REVENUE.DATE,
                            CONSTITUENT.NAME as CONSTITUENTNAME
                        from
                            dbo.REVENUE
                        inner join
                            dbo.UFN_IDSETREADER_GETRESULTS_GUID(@IDSETREGISTERID) SELECTION on REVENUE.ID = SELECTION.ID and @IDSETREGISTERID is not null
                        inner join
                            dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
                        where
                            REVENUE.DATE between @FROM and @TO and
                            REVENUE.TRANSACTIONTYPECODE not in (
                                2,--Recurring gift

                                3,--Matching gift claim

                                8--Donor challenge

                            ) 
                    )

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    outer apply 
                        dbo.UFN_REVENUE_GETGLDISTRIBUTION(CTE.REVENUEID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID

                    union all

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    inner join
                        dbo.REVENUEPAYMENTMETHOD on CTE.REVENUEID = REVENUEPAYMENTMETHOD.REVENUEID
                    outer apply 
                        dbo.UFN_REVENUE_GETSTOCKDETAILGLDISTRIBUTION(REVENUEPAYMENTMETHOD.ID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID

                    union all

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    inner join
                        dbo.REVENUEPAYMENTMETHOD on CTE.REVENUEID = REVENUEPAYMENTMETHOD.REVENUEID
                    outer apply 
                        dbo.UFN_REVENUE_GETPROPERTYDETAILGLDISTRIBUTION(REVENUEPAYMENTMETHOD.ID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID

                    union all

                    select distinct
                        CTE.REVENUEID,
                        CTE.DATE,
                        MAP.DESCRIPTION,
                        CTE.CONSTITUENTNAME as CONSTITUENTNAME,
                        tf.AMOUNT,
                        tf.ACCOUNT,
                        tf.DEBITCREDIT,
                        tf.TRANSACTIONTYPECODE
                    from
                        REVENUE_CTE CTE
                    inner join 
                        dbo.WRITEOFF on CTE.REVENUEID = WRITEOFF.REVENUEID
                    outer apply 
                        dbo.UFN_REVENUE_GETWRITEOFFGLDISTRIBUTION(WRITEOFF.ID) as tf
                    inner join
                        dbo.GLPAYMENTMETHODREVENUETYPEMAPPING MAP on tf.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID
                    order by 
                        CTE.DATE,CTE.CONSTITUENTNAME,CTE.REVENUEID,MAP.DESCRIPTION,tf.DEBITCREDIT desc

              end
              end try

              begin catch
                 exec dbo.USP_RAISE_ERROR;
                 return 1;
              end catch

              return 0;