USP_DATALIST_FAFPERSONALTASKS

Get the list of pending personal tasks

Parameters

Parameter Parameter Type Mode Description
@CLIENTUSERSID int IN Client Users ID
@EVENTID uniqueidentifier IN Event ID
@ROLETYPE tinyint IN Role

Definition

Copy


        CREATE procedure dbo.USP_DATALIST_FAFPERSONALTASKS
          (
             @CLIENTUSERSID int,
             @EVENTID uniqueidentifier,
             @ROLETYPE tinyint = 0 -- 0:Individual,  1:Team Leader,  2:Team Member,  3: Company Leader, 5:Household Leader, 6:Household Mmeber

          )
        as


          DECLARE  @CONSTITUENTID uniqueidentifier 
          SET @CONSTITUENTID = dbo.UFN_CONSTITUENT_GET_BY_CLIENTUSERID(@CLIENTUSERSID)

          DECLARE @MYADDRESSBOOK table (
                          GROUPNAME nvarchar(100),
                CATEGORYSTATUS nvarchar(100),
                          ADDRESSBOOKID uniqueidentifier null,
                          NAME varchar(256) null,
                          CONSTITUENTID uniqueidentifier null,
                          EMAILADDRESS varchar(200) null,
                REGISTRANTID uniqueidentifier null
                          )

           DECLARE @TASKLIST table (
                      TASKNAME nvarchar(100),
                      DISPLAYFLAG bit
                      )

           DECLARE @DONORLIST table(
            ID uniqueidentifier,
            DONORRETENTIONGOAL money,
            CURRENTDONORS int,
            PREVIOUSDONORS int)

           DECLARE @ACKNOWLEDGEGIFT table (
                      DONORCONSTITUENTID uniqueidentifier,
                      DONATIONDATE datetime,
                      DONATIONAMOUNT money,
                      CONSTITUENTID uniqueidentifier,
                      ISACKNOWLEDGED bit,
                      REVENUEID uniqueidentifier,
                      REVENUESPLITID uniqueidentifier,
                      NAME varchar(250),
            TRANSACTIONTYPE varchar(250)
                      )

           DECLARE @ABCOUNT int
           DECLARE @SOCIALNETWORKPOSTCOUNT int
           DECLARE @PREVIOUSDONORS int
           DECLARE @PREVIOUSTEAMMEMBERS int
           DECLARE @CURRENTDONORS int
           DECLARE @CONTACTS int
           DECLARE @TEAMMEMBERS int
           DECLARE @TEAMID uniqueidentifier
           DECLARE @REGISTRANTID uniqueidentifier
           DECLARE @TEAMMEMRETENTION decimal(18,2)
           DECLARE @DONORRETENTION decimal(18,2)
           DECLARE @PREVIOUSEVENT uniqueidentifier
           DECLARE @MONEYRAISED money
           DECLARE @EVENTSTATUS bit -- 1:active, 0:not active

           DECLARE @STORYSTATUS bit
           DECLARE @IMAGESTATUS bit
           DECLARE @SOCIALNETWORKSTATUS bit

           IF EXISTS (Select 1 from dbo.EVENT (NOLOCK) WHERE ID = @EVENTID AND ENDDATE IS NOT NULL AND ENDDATE < getdate())
           SET @EVENTSTATUS = 0
           ELSE SET @EVENTSTATUS = 1

           SELECT @PREVIOUSEVENT = PRIORYEAREVENTID from dbo.EVENTEXTENSION (NOLOCK) WHERE EVENTID = @EVENTID

           Insert into @MYADDRESSBOOK
           exec dbo.usp_datalist_fafaddressbookcontactsearch @CLIENTUSERSID,@EVENTID

           Insert into @ACKNOWLEDGEGIFT
           exec dbo.USP_DATALIST_FAF_GIFT_ACKNOWLEDGEMENT @CLIENTUSERSID,@EVENTID

           INSERT INTO @TASKLIST
           VALUES('Upload a personal photo',0)

           INSERT INTO @TASKLIST
           VALUES('Write your personal story',0)

           INSERT INTO @TASKLIST
           VALUES('Add contacts',0)

           INSERT INTO @TASKLIST
           VALUES('Post to social networks', 0)

           INSERT INTO @TASKLIST
           VALUES('Invite contacts to join your team',0)

           INSERT INTO @TASKLIST
           VALUES('Invite contacts to join your household',0)

           INSERT INTO @TASKLIST
           VALUES('Encourage past household members to join',0)

           INSERT INTO @TASKLIST
           VALUES('Ask contacts to donate',0)

           INSERT INTO @TASKLIST
           VALUES('Solicit previous donors',0)

           INSERT INTO @TASKLIST
           VALUES('Acknowledge personal gifts',0)

           SELECT @ABCOUNT = count(*) from @MYADDRESSBOOK

           ---Select @ABCOUNT = COUNT(ID)  from ADDRESSBOOKFAF 

          --- where CLIENTUSERSID = @CLIENTUSERSID and CONSTITUENTID is null


           insert into @DONORLIST
           exec dbo.USP_DATALIST_FAFDONORRETENTION @CLIENTUSERSID,@EVENTID

           SELECT @PREVIOUSDONORS = PREVIOUSDONORS, @CURRENTDONORS = CURRENTDONORS
           from @DONORLIST

           IF @PREVIOUSDONORS > 0 
           SET @DONORRETENTION = (@CURRENTDONORS/@PREVIOUSDONORS)*100

           SET @DONORRETENTION = ISNULL(@DONORRETENTION,0)

           SELECT @CONTACTS = count(*) from @MYADDRESSBOOK where groupname = 'Contacts'

           IF @PREVIOUSEVENT IS NOT NULL

           SELECT @PREVIOUSTEAMMEMBERS = count(*) from dbo.UFN_FAF_TEAMMEMBERLIST(@CONSTITUENTID,@PREVIOUSEVENT) -- 1=team


           IF ISNULL(@PREVIOUSTEAMMEMBERS,0) > 0
              SET @PREVIOUSTEAMMEMBERS = @PREVIOUSTEAMMEMBERS + 1
           ELSE SET @PREVIOUSTEAMMEMBERS = 0

           SELECT @TEAMMEMBERS = count(*) from dbo.UFN_FAF_TEAMMEMBERLIST(@CONSTITUENTID,@EVENTID)  -- 1 = team

           SET @TEAMMEMBERS = ISNULL(@TEAMMEMBERS,0)+1

           IF @PREVIOUSTEAMMEMBERS > 0
           SET @TEAMMEMRETENTION = (@TEAMMEMBERS/@PREVIOUSTEAMMEMBERS)*100

           SET @TEAMMEMRETENTION = ISNULL(@TEAMMEMRETENTION,0)

           SELECT @TEAMID = TEAMID, @REGISTRANTID = RegistrantID 
           from dbo.UFN_FAF_GETTEAMINFO_BY_REGISTRANT(@CONSTITUENTID, @EVENTID)

           SELECT @MONEYRAISED = dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(@REGISTRANTID, @EVENTID)


            IF EXISTS (Select 1 from dbo.STORY (NOLOCK) WHERE EVENTID = @EVENTID AND REGISTRANTID = @REGISTRANTID AND FAFIMAGESID IS NOT NULL)
                SET @IMAGESTATUS = 0
            ELSE 
                SET @IMAGESTATUS = 1

            IF EXISTS (Select 1 from dbo.STORY (NOLOCK) WHERE EVENTID = @EVENTID AND REGISTRANTID = @REGISTRANTID AND ISNULL(STORYTEXT,'') > '' )
                SET @STORYSTATUS = 0
            ELSE 
                SET @STORYSTATUS = 1

            SELECT @SOCIALNETWORKPOSTCOUNT = COUNT(ID) FROM dbo.FAFEVENTSOCIALNETWORKPOST (NOLOCK) where REGISTRANTID = @REGISTRANTID
            IF @SOCIALNETWORKPOSTCOUNT > 0
              SET @SOCIALNETWORKSTATUS = 0
            ELSE
              SET @SOCIALNETWORKSTATUS = 1

            IF @IMAGESTATUS = 0
            IF EXISTS (SELECT 1 FROM dbo.STORY S (NOLOCK) INNER JOIN dbo.STORY DS (NOLOCK)
                        ON S.EVENTID = DS.EVENTID AND S.FAFIMAGESID = DS.FAFIMAGESID AND S.TYPECODE = DS.TYPECODE 
                        WHERE S.REGISTRANTID = @REGISTRANTID AND DS.REGISTRANTID IS NULL AND DS.TEAMFUNDRAISINGTEAMID IS NULL 
                        AND DS.FAFIMAGESID IS NOT NULL AND DS.TYPECODE = 0)
              SET @IMAGESTATUS = 1

           IF @STORYSTATUS = 0
            IF EXISTS (SELECT 1 FROM dbo.STORY S (NOLOCK) INNER JOIN dbo.STORY DS (NOLOCK)
                        ON S.EVENTID = DS.EVENTID AND S.STORYTEXT = DS.STORYTEXT AND S.TYPECODE = DS.TYPECODE 
                        WHERE S.REGISTRANTID = @REGISTRANTID AND DS.REGISTRANTID IS NULL AND DS.TEAMFUNDRAISINGTEAMID IS NULL 
                         AND DS.STORYTEXT IS NOT NULL AND DS.TYPECODE = 0)
              SET @STORYSTATUS = 1

           IF @IMAGESTATUS = 1
              UPDATE @TASKLIST 
              SET DISPLAYFLAG = 1
              WHERE TASKNAME = 'Upload a personal photo'

           IF @SOCIALNETWORKSTATUS = 1
              UPDATE @TASKLIST 
              SET DISPLAYFLAG = 1
              WHERE TASKNAME = 'Post to social networks'

           IF @STORYSTATUS = 1
              UPDATE @TASKLIST 
              SET DISPLAYFLAG = 1
              WHERE TASKNAME = 'Write your personal story'


           IF ISNULL(@ABCOUNT,0) = 0    -- if addressbook count is 0

           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Add contacts'

           IF @CONTACTS > 0 AND @ROLETYPE IN (1,2,3)
           IF EXISTS (SELECT 1 FROM dbo.REGISTRANTEXTENSION (NOLOCK) 
                      where REGISTRANTID = @REGISTRANTID and MEMBERECRUITMENTGOAL > 0 and MEMBERECRUITMENTGOAL > @TEAMMEMBERS)
           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Invite contacts to join your team'

           IF @CONTACTS > 0 AND @ROLETYPE IN (5,6)
           IF EXISTS (SELECT 1 FROM dbo.REGISTRANTEXTENSION (NOLOCK) 
                      where REGISTRANTID = @REGISTRANTID and MEMBERECRUITMENTGOAL > 0 and MEMBERECRUITMENTGOAL > @TEAMMEMBERS)
           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Invite contacts to join your household'

           IF @PREVIOUSTEAMMEMBERS > 0 AND @ROLETYPE IN (1,2,3)
           IF EXISTS (SELECT 1 FROM dbo.TEAMEXTENSION (NOLOCK) 
                    WHERE TEAMFUNDRAISINGTEAMID = @TEAMID AND PCTTEAMMEMBERRETENSION > 0 AND PCTTEAMMEMBERRETENSION > @TEAMMEMRETENTION)
           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Encourage past teammates to join'

           IF @PREVIOUSTEAMMEMBERS > 0 AND @ROLETYPE IN (5,6)
           IF EXISTS (SELECT 1 FROM dbo.TEAMEXTENSION (NOLOCK) 
                    WHERE TEAMFUNDRAISINGTEAMID = @TEAMID AND PCTTEAMMEMBERRETENSION > 0 AND PCTTEAMMEMBERRETENSION > @TEAMMEMRETENTION)
           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Encourage past household members to join'

           IF @CONTACTS > 0
           IF EXISTS (SELECT 1 FROM dbo.REGISTRANTEXTENSION (NOLOCK) 
                      where REGISTRANTID = @REGISTRANTID and TARGETFUNDRAISINGGOAL > 0 and TARGETFUNDRAISINGGOAL > ISNULL(@MONEYRAISED,0))
           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Ask contacts to donate'

           IF @PREVIOUSDONORS > 0
           IF EXISTS (SELECT 1 FROM dbo.REGISTRANTEXTENSION (NOLOCK) 
                      where REGISTRANTID = @REGISTRANTID and DONORRETENTIONGOAL > 0 and DONORRETENTIONGOAL > @DONORRETENTION)
           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Solicit previous donors'

           IF EXISTS (select 1 from @ACKNOWLEDGEGIFT  WHERE CONSTITUENTID = @CONSTITUENTID AND ISACKNOWLEDGED = 0)
           UPDATE @TASKLIST 
           SET DISPLAYFLAG = 1
           WHERE TASKNAME = 'Acknowledge personal gifts'


          select TASKNAME,
              DISPLAYFLAG
          from @TASKLIST