USP_DATALIST_APPUSERWORKSPACETASK
Returns a list of all tasks that belong to a given application user.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@TYPECODE | tinyint | IN | Type |
@INCLUDECOMPLETED | bit | IN | Include completed |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_APPUSERWORKSPACETASK
(
@CURRENTAPPUSERID uniqueidentifier,
@TYPECODE tinyint = null,
@INCLUDECOMPLETED bit = 0
)
as
set nocount on;
declare @DATE datetime;
set @DATE = getDate();
select
APPEALMAILINGTASK.ID [ID],
APPEALMAILINGTASK.SEGMENTATIONID [CONTEXTID],
case
when APPEALMAILINGTASK.STATUSCODE = 0 and datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) < 0 then 1
else 0
end [OVERDUE],
'catalog:Blackbaud.AppFx.Marketing.Catalog.dll,Blackbaud.AppFx.Marketing.Catalog.fa_mailings.png' [IMAGE],
0 [TYPECODE],
'Mailing task' [TYPE],
APPEALMAILINGTASK.SUBJECT [SUBJECT],
MKTSEGMENTATION.NAME [DETAILS],
case
when APPEALMAILINGTASK.DATEDUE = '00000000' then null
else dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)
end [DATEDUE],
APPEALMAILINGTASK.DATECOMPLETED [DATECOMPLETED],
APPEALMAILINGTASK.STATUSCODE [STATUSCODE],
case
when APPEALMAILINGTASK.STATUSCODE = 0 then 1
else 0
end [ACTIVE],
0 [ISMOVE],
case
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) < -7 then 'Past'
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) between -7 and -1 then 'Last 7 days'
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) = 0 then 'Today'
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) between 1 and 7 then 'Next 7 days'
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) > 7 then 'Future'
else 'No date due'
end [GROUP],
case
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) < -7 then 1
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) between -7 and -1 then 2
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) = 0 then 3
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) between 1 and 7 then 4
when datediff(day, @DATE, dbo.UFN_DATE_LATESTFROMFUZZYDATE(APPEALMAILINGTASK.DATEDUE)) > 7 then 5
else 0
end [GROUPCODE],
0 [TASKSAVAILABLE]
from
dbo.APPEALMAILINGTASK
inner join
dbo.MKTSEGMENTATION on MKTSEGMENTATION.ID = APPEALMAILINGTASK.SEGMENTATIONID
inner join
dbo.APPUSER on APPUSER.CONSTITUENTID = APPEALMAILINGTASK.OWNERID
where
APPUSER.ID = @CURRENTAPPUSERID
and ( (APPEALMAILINGTASK.STATUSCODE = 0) or (@INCLUDECOMPLETED = 1) )
and ( (@TYPECODE is null) or (@TYPECODE = 0) )
union all
select
EVENTTASK.ID [ID],
EVENTTASK.EVENTID [CONTEXTID],
case
when EVENTTASK.STATUSCODE = 0 and datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) < 0 then 1
else 0
end [OVERDUE],
'catalog:Blackbaud.AppFx.EventManagement.Catalog.dll,Blackbaud.AppFx.EventManagement.Catalog.fa_events.png' [IMAGE],
1 [TYPECODE],
'Event task' [TYPE],
EVENTTASK.NAME [SUBJECT],
EVENT.NAME [DETAILS],
EVENTTASK.COMPLETEBYDATE [DATEDUE],
EVENTTASK.DATECOMPLETED [DATECOMPLETED],
EVENTTASK.STATUSCODE [STATUSCODE],
case
when EVENTTASK.STATUSCODE = 0 then 1
else 0
end [ACTIVE],
0 [ISMOVE],
case
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) < -7 then 'Past'
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) between -7 and -1 then 'Last 7 days'
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) = 0 then 'Today'
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) between 1 and 7 then 'Next 7 days'
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) > 7 then 'Future'
else 'No date due'
end [GROUP],
case
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) < -7 then 1
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) between -7 and -1 then 2
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) = 0 then 3
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) between 1 and 7 then 4
when datediff(day, @DATE, EVENTTASK.COMPLETEBYDATE) > 7 then 5
else 0
end [GROUPCODE],
0 [TASKSAVAILABLE]
from
dbo.EVENTTASK
inner join
dbo.EVENT on EVENT.ID = EVENTTASK.EVENTID
inner join
dbo.APPUSER on APPUSER.CONSTITUENTID = EVENTTASK.OWNERID
where
APPUSER.ID = @CURRENTAPPUSERID
and ( (EVENTTASK.STATUSCODE = 0) or (@INCLUDECOMPLETED = 1) )
and ( (@TYPECODE is null) or (@TYPECODE = 1) )
union all
select
INTERACTION.ID [ID],
INTERACTION.CONSTITUENTID [CONTEXTID],
case
when INTERACTION.STATUSCODE <> 2 and datediff(day, @DATE, INTERACTION.EXPECTEDDATE) < 0 then 1
else 0
end [OVERDUE],
'catalog:Blackbaud.AppFx.Constituent.Catalog.dll,Blackbaud.AppFx.Constituent.Catalog.interactions.png' [IMAGE],
2 [TYPECODE],
'Interaction' [TYPE],
INTERACTION.OBJECTIVE [SUBJECT],
CONSTITUENT_NF.NAME [DETAILS],
INTERACTION.EXPECTEDDATE [DATEDUE],
INTERACTION.ACTUALDATE [DATECOMPLETED],
INTERACTION.STATUSCODE [STATUSCODE],
case
when INTERACTION.STATUSCODE = 1 then 1
else 0
end [ACTIVE],
case
when INTERACTION.PROSPECTPLANID is null then 0
else 1
end [ISMOVE],
case
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) < -7 then 'Past'
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) between -7 and -1 then 'Last 7 days'
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) = 0 then 'Today'
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) between 1 and 7 then 'Next 7 days'
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) > 7 then 'Future'
else 'No date due'
end [GROUP],
case
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) < -7 then 1
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) between -7 and -1 then 2
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) = 0 then 3
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) between 1 and 7 then 4
when datediff(day, @DATE, INTERACTION.EXPECTEDDATE) > 7 then 5
else 0
end [GROUPCODE],
0 [TASKSAVAILABLE]
from
dbo.INTERACTION
outer apply
dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTION.CONSTITUENTID) CONSTITUENT_NF
outer apply
dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTION.FUNDRAISERID) OWNER_NF
left join
dbo.APPUSER on APPUSER.CONSTITUENTID = INTERACTION.FUNDRAISERID
left join
dbo.INTERACTIONTYPECODE on INTERACTIONTYPECODE.ID = INTERACTION.INTERACTIONTYPECODEID
where
APPUSER.ID = @CURRENTAPPUSERID
and ( (INTERACTION.STATUSCODE = 1) or (@INCLUDECOMPLETED = 1) )
and ( (@TYPECODE is null) or (@TYPECODE = 2) )
union all
select
BATCH.ID [ID],
BATCH.ID [CONTEXTID],
case
when BATCH.STATUSCODE = 0 and BATCHWORKFLOWSTATE.OVERDUEIN > 0 and datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) < 0 then 1
else 0
end [OVERDUE],
'RES:fa_batch' [IMAGE],
3 [TYPECODE],
'Batch' [TYPE],
BATCH.BATCHNUMBER [SUBJECT],
BATCHTYPECATALOG.CATEGORY [DETAILS],
case
when BATCH.STATUSCODE = 0 and BATCHWORKFLOWSTATE.OVERDUEIN > 0 then dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))
else null
end [DATEDUE],
BATCH.DATECOMMITTED [DATECOMPLETED],
BATCH.STATUSCODE [STATUSCODE],
case
when BATCH.STATUSCODE = 0 then 1
else 0
end [ACTIVE],
0 [ISMOVE],
case
when BATCH.STATUSCODE = 0 and BATCHWORKFLOWSTATE.OVERDUEIN > 0 then
case
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) < -7 then 'Past'
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) between -7 and -1 then 'Last 7 days'
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) = 0 then 'Today'
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) between 1 and 7 then 'Next 7 days'
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) > 7 then 'Future'
else 'No date due'
end
else
'No date due'
end [GROUP],
case
when BATCH.STATUSCODE = 0 and BATCHWORKFLOWSTATE.OVERDUEIN > 0 then
case
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) < -7 then 1
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) between -7 and -1 then 2
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) = 0 then 3
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) between 1 and 7 then 4
when datediff(day, @DATE, dateAdd(day, BATCHWORKFLOWSTATE.OVERDUEIN, (select top 1 BATCHWORKFLOWSTATUS.DATEADDED from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID order by BATCHWORKFLOWSTATUS.DATEADDED desc))) > 7 then 5
else 0
end
else 0
end [GROUPCODE],
dbo.UFN_BATCHWORKFLOWSTATE_TASKSAVAILABLE(BATCH.BATCHWORKFLOWSTATEID) [TASKSAVAILABLE]
from
dbo.BATCH
inner join
dbo.BATCHTEMPLATE on BATCHTEMPLATE.ID = BATCH.BATCHTEMPLATEID
inner join
dbo.BATCHTYPECATALOG on BATCHTYPECATALOG.ID = BATCHTEMPLATE.BATCHTYPECATALOGID
left join
dbo.BATCHWORKFLOWSTATE on BATCHWORKFLOWSTATE.ID = BATCH.BATCHWORKFLOWSTATEID
where
BATCH.APPUSERID = @CURRENTAPPUSERID
and ( (BATCH.STATUSCODE <> 1) or (@INCLUDECOMPLETED = 1) )
and BATCH.STATUSCODE <> 2
and ( (@TYPECODE is null) or (@TYPECODE = 3) )
order by
GROUPCODE, DATEDUE, SUBJECT;
return 0;