USP_FAFGROUP_CALCULATE_COMMSENTCNT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NUMBERPROCESSED | int | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_FAFGROUP_CALCULATE_COMMSENTCNT
(
@NUMBERPROCESSED integer = 0 output,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTDATE datetime = null
)
as
begin
set nocount on;
--declare @CURRENTDATE datetime;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @CURRENTDATE is null
set @CURRENTDATE = GETDATE();
-- get communication sent,
begin try
merge into dbo.FAFGROUPSUMMARYINFORMATION as Target
using
(
select A.GROUPID, A.EVENTID, A.TEAMCONSTITUENTID, A.TYPECODE, SUM(A.COMMSENTCNT + A.SOCIALNETWORKPOSTSCNT) COMMUNICATIONSENT
from (
select
G.PARENTID as GROUPID, TX.TYPECODE, G.PARENTTEAMCONSTITUENTID TEAMCONSTITUENTID, G.EVENTID, isnull(SSNWK.SOCIALNETWORKPOSTSCNT, 0) SOCIALNETWORKPOSTSCNT , isnull(CMMS.COMMSENTCNT, 0) COMMSENTCNT
from dbo.UFN_FAFGROUP_GETALLGROUPS() G
join dbo.TEAMEXTENSION TX (nolock) on TX.TEAMFUNDRAISINGTEAMID = G.PARENTID
left join (
select TX.TEAMFUNDRAISINGTEAMID, count(SSP.ID) as SOCIALNETWORKPOSTSCNT
from dbo.TEAMEXTENSION TX (nolock)
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM (nolock) on TFTM.TEAMFUNDRAISINGTEAMID = TX.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISER TF (nolock) on TF.ID = TFTM.TEAMFUNDRAISERID
join dbo.REGISTRANT R (nolock) on R.CONSTITUENTID = TF.CONSTITUENTID AND R.EVENTID = TX.EVENTID
join dbo.FAFEVENTSOCIALNETWORKPOST SSP (nolock) on SSP.REGISTRANTID = R.ID
group by TX.TEAMFUNDRAISINGTEAMID
) SSNWK on SSNWK.TEAMFUNDRAISINGTEAMID = G.TEAMID
left join (
select TX.TEAMFUNDRAISINGTEAMID, COUNT(F.ID) as COMMSENTCNT
from dbo.TEAMEXTENSION TX (nolock)
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM (nolock) on TFTM.TEAMFUNDRAISINGTEAMID = TX.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISER TF (nolock) on TF.ID = TFTM.TEAMFUNDRAISERID
join dbo.CONSTITUENT C (nolock) on C.ID = TF.CONSTITUENTID
join dbo.BackOfficeSystemPeople BOSP(nolock) on BOSP.BackofficeRecordID = C.SEQUENCEID and BOSP.BackOfficeSystemID = 0
join dbo.BackOfficeSystemUsers BOSU(nolock) on BOSU.BackofficePeopleID = BOSP.ID and BOSU.[CURRENT] = 1
join dbo.ClientUsers CU(nolock) on CU.ID = BOSU.ClientUsersID and CU.Deleted = 0
join dbo.FAFCOMMUNICATIONSLOG F (nolock) on CU.ID = F.CLIENTUSERSID and TX.EVENTID = F.EVENTID
group by TX.TEAMFUNDRAISINGTEAMID
) CMMS on CMMS.TEAMFUNDRAISINGTEAMID = G.TEAMID
where SSNWK.SOCIALNETWORKPOSTSCNT > 0 Or CMMS.COMMSENTCNT > 0
) A
group by A.GROUPID,A.TEAMCONSTITUENTID, A.EVENTID, A.TYPECODE
) as source on Target.ID = source.GROUPID and Target.EVENTID = source.EventID
when matched and (source.COMMUNICATIONSENT <> Target.TOTALCOMMUNICATIONSENT) then
update set
TOTALCOMMUNICATIONSENT = source.COMMUNICATIONSENT,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
when not matched then
insert(ID, GROUPTYPECODE, EVENTID, GROUPCONSTITUENTID, TOTALCOMMUNICATIONSENT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(source.GROUPID, source.TYPECODE, source.EventID, source.TEAMCONSTITUENTID, source.COMMUNICATIONSENT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
end catch
end