USP_DATALIST_GIFTAIDREFUNDSUMMARY

Returns a list of all Gift Aid refunds for a constituent.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SITEFILTERMODE tinyint IN Sites
@SITESSELECTED xml IN
@SECURITYFEATUREID uniqueidentifier IN Input parameter indicating the ID of the feature to use for site security checking.
@SECURITYFEATURETYPE tinyint IN Input parameter indicating the type of the feature to use for site security checking.
@CURRENCYCODE tinyint IN Currency

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_GIFTAIDREFUNDSUMMARY
                (
                    @CONSTITUENTID uniqueidentifier,
                    @CURRENTAPPUSERID uniqueidentifier = null,
                    @SITEFILTERMODE tinyint = 0,
                    @SITESSELECTED xml = null,
                    @SECURITYFEATUREID uniqueidentifier = null,
                    @SECURITYFEATURETYPE tinyint = null,
                    @CURRENCYCODE tinyint = 2
                )
                as
                    set nocount on;

                    declare @CURRENCYID uniqueidentifier
                    declare @ORGTOMYBASEEXCHANGERATE uniqueidentifier = null

                    declare @MULTICURRENCYENABLED bit;
                    set @MULTICURRENCYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency'); 
                    if @MULTICURRENCYENABLED = 0 
                      set @CURRENCYCODE = 1;

                    if @CURRENCYCODE = 1
                      set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                    if @CURRENCYCODE = 3
                    begin
                      set @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
                      if @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
                      begin     
                        set @CURRENCYCODE = 1
                      end
                    end;                    

                    select
                        REVENUESPLITGIFTAIDREFUND.ID,
                        REVENUESPLITGIFTAIDREFUND.REVENUESPLITID,
                        FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID,
                        ORIGINALTAXCLAIMNUMBER,
                        case @CURRENCYCODE
                          when 2 then REVENUESPLITGIFTAIDREFUND.ORIGINALTRANSACTIONTAXCLAIMAMOUNT
                          when 1 then REVENUESPLITGIFTAIDREFUND.ORIGINALORGANIZATIONTAXCLAIMAMOUNT
                          when 3 then dbo.UFN_REVENUESPLITGIFTAIDREFUND_GETAMOUNTINCURRENCY(REVENUESPLITGIFTAIDREFUND.ID,@CURRENCYID)
                          else REVENUESPLITGIFTAIDREFUND.ORIGINALTAXCLAIMAMOUNT
                        end as ORIGINALTAXCLAIMAMOUNT,                        
                        REFUNDTAXCLAIMNUMBER,
                        DATEREFUNDED,
                        REFUNDSOURCECODE,
                        REFUNDSOURCE,
                        REASON,
                        case @CURRENCYCODE
                            when 2 then REVENUESPLITGIFTAIDREFUND.ORIGINALTRANSACTIONCURRENCYID
                            when 0 then REVENUESPLITGIFTAIDREFUND.ORIGINALBASECURRENCYID
                            else @CURRENCYID
                        end as DISPLAYCURRENCY
                    from
                        dbo.REVENUESPLITGIFTAIDREFUND
                        inner join dbo.FINANCIALTRANSACTIONLINEITEM
                            on REVENUESPLITGIFTAIDREFUND.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
                        inner join dbo.REVENUESPLIT_EXT
                            on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID                
                    where
                        REVENUESPLITGIFTAIDREFUND.CONSTITUENTID = @CONSTITUENTID
                        and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
                        and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
                        and (
                            select count(*
                            from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(FINANCIALTRANSACTIONLINEITEM.ID) REVSITES 
                            where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))
                            ) > 0
                        and    (
                            @SITEFILTERMODE = 0
                                or exists(
                                    select 1
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(FINANCIALTRANSACTIONLINEITEM.ID) REVSITES on REVSITES.SITEID = SITEFILTER.SITEID
                                )
                        )                                        

                    union all

                    -- Refunds created for deleted applications

                    select
                        REVENUESPLITGIFTAIDREFUND.ID,
                        null,
                        null,
                        REVENUESPLITGIFTAIDREFUND.ORIGINALTAXCLAIMNUMBER,
                        case @CURRENCYCODE
                          when 2 then REVENUESPLITGIFTAIDREFUND.ORIGINALTRANSACTIONTAXCLAIMAMOUNT
                          when 1 then REVENUESPLITGIFTAIDREFUND.ORIGINALORGANIZATIONTAXCLAIMAMOUNT
                          when 3 then dbo.UFN_REVENUESPLITGIFTAIDREFUND_GETAMOUNTINCURRENCY(REVENUESPLITGIFTAIDREFUND.ID,@CURRENCYID)                          
                          else REVENUESPLITGIFTAIDREFUND.ORIGINALTAXCLAIMAMOUNT
                        end as ORIGINALTAXCLAIMAMOUNT,
                        REVENUESPLITGIFTAIDREFUND.REFUNDTAXCLAIMNUMBER,
                        REVENUESPLITGIFTAIDREFUND.DATEREFUNDED,
                        REVENUESPLITGIFTAIDREFUND.REFUNDSOURCECODE,
                        REVENUESPLITGIFTAIDREFUND.REFUNDSOURCE,
                        REVENUESPLITGIFTAIDREFUND.REASON,
                        case @CURRENCYCODE
                            when 2 then REVENUESPLITGIFTAIDREFUND.ORIGINALTRANSACTIONCURRENCYID
                            when 0 then REVENUESPLITGIFTAIDREFUND.ORIGINALBASECURRENCYID
                            else @CURRENCYID
                        end as DISPLAYCURRENCY                        
                    from
                        dbo.REVENUESPLITGIFTAIDREFUND
                    left join 
                        dbo.FINANCIALTRANSACTIONLINEITEM on REVENUESPLITGIFTAIDREFUND.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
                    where REVENUESPLITGIFTAIDREFUND.CONSTITUENTID = @CONSTITUENTID 
                        and (REVENUESPLITGIFTAIDREFUND.REVENUESPLITID is null or 
                                (FINANCIALTRANSACTIONLINEITEM.DELETEDON is not null and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1))

                    order by DATEREFUNDED ASC