USP_DATALIST_FAFCOMPANYLEADERTASKS
Get list of pending tasks for Company Leader
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CLIENTUSERSID | int | IN | Client Users ID |
@EVENTID | uniqueidentifier | IN | Event ID |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_FAFCOMPANYLEADERTASKS
(
@CLIENTUSERSID int,
@EVENTID uniqueidentifier
)
as
set nocount on;
DECLARE @CONSTITUENTID uniqueidentifier
SET @CONSTITUENTID = dbo.UFN_CONSTITUENT_GET_BY_CLIENTUSERID(@CLIENTUSERSID)
DECLARE @ACKNOWLEDGEGIFT table (
CONSTITUENTID uniqueidentifier,
DONATIONDATE datetime,
DONATIONAMOUNT money,
ISACKNOWLEDGED bit,
REVENUEID uniqueidentifier,
REVENUESPLITID uniqueidentifier,
TYPE varchar(20),
NAME varchar(250)
)
DECLARE @TASKLIST table (
TASKNAME nvarchar(100),
DISPLAYFLAG bit
)
DECLARE @TEAMRAISED table (
TEAMID uniqueidentifier,
MONEYRAISED money,
GOAL money
)
DECLARE @MONEYRAISED money
DECLARE @TEAMID uniqueidentifier
DECLARE @REGISTRANTID uniqueidentifier
DECLARE @PREVIOUSEVENT uniqueidentifier
DECLARE @COMPANYMEMBERS int
DECLARE @TEAMLEADERS int
DECLARE @EVENTSTATUS bit -- 1:active, 0:not active
DECLARE @STORYSTATUS bit
DECLARE @IMAGESTATUS bit
IF EXISTS (Select 1 from dbo.EVENT (NOLOCK) WHERE ID = @EVENTID AND ENDDATE IS NOT NULL AND (ENDDATE < getdate()) AND DATEADD(dd,7,ENDDATE) > getdate())
SET @EVENTSTATUS = 0
SELECT @TEAMID = TEAMID, @REGISTRANTID = RegistrantID
from dbo.UFN_FAF_GETTEAMINFO_BY_REGISTRANT(@CONSTITUENTID, @EVENTID)
IF EXISTS (Select 1 from dbo.STORY (NOLOCK) WHERE EVENTID = @EVENTID AND TEAMFUNDRAISINGTEAMID = @TEAMID AND FAFIMAGESID IS NOT NULL)
SET @IMAGESTATUS = 0
ELSE
SET @IMAGESTATUS = 1
IF EXISTS (Select 1 from dbo.STORY (NOLOCK) WHERE EVENTID = @EVENTID AND TEAMFUNDRAISINGTEAMID = @TEAMID AND ISNULL(STORYTEXT,'') > '')
SET @STORYSTATUS = 0
ELSE
SET @STORYSTATUS = 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.TEAMFUNDRAISINGTEAMID = @TEAMID AND DS.REGISTRANTID IS NULL AND DS.TEAMFUNDRAISINGTEAMID IS NULL
AND DS.FAFIMAGESID IS NOT NULL AND DS.TYPECODE = 2)
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.TEAMFUNDRAISINGTEAMID = @TEAMID AND DS.REGISTRANTID IS NULL AND DS.TEAMFUNDRAISINGTEAMID IS NULL
AND DS.STORYTEXT IS NOT NULL AND DS.TYPECODE = 2)
SET @STORYSTATUS = 1
SELECT @COMPANYMEMBERS = count(*) from dbo.UFN_FAF_COMPANYMEMBERLIST(@CONSTITUENTID,@EVENTID)
SELECT @TEAMLEADERS = count(*) from dbo.UFN_FAF_COMPANYTEAMLEADERLIST(@CONSTITUENTID,@EVENTID)
SELECT @MONEYRAISED = dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(@TEAMID, @EVENTID)
SELECT @PREVIOUSEVENT = PRIORYEAREVENTID from dbo.EVENTEXTENSION (NOLOCK) WHERE EVENTID = @EVENTID
Insert into @ACKNOWLEDGEGIFT
exec USP_DATALIST_FAF_GIFT_ACKNOWLEDGEMENT_TEAM @EVENTID,@TEAMID,@CLIENTUSERSID
Insert into @TEAMRAISED
SELECT TEAMID,
dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TL.TEAMID, @EVENTID),
T.GOAL
FROM dbo.UFN_FAF_COMPANYTEAMLEADERLIST(@CONSTITUENTID,@EVENTID) TL
INNER JOIN dbo.TEAMFUNDRAISINGTEAM T
ON T.ID = TL.TEAMID
INSERT INTO @TASKLIST
VALUES('Upload a company photo',0)
INSERT INTO @TASKLIST
VALUES('Write your company story',0)
INSERT INTO @TASKLIST
VALUES('Recruit team leaders',0)
INSERT INTO @TASKLIST
VALUES('Encourage leaders to find new donors',0)
INSERT INTO @TASKLIST
VALUES('Remind leaders to ask past donors',0)
INSERT INTO @TASKLIST
VALUES('Acknowledge company gifts',0)
INSERT INTO @TASKLIST
VALUES('Ask team to recruit more members',0)
INSERT INTO @TASKLIST
VALUES('Help underperforming team leaders',0)
INSERT INTO @TASKLIST
VALUES('Acknowledge team leaders',0)
IF @IMAGESTATUS = 1
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Upload a company photo'
IF @STORYSTATUS = 1
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Write your company story'
IF EXISTS (SELECT 1 FROM dbo.TEAMEXTENSION (NOLOCK)
where TEAMFUNDRAISINGTEAMID = @TEAMID and PARTICIPANTGOAL > 0 and PARTICIPANTGOAL > ISNULL(@TEAMLEADERS,0))
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Recruit team leaders'
IF EXISTS (SELECT 1 FROM dbo.TEAMFUNDRAISINGTEAM (NOLOCK)
where ID = @TEAMID and GOAL > 0 and GOAL > ISNULL(@MONEYRAISED,0) ) and @TEAMLEADERS > 0
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Encourage leaders to find new donors'
IF @PREVIOUSEVENT IS NOT NULL
IF EXISTS (SELECT 1 FROM dbo.TEAMFUNDRAISINGTEAM (NOLOCK)
where ID = @TEAMID and GOAL > 0 and GOAL > ISNULL(@MONEYRAISED,0) ) and @TEAMLEADERS > 0
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Remind leaders to ask past donors'
IF EXISTS (select 1 from @ACKNOWLEDGEGIFT WHERE TYPE = 'DONOR' AND ISACKNOWLEDGED = 0)
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Acknowledge company gifts'
IF EXISTS (Select 1 from @TEAMRAISED where GOAL > 0 AND GOAL > MONEYRAISED) and @TEAMLEADERS > 0
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Help underperforming team leaders'
IF @EVENTSTATUS = 0 and @TEAMLEADERS > 0 -- need to store a flag if email is sent
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Acknowledge team leaders'
IF EXISTS (Select 1 from dbo.TEAMEXTENSION (NOLOCK)
where TEAMFUNDRAISINGTEAMID = @TEAMID and TEAMMEMBERGOAL > 0 ) and @TEAMLEADERS > 0
UPDATE @TASKLIST
SET DISPLAYFLAG = 1
WHERE TASKNAME = 'Ask team to recruit more members'
select TASKNAME,
DISPLAYFLAG
from @TASKLIST