USP_GET_FORMS_USAGE_TRACKING_DATA

Parameters

Parameter Parameter Type Mode Description
@ProductName varchar(4) IN

Definition

Copy


    CREATE procedure dbo.USP_GET_FORMS_USAGE_TRACKING_DATA(
    @ProductName varchar(4)
    )
    as
    begin
          DECLARE @LeastProcessingDate DateTime
        SET @LeastProcessingDate = '2017-11-24T23:59:59' --This date is hardcoded as a part the requirements of "Usage Tracking" feature.


        DECLARE @OrganizationDetails NVARCHAR(400)

        SELECT @OrganizationDetails = CLARIFYSITEID,
               @OrganizationDetails = @OrganizationDetails + ' - ' + INSTALLATIONNAME
        FROM   dbo.INSTALLATIONINFO;

        DECLARE @YYYYMM NVARCHAR(7)

        SET @YYYYMM = ( CONVERT(NCHAR(6), Getutcdate(), 112) + '%' );

        WITH PAGES_HAVING_PART(PagesHavingPart, PartTypeID)
             AS (SELECT Count(PageId),
                        PartTypeID
                 FROM   (SELECT DISTINCT SITEPAGES.Id    PageId,
                                         VWCONTENTTYPES.ID PartTypeID
                         FROM   SITEPAGES
                                INNER JOIN dbo.PAGECONTENT
                                        ON SitePages.Id = PAGECONTENT.SitePagesID
                                INNER JOIN dbo.SITECONTENT
                                        ON sitecontent.Id = PAGECONTENT.SiteContentID
                                INNER JOIN dbo.VWCONTENTTYPES
                                        ON sitecontent.ContentTypesID = VWCONTENTTYPES.Id
                         WHERE  SITEPAGES.DELETED = 0 AND Sitecontent.Deleted = 0
                        AND SiteContent.InTrashBin = 0
                        AND SiteContent.Approved = 1) AS A
                 GROUP  BY PartTypeID),
             PARTS_ACTIVE_INSTANCES(ActiveInstances, PartTypeId)
             AS (SELECT ActiveInstances,
                        PartTypeId
                 FROM   (SELECT Count(sitecontent.id)      ActiveInstances,
                                Sitecontent.ContentTypesID PartTypeId
                         FROM   Sitecontent
                         WHERE  Sitecontent.Deleted = 0
                                AND SiteContent.InTrashBin = 0
                                AND SiteContent.Approved = 1
                         GROUP  BY Sitecontent.ContentTypesID) AS A),
             PART_TRANSACTIONS(TransactionCount, PartTypeID)
             AS (SELECT Count(TransactionId) AS TransactionCount,
                        PartTypeID
                 FROM   (SELECT DonationTransactionsID AS TransactionId,
                                CASE
                                  WHEN Charindex('PartTypeID', CONVERT(VARCHAR(max), XMLObjectData)) > 0 
                                  THEN Substring(CONVERT(VARCHAR(max), XMLObjectData), ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ),
                                                 /* Calculate SUBSTRING length as end - start. */
                                                 ( Patindex('%</PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) - ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ) ))
                                  ELSE NULL
                                END AS PartTypeID
                         FROM   dbo.DONATIONTRANSACTIONS
                         WHERE  DONATIONTRANSACTIONS.Status = 1
                                AND IsDeleted = 0
                                AND DONATIONTRANSACTIONS.DateAdded > @LeastProcessingDate
                         UNION
                         SELECT EventTransactionsID AS TransactionId,
                                CASE
                                  WHEN Charindex('PartTypeID', CONVERT(VARCHAR(max), XMLObjectData)) > 0 
                                  THEN Substring(CONVERT(VARCHAR(max), XMLObjectData), ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ),
                                                 /* Calculate SUBSTRING length as end - start. */
             ( Patindex('%</PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) - ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ) ))
                                  ELSE NULL
                                END AS PartTypeID
                         FROM   dbo.EVENTTRANSACTIONS
                         WHERE  EVENTTRANSACTIONS.Status = 1
                                AND IsDeleted = 0
                                AND EVENTTRANSACTIONS.DateAdded > @LeastProcessingDate
                         UNION
                         SELECT ID  AS TransactionId,
                                CASE
                                  WHEN Charindex('PartTypeID', CONVERT(VARCHAR(max), XMLObjectData)) > 0 
                                  THEN Substring(CONVERT(VARCHAR(max), XMLObjectData), ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ),
                                                 /* Calculate SUBSTRING length as end - start. */
                                                 ( Patindex('%</PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) - ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ) ))
                                  ELSE NULL
                                END AS PartTypeID
                         FROM   dbo.MEMBERSHIPTRANSACTIONS
                         WHERE  MEMBERSHIPTRANSACTIONS.Status = 1
                                AND IsDeleted = 0
                                AND MEMBERSHIPTRANSACTIONS.DateAdded > @LeastProcessingDate
                         UNION
                         SELECT SignupTransactionsID AS TransactionId,
                                CASE
                                  WHEN Charindex('PartTypeID', CONVERT(VARCHAR(max), XMLObjectData)) > 0 
                                  THEN Substring(CONVERT(VARCHAR(max), XMLObjectData), ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ),
                                                 /* Calculate SUBSTRING length as end - start. */
                                                 ( Patindex('%</PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) - ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ) ))
                                  ELSE NULL
                                END AS PartTypeID
                         FROM   dbo.SIGNUPTRANSACTIONS
                         WHERE  SIGNUPTRANSACTIONS.IsDeleted = 0
                                AND SIGNUPTRANSACTIONS.DateAdded > @LeastProcessingDate
                         UNION
                         SELECT ProfileUpdateTransactionsID AS TransactionId,
                                CASE
                                  WHEN Charindex('PartTypeID', CONVERT(VARCHAR(max), XMLObjectData)) > 0 
                                  THEN Substring(CONVERT(VARCHAR(max), XMLObjectData), ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ),
                                                 /* Calculate SUBSTRING length as end - start. */
                                                 ( Patindex('%</PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) - ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ) ))
                                  ELSE NULL
                                END AS PartTypeID
                         FROM   dbo.PROFILEUPDATETRANSACTIONS
                         WHERE  PROFILEUPDATETRANSACTIONS.IsDeleted = 0
                         UNION
                         SELECT ID  AS TransactionId,
                                CASE
                                  WHEN Charindex('PartTypeID', CONVERT(VARCHAR(max), XMLObjectData)) > 0 
                                  THEN Substring(CONVERT(VARCHAR(max), XMLObjectData), ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ),
                                                 /* Calculate SUBSTRING length as end - start. */
                                                 ( Patindex('%</PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) - ( Patindex('%<PartTypeID>%', CONVERT(VARCHAR(max), XMLObjectData)) + 12 ) ))
                                  ELSE NULL
                                END AS PartTypeID
                         FROM   dbo.VOLUNTEERTRANSACTIONS
                         WHERE  VOLUNTEERTRANSACTIONS.IsDeleted = 0
                                AND VOLUNTEERTRANSACTIONS.DateAdded > @LeastProcessingDate) AS A
                 WHERE  PartTypeID IS NOT NULL
                        AND PartTypeID > 0
                 GROUP  BY PartTypeID),
             MONTH_PAGEVIEWS(PageId, PageViews)
             AS (SELECT PageId,
                        Sum(PageViews)
                 FROM   dbo.STATISTICSMONTHPAGE
                 GROUP  BY PageID),
             DAY_PAGEVIEWS(PageId, PageViews)
             AS (SELECT PageId,
                        Sum(PageViews)
                 FROM   dbo.STATISTICSDAYPAGE
                 WHERE  STATISTICSDAYPAGE.YYYYMMDD LIKE @YYYYMM
                 GROUP  BY PageID),
             ALL_PAGE_VIEWS(PageId, PageViews)
             AS (SELECT MONTH_PAGEVIEWS.PageId,
                         Isnull(MONTH_PAGEVIEWS.PageViews, 0)
                + Isnull(DAY_PAGEVIEWS.PageViews, 0)
                 FROM   MONTH_PAGEVIEWS
                        LEFT OUTER JOIN DAY_PAGEVIEWS
                                     ON MONTH_PAGEVIEWS.PageId = DAY_PAGEVIEWS.PageId),
             CONTENT_PAGE_VIEWS(PageViews, PartTypeId)
             AS (SELECT Sum(ALL_PAGE_VIEWS.PageViews),
                        VWCONTENTTYPES.ID
                 FROM   ALL_PAGE_VIEWS
                        INNER JOIN SitePages
                                ON ALL_PAGE_VIEWS.PageId = SitePages.ID
                        INNER JOIN dbo.PAGECONTENT
                                ON SitePages.Id = PAGECONTENT.SitePagesID
                        INNER JOIN dbo.SITECONTENT
                                ON sitecontent.Id = PAGECONTENT.SiteContentID
                        INNER JOIN dbo.VWCONTENTTYPES
                                ON sitecontent.ContentTypesID = VWCONTENTTYPES.Id
                 GROUP  BY VWCONTENTTYPES.ID)
        SELECT @ProductName + '-' + 'PartsUsage' + '-'
               + @OrganizationDetails                              AS 'Group',
               NAME                                                AS 'PartType',
               VWCONTENTTYPES.Deprecated                           AS 'IsPartDeprecated',
               Max(PARTS_ACTIVE_INSTANCES.ActiveInstances)         AS 'ActiveInstances',
               Max(SiteContent.UpdateDate)                         AS 'LastUpdated',
               Max(PAGES_HAVING_PART.PagesHavingPart)              AS 'PagesHavingPart',
               Max(PART_TRANSACTIONS.TransactionCount)             AS 'TotalTransactions',
               Max(CONTENT_PAGE_VIEWS.PageViews)                   AS 'TotalViews'
        FROM   dbo.VWCONTENTTYPES
               LEFT OUTER JOIN dbo.SiteContent
                            ON SiteContent.ContentTypesID = VWCONTENTTYPES.id
               LEFT OUTER JOIN dbo.PageContent
                            ON PageContent.SiteContentID = SiteContent.ID
               LEFT OUTER JOIN PAGES_HAVING_PART
                            ON PAGES_HAVING_PART.PartTypeID = VWCONTENTTYPES.id
               LEFT OUTER JOIN PARTS_ACTIVE_INSTANCES
                            ON PARTS_ACTIVE_INSTANCES.PartTypeId = VWCONTENTTYPES.id
               LEFT OUTER JOIN PART_TRANSACTIONS
                            ON PART_TRANSACTIONS.PartTypeID = VWCONTENTTYPES.ID
               LEFT OUTER JOIN CONTENT_PAGE_VIEWS
                            ON CONTENT_PAGE_VIEWS.PartTypeId = VWCONTENTTYPES.ID
        WHERE 
              VWCONTENTTYPES.Static=0 AND VWCONTENTTYPES.Hidden=0 
            --AND VWCONTENTTYPES.ID NOT IN(117,9106,150,9108,9109,9110,9112,9111)

              --Part Id's 117,9106,150,9108,9109,9110,9112,9111 are not supported by BBNC

        GROUP  BY VWCONTENTTYPES.NAME,
                  VWCONTENTTYPES.Deprecated
        ORDER  BY VWCONTENTTYPES.NAME 
    END