USP_REPORT_TAXCLAIMBREAKDOWN_DETAIL
Returns data for the Tax Claim Breakdown Summary Report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@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_DETAIL
(
@CONSTITUENTID uniqueidentifier,
@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 @ORGANIZATIONCURRENCYID uniqueidentifier;
if coalesce(@CURRENCYCODE, 1) = 1
begin
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
end;
with TAXCLAIM_CTE(
DATE,
APPLICATION,
RATE,
CURRENCYID,
SPLITAMOUNT,
TAXCLAIMAMOUNT,
BASETAXCLAIMAMOUNT,
TRANSITIONALTAXCLAIMAMOUNT,
TAXCLAIMNUMBER,
REFERENCE
) as (
select
cast(FINANCIALTRANSACTION.DATE as datetime) as DATE,
case
when FINANCIALTRANSACTION.TYPECODE <> 0 then FINANCIALTRANSACTION.TYPE
else
case
when REVENUESPLIT_EXT.APPLICATIONCODE = 0 then REVENUESPLIT_EXT.APPLICATION
else REVENUESPLIT_EXT.APPLICATION + ' payment'
end
end APPLICATION,
case
when REVENUESPLITGIFTAID.RATE > 0 then REVENUESPLITGIFTAID.RATE
when FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT + REVENUESPLITGIFTAID.TRANSACTIONTAXCLAIMAMOUNT = 0 then 0
else round(100 * (REVENUESPLITGIFTAID.TRANSACTIONTAXCLAIMAMOUNT /
(FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT + REVENUESPLITGIFTAID.TRANSACTIONTAXCLAIMAMOUNT)), 0)
end as RATE,
case @CURRENCYCODE
when 0 then isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID)
when 2 then FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
end as CURRENCYID,
case @CURRENCYCODE
when 0 then FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT
when 2 then FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT
else FINANCIALTRANSACTIONLINEITEM.ORGAMOUNT
end as SPLITAMOUNT,
case @CURRENCYCODE
when 0 then REVENUESPLITGIFTAID.TAXCLAIMAMOUNT
when 2 then REVENUESPLITGIFTAID.TRANSACTIONTAXCLAIMAMOUNT
else REVENUESPLITGIFTAID.ORGANIZATIONTAXCLAIMAMOUNT
end as TAXCLAIMAMOUNT,
case @CURRENCYCODE
when 0 then REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
when 2 then REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
else REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
end as BASETAXCLAIMMOUNT,
case dbo.UFN_REVENUESPLITGIFTAID_TRANSITIONALREFLIEFEXPIRED(REVENUESPLITGIFTAID.ID, REVENUESPLITGIFTAID.INCLUDETRANSITIONALAMOUNTCODE)
when 1 then 0
else
case @CURRENCYCODE
when 0 then REVENUESPLITGIFTAID.TRANSITIONALTAXCLAIMAMOUNT
when 2 then REVENUESPLITGIFTAID.TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT
else REVENUESPLITGIFTAID.ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT
end
end as TRANSITIONALTAXCLAIMAMOUNT,
REVENUESPLITGIFTAID.TAXCLAIMNUMBER,
REVENUEREFERENCE.REFERENCE
from dbo.FINANCIALTRANSACTION
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.REVENUESPLITGIFTAID on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLITGIFTAID.ID
inner join dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE(1) as ELIGIBLEREVENUESPLITGIFTAID on FINANCIALTRANSACTIONLINEITEM.ID = ELIGIBLEREVENUESPLITGIFTAID.ID
inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
left join dbo.REVENUEREFERENCE on FINANCIALTRANSACTION.ID = REVENUEREFERENCE.ID
where
FINANCIALTRANSACTION.CONSTITUENTID = @CONSTITUENTID and
FINANCIALTRANSACTION.DELETEDON is null and
FINANCIALTRANSACTIONLINEITEM.DELETEDON is null and
FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1 and
(@STARTDATEEARLIESTTIME is null or cast(FINANCIALTRANSACTION.DATE as datetime) >= @STARTDATEEARLIESTTIME) and
(@ENDDATELATESTTIME is null or cast(FINANCIALTRANSACTION.DATE as datetime) <= @ENDDATELATESTTIME) and
(@SELECTIONID is null or FINANCIALTRANSACTIONLINEITEM.ID in (select ID from dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID))) and
(@SITEFILTERMODE = 0
or exists
(
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(FINANCIALTRANSACTIONLINEITEM.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, FINANCIALTRANSACTION.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1)
-- Site security filter
and exists
(
select HASPERMISSION
from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(FINANCIALTRANSACTIONLINEITEM.ID) REVSITES
cross apply dbo.UFN_REPORT_HASUSERSITEPERMISSION(@CURRENTAPPUSERID, 'cefcbe67-f272-411f-bede-e686fb8ae39f', REVSITES.SITEID)
)
)
select
DATE,
APPLICATION,
RATE,
SPLITAMOUNT + TAXCLAIMAMOUNT as GROSSAMOUNT,
BASETAXCLAIMAMOUNT,
TRANSITIONALTAXCLAIMAMOUNT,
SPLITAMOUNT,
TAXCLAIMNUMBER,
case
when coalesce(TAXCLAIMNUMBER, '') = '' then TAXCLAIMAMOUNT
else 0.0
end as OUTSTANDINGCLAIMAMOUNT,
REFERENCE,
CURRENCYPROPERTIES.ISO4217 [ISOCURRENCYCODE],
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
CURRENCYPROPERTIES.DECIMALDIGITS
from
TAXCLAIM_CTE
outer apply
dbo.UFN_CURRENCY_GETPROPERTIES(coalesce(@ORGANIZATIONCURRENCYID,TAXCLAIM_CTE.CURRENCYID)) CURRENCYPROPERTIES
order by
DATE, APPLICATION, GROSSAMOUNT