USP_DATAFORMTEMPLATE_VIEW_HOUSEHOLDPLANNEDGIFTSUMMARY
The load procedure used by the view dataform template "Household Planned Gifts Summary View"
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. |
@HOUSEHOLDNUMBERPROPOSED | int | INOUT | Number proposed |
@HOUSEHOLDNUMBERPENDINGRESPONSE | int | INOUT | Number pending response |
@HOUSEHOLDNUMBERACCEPTED | int | INOUT | Number accepted |
@HOUSEHOLDAMOUNTACCEPTED | money | INOUT | Amount accepted |
@MEMBERNUMBERPROPOSED | int | INOUT | Number proposed |
@MEMBERNUMBERPENDINGRESPONSE | int | INOUT | Number pending response |
@MEMBERNUMBERACCEPTED | int | INOUT | Number accepted |
@MEMBERAMOUNTACCEPTED | money | INOUT | Amount accepted |
@TOTALNUMBERACCEPTED | int | INOUT | Total number accepted |
@TOTALAMOUNTACCEPTED | money | INOUT | Total amount accepted |
@CURRENCYID | uniqueidentifier | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_HOUSEHOLDPLANNEDGIFTSUMMARY
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@HOUSEHOLDNUMBERPROPOSED int = null output,
@HOUSEHOLDNUMBERPENDINGRESPONSE int = null output,
@HOUSEHOLDNUMBERACCEPTED int = null output,
@HOUSEHOLDAMOUNTACCEPTED money = null output,
@MEMBERNUMBERPROPOSED int = null output,
@MEMBERNUMBERPENDINGRESPONSE int = null output,
@MEMBERNUMBERACCEPTED int = null output,
@MEMBERAMOUNTACCEPTED money = null output,
@TOTALNUMBERACCEPTED int = null output,
@TOTALAMOUNTACCEPTED money = null output,
@CURRENCYID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier = null
)
as begin
set nocount on;
--Bug 215326 Show amounts in the app user's base currency
set @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
declare @CURRENTDATE datetime;
set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
-- household proposed
set @HOUSEHOLDNUMBERPROPOSED = 0;
select
@HOUSEHOLDNUMBERPROPOSED = count(PG.ID)
from
dbo.PLANNEDGIFT PG
where
PG.CONSTITUENTID = @ID
and
PG.STATUSCODE = 0;
-- household pending response
set @HOUSEHOLDNUMBERPENDINGRESPONSE = 0;
select
@HOUSEHOLDNUMBERPENDINGRESPONSE = count(PG.ID)
from
dbo.PLANNEDGIFT PG
where
PG.CONSTITUENTID = @ID
and
PG.STATUSCODE = 1;
-- household accepted
set @HOUSEHOLDNUMBERACCEPTED = 0;
set @HOUSEHOLDAMOUNTACCEPTED = cast(0 as money);
select
@HOUSEHOLDNUMBERACCEPTED = count(PG.ID),
@HOUSEHOLDAMOUNTACCEPTED = sum(dbo.UFN_PLANNEDGIFTDESIGNATION_AMOUNTINCURRENCY(PG.ID, @CURRENCYID))
from
dbo.PLANNEDGIFT PG
where
PG.CONSTITUENTID = @ID
and
PG.STATUSCODE = 2;
-- member proposed
set @MEMBERNUMBERPROPOSED = 0;
select
@MEMBERNUMBERPROPOSED = count(PG.ID)
from
dbo.GROUPMEMBER GM
inner join
dbo.PLANNEDGIFT PG on PG.CONSTITUENTID = GM.MEMBERID
left outer join
dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
where
GM.GROUPID = @ID
and
PG.STATUSCODE = 0
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO >= @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO >= @CURRENTDATE));
-- member pending response
set @MEMBERNUMBERPENDINGRESPONSE = 0;
select
@MEMBERNUMBERPENDINGRESPONSE = count(PG.ID)
from
dbo.GROUPMEMBER GM
inner join
dbo.PLANNEDGIFT PG on PG.CONSTITUENTID = GM.MEMBERID
left outer join
dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
where
GM.GROUPID = @ID
and
PG.STATUSCODE = 1
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO >= @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO >= @CURRENTDATE));
-- member accepted
set @MEMBERNUMBERACCEPTED = 0;
set @MEMBERAMOUNTACCEPTED = cast(0 as money);
select
@MEMBERNUMBERACCEPTED = count(PG.ID),
@MEMBERAMOUNTACCEPTED = sum(dbo.UFN_PLANNEDGIFTDESIGNATION_AMOUNTINCURRENCY(PG.ID, @CURRENCYID))
from
dbo.GROUPMEMBER GM
inner join
dbo.PLANNEDGIFT PG on PG.CONSTITUENTID = GM.MEMBERID
left outer join
dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
where
GM.GROUPID = @ID
and
PG.STATUSCODE = 2
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO >= @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO >= @CURRENTDATE));
select
@DATALOADED = 1,
@TOTALNUMBERACCEPTED = @HOUSEHOLDNUMBERACCEPTED + @MEMBERNUMBERACCEPTED,
@TOTALAMOUNTACCEPTED = coalesce(@HOUSEHOLDAMOUNTACCEPTED,0) + coalesce(@MEMBERAMOUNTACCEPTED,0);
end