USP_DATALIST_REVENUETRANSACTION_LETTERS
Returns a list of letters associated with one transaction ID.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TRANSACTIONID | 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. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_REVENUETRANSACTION_LETTERS
(
@TRANSACTIONID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier = null,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null
)
as
set nocount on;
with LETTER_CTE
(
LETTERID,
LETTERCODE,
LETTERPROCESSDATE,
LETTERACKNOWLEDGEDATE,
CONSTITUENTID,
LETTERTYPECODE,
LETTEROUTOFDATE,
SITEID,
LETTERCODEID
) as
(
select
rl.ID,
lc.NAME,
rl.PROCESSDATE,
rl.ACKNOWLEDGEDATE,
rl.ACKNOWLEDGEEID,
0,
rl.OUTOFDATE,
LETTERSITES.SITEID,
lc.ID
from
dbo.REVENUELETTER rl
inner join dbo.LETTERCODE lc on rl.LETTERCODEID = lc.ID
cross apply dbo.UFN_SITEID_MAPFROM_LETTERCODEID(lc.ID)as [LETTERSITES]
where
rl.REVENUEID = @TRANSACTIONID
union all
select
REVENUELETTER.ID,
isnull(EMAILLETTER.NAME, MAILLETTER.NAME),
REVENUELETTER.PROCESSDATE,
REVENUELETTER.ACKNOWLEDGEDATE,
REVENUELETTER.ACKNOWLEDGEEID,
2,
REVENUELETTER.OUTOFDATE,
null,
isnull(EMAILLETTER.ID, MAILLETTER.ID)
from
dbo.REVENUELETTER
inner join dbo.MKTPACKAGE on REVENUELETTER.MKTPACKAGEID = MKTPACKAGE.ID
left join dbo.COMMUNICATIONLETTER as MAILLETTER on MAILLETTER.MAILPACKAGEID = MKTPACKAGE.ID
left join dbo.COMMUNICATIONLETTER as EMAILLETTER on EMAILLETTER.EMAILPACKAGEID = MKTPACKAGE.ID
where
REVENUELETTER.REVENUEID = @TRANSACTIONID
union all
select
rtl.ID,
tlc.NAME,
rtl.PROCESSDATE,
rtl.ACKNOWLEDGEDATE,
rtl.CONSTITUENTID,
1,
null,
LETTERSITES.SITEID,
tlc.ID
from dbo.REVENUETRIBUTE rt
inner join dbo.REVENUETRIBUTELETTER rtl on rtl.REVENUETRIBUTEID = rt.ID
inner join dbo.TRIBUTELETTERCODE tlc on rtl.TRIBUTELETTERCODEID = tlc.ID
cross apply dbo.UFN_SITEID_MAPFROM_TRIBUTELETTERCODEID(tlc.ID) as [LETTERSITES]
where rt.REVENUEID = @TRANSACTIONID
)
select distinct
LETTER_CTE.LETTERID,
case LETTER_CTE.LETTERTYPECODE
when 1 then 'Tribute'
else 'Revenue'
end LETTERTYPE,
LETTER_CTE.LETTERCODE,
LETTER_CTE.LETTERPROCESSDATE,
LETTER_CTE.LETTERACKNOWLEDGEDATE,
NF.NAME,
LETTER_CTE.LETTERTYPECODE,
LETTER_CTE.LETTEROUTOFDATE,
case LETTER_CTE.LETTERTYPECODE
when 0 then
(
select dbo.UDA_BUILDLIST(SITE.NAME)
from dbo.UFN_SITEID_MAPFROM_LETTERCODEID(LETTER_CTE.LETTERCODEID) LETTERCODESITES
inner join dbo.SITE on SITE.ID=LETTERCODESITES.SITEID
)
when 1 then
(
select dbo.UDA_BUILDLIST(SITE.NAME)
from dbo.UFN_SITEID_MAPFROM_TRIBUTELETTERCODEID(LETTER_CTE.LETTERCODEID) LETTERCODESITES
inner join dbo.SITE on SITE.ID=LETTERCODESITES.SITEID
)
else
''
end SITES
from LETTER_CTE
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(LETTER_CTE.CONSTITUENTID) NF
where
(dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[LETTER_CTE].[SITEID] or (SITEID is null and [LETTER_CTE].[SITEID] is null)))
and
(
@SITEFILTERMODE = 0
or
exists(select UFN_SITE_BUILDDATALISTSITEFILTER.SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) where UFN_SITE_BUILDDATALISTSITEFILTER.SITEID = LETTER_CTE.SITEID)
);