USP_REPORT_ADVOCACYACTIONDETAIL

This usp returns advocacy log details and is used by advocacy action detail report

Parameters

Parameter Parameter Type Mode Description
@ACTIONCENTERID uniqueidentifier IN
@ACTIONITEMID uniqueidentifier IN
@LIVEACTIONITEMONLY bit IN
@STARTDATE date IN
@ENDDATE date IN
@STATUS int IN
@TYPE int IN
@ACTIONCENTERS varchar(max) IN
@ACTIONITEMS varchar(max) IN

Definition

Copy


CREATE procedure dbo.USP_REPORT_ADVOCACYACTIONDETAIL
(
 @ACTIONCENTERID uniqueidentifier = NULL
,@ACTIONITEMID uniqueidentifier = NULL
,@LIVEACTIONITEMONLY bit = NULL
,@STARTDATE date = NULL
,@ENDDATE date = NULL
,@STATUS INT = NULL
,@TYPE INT = NULL
,@ACTIONCENTERS VARCHAR(MAX) = null
,@ACTIONITEMS VARCHAR(MAX) = null
)
as      


DECLARE @ACTIONCENTER_T table
(
    SITEID int
);

DECLARE @ACTIONITEM_T table
(
    ACTIONID uniqueidentifier
);

IF @TYPE = 2
BEGIN
SET @TYPE = NULL
END

IF @STATUS = 4
BEGIN
SET @STATUS = NULL
END


IF ISNULL(@ACTIONCENTERS, '') = '' 
    BEGIN
    INSERT INTO  @ACTIONCENTER_T(SITEID)
    SELECT SITECONTENTID
    FROM ACTIONCENTER (NOLOCK)
    END
ELSE
BEGIN
    insert into @ACTIONCENTER_T(SITEID)
    select element_value as SITEID
    FROM        UFN_PARSE_STRING(@ACTIONCENTERS,',')
END


IF ISNULL(@ACTIONITEMS, '') = '' 
    BEGIN
    INSERT INTO  @ACTIONITEM_T(ACTIONID)

    SELECT CAST( ID as uniqueidentifier )
    FROM ACTION_ITEM (NOLOCK)
    END
ELSE
BEGIN
    INSERT INTO @ACTIONITEM_T(ACTIONID)
    SELECT CAST(element_value as uniqueidentifier)  as SITEID
    FROM        UFN_PARSE_STRING(@ACTIONITEMS,',')
END

SELECT 
    AL.ID,
    AL.[ADVOCACYLOGID],
    AL.[SITECONTENTID],
    SC.GUID AS [ACTIONCENTERID],
    AL.[ACTIONITEMID],
    AL.[CONSTITUENTID],
    SC.TITLE AS [ACTIONCENTERNAME],
    ISNULL(AI.[NAME], 'None') AS [ACTIONITEMNAME],
    dbo.UFN_CONSTITUENT_BUILDNAME(C.ID) as [ADVOCATENAME],
    AL.[TARGETNAME],
    AL.[TYPE] AS [DELIVERYTYPE],
    AL.[STATUS],
    AL.[SUBJECTLINE],
    CONVERT(VARCHAR(40),AL.[DATEADDED], 101) AS [ACTIONDATE],
    AI.TYPE as ActionType,
    NULL AS PetitionCount
FROM dbo.ADVOCACYLOG AL (NOLOCK)
INNER JOIN dbo.SITECONTENT SC (NOLOCK)
    ON AL.SITECONTENTID = SC.ID
INNER JOIN dbo.ACTION_ITEM AI (NOLOCK)
    ON AL.ACTIONITEMID = AI.ID
INNER JOIN dbo.CONSTITUENT C (NOLOCK)
    ON AL.[CONSTITUENTID] = C.ID
INNER JOIN @ACTIONCENTER_T ACT
    ON AL.SITECONTENTID = ACT.SITEID 
INNER JOIN @ACTIONITEM_T AIT
    ON AL.ACTIONITEMID  = AIT.ACTIONID 
WHERE SC.GUID = ISNULL(@ACTIONCENTERID, SC.GUID)
AND AL.[ACTIONITEMID] = ISNULL(@ACTIONITEMID,  AL.[ACTIONITEMID])
--AND AI.STATUSCODE = CASE WHEN @LIVEACTIONITEMONLY > 0 THEN 1 ELSE AI.STATUSCODE END

AND AL.DATEADDED BETWEEN ISNULL(@STARTDATE, '1/1/1900')  AND DATEADD(dd, 1, ISNULL(@ENDDATE, '12/30/2999'))
AND AI.STATUSCODE = ISNULL(@STATUS, AI.[STATUSCODE])
AND AI.TYPECODE = ISNULL(@TYPE, AI.TYPECODE)

UNION


SELECT   A.ID,
    A.[ADVOCACYLOGID],
    A.[SITECONTENTID],
    A.[ACTIONCENTERID],
    A.[ACTIONITEMID],
    A.[CONSTITUENTID],
    A.[ACTIONCENTERNAME],
    A.[ACTIONITEMNAME],
    A.[ADVOCATENAME],
    A.[TARGETNAME],
    A.[DELIVERYTYPE],
    A.[STATUS],
    A.[SUBJECTLINE],
    A.[ACTIONDATE],
    A.ActionType,
    A.PETITIONCOUNT FROM
(
select AP.ID,
    NULL AS [ADVOCACYLOGID],
    AP.SITECONTENTID,
    SC.GUID AS [ACTIONCENTERID],
    AP.[ACTIONITEMID],
    AP.[CONSTITUENTID],
    SC.TITLE AS [ACTIONCENTERNAME],
    ISNULL( AI.[NAME], 'None') AS [ACTIONITEMNAME],
    dbo.UFN_CONSTITUENT_BUILDNAME(C.ID) as [ADVOCATENAME],
    NULL AS [TARGETNAME],
    NULL AS [DELIVERYTYPE],
    NULL AS [STATUS],
    NULL AS [SUBJECTLINE],
    CONVERT(VARCHAR(40),AP.[DATEADDED], 101) AS [ACTIONDATE],
    AI.TYPE as ActionType,
    --AIP.PETITIONCOUNT AS PETITIONCOUNT,

    AP.DATEADDED,
    ROW_NUMBER() OVER( PARTITION  BY AP.[ACTIONITEMID] ORDER BY AP.DATEADDED ASC ) AS PETITIONCOUNT
FROM ADVOCACYPETITION  AP
INNER JOIN dbo.ACTIONITEMPETITION AIP
    ON AP.ACTIONITEMID = AIP.ACTIONITEMID 
INNER JOIN dbo.SITECONTENT SC (NOLOCK)
    ON AP.SITECONTENTID = SC.ID
INNER JOIN dbo.ACTION_ITEM AI (NOLOCK)
    ON AP.ACTIONITEMID = AI.ID
INNER JOIN dbo.CONSTITUENT C (NOLOCK)
    ON AP.[CONSTITUENTID] = C.ID
INNER JOIN @ACTIONCENTER_T ACT
    ON AP.SITECONTENTID = ACT.SITEID 
INNER JOIN @ACTIONITEM_T AIT
    ON AP.ACTIONITEMID  = AIT.ACTIONID     
WHERE SC.GUID = ISNULL(@ACTIONCENTERID, SC.GUID)
AND AP.[ACTIONITEMID] = ISNULL(@ACTIONITEMID,  AP.[ACTIONITEMID])
AND AI.STATUSCODE = CASE WHEN @LIVEACTIONITEMONLY > 0 THEN 1 ELSE AI.STATUSCODE END
AND AI.STATUSCODE = ISNULL(@STATUS, AI.[STATUSCODE])
AND AI.TYPECODE = ISNULL(@TYPE, AI.TYPECODE)
) as A
WHERE A.DATEADDED BETWEEN ISNULL(@STARTDATE, '1/1/1900')  AND DATEADD(dd, 1, ISNULL(@ENDDATE, '12/30/2999'))

UNION

SELECT 
    NULL AS ID,
    NULL AS [ADVOCACYLOGID],
    NULL AS [SITECONTENTID],
    SC.GUID AS [ACTIONCENTERID],
    NULL AS [ACTIONITEMID],
    NULL AS [CONSTITUENTID],
    SC.TITLE AS [ACTIONCENTERNAME],
    'None'  AS [ACTIONITEMNAME],
    NULL as [ADVOCATENAME],
    NULL AS [TARGETNAME],
    NULL AS [DELIVERYTYPE],
    NULL AS [STATUS],
    NULL AS [SUBJECTLINE],
    NULL AS [ACTIONDATE],
    NULL AS  ActionType,
    NULL AS PetitionCount
FROM SITECONTENT SC (NOLOCK)
INNER JOIN @ACTIONCENTER_T ACT
    ON SC.ID = ACT.SITEID 
WHERE SC.ContentTypesID = 123
AND ID NOT IN 
(
    SELECT SITECONTENTID FROM ADVOCACYLOG (NOLOCK)
)
AND ID NOT IN
(    
    SELECT SITECONTENTID FROM ADVOCACYPETITION (NOLOCK)
)