USP_DATAFORMTEMPLATE_VIEW_RE7GIVINGSUMMARY2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@FIRSTGIFTAMOUNT | money | INOUT | |
@FIRSTGIFTDATE | datetime | INOUT | |
@LATESTGIFTAMOUNT | money | INOUT | |
@LATESTGIFTDATE | datetime | INOUT | |
@LARGESTGIFTAMOUNT | money | INOUT | |
@LARGESTGIFTDATE | datetime | INOUT | |
@TOTALGIFTSGIVEN | int | INOUT | |
@TOTALGIFTAMOUNT | money | INOUT | |
@FIRSTGIFTTYPE | nvarchar(100) | INOUT | |
@FIRSTGIFTDESIGNATION | nvarchar(100) | INOUT | |
@LARGESTGIFTTYPE | nvarchar(100) | INOUT | |
@LARGESTGIFTDESIGNATION | nvarchar(100) | INOUT | |
@LATESTGIFTTYPE | nvarchar(100) | INOUT | |
@LATESTGIFTDESIGNATION | nvarchar(100) | INOUT | |
@LARGESTGIFTCONSTITUENT | nvarchar(100) | INOUT | |
@FIRSTGIFTCONSTITUENT | nvarchar(100) | INOUT | |
@LATESTGIFTCONSTITUENT | nvarchar(100) | INOUT | |
@HASFIRSTGIFT | bit | INOUT | |
@HASLATESTGIFT | bit | INOUT | |
@HASLARGESTGIFT | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RE7GIVINGSUMMARY2
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@FIRSTGIFTAMOUNT money = null output,
@FIRSTGIFTDATE datetime = null output,
@LATESTGIFTAMOUNT money = null output,
@LATESTGIFTDATE datetime = null output,
@LARGESTGIFTAMOUNT money = null output,
@LARGESTGIFTDATE datetime = null output,
@TOTALGIFTSGIVEN int = null output,
@TOTALGIFTAMOUNT money = null output,
@FIRSTGIFTTYPE nvarchar(100) = null output,
@FIRSTGIFTDESIGNATION nvarchar(100) = null output,
@LARGESTGIFTTYPE nvarchar(100) = null output,
@LARGESTGIFTDESIGNATION nvarchar(100) = null output,
@LATESTGIFTTYPE nvarchar(100) = null output,
@LATESTGIFTDESIGNATION nvarchar(100) = null output,
@LARGESTGIFTCONSTITUENT nvarchar(100) = null output,
@FIRSTGIFTCONSTITUENT nvarchar(100) = null output,
@LATESTGIFTCONSTITUENT nvarchar(100) = null output,
@HASFIRSTGIFT bit = null output,
@HASLATESTGIFT bit = null output,
@HASLARGESTGIFT bit = null output
) as
set nocount on;
set @DATALOADED = 1;
declare @ISGROUP bit;
select
@ISGROUP = ISGROUP
from
dbo.CONSTITUENT
where
ID = @ID
if @ISGROUP = 0
begin
select
@TOTALGIFTSGIVEN = GIVINGSUMMARY.TOTALGIFTSGIVEN,
@TOTALGIFTAMOUNT = GIVINGSUMMARY.TOTALGIFTAMOUNT,
@LARGESTGIFTTYPE = GIVINGSUMMARY.LARGESTGIFTTYPE,
@LARGESTGIFTDESIGNATION = GIVINGSUMMARY.LARGESTGIFTDESIGNATION,
@LARGESTGIFTAMOUNT= GIVINGSUMMARY.LARGESTGIFTAMOUNT,
@LARGESTGIFTDATE = GIVINGSUMMARY.LARGESTGIFTDATE,
@FIRSTGIFTAMOUNT = GIVINGSUMMARY.FIRSTGIFTAMOUNT,
@FIRSTGIFTDATE = GIVINGSUMMARY.FIRSTGIFTDATE,
@FIRSTGIFTTYPE = GIVINGSUMMARY.FIRSTGIFTTYPE,
@FIRSTGIFTDESIGNATION = GIVINGSUMMARY.FIRSTGIFTDESIGNATION,
@LATESTGIFTAMOUNT = GIVINGSUMMARY.LATESTGIFTAMOUNT,
@LATESTGIFTDATE = GIVINGSUMMARY.LATESTGIFTDATE,
@LATESTGIFTTYPE = GIVINGSUMMARY.LATESTGIFTTYPE,
@LATESTGIFTDESIGNATION = GIVINGSUMMARY.LATESTGIFTDESIGNATION
from
dbo.RE7INTEGRATIONGIVINGSUMMARY GIVINGSUMMARY
where
GIVINGSUMMARY.ID = @ID
end
else
begin
-- Select Totals Data
select
@TOTALGIFTSGIVEN = sum(GIVINGSUMMARY.TOTALGIFTSGIVEN),
@TOTALGIFTAMOUNT = sum(GIVINGSUMMARY.TOTALGIFTAMOUNT)
from
dbo.CONSTITUENT
left join
dbo.GROUPMEMBER on CONSTITUENT.ID = GROUPMEMBER.GROUPID
left join
dbo.RE7INTEGRATIONGIVINGSUMMARY GIVINGSUMMARY on GROUPMEMBER.MEMBERID = GIVINGSUMMARY.ID
where
CONSTITUENT.ID = @ID;
-- Select Largest Gift Data
select top(1)
@LARGESTGIFTTYPE = GIVINGSUMMARY.LARGESTGIFTTYPE,
@LARGESTGIFTDESIGNATION = GIVINGSUMMARY.LARGESTGIFTDESIGNATION,
@LARGESTGIFTAMOUNT = GIVINGSUMMARY.LARGESTGIFTAMOUNT,
@LARGESTGIFTDATE = GIVINGSUMMARY.LARGESTGIFTDATE,
@LARGESTGIFTCONSTITUENT = GROUPCONSTITUENT.NAME
from
dbo.CONSTITUENT
left join
dbo.GROUPMEMBER on CONSTITUENT.ID = GROUPMEMBER.GROUPID
left join
dbo.CONSTITUENT GROUPCONSTITUENT on GROUPMEMBER.MEMBERID = GROUPCONSTITUENT.ID
left join
dbo.RE7INTEGRATIONGIVINGSUMMARY GIVINGSUMMARY on GROUPMEMBER.MEMBERID = GIVINGSUMMARY.ID
inner join
dbo.GROUPMEMBERDATERANGE on
GROUPMEMBERDATERANGE.GROUPMEMBERID = GROUPMEMBER.ID and
(GIVINGSUMMARY.LARGESTGIFTDATE is null or
((GROUPMEMBERDATERANGE.DATEFROM is null or GROUPMEMBERDATERANGE.DATEFROM <= GIVINGSUMMARY.LARGESTGIFTDATE) and
(GROUPMEMBERDATERANGE.DATETO is null or GROUPMEMBERDATERANGE.DATETO >= GIVINGSUMMARY.LARGESTGIFTDATE))
)
where
CONSTITUENT.ID = @ID and
GIVINGSUMMARY.ID is not null and
GIVINGSUMMARY.LARGESTGIFTAMOUNT > 0
order by
GIVINGSUMMARY.LARGESTGIFTAMOUNT desc,
GIVINGSUMMARY.LARGESTGIFTDATE desc;
-- Select First Gift Data
select top(1)
@FIRSTGIFTAMOUNT = GIVINGSUMMARY.FIRSTGIFTAMOUNT,
@FIRSTGIFTDATE = GIVINGSUMMARY.FIRSTGIFTDATE,
@FIRSTGIFTTYPE = GIVINGSUMMARY.FIRSTGIFTTYPE,
@FIRSTGIFTDESIGNATION = GIVINGSUMMARY.FIRSTGIFTDESIGNATION,
@FIRSTGIFTCONSTITUENT = GROUPCONSTITUENT.NAME
from
dbo.CONSTITUENT
left join
dbo.GROUPMEMBER on CONSTITUENT.ID = GROUPMEMBER.GROUPID
left join
dbo.CONSTITUENT GROUPCONSTITUENT on GROUPMEMBER.MEMBERID = GROUPCONSTITUENT.ID
left join
dbo.RE7INTEGRATIONGIVINGSUMMARY GIVINGSUMMARY on GROUPMEMBER.MEMBERID = GIVINGSUMMARY.ID
inner join
dbo.GROUPMEMBERDATERANGE on
GROUPMEMBERDATERANGE.GROUPMEMBERID = GROUPMEMBER.ID and
(GIVINGSUMMARY.FIRSTGIFTDATE is null or
((GROUPMEMBERDATERANGE.DATEFROM is null or GROUPMEMBERDATERANGE.DATEFROM <= GIVINGSUMMARY.FIRSTGIFTDATE) and
(GROUPMEMBERDATERANGE.DATETO is null or GROUPMEMBERDATERANGE.DATETO >= GIVINGSUMMARY.FIRSTGIFTDATE))
)
where
CONSTITUENT.ID = @ID and
GIVINGSUMMARY.ID is not null and
GIVINGSUMMARY.FIRSTGIFTAMOUNT > 0
order by
case when GIVINGSUMMARY.FIRSTGIFTDATE IS null then 1 else 0 end,
GIVINGSUMMARY.FIRSTGIFTDATE asc,
GIVINGSUMMARY.FIRSTGIFTAMOUNT desc;
-- Select Latest Gift Data
select top(1)
@LATESTGIFTAMOUNT = GIVINGSUMMARY.LATESTGIFTAMOUNT,
@LATESTGIFTDATE = GIVINGSUMMARY.LATESTGIFTDATE,
@LATESTGIFTTYPE = GIVINGSUMMARY.LATESTGIFTTYPE,
@LATESTGIFTDESIGNATION = GIVINGSUMMARY.LATESTGIFTDESIGNATION,
@LATESTGIFTCONSTITUENT = GROUPCONSTITUENT.NAME
from
dbo.CONSTITUENT
left join
dbo.GROUPMEMBER on CONSTITUENT.ID = GROUPMEMBER.GROUPID
left join
dbo.CONSTITUENT GROUPCONSTITUENT on GROUPMEMBER.MEMBERID = GROUPCONSTITUENT.ID
left join
dbo.RE7INTEGRATIONGIVINGSUMMARY GIVINGSUMMARY on GROUPMEMBER.MEMBERID = GIVINGSUMMARY.ID
inner join
dbo.GROUPMEMBERDATERANGE on
GROUPMEMBERDATERANGE.GROUPMEMBERID = GROUPMEMBER.ID and
(GIVINGSUMMARY.LATESTGIFTDATE is null or
((GROUPMEMBERDATERANGE.DATEFROM is null or GROUPMEMBERDATERANGE.DATEFROM <= GIVINGSUMMARY.LATESTGIFTDATE) and
(GROUPMEMBERDATERANGE.DATETO is null or GROUPMEMBERDATERANGE.DATETO >= GIVINGSUMMARY.LATESTGIFTDATE))
)
where
CONSTITUENT.ID = @ID and
GIVINGSUMMARY.ID is not null and
GIVINGSUMMARY.LATESTGIFTAMOUNT > 0
order by
GIVINGSUMMARY.LATESTGIFTDATE desc,
GIVINGSUMMARY.LATESTGIFTAMOUNT desc
end
set @HASFIRSTGIFT = 0;
set @HASLATESTGIFT = 0;
set @HASLARGESTGIFT = 0;
if Not (@FIRSTGIFTDATE is null and
@FIRSTGIFTAMOUNT = 0 and
@FIRSTGIFTTYPE = '' and
@FIRSTGIFTDESIGNATION = ''
)
set @HASFIRSTGIFT = 1;
if Not (@LATESTGIFTDATE is null and
@LATESTGIFTAMOUNT = 0 and
@LATESTGIFTTYPE = '' and
@LATESTGIFTDESIGNATION = ''
)
set @HASLATESTGIFT = 1;
if Not (@LARGESTGIFTDATE is null and
@LARGESTGIFTAMOUNT = 0 and
@LARGESTGIFTTYPE = '' and
@LARGESTGIFTDESIGNATION = ''
)
set @HASLARGESTGIFT = 1;
return 0;