USP_DATALIST_APPUSERTASKS

Displays tasks assigned to roles in which the given user is a member.

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


CREATE procedure dbo.USP_DATALIST_APPUSERTASKS (@APPUSERID uniqueidentifier)
as
    -- since a user can be a member of multiple roles each having been assigned a task, we need to de-dupe the assigned tasks

    declare @tbl Table (TASKID uniqueidentifier)
    insert into @tbl (TASKID) 
        select distinct TASKCATALOG.ID
        from dbo.TASKCATALOG 
        inner join dbo.SYSTEMROLETASK on TASKCATALOG.ID = SYSTEMROLETASK.TASKID
        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = SYSTEMROLETASK.SYSTEMROLEID
        where dbo.SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID

    select  TASKCATALOG.ID,
        TASKCATALOG.[NAME],
        TASKCATALOG.DESCRIPTION,
        FA.NAME as 'Functional Area',
        TASKCATALOG.TASKSPECXML.value(
            'declare namespace bbtask="bb_appfx_task";
            /bbtask:TaskSpec[1]/@ImageKey
            '
            ,
            'nvarchar(500)'
        ) AS TASKIMAGEKEY,
       case when 
            (select count(*
             from dbo.TASKCATALOG as TC
             inner join dbo.SYSTEMROLETASK on TC.ID = SYSTEMROLETASK.TASKID
             inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = SYSTEMROLETASK.SYSTEMROLEID
             where (TC.ID = TASKCATALOG.ID) and 
                   (dbo.SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID) and 
                   (dbo.SYSTEMROLETASK.DISPLAYONHOMEPAGE = 1)) = 0
        then convert(bit, 0)
        else convert(bit, 1)
        end as 'DISPLAYONHOMEPAGE'
    from dbo.TASKCATALOG inner join dbo.FUNCTIONALAREACATALOG as FA on TASKCATALOG.FUNCTIONALAREAID = FA.ID
    where exists (select TASKID from @tbl where TASKID = TASKCATALOG.ID)
    order by FA.SEQUENCE, FA.[NAME], TASKCATALOG.SEQUENCE, TASKCATALOG.[NAME]