USP_KPI_EMAILPROCESS_JOBSTATUS

Parameters

Parameter Parameter Type Mode Description
@VALUE int INOUT
@ASOFDATE datetime IN
@STATUSCODE int IN
@INCLUDEBLASTS bit IN
@INCLUDEFUNDRAISERBLASTS bit IN
@INCLUDENEWSLETTERS bit IN
@INCLUDECAMPAIGNS bit IN
@INCLUDECHAPTER bit IN
@INCLUDEPERSONALPAGEBLASTS bit IN
@INCLUDEPROJECTAPPEALBLASTS bit IN
@INCLUDEPROJECTAPPEALSEED bit IN
@INCLUDESIGNUPNOTIFICATIONS bit IN
@INCLUDEDONATIONNOTIFICATIONS bit IN
@INCLUDEPAGESHARING bit IN
@INCLUDESITENOTIFICATIONS bit IN
@INCLUDEECARDS bit IN
@INCLUDEDIRECTMARKETING bit IN
@INCLUDETEST bit IN
@PROCESSID uniqueidentifier IN
@JOBTYPEID uniqueidentifier INOUT

Definition

Copy

          create procedure dbo.USP_KPI_EMAILPROCESS_JOBSTATUS(
              @VALUE integer output
              @ASOFDATE datetime
            --@JOBTYPE integer,

            @STATUSCODE integer,
            @INCLUDEBLASTS bit,
            @INCLUDEFUNDRAISERBLASTS bit,
            @INCLUDENEWSLETTERS bit,
            @INCLUDECAMPAIGNS bit,
            @INCLUDECHAPTER bit,
            @INCLUDEPERSONALPAGEBLASTS bit,
            @INCLUDEPROJECTAPPEALBLASTS bit,
            @INCLUDEPROJECTAPPEALSEED bit,
            @INCLUDESIGNUPNOTIFICATIONS bit,
            @INCLUDEDONATIONNOTIFICATIONS bit,
            @INCLUDEPAGESHARING bit,
            @INCLUDESITENOTIFICATIONS bit,
            @INCLUDEECARDS bit,
            @INCLUDEDIRECTMARKETING bit,
            @INCLUDETEST bit,
            @PROCESSID uniqueidentifier,
            @JOBTYPEID uniqueidentifier = null output
          )
          as
          begin
              set nocount on;

            -- actual source values

            --declare @ENTERPRISE integer = 0;

            --declare @NETCOMMUNITY integer = 1;

            --declare @EXTERNAL integer = 2;


            -- actual category values

            declare @BLASTS integer = -1;
            declare @FUNDRAISERBLASTS integer = -1;
            declare @NEWSLETTERS integer = -1;
            declare @CAMPAIGNS integer = -1;
            declare @CHAPTER integer = -1;
            declare @PERSONALPAGEBLASTS integer = -1;
            declare @PROJECTAPPEALBLASTS integer = -1;
            declare @PROJECTAPPEALSEED integer = -1;
            declare @SIGNUPNOTIFICATIONS integer = -1;
            declare @DONATIONNOTIFICATIONS integer = -1;
            declare @PAGESHARING integer = -1;
            declare @SITENOTIFICATIONS integer = -1;
            declare @ECARDS integer = -1;
            declare @DIRECTMARKETING integer = -1;
            declare @TEST integer = -1;


            if @INCLUDEBLASTS = 1
              select @BLASTS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'Blast';

            if @INCLUDEFUNDRAISERBLASTS = 1
              select @FUNDRAISERBLASTS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'FundraiserBlast';

            if @INCLUDENEWSLETTERS = 1
              select @NEWSLETTERS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'Newsletter';

            if @INCLUDECAMPAIGNS = 1
              select @CAMPAIGNS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'Campaign';

            if @INCLUDECHAPTER = 1
              select @CHAPTER = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'Chapter';

            if @INCLUDEPERSONALPAGEBLASTS = 1
              select @PERSONALPAGEBLASTS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'PersonalPageBlast';

            if @INCLUDEPROJECTAPPEALBLASTS = 1
              select @PROJECTAPPEALBLASTS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'ProjectAppealBlastFinal';

            if @INCLUDEPROJECTAPPEALSEED = 1
              select @PROJECTAPPEALSEED = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'ProjectAppealSeed';

            if @INCLUDESIGNUPNOTIFICATIONS = 1
              select @SIGNUPNOTIFICATIONS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'SignupNotification';

            if @INCLUDEDONATIONNOTIFICATIONS = 1
              select @DONATIONNOTIFICATIONS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'DonationNotification';

            if @INCLUDEPAGESHARING = 1
              select @PAGESHARING = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'PageSharing';

            if @INCLUDESITENOTIFICATIONS = 1
   select @SITENOTIFICATIONS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'SiteNotification';

            if @INCLUDEECARDS = 1
              select @ECARDS = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'ECard';

            if @INCLUDEDIRECTMARKETING = 1
              select @DIRECTMARKETING = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'DirectMarketing';

            if @INCLUDETEST = 1
              select @TEST = CATEGORYID from dbo.EMAILCATEGORYPRIORITY where DESCRIPTION = 'Testing';



            select @ASOFDATE = dbo.UFN_DATE_GETLATESTTIME(@ASOFDATE);

            if @PROCESSID = '00000000-0000-0000-0000-000000000001'
              set @JOBTYPEID = 'F79575E5-FE4F-47BD-954C-AB056EF109D9';

            if @PROCESSID = '00000000-0000-0000-0000-000000000002'
              set @JOBTYPEID = '5066A489-6282-400C-96AF-1ECC1B7F281F';

            if @JOBTYPEID is null
              set @JOBTYPEID = dbo.UFN_TRANSLATIONFUNCTION_EMAILPROCESS_GETTYPE(@PROCESSID);

            if @JOBTYPEID = 'F79575E5-FE4F-47BD-954C-AB056EF109D9'
            begin -- transactional

              select @VALUE = count(*) from EMAILSTATUSTRANSACTIONAL
                  where (@STATUSCODE = (case when [STATUS] = 15 then 0
                                                  when [STATUS] = 3 then 2
                                                  when [STATUS] = 18 then 4
                                                  when [STATUS] in (6,8) then 5
                                                  when [STATUS] in (1,2,7,10) then 1
                                                  else 6 end
                                    )
                                    or
                                    (@STATUSCODE = 7 and [STATUS] in (1,2,7,10,15))
                                    or
                                    (@STATUSCODE = 8 and [STATUS] in (3,6,8,18))
                                    or
                                    (@STATUSCODE = 9)
                                    )
                                    and
                                    (@PROCESSID = (case when @PROCESSID = '00000000-0000-0000-0000-000000000001' then '00000000-0000-0000-0000-000000000001'
                                                    when @PROCESSID = '00000000-0000-0000-0000-000000000002' then '00000000-0000-0000-0000-000000000002'
                                                    else INTERNALJOBIDENTITY end))


            end
            else -- general purpose

            begin
              select @VALUE = count(*) from EMAILSTATUSGENERALPURPOSE
                  where (@STATUSCODE = (case when [STATUS] = 15 then 0
                                                  when [STATUS] = 3 then 2
                                                  when [STATUS] = 18 then 4
                                                  when [STATUS] in (6,8) then 5
                                                  when [STATUS] in (1,2,7,10) then 1
                                                  else 6 end
                                    )
                                    or
                                    (@STATUSCODE = 7 and [STATUS] in (1,2,7,10,15))
                                    or
                                    (@STATUSCODE = 8 and [STATUS] in (3,6,8,18))
                                    or
                                    (@STATUSCODE = 9)
                                    )
                                    and
                                    (
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@BLASTS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@FUNDRAISERBLASTS")]') = 1
                                      or
                EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@NEWSLETTERS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@CAMPAIGNS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@CHAPTER")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@PERSONALPAGEBLASTS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@PROJECTAPPEALBLASTS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@PROJECTAPPEALSEED")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@SIGNUPNOTIFICATIONS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@DONATIONNOTIFICATIONS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@PAGESHARING")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@SITENOTIFICATIONS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@ECARDS")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@DIRECTMARKETING")]') = 1
                                      or
                                      EMAILHEADER.exist('/EmailHeader/Type[text()=sql:variable("@TEST")]') = 1
                                    )
                                    and
                                    (@PROCESSID = (case when @PROCESSID = '00000000-0000-0000-0000-000000000001' then '00000000-0000-0000-0000-000000000001'
                                                    when @PROCESSID = '00000000-0000-0000-0000-000000000002' then '00000000-0000-0000-0000-000000000002'
                                                    else INTERNALJOBIDENTITY end))
            end



            end