USP_FAFGROUPSUMMARYINFORMATION_CALCULATE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NUMBERPROCESSED | int | INOUT |
Definition
Copy
CREATE procedure dbo.USP_FAFGROUPSUMMARYINFORMATION_CALCULATE
(
@NUMBERPROCESSED integer = 0 output
)
as
begin
set nocount on;
declare @CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime;
set @NUMBERPROCESSED = 0;
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
set @CURRENTDATE = GETDATE();
--begin tran
begin try
-- get child groups and member counts
exec dbo.USP_FAFGROUP_CALCULATE_GROUPSANDMEMBERS @NUMBERPROCESSED output, @CHANGEAGENTID=@CHANGEAGENTID, @CURRENTDATE=@CURRENTDATE
-- get donor count, total raised, gift count
exec dbo.USP_FAFGROUP_CALCULATE_DONORGIFTCNTANDTOTALRAISED @NUMBERPROCESSED output, @CHANGEAGENTID=@CHANGEAGENTID, @CURRENTDATE=@CURRENTDATE
-- get communication sent,
exec dbo.USP_FAFGROUP_CALCULATE_COMMSENTCNT @NUMBERPROCESSED output, @CHANGEAGENTID=@CHANGEAGENTID, @CURRENTDATE=@CURRENTDATE
-- get total number of groups returned to a group and group retention rate
exec dbo.USP_FAFGROUP_CALCULATE_GROUPRETENTIONRATE @NUMBERPROCESSED output, @CHANGEAGENTID=@CHANGEAGENTID, @CURRENTDATE=@CURRENTDATE
-- get total number of participant returned to a group and participant retention rate
exec dbo.USP_FAFGROUP_CALCULATE_PARTICIPANTRETENTIONRATE @NUMBERPROCESSED output, @CHANGEAGENTID=@CHANGEAGENTID, @CURRENTDATE=@CURRENTDATE
/*
--get participant recruited,
merge into dbo.FAFGROUPSUMMARYINFORMATION as Target
using
(
select R.GROUPID, FL.EVENTID, TX.TEAMCONSTITUENTID, TX.TYPECODE, count(FC.TYPEGUID) PARTICIPANTRECRUITED
from dbo.FAFCOMMUNICATIONSLOG FL
join dbo.FAFEVENTCOMMUNICATIONCHANNEL FC on fl.EMAILJOBID = fc.EMAILJOBID
join dbo.UFN_REGISTRANT_GROUPMEMBERLIST() R on R.REGISTRANTID = fc.TYPEGUID
join dbo.TEAMEXTENSION TX (nolock) on TX.TEAMFUNDRAISINGTEAMID = R.GROUPID
group by R.GROUPID, FL.EVENTID, TX.TEAMCONSTITUENTID, TX.TYPECODE
) as source on Target.ID = source.GROUPID and Target.EVENTID = source.EventID
when matched then
update set
TOTALPARTICIPANTRECRUITED = source.PARTICIPANTRECRUITED,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
when not matched then
insert(ID, GROUPTYPECODE, EVENTID, GROUPCONSTITUENTID, TOTALPARTICIPANTRECRUITED, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(source.GROUPID, source.TYPECODE, source.EventID, source.TEAMCONSTITUENTID, source.PARTICIPANTRECRUITED, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
*/
select @NUMBERPROCESSED=COUNT(*) from dbo.FAFGROUPSUMMARYINFORMATION (nolock)
where DATECHANGED = @CURRENTDATE
set @NUMBERPROCESSED = isnull(@NUMBERPROCESSED, 0)
end try
begin catch
exec dbo.USP_RAISE_ERROR;
--IF @@TRANCOUNT > 0
--ROLLBACK TRANSACTION;
end catch
--IF @@TRANCOUNT > 0
--COMMIT TRANSACTION;
end