USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTGROUP_RECOGNITIONHISTORY
The load procedure used by the view dataform template "Constituent Group Recognition History View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@GROUPINCLUDESMEMBERGIVING | bit | INOUT | Group includes member giving |
@TOTALNUMBERFROMGROUP | int | INOUT | Total number of recognition credits for group |
@TOTALNUMBERFROMGROUPMEMBERS | int | INOUT | Total number of recognition credits for group members |
@TOTALGROUPAMOUNT | money | INOUT | Total recognition for group |
@TOTALGROUPMEMBERAMOUNT | money | INOUT | Total recognition for group members |
@ISHOUSEHOLD | bit | INOUT | Is household |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@TOTALGROUPMEMBERAMOUNTWITHGIFTAID | money | INOUT | Total recognition for members including Gift Aid |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTGROUP_RECOGNITIONHISTORY
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@GROUPINCLUDESMEMBERGIVING bit = null output,
@TOTALNUMBERFROMGROUP int = null output,
@TOTALNUMBERFROMGROUPMEMBERS int = null output,
@TOTALGROUPAMOUNT money = null output,
@TOTALGROUPMEMBERAMOUNT money = null output,
@ISHOUSEHOLD bit = null output,
@CURRENTAPPUSERID uniqueidentifier = null,
@TOTALGROUPMEMBERAMOUNTWITHGIFTAID money = null output
)
as
set nocount on;
set @DATALOADED = 0;
declare @SECURITYFEATUREID uniqueidentifier;
declare @SECURITYFEATURETYPE tinyint;
set @SECURITYFEATUREID = '06169335-5b81-4151-a8f8-00e88c749b4b';
set @SECURITYFEATURETYPE = 1;
select
@GROUPINCLUDESMEMBERGIVING =
case
when GD.GROUPTYPECODE = 0 then 1
when GD.GROUPTYPECODE = 1 then GT.INCLUDEMEMBERGIVING
end,
@ISHOUSEHOLD =
case
when GD.GROUPTYPECODE = 0 then 1
when GD.GROUPTYPECODE = 1 then 0
end,
@DATALOADED = 1
from dbo.GROUPDATA GD
left join dbo.GROUPTYPE GT on GD.GROUPTYPEID = GT.ID
where GD.ID = @ID;
-- calculate the member recognitions
if @GROUPINCLUDESMEMBERGIVING = 1
begin
select
@TOTALNUMBERFROMGROUPMEMBERS = count(RR.ID),
@TOTALGROUPMEMBERAMOUNT = cast(sum(cast(RR.AMOUNT as decimal(20,5))) as money),
@TOTALGROUPMEMBERAMOUNTWITHGIFTAID = sum(case when RS.BASEAMOUNT > 0 then
(case R.TYPECODE
when 0 then case when RR.AMOUNT > RS.BASEAMOUNT then dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT(RS.ID, 1) + RR.AMOUNT else RR.AMOUNT/RS.BASEAMOUNT * dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT(RS.ID, 1) + RR.AMOUNT end
when 1 then case when RR.AMOUNT > RS.BASEAMOUNT then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT(RS.ID) - RS.BASEAMOUNT + RR.AMOUNT else RR.AMOUNT/RS.BASEAMOUNT * (dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT(RS.ID) - RS.BASEAMOUNT) + RR.AMOUNT end
else RR.AMOUNT end)
else RS.BASEAMOUNT end)
from
dbo.UFN_RECOGNITIONCREDIT_GETRECOGNITIONS(1, null, null) RR
inner join dbo.FINANCIALTRANSACTIONLINEITEM RS on RR.REVENUESPLITID = RS.ID
inner join dbo.FINANCIALTRANSACTION R on RS.FINANCIALTRANSACTIONID = R.ID
inner join dbo.GROUPMEMBER GM on RR.CONSTITUENTID = GM.MEMBERID
left join dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
left join dbo.RECOGNITIONCREDIT on RR.ID = RECOGNITIONCREDIT.ID
where
GM.GROUPID = @ID
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO >= RR.EFFECTIVEDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= RR.EFFECTIVEDATE))
or (GMDR.DATEFROM <= RR.EFFECTIVEDATE and GMDR.DATETO >= RR.EFFECTIVEDATE))
and R.DELETEDON is null
and RS.DELETEDON is null
and RS.TYPECODE <> 1
and exists
(
select top 1 REVSITES.SITEID from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(RS.ID) REVSITES
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
where ((RECOGNITIONCREDIT.ID is null) and UFN_SITESFORUSERONFEATURE.SITEID = REVSITES.SITEID)
or (UFN_SITESFORUSERONFEATURE.SITEID=dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RECOGNITIONCREDIT.DESIGNATIONID))
))
)
end
-- calculate the recognitions of the group itself
select
@TOTALNUMBERFROMGROUP = count(RR.ID),
@TOTALGROUPAMOUNT = cast(sum(cast(RR.AMOUNT as decimal(20,5))) as money)
from
dbo.UFN_RECOGNITIONCREDIT_GETRECOGNITIONS(1, null, null) RR
inner join dbo.FINANCIALTRANSACTIONLINEITEM RS on RR.REVENUESPLITID = RS.ID
inner join dbo.FINANCIALTRANSACTION R on RS.FINANCIALTRANSACTIONID = R.ID
left join dbo.RECOGNITIONCREDIT on RR.ID = RECOGNITIONCREDIT.ID
where
RR.CONSTITUENTID = @ID
and R.DELETEDON is null
and RS.DELETEDON is null
and RS.TYPECODE <> 1
and exists
(
select top 1 REVSITES.SITEID from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(RS.ID) REVSITES
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
where ((RECOGNITIONCREDIT.ID is null) and UFN_SITESFORUSERONFEATURE.SITEID = REVSITES.SITEID)
or (UFN_SITESFORUSERONFEATURE.SITEID=dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RECOGNITIONCREDIT.DESIGNATIONID))
))
);
select @TOTALGROUPMEMBERAMOUNT = coalesce(@TOTALGROUPMEMBERAMOUNT, 0);
select @TOTALGROUPAMOUNT = coalesce(@TOTALGROUPAMOUNT, 0);
select @TOTALNUMBERFROMGROUP = coalesce(@TOTALNUMBERFROMGROUP, 0);
select @TOTALNUMBERFROMGROUPMEMBERS = coalesce(@TOTALNUMBERFROMGROUPMEMBERS, 0);
select @TOTALGROUPMEMBERAMOUNTWITHGIFTAID = coalesce(@TOTALGROUPMEMBERAMOUNTWITHGIFTAID, 0);
return 0;