USP_REPORT_TAXCLAIMBREAKDOWN_SUMMARY
Returns data for the Tax Claim Breakdown Summary Report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SELECTIONID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@SITEFILTERMODE | tinyint | IN | |
@SITESSELECTED | nvarchar(max) | IN | |
@CURRENCYCODE | smallint | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_TAXCLAIMBREAKDOWN_SUMMARY
(
@SELECTIONID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@REPORTUSERID nvarchar(128) = null,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED nvarchar(max) = null,
@CURRENCYCODE smallint = null,
@ALTREPORTUSERID nvarchar(128) = null
)
as
set nocount on
declare @CURRENTAPPUSERID uniqueidentifier
set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
declare @ISADMIN bit
declare @APPUSER_IN_NONRACROLE bit
declare @APPUSER_IN_NOSECGROUPROLE bit
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID)
if @ISADMIN = 0
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID)
if @ISADMIN = 0 and @APPUSER_IN_NOSECGROUPROLE = 0
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID)
declare @STARTDATEEARLIESTTIME datetime
if @STARTDATE is not null
set @STARTDATEEARLIESTTIME = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE)
declare @ENDDATELATESTTIME datetime
if @ENDDATE is not null
set @ENDDATELATESTTIME = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE)
declare @SITESSELECTEDXML xml
set @SITESSELECTEDXML = dbo.UFN_REPORT_TAXCLAIMBREAKDOWN_GETSITESSELECTEDXML(@SITESSELECTED)
declare @SELECTEDCURRENCYID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
if @CURRENCYCODE = 3
begin
if dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID) is not null
begin
select @SELECTEDCURRENCYID = CURRENCYSET.BASECURRENCYID,
@ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),
@DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
from dbo.CURRENCYSET
inner join dbo.CURRENCY on CURRENCYSET.BASECURRENCYID = CURRENCY.ID
where
CURRENCYSET.ID = dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID);
end
else
begin
select @SELECTEDCURRENCYID = CURRENCYSET.BASECURRENCYID,
@ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),
@DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
from dbo.CURRENCYSET
inner join dbo.CURRENCY on CURRENCYSET.BASECURRENCYID = CURRENCY.ID
where
CURRENCYSET.ID = dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET();
end
end
else
begin
select @SELECTEDCURRENCYID = CURRENCY.ID,
@ORGANIZATIONCURRENCYID = CURRENCY.ID,
@DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
from
dbo.CURRENCY
where
CURRENCY.ID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
end
select
REVENUESPLITGIFTAID.TAXCLAIMNUMBER,
count(*) as TAXCLAIMCOUNT,
sum(REVENUESPLIT.AMOUNTINCURRENCY) + sum(TAXCLAIMAMOUNTBULK.TAXCLAIMAMOUNTINCURRENCY) as GROSSAMOUNT,
sum(TAXCLAIMAMOUNTBULK.TAXCLAIMAMOUNTINCURRENCY) as TAXCLAIMAMOUNT,
sum(REVENUESPLIT.AMOUNTINCURRENCY) as SPLITAMOUNT,
DESIGNATION.NAME as DESIGNATION,
CURRENCYPROPERTIES.ISO4217 [ISOCURRENCYCODE],
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
CURRENCYPROPERTIES.DECIMALDIGITS
from dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE(1) as REVENUESPLITGIFTAID
inner join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUESPLIT on REVENUESPLITGIFTAID.ID = REVENUESPLIT.ID
inner join dbo.UFN_GIFTAID_GETTAXCLAIMAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) TAXCLAIMAMOUNTBULK on TAXCLAIMAMOUNTBULK.ID = REVENUESPLITGIFTAID.ID
inner join dbo.REVENUE on REVENUESPLIT.REVENUEID = REVENUE.ID
inner join dbo.DESIGNATION on REVENUESPLIT.DESIGNATIONID = DESIGNATION.ID
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID) CURRENCYPROPERTIES
-- Using a left join instead of the in operator since the function was being run for every row
left join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on REVENUESPLIT.ID = SELECTION.ID
where
(@STARTDATEEARLIESTTIME is null or REVENUE.DATE >= @STARTDATEEARLIESTTIME) and
(@ENDDATELATESTTIME is null or REVENUE.DATE <= @ENDDATELATESTTIME) and
(@SELECTIONID is null or SELECTION.ID is not null) and
(@SITEFILTERMODE = 0
or exists
(
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(REVENUESPLIT.ID) REVENUESPLITSITE
inner join dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTEDXML) SITEFILTER on REVENUESPLITSITE.SITEID = SITEFILTER.SITEID
)
) and
-- Record security filter
(@ISADMIN = 1 or
@APPUSER_IN_NONRACROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, REVENUE.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1)
-- Site security filter
and exists
(
select HASPERMISSION
from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(REVENUESPLIT.ID) REVSITES
cross apply dbo.UFN_REPORT_HASUSERSITEPERMISSION(@CURRENTAPPUSERID, '05da06a7-9727-48a4-af23-0494972f73cd', REVSITES.SITEID)
)
group by REVENUESPLITGIFTAID.TAXCLAIMNUMBER,
DESIGNATION.ID,
DESIGNATION.NAME,
CURRENCYPROPERTIES.ISO4217,
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE,
CURRENCYPROPERTIES.DECIMALDIGITS
order by REVENUESPLITGIFTAID.TAXCLAIMNUMBER, DESIGNATION.NAME