UFN_SMARTYQUERY_CONSTITUENTTRIBUTE
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TRIBUTETYPECODEID | uniqueidentifier | IN | |
@DESIGNATIONID | uniqueidentifier | IN | |
@INCLUDEINACTIVE | bit | IN | |
@TRIBUTELETTERCODEID | uniqueidentifier | IN | |
@ASSOCIATIONTYPE | tinyint | IN | |
@SELECTIONID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@MAXROWS | int | IN |
Definition
Copy
create function dbo.UFN_SMARTYQUERY_CONSTITUENTTRIBUTE
(
@TRIBUTETYPECODEID uniqueidentifier = null,
@DESIGNATIONID uniqueidentifier = null,
@INCLUDEINACTIVE bit = null,
@TRIBUTELETTERCODEID uniqueidentifier = null,
@ASSOCIATIONTYPE tinyint = null,
@SELECTIONID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@MAXROWS int = 500
)
returns @T table
(
ID uniqueidentifier not null,
NAME nvarchar(150),
ADDRESSBLOCK nvarchar(150),
CITY nvarchar(50),
STATE nvarchar(100),
POSTCODE nvarchar(12),
LOOKUPID nvarchar(100),
ASSOCIATION nvarchar(30),
TRIBUTETYPE nvarchar(100),
TRIBUTETEXT nvarchar(255),
DEFAULTDESIGNATION nvarchar(512),
ISACTIVE nvarchar(3),
TRIBUTELETTER nvarchar(100)
)
as
begin
declare @ISADMIN bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
if @SELECTIONID is null
begin
if @ASSOCIATIONTYPE = 0
begin
insert into @T
select top (@MAXROWS)
C.ID,
C.NAME,
A.ADDRESSBLOCK,
A.CITY,
STATE.DESCRIPTION,
A.POSTCODE,
C.LOOKUPID,
'Tributee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
null
from
dbo.CONSTITUENT AS C
inner join dbo.TRIBUTE on TRIBUTE.TRIBUTEEID = C.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
left join dbo.ADDRESS A on C.ID = A.CONSTITUENTID and A.ISPRIMARY = 1
left join dbo.STATE on STATE.ID = A.STATEID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
order by
C.NAME
end
else if @ASSOCIATIONTYPE = 1
begin
insert into @T
select top (@MAXROWS)
C.ID,
C.NAME,
A.ADDRESSBLOCK,
A.CITY,
STATE.DESCRIPTION,
A.POSTCODE,
C.LOOKUPID,
'Acknowledgee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
TRIBUTELETTERCODE.NAME
from
dbo.CONSTITUENT AS C
inner join dbo.TRIBUTEACKNOWLEDGEE TA on TA.CONSTITUENTID = C.ID
inner join dbo.TRIBUTE on TA.TRIBUTEID = TRIBUTE.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
left join dbo.TRIBUTELETTERCODE on TA.TRIBUTELETTERCODEID = TRIBUTELETTERCODE.ID
left join dbo.ADDRESS A on C.ID = A.CONSTITUENTID and A.ISPRIMARY = 1
left join dbo.STATE on STATE.ID = A.STATEID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@TRIBUTELETTERCODEID is null or TA.TRIBUTELETTERCODEID = @TRIBUTELETTERCODEID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
order by
C.NAME
end
else
begin
with TRIBUTES_CTE(CONSTITUENTID,NAME,LOOKUPID,ASSOCIATION,TRIBUTETYPE,TRIBUTETEXT,DEFAULTDESIGNATION,ISACTIVE,TRIBUTELETTER) as (
select top (@MAXROWS)
C.ID as CONSTITUENTID,
C.NAME,
C.LOOKUPID,
'Tributee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
null
from
dbo.CONSTITUENT AS C
inner join dbo.TRIBUTE on TRIBUTE.TRIBUTEEID = C.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
union all
select top (@MAXROWS)
C.ID as CONSTITUENTID,
C.NAME,
C.LOOKUPID,
'Acknowledgee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
TRIBUTELETTERCODE.NAME as TRIBUTELETTER
from
dbo.CONSTITUENT AS C
inner join dbo.TRIBUTEACKNOWLEDGEE TA on TA.CONSTITUENTID = C.ID
inner join dbo.TRIBUTE on TA.TRIBUTEID = TRIBUTE.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
left join dbo.TRIBUTELETTERCODE on TA.TRIBUTELETTERCODEID = TRIBUTELETTERCODE.ID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@TRIBUTELETTERCODEID is null or TA.TRIBUTELETTERCODEID = @TRIBUTELETTERCODEID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
)
insert into @T
select top (@MAXROWS)
CTE.CONSTITUENTID,
CTE.NAME,
A.ADDRESSBLOCK,
A.CITY,
STATE.DESCRIPTION,
A.POSTCODE,
CTE.LOOKUPID,
CTE.ASSOCIATION,
CTE.TRIBUTETYPE,
CTE.TRIBUTETEXT,
CTE.DEFAULTDESIGNATION,
CTE.ISACTIVE,
CTE.TRIBUTELETTER
from
TRIBUTES_CTE CTE
left join dbo.ADDRESS A on CTE.CONSTITUENTID = A.CONSTITUENTID and A.ISPRIMARY = 1
left join dbo.STATE on STATE.ID = A.STATEID
order by
CTE.NAME
end
end
else -- @SELECTION is not null
begin
if @ASSOCIATIONTYPE = 0
begin
insert into @T
select distinct top (@MAXROWS)
C.ID,
C.NAME,
A.ADDRESSBLOCK,
A.CITY,
STATE.DESCRIPTION,
A.POSTCODE,
C.LOOKUPID,
'Tributee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
null
from
dbo.CONSTITUENT AS C
inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on C.ID = SELECTION.ID and @SELECTIONID is not null
inner join dbo.TRIBUTE on TRIBUTE.TRIBUTEEID = C.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
left join dbo.ADDRESS A on C.ID = A.CONSTITUENTID and A.ISPRIMARY = 1
left join dbo.STATE on STATE.ID = A.STATEID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
order by
C.NAME
end
else if @ASSOCIATIONTYPE = 1
begin
insert into @T
select distinct top (@MAXROWS)
C.ID,
C.NAME,
A.ADDRESSBLOCK,
A.CITY,
STATE.DESCRIPTION,
A.POSTCODE,
C.LOOKUPID,
'Acknowledgee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
TRIBUTELETTERCODE.NAME
from
dbo.CONSTITUENT AS C
inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on C.ID = SELECTION.ID and @SELECTIONID is not null
inner join dbo.TRIBUTEACKNOWLEDGEE TA on TA.CONSTITUENTID = C.ID
inner join dbo.TRIBUTE on TA.TRIBUTEID = TRIBUTE.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
left join dbo.TRIBUTELETTERCODE on TA.TRIBUTELETTERCODEID = TRIBUTELETTERCODE.ID
left join dbo.ADDRESS A on C.ID = A.CONSTITUENTID and A.ISPRIMARY = 1
left join dbo.STATE on STATE.ID = A.STATEID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@TRIBUTELETTERCODEID is null or TA.TRIBUTELETTERCODEID = @TRIBUTELETTERCODEID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
order
by C.NAME
end
else
begin
with TRIBUTES_CTE(CONSTITUENTID,NAME,LOOKUPID,ASSOCIATION,TRIBUTETYPE,TRIBUTETEXT,DEFAULTDESIGNATION,ISACTIVE,TRIBUTELETTER) as (
select top (@MAXROWS)
C.ID as CONSTITUENTID,
C.NAME,
C.LOOKUPID,
'Tributee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
null
from
dbo.CONSTITUENT AS C
inner join dbo.TRIBUTE on TRIBUTE.TRIBUTEEID = C.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
union all
select top (@MAXROWS)
C.ID as CONSTITUENTID,
C.NAME,
C.LOOKUPID,
'Acknowledgee' as ASSOCIATION,
TT.DESCRIPTION as TRIBUTETYPE,
TRIBUTE.TRIBUTETEXT,
dbo.UFN_DESIGNATION_BUILDNAME(TRIBUTE.DESIGNATIONID) as DEFAULTDESIGNATION,
case TRIBUTE.ISACTIVE when 1 then 'Yes' else 'No' end as ISACTIVE,
TRIBUTELETTERCODE.NAME
from
dbo.CONSTITUENT AS C
inner join dbo.TRIBUTEACKNOWLEDGEE TA on TA.CONSTITUENTID = C.ID
inner join dbo.TRIBUTE on TA.TRIBUTEID = TRIBUTE.ID
inner join dbo.TRIBUTETYPECODE TT on TRIBUTE.TRIBUTETYPECODEID = TT.ID
left join dbo.TRIBUTELETTERCODE on TA.TRIBUTELETTERCODEID = TRIBUTELETTERCODE.ID
where
(@TRIBUTETYPECODEID is null or TRIBUTE.TRIBUTETYPECODEID = @TRIBUTETYPECODEID) and
(@DESIGNATIONID is null or TRIBUTE.DESIGNATIONID = @DESIGNATIONID) and
(@TRIBUTELETTERCODEID is null or TA.TRIBUTELETTERCODEID = @TRIBUTELETTERCODEID) and
(@INCLUDEINACTIVE = 1 or TRIBUTE.ISACTIVE = 1) and
(@ISADMIN = 1 or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
and
(dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_FORCONSTIT_BYSITE(@CURRENTAPPUSERID, 'bec1e7ec-e8f9-4c62-a5e9-75dc19cc69f3', C.ID) = 1)
)
)
)
insert into @T
select distinct top (@MAXROWS)
CTE.CONSTITUENTID,
CTE.NAME,
A.ADDRESSBLOCK,
A.CITY,
STATE.DESCRIPTION,
A.POSTCODE,
CTE.LOOKUPID,
CTE.ASSOCIATION,
CTE.TRIBUTETYPE,
CTE.TRIBUTETEXT,
CTE.DEFAULTDESIGNATION,
CTE.ISACTIVE,
CTE.TRIBUTELETTER
from
TRIBUTES_CTE CTE
inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on CTE.CONSTITUENTID = SELECTION.ID and @SELECTIONID is not null
left join dbo.ADDRESS A on CTE.CONSTITUENTID = A.CONSTITUENTID and A.ISPRIMARY = 1
left join dbo.STATE on STATE.ID = A.STATEID
order by
CTE.NAME
end
end
return;
end;