UFN_REPORT_APPEALPROFILE_REVENUE
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CURRENCYCODE | tinyint | IN | |
@CURRENCYID | uniqueidentifier | IN | |
@ORGANIZATIONCURRENCYID | uniqueidentifier | IN | |
@CURRENCYISO | nvarchar(3) | IN | |
@CURRENCYDECIMALDIGITS | tinyint | IN | |
@CURRENCYSYMBOL | nvarchar(5) | IN | |
@CURRENCYSYMBOLDISPLAYSETTINGCODE | tinyint | IN | |
@CURRENCYROUNDINGTYPECODE | tinyint | IN | |
@ORGANIZATIONAMOUNTORIGINCODE | tinyint | IN |
Definition
Copy
CREATE function dbo.[UFN_REPORT_APPEALPROFILE_REVENUE]
(
@CURRENTAPPUSERID uniqueidentifier,
@CURRENCYCODE tinyint,
@CURRENCYID uniqueidentifier,
@ORGANIZATIONCURRENCYID uniqueidentifier,
@CURRENCYISO nvarchar(3),
@CURRENCYDECIMALDIGITS tinyint,
@CURRENCYSYMBOL nvarchar(5),
@CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint,
@CURRENCYROUNDINGTYPECODE tinyint,
@ORGANIZATIONAMOUNTORIGINCODE tinyint
)
returns table
as return (
with [SECURITY] ([CURRENTAPPUSERID], [ISSYSADMIN], [INNONRACROLE], [INNOGROUPROLE]) as (
select
@CURRENTAPPUSERID as [CURRENTAPPUSERID],
dbo.[UFN_APPUSER_ISSYSADMIN](@CURRENTAPPUSERID) as [ISSYSADMIN],
dbo.[UFN_SECURITY_APPUSER_IN_NONRACROLE](@CURRENTAPPUSERID) as [INNONRACROLE],
dbo.[UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE](@CURRENTAPPUSERID) as [INNOGROUPROLE]
), [APPEALS] as (
select
[APPEAL].[ID] as [APPEALID],
[SECURITY].*
from dbo.[APPEAL]
cross apply [SECURITY]
where ([SECURITY].[ISSYSADMIN] = 1 or dbo.[UFN_SITEALLOWEDFORUSER]([SECURITY].[CURRENTAPPUSERID], [APPEAL].[SITEID]) = 1)
)
select
[APPEALREVENUESPLIT].[APPEALID],
[APPEALREVENUESPLIT].[REVENUEID],
case when [FT].[TYPECODE] = 0 and [REVENUESPLIT].[APPLICATIONCODE] = 3 then [APPEALREVENUESPLIT].[REVENUEID] else null end as [REGULARREVENUEID],
[APPEALREVENUESPLIT].[REVENUESPLITID],
[FT].[CONSTITUENTID],
cast([APPEALREVENUESPLIT].[DATE] as datetime) as [DATE],
[APPEALREVENUESPLIT].[REVENUESPLITAMOUNTINCURRENCY] as [AMOUNT],
null as [BALANCE],
[APPEALREVENUESPLIT].[DESIGNATIONNAME] as [DESIGNATION],
[APPEALREVENUESPLIT].[DESIGNATIONID] as [DESIGNATIONID],
[APPEALREVENUESPLIT].[REVENUESPLITAMOUNTINCURRENCY] as [TRANSACTIONAMOUNT],
case when [APPEALREVENUESPLIT].[TRANSACTIONTYPECODE] = 2 and [APPEALREVENUESPLIT].[APPLICATIONCODE] = 0 then 0 else 1 end as [INCLUDEINSUMMARY]
from [APPEALS]
inner join dbo.[UFN_APPEALREVENUESPLIT_GETAMOUNTSINCURRENCY_BULK] (
@CURRENCYID,
@ORGANIZATIONCURRENCYID,
@CURRENCYDECIMALDIGITS,
@CURRENCYROUNDINGTYPECODE,
case when @CURRENCYCODE = 1 then 1 else 3 end
) as [APPEALREVENUESPLIT] on [APPEALREVENUESPLIT].[APPEALID] = [APPEALS].[APPEALID]
inner join dbo.[FINANCIALTRANSACTION] as [FT] on [FT].[ID] = [APPEALREVENUESPLIT].[REVENUEID]
inner join dbo.[REVENUESPLIT_EXT] as [REVENUESPLIT] on [REVENUESPLIT].[ID] = [APPEALREVENUESPLIT].[REVENUESPLITID]
inner join dbo.[CONSTITUENT] on [CONSTITUENT].[ID] = [FT].[CONSTITUENTID]
where [APPEALREVENUESPLIT].[TRANSACTIONTYPECODE] not in (1, 3, 7) -- pledges, matching gifts, auction donation
and [APPEALREVENUESPLIT].[APPLICATIONCODE] not in (2, 7) -- pledges, matching gift applications are included the union below
and (
[APPEALS].[ISSYSADMIN] = 1
or [APPEALS].[INNONRACROLE] = 1
or dbo.[UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT](@CURRENTAPPUSERID, [CONSTITUENT].[ID], [APPEALS].[INNOGROUPROLE]) = 1
)
-- union so that non-pledge revenue does not have to go through UFN_PLEDGE_GETREVALUEDBALANCEINCURRENCY_BULK
union all
select
[APPEALREVENUESPLIT].[APPEALID],
[APPEALREVENUESPLIT].[REVENUEID],
case when [FT].[TYPECODE] = 0 and [REVENUESPLIT].[APPLICATIONCODE] = 3 then [APPEALREVENUESPLIT].[REVENUEID] else null end as [REGULARREVENUEID],
[APPEALREVENUESPLIT].[REVENUESPLITID],
[FT].[CONSTITUENTID],
cast([APPEALREVENUESPLIT].[DATE] as datetime) as [DATE],
[APPEALREVENUESPLIT].[REVENUESPLITAMOUNTINCURRENCY] - [APPEALREVENUESPLIT].[WRITEOFFSPLITAMOUNTINCURRENCY] as [AMOUNT],
[PLEDGEBALANCE].[BALANCEINCURRENCY] as [BALANCE],
[APPEALREVENUESPLIT].[DESIGNATIONNAME] as [DESIGNATION],
[APPEALREVENUESPLIT].[DESIGNATIONID] as [DESIGNATIONID],
[APPEALREVENUESPLIT].[REVENUESPLITAMOUNTINCURRENCY] as [TRANSACTIONAMOUNT],
1 as [INCLUDEINSUMMARY]
from [APPEALS]
inner join dbo.[UFN_APPEALREVENUESPLIT_GETAMOUNTSINCURRENCY_BULK] (
@CURRENCYID,
@ORGANIZATIONCURRENCYID,
@CURRENCYDECIMALDIGITS,
@CURRENCYROUNDINGTYPECODE,
case when @CURRENCYCODE = 1 then 1 else 3 end
) as [APPEALREVENUESPLIT] on [APPEALREVENUESPLIT].[APPEALID] = [APPEALS].[APPEALID]
inner join dbo.[FINANCIALTRANSACTION] as [FT] on [FT].[ID] = [APPEALREVENUESPLIT].[REVENUEID]
inner join dbo.[REVENUESPLIT_EXT] as [REVENUESPLIT] on [REVENUESPLIT].[ID] = [APPEALREVENUESPLIT].[REVENUESPLITID]
inner join dbo.[CONSTITUENT] on [CONSTITUENT].[ID] = [FT].[CONSTITUENTID]
inner join dbo.[UFN_PLEDGE_GETREVALUEDBALANCEINCURRENCY_BULK] (
@CURRENCYID,
@ORGANIZATIONCURRENCYID,
@CURRENCYDECIMALDIGITS,
@CURRENCYROUNDINGTYPECODE,
getdate(),
@ORGANIZATIONAMOUNTORIGINCODE,
case when @CURRENCYCODE = 1 then 1 else 3 end
) as [PLEDGEBALANCE] on [PLEDGEBALANCE].[ID] = [APPEALREVENUESPLIT].[REVENUEID]
where [APPEALREVENUESPLIT].[TRANSACTIONTYPECODE] in (1, 3, 7)
and (
[APPEALS].[ISSYSADMIN] = 1
or [APPEALS].[INNONRACROLE] = 1
or dbo.[UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT](@CURRENTAPPUSERID, [CONSTITUENT].[ID], [APPEALS].[INNOGROUPROLE]) = 1
)
)