USP_CONSTITUENT_WEALTHCAPACITYVALUES_FROMFORMULA_2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@WEALTHID | uniqueidentifier | IN | |
@WEALTHCAPACITYFORMULAID | uniqueidentifier | IN | |
@ESTIMATEDWEALTHVALUE | money | INOUT | |
@MAJORGIVINGCAPACITYVALUE | money | INOUT | |
@MAJORGIVINGCAPACITYBASISVALUE | nvarchar(250) | INOUT |
Definition
Copy
create procedure dbo.USP_CONSTITUENT_WEALTHCAPACITYVALUES_FROMFORMULA_2 (
@WEALTHID uniqueidentifier,
@WEALTHCAPACITYFORMULAID uniqueidentifier,
@ESTIMATEDWEALTHVALUE money output,
@MAJORGIVINGCAPACITYVALUE money output,
@MAJORGIVINGCAPACITYBASISVALUE nvarchar(250) output
) as
set nocount on;
declare @ISGROUP bit;
select @ISGROUP = ISGROUP from dbo.CONSTITUENT where ID = @WEALTHID;
if @WEALTHID is not null and @ISGROUP = 0 begin
declare @FORMULALOADED bit;
declare @ASSETCALCULATIONMETHODCODE tinyint;
declare @MAJORGIVINGMULTIPLIERTYPECODE tinyint;
declare @MAJORGIVINGSETVALUEMULTIPLIER decimal(20,4);
declare @MAJORGIVINGOVER70MULTIPLIER decimal(20,4);
declare @MAJORGIVING60TO69MULTIPLIER decimal(20,4);
declare @MAJORGIVING50TO59MULTIPLIER decimal(20,4);
declare @MAJORGIVING40TO49MULTIPLIER decimal(20,4);
declare @MAJORGIVINGUNDER40MULTIPLIER decimal(20,4);
declare @MAJORGIVINGAGEUNKNOWNMULTIPLIER decimal(20,4);
declare @REALESTATEINCLUDE bit;
declare @REALESTATECONFIRMEDONLY bit;
declare @REALESTATEVALUEMULTIPLIERTYPECODE tinyint;
declare @REALESTATEVALUEMULTIPLIERCUTOFFVALUE money;
declare @REALESTATEVALUEMULTIPLIER decimal(20,4);
declare @REALESTATEVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @REALESTATEVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @REALESTATEAGGREGATETYPECODE tinyint;
declare @REALESTATEUSEPROPERTYVALUATION bit;
declare @REALESTATEUSEPROPERTYVALUEESTIMATE bit;
declare @REALESTATEINCLUDEHISTORICAL bit;
declare @BUSINESSOWNERSHIPINCLUDE bit;
declare @BUSINESSOWNERSHIPCONFIRMEDONLY bit;
declare @BUSINESSOWNERSHIPVALUEMULTIPLIERTYPECODE tinyint;
declare @BUSINESSOWNERSHIPVALUEMULTIPLIERCUTOFFVALUE money;
declare @BUSINESSOWNERSHIPVALUEMULTIPLIER decimal(20,4);
declare @BUSINESSOWNERSHIPVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @BUSINESSOWNERSHIPVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @BUSINESSOWNERSHIPVALUECODE tinyint;
declare @SECURITIESINCLUDE bit;
declare @SECURITIESCONFIRMEDONLY bit;
declare @SECURITIESVALUEMULTIPLIERTYPECODE tinyint;
declare @SECURITIESVALUEMULTIPLIERCUTOFFVALUE money;
declare @SECURITIESVALUEMULTIPLIER decimal(20,4);
declare @SECURITIESVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @SECURITIESVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @SECURITIESVALUECODE tinyint;
declare @INCOMECOMPENSATIONINCLUDE bit;
declare @INCOMECOMPENSATIONCONFIRMEDONLY bit;
declare @INCOMECOMPENSATIONVALUEMULTIPLIERTYPECODE tinyint;
declare @INCOMECOMPENSATIONVALUEMULTIPLIERCUTOFFVALUE money;
declare @INCOMECOMPENSATIONVALUEMULTIPLIER decimal(20,4);
declare @INCOMECOMPENSATIONVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @INCOMECOMPENSATIONVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @INCOMECOMPENSATIONINCLUDESALARY bit;
declare @INCOMECOMPENSATIONINCLUDEBONUS bit;
declare @INCOMECOMPENSATIONINCLUDESHORTTERMCOMP bit;
declare @INCOMECOMPENSATIONINCLUDELONGTERMCOMP bit;
declare @INCOMECOMPENSATIONINCLUDEEXERCISEDOPTIONS bit;
declare @INCOMECOMPENSATIONINCLUDEUNEXERCISEDOPTIONS bit;
declare @INCOMECOMPENSATIONINCLUDEUNEXERCISABLEOPTIONS bit;
declare @INCOMECOMPENSATIONINCLUDEHISTORICAL bit;
declare @OTHERASSETINCLUDE bit;
declare @OTHERASSETCONFIRMEDONLY bit;
declare @OTHERASSETVALUEMULTIPLIERTYPECODE tinyint;
declare @OTHERASSETVALUEMULTIPLIERCUTOFFVALUE money;
declare @OTHERASSETVALUEMULTIPLIER decimal(20,4);
declare @OTHERASSETVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @OTHERASSETVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @OTHERASSETVALUECODE tinyint;
declare @NONPROFITAFFILIATIONINCLUDE bit;
declare @NONPROFITAFFILIATIONCONFIRMEDONLY bit;
declare @NONPROFITAFFILIATIONVALUEMULTIPLIERTYPECODE tinyint;
declare @NONPROFITAFFILIATIONVALUEMULTIPLIERCUTOFFVALUE money;
declare @NONPROFITAFFILIATIONVALUEMULTIPLIER decimal(20,4);
declare @NONPROFITAFFILIATIONVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @NONPROFITAFFILIATIONVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @NONPROFITAFFILIATIONVALUECODE tinyint;
declare @PRIVATEFOUNDATIONINCLUDE bit;
declare @PRIVATEFOUNDATIONCONFIRMEDONLY bit;
declare @PRIVATEFOUNDATIONVALUEMULTIPLIERTYPECODE tinyint;
declare @PRIVATEFOUNDATIONVALUEMULTIPLIERCUTOFFVALUE money;
declare @PRIVATEFOUNDATIONVALUEMULTIPLIER decimal(20,4);
declare @PRIVATEFOUNDATIONVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @PRIVATEFOUNDATIONVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @PRIVATEFOUNDATIONVALUECODE tinyint;
declare @PHILANTHROPICGIFTINCLUDE bit;
declare @PHILANTHROPICGIFTCONFIRMEDONLY bit;
declare @PHILANTHROPICGIFTVALUEMULTIPLIERTYPECODE tinyint;
declare @PHILANTHROPICGIFTVALUEMULTIPLIERCUTOFFVALUE money;
declare @PHILANTHROPICGIFTVALUEMULTIPLIER decimal(20,4);
declare @PHILANTHROPICGIFTVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @PHILANTHROPICGIFTVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @PHILANTHROPICGIFTVALUECODE tinyint;
declare @PHILANTHROPICGIFTSOURCES xml;
declare @POLITICALDONATIONINCLUDE bit;
declare @POLITICALDONATIONCONFIRMEDONLY bit;
declare @POLITICALDONATIONVALUEMULTIPLIERTYPECODE tinyint;
declare @POLITICALDONATIONVALUEMULTIPLIERCUTOFFVALUE money;
declare @POLITICALDONATIONVALUEMULTIPLIER decimal(20,4);
declare @POLITICALDONATIONVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @POLITICALDONATIONVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @POLITICALDONATIONVALUECODE tinyint;
declare @POLITICALDONATIONSOURCES xml;
declare @GIVINGTOMYORGINCLUDE bit;
declare @GIVINGTOMYORGVALUEMULTIPLIERTYPECODE tinyint;
declare @GIVINGTOMYORGVALUEMULTIPLIERCUTOFFVALUE money;
declare @GIVINGTOMYORGVALUEMULTIPLIER decimal(20,4);
declare @GIVINGTOMYORGVALUELESSTHANCUTOFFMULTIPLIER decimal(20,4);
declare @GIVINGTOMYORGVALUEGREATERTHANCUTOFFMULTIPLIER decimal(20,4);
declare @GIVINGTOMYORGVALUECODE tinyint;
declare @CURRENTDATE datetime;
declare @CURRENTYEAR UDT_YEAR;
set @FORMULALOADED = 0;
set @CURRENTDATE = getdate();
set @CURRENTYEAR = datepart(yy, @CURRENTDATE);
select
@FORMULALOADED = 1,
@ASSETCALCULATIONMETHODCODE = WCF.ASSETCALCULATIONMETHODCODE,
@MAJORGIVINGMULTIPLIERTYPECODE = WCF.MAJORGIVINGMULTIPLIERTYPECODE,
@MAJORGIVINGSETVALUEMULTIPLIER = WCF.MAJORGIVINGSETVALUEMULTIPLIER,
@MAJORGIVINGOVER70MULTIPLIER = WCF.MAJORGIVINGOVER70MULTIPLIER,
@MAJORGIVING60TO69MULTIPLIER = WCF.MAJORGIVING60TO69MULTIPLIER,
@MAJORGIVING50TO59MULTIPLIER = WCF.MAJORGIVING50TO59MULTIPLIER,
@MAJORGIVING40TO49MULTIPLIER = WCF.MAJORGIVING40TO49MULTIPLIER,
@MAJORGIVINGUNDER40MULTIPLIER = WCF.MAJORGIVINGUNDER40MULTIPLIER,
@MAJORGIVINGAGEUNKNOWNMULTIPLIER = WCF.MAJORGIVINGAGEUNKNOWNMULTIPLIER,
@REALESTATEINCLUDE = WCF.REALESTATEINCLUDE,
@REALESTATECONFIRMEDONLY = WCF.REALESTATECONFIRMEDONLY,
@REALESTATEVALUEMULTIPLIERTYPECODE = WCF.REALESTATEVALUEMULTIPLIERTYPECODE,
@REALESTATEVALUEMULTIPLIERCUTOFFVALUE = WCF.REALESTATEVALUEMULTIPLIERCUTOFFVALUE,
@REALESTATEVALUEMULTIPLIER = WCF.REALESTATEVALUEMULTIPLIER,
@REALESTATEVALUELESSTHANCUTOFFMULTIPLIER = WCF.REALESTATEVALUELESSTHANCUTOFFMULTIPLIER,
@REALESTATEVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.REALESTATEVALUEGREATERTHANCUTOFFMULTIPLIER,
@REALESTATEAGGREGATETYPECODE = WCF.REALESTATEAGGREGATETYPECODE,
@REALESTATEUSEPROPERTYVALUATION = WCF.REALESTATEUSEPROPERTYVALUATION,
@REALESTATEUSEPROPERTYVALUEESTIMATE = WCF.REALESTATEUSEPROPERTYVALUEESTIMATE,
@REALESTATEINCLUDEHISTORICAL = WCF.REALESTATEINCLUDEHISTORICAL,
@BUSINESSOWNERSHIPINCLUDE = WCF.BUSINESSOWNERSHIPINCLUDE,
@BUSINESSOWNERSHIPCONFIRMEDONLY = WCF.BUSINESSOWNERSHIPCONFIRMEDONLY,
@BUSINESSOWNERSHIPVALUEMULTIPLIERTYPECODE = WCF.BUSINESSOWNERSHIPVALUEMULTIPLIERTYPECODE,
@BUSINESSOWNERSHIPVALUEMULTIPLIERCUTOFFVALUE = WCF.BUSINESSOWNERSHIPVALUEMULTIPLIERCUTOFFVALUE,
@BUSINESSOWNERSHIPVALUEMULTIPLIER = WCF.BUSINESSOWNERSHIPVALUEMULTIPLIER,
@BUSINESSOWNERSHIPVALUELESSTHANCUTOFFMULTIPLIER = WCF.BUSINESSOWNERSHIPVALUELESSTHANCUTOFFMULTIPLIER,
@BUSINESSOWNERSHIPVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.BUSINESSOWNERSHIPVALUEGREATERTHANCUTOFFMULTIPLIER,
@BUSINESSOWNERSHIPVALUECODE = WCF.BUSINESSOWNERSHIPVALUECODE,
@SECURITIESINCLUDE = WCF.SECURITIESINCLUDE,
@SECURITIESCONFIRMEDONLY = WCF.SECURITIESCONFIRMEDONLY,
@SECURITIESVALUEMULTIPLIERTYPECODE = WCF.SECURITIESVALUEMULTIPLIERTYPECODE,
@SECURITIESVALUEMULTIPLIERCUTOFFVALUE = WCF.SECURITIESVALUEMULTIPLIERCUTOFFVALUE,
@SECURITIESVALUEMULTIPLIER = WCF.SECURITIESVALUEMULTIPLIER,
@SECURITIESVALUELESSTHANCUTOFFMULTIPLIER = WCF.SECURITIESVALUELESSTHANCUTOFFMULTIPLIER,
@SECURITIESVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.SECURITIESVALUEGREATERTHANCUTOFFMULTIPLIER,
@SECURITIESVALUECODE = WCF.SECURITIESVALUECODE,
@INCOMECOMPENSATIONINCLUDE = WCF.INCOMECOMPENSATIONINCLUDE,
@INCOMECOMPENSATIONCONFIRMEDONLY = WCF.INCOMECOMPENSATIONCONFIRMEDONLY,
@INCOMECOMPENSATIONVALUEMULTIPLIERTYPECODE = WCF.INCOMECOMPENSATIONVALUEMULTIPLIERTYPECODE,
@INCOMECOMPENSATIONVALUEMULTIPLIERCUTOFFVALUE = WCF.INCOMECOMPENSATIONVALUEMULTIPLIERCUTOFFVALUE,
@INCOMECOMPENSATIONVALUEMULTIPLIER = WCF.INCOMECOMPENSATIONVALUEMULTIPLIER,
@INCOMECOMPENSATIONVALUELESSTHANCUTOFFMULTIPLIER = WCF.INCOMECOMPENSATIONVALUELESSTHANCUTOFFMULTIPLIER,
@INCOMECOMPENSATIONVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.INCOMECOMPENSATIONVALUEGREATERTHANCUTOFFMULTIPLIER,
@INCOMECOMPENSATIONINCLUDESALARY = WCF.INCOMECOMPENSATIONINCLUDESALARY,
@INCOMECOMPENSATIONINCLUDEBONUS = WCF.INCOMECOMPENSATIONINCLUDEBONUS,
@INCOMECOMPENSATIONINCLUDESHORTTERMCOMP = WCF.INCOMECOMPENSATIONINCLUDESHORTTERMCOMP,
@INCOMECOMPENSATIONINCLUDELONGTERMCOMP = WCF.INCOMECOMPENSATIONINCLUDELONGTERMCOMP,
@INCOMECOMPENSATIONINCLUDEEXERCISEDOPTIONS = WCF.INCOMECOMPENSATIONINCLUDEEXERCISEDOPTIONS,
@INCOMECOMPENSATIONINCLUDEUNEXERCISEDOPTIONS = WCF.INCOMECOMPENSATIONINCLUDEUNEXERCISEDOPTIONS,
@INCOMECOMPENSATIONINCLUDEUNEXERCISABLEOPTIONS = WCF.INCOMECOMPENSATIONINCLUDEUNEXERCISABLEOPTIONS,
@INCOMECOMPENSATIONINCLUDEHISTORICAL = WCF.INCOMECOMPENSATIONINCLUDEHISTORICAL,
@OTHERASSETINCLUDE = WCF.OTHERASSETINCLUDE,
@OTHERASSETCONFIRMEDONLY = WCF.OTHERASSETCONFIRMEDONLY,
@OTHERASSETVALUEMULTIPLIERTYPECODE = WCF.OTHERASSETVALUEMULTIPLIERTYPECODE,
@OTHERASSETVALUEMULTIPLIERCUTOFFVALUE = WCF.OTHERASSETVALUEMULTIPLIERCUTOFFVALUE,
@OTHERASSETVALUEMULTIPLIER = WCF.OTHERASSETVALUEMULTIPLIER,
@OTHERASSETVALUELESSTHANCUTOFFMULTIPLIER = WCF.OTHERASSETVALUELESSTHANCUTOFFMULTIPLIER,
@OTHERASSETVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.OTHERASSETVALUEGREATERTHANCUTOFFMULTIPLIER,
@OTHERASSETVALUECODE = WCF.OTHERASSETVALUECODE,
@NONPROFITAFFILIATIONINCLUDE = WCF.NONPROFITAFFILIATIONINCLUDE,
@NONPROFITAFFILIATIONCONFIRMEDONLY = WCF.NONPROFITAFFILIATIONCONFIRMEDONLY,
@NONPROFITAFFILIATIONVALUEMULTIPLIERTYPECODE = WCF.NONPROFITAFFILIATIONVALUEMULTIPLIERTYPECODE,
@NONPROFITAFFILIATIONVALUEMULTIPLIERCUTOFFVALUE = WCF.NONPROFITAFFILIATIONVALUEMULTIPLIERCUTOFFVALUE,
@NONPROFITAFFILIATIONVALUEMULTIPLIER = WCF.NONPROFITAFFILIATIONVALUEMULTIPLIER,
@NONPROFITAFFILIATIONVALUELESSTHANCUTOFFMULTIPLIER = WCF.NONPROFITAFFILIATIONVALUELESSTHANCUTOFFMULTIPLIER,
@NONPROFITAFFILIATIONVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.NONPROFITAFFILIATIONVALUEGREATERTHANCUTOFFMULTIPLIER,
@NONPROFITAFFILIATIONVALUECODE = WCF.NONPROFITAFFILIATIONVALUECODE,
@PRIVATEFOUNDATIONINCLUDE = WCF.PRIVATEFOUNDATIONINCLUDE,
@PRIVATEFOUNDATIONCONFIRMEDONLY = WCF.PRIVATEFOUNDATIONCONFIRMEDONLY,
@PRIVATEFOUNDATIONVALUEMULTIPLIERTYPECODE = WCF.PRIVATEFOUNDATIONVALUEMULTIPLIERTYPECODE,
@PRIVATEFOUNDATIONVALUEMULTIPLIERCUTOFFVALUE = WCF.PRIVATEFOUNDATIONVALUEMULTIPLIERCUTOFFVALUE,
@PRIVATEFOUNDATIONVALUEMULTIPLIER = WCF.PRIVATEFOUNDATIONVALUEMULTIPLIER,
@PRIVATEFOUNDATIONVALUELESSTHANCUTOFFMULTIPLIER = WCF.PRIVATEFOUNDATIONVALUELESSTHANCUTOFFMULTIPLIER,
@PRIVATEFOUNDATIONVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.PRIVATEFOUNDATIONVALUEGREATERTHANCUTOFFMULTIPLIER,
@PRIVATEFOUNDATIONVALUECODE = WCF.PRIVATEFOUNDATIONVALUECODE,
@PHILANTHROPICGIFTINCLUDE = WCF.PHILANTHROPICGIFTINCLUDE,
@PHILANTHROPICGIFTCONFIRMEDONLY = WCF.PHILANTHROPICGIFTCONFIRMEDONLY,
@PHILANTHROPICGIFTVALUEMULTIPLIERTYPECODE = WCF.PHILANTHROPICGIFTVALUEMULTIPLIERTYPECODE,
@PHILANTHROPICGIFTVALUEMULTIPLIERCUTOFFVALUE = WCF.PHILANTHROPICGIFTVALUEMULTIPLIERCUTOFFVALUE,
@PHILANTHROPICGIFTVALUEMULTIPLIER = WCF.PHILANTHROPICGIFTVALUEMULTIPLIER,
@PHILANTHROPICGIFTVALUELESSTHANCUTOFFMULTIPLIER = WCF.PHILANTHROPICGIFTVALUELESSTHANCUTOFFMULTIPLIER,
@PHILANTHROPICGIFTVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.PHILANTHROPICGIFTVALUEGREATERTHANCUTOFFMULTIPLIER,
@PHILANTHROPICGIFTVALUECODE = WCF.PHILANTHROPICGIFTVALUECODE,
@POLITICALDONATIONINCLUDE = WCF.POLITICALDONATIONINCLUDE,
@POLITICALDONATIONCONFIRMEDONLY = WCF.POLITICALDONATIONCONFIRMEDONLY,
@POLITICALDONATIONVALUEMULTIPLIERTYPECODE = WCF.POLITICALDONATIONVALUEMULTIPLIERTYPECODE,
@POLITICALDONATIONVALUEMULTIPLIERCUTOFFVALUE = WCF.POLITICALDONATIONVALUEMULTIPLIERCUTOFFVALUE,
@POLITICALDONATIONVALUEMULTIPLIER = WCF.POLITICALDONATIONVALUEMULTIPLIER,
@POLITICALDONATIONVALUELESSTHANCUTOFFMULTIPLIER = WCF.POLITICALDONATIONVALUELESSTHANCUTOFFMULTIPLIER,
@POLITICALDONATIONVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.POLITICALDONATIONVALUEGREATERTHANCUTOFFMULTIPLIER,
@POLITICALDONATIONVALUECODE = WCF.POLITICALDONATIONVALUECODE,
@GIVINGTOMYORGINCLUDE = WCF.GIVINGTOMYORGINCLUDE,
@GIVINGTOMYORGVALUEMULTIPLIERTYPECODE = WCF.GIVINGTOMYORGVALUEMULTIPLIERTYPECODE,
@GIVINGTOMYORGVALUEMULTIPLIERCUTOFFVALUE = WCF.GIVINGTOMYORGVALUEMULTIPLIERCUTOFFVALUE,
@GIVINGTOMYORGVALUEMULTIPLIER = WCF.GIVINGTOMYORGVALUEMULTIPLIER,
@GIVINGTOMYORGVALUELESSTHANCUTOFFMULTIPLIER = WCF.GIVINGTOMYORGVALUELESSTHANCUTOFFMULTIPLIER,
@GIVINGTOMYORGVALUEGREATERTHANCUTOFFMULTIPLIER = WCF.GIVINGTOMYORGVALUEGREATERTHANCUTOFFMULTIPLIER,
@GIVINGTOMYORGVALUECODE = WCF.GIVINGTOMYORGVALUECODE
from
dbo.WEALTHCAPACITYFORMULA WCF
where
WCF.ID = @WEALTHCAPACITYFORMULAID;
declare @REALESTATEASSETS money;
declare @BUSINESSOWNERSHIPASSETS money;
declare @SECURITIESASSETS money;
declare @INCOMECOMPENSATIONASSETS money;
declare @OTHERASSETS money;
declare @NONPROFITAFFILIATIONASSETS money;
declare @PRIVATEFOUNDATIONASSETS money;
declare @PHILANTHROPICGIFTS money;
declare @POLITICALDONATIONS money;
declare @GIVINGTOMYORG money;
declare @TOTALASSETS money;
set @REALESTATEASSETS = 0;
set @BUSINESSOWNERSHIPASSETS = 0;
set @SECURITIESASSETS = 0;
set @INCOMECOMPENSATIONASSETS = 0;
set @OTHERASSETS = 0;
set @NONPROFITAFFILIATIONASSETS = 0;
set @PRIVATEFOUNDATIONASSETS = 0;
set @PHILANTHROPICGIFTS = 0;
set @POLITICALDONATIONS = 0;
set @GIVINGTOMYORG = 0;
set @TOTALASSETS = 0;
if @FORMULALOADED = 1 begin
if @REALESTATEINCLUDE = 1 begin
with REALESTATEROWVALUE_CTE as (
select
case @REALESTATEAGGREGATETYPECODE
when 0 then
case
when @REALESTATEUSEPROPERTYVALUATION = 1 and RE.PROPERTYVALUATION <> 0 and (RE.PROPERTYVALUATION >= RE.ESTIMATEDVALUE or @REALESTATEUSEPROPERTYVALUEESTIMATE = 0 or RE.ESTIMATEDVALUE = 0) then RE.PROPERTYVALUATION
when @REALESTATEUSEPROPERTYVALUEESTIMATE = 1 and RE.ESTIMATEDVALUE <> 0 then RE.ESTIMATEDVALUE
else 0
end
when 1 then
case
when @REALESTATEUSEPROPERTYVALUATION = 1 and RE.PROPERTYVALUATION <> 0 and (RE.PROPERTYVALUATION <= RE.ESTIMATEDVALUE or @REALESTATEUSEPROPERTYVALUEESTIMATE = 0 or RE.ESTIMATEDVALUE = 0) then RE.PROPERTYVALUATION
when @REALESTATEUSEPROPERTYVALUEESTIMATE = 1 and RE.ESTIMATEDVALUE <> 0 then RE.ESTIMATEDVALUE
else 0
end
when 2 then
case
when (@REALESTATEUSEPROPERTYVALUATION = 1 and RE.PROPERTYVALUATION <> 0) or (@REALESTATEUSEPROPERTYVALUEESTIMATE = 1 and RE.ESTIMATEDVALUE <> 0) then
((case @REALESTATEUSEPROPERTYVALUATION when 1 then RE.PROPERTYVALUATION else 0 end) + (case @REALESTATEUSEPROPERTYVALUEESTIMATE when 1 then RE.ESTIMATEDVALUE else 0 end))/((case when @REALESTATEUSEPROPERTYVALUATION = 1 and RE.PROPERTYVALUATION <> 0 then 1 else 0 end) + (case when @REALESTATEUSEPROPERTYVALUEESTIMATE = 1 and RE.ESTIMATEDVALUE <> 0 then 1 else 0 end))
else 0
end
else
0
end ROWVALUE
from
dbo.WPREALESTATE RE
where
RE.WEALTHID = @WEALTHID and
RE.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAREALESTATESOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
RE.REJECTED = 0 and
(RE.CONFIRMED = 1 or @REALESTATECONFIRMEDONLY = 0) and
(RE.HISTORICCODE <> 1 or @REALESTATEINCLUDEHISTORICAL = 1)
)
select
@REALESTATEASSETS = coalesce(
sum(
case @REALESTATEVALUEMULTIPLIERTYPECODE
when 0 then @REALESTATEVALUEMULTIPLIER * REALESTATEROWVALUE_CTE.ROWVALUE
when 1 then
case
when REALESTATEROWVALUE_CTE.ROWVALUE < @REALESTATEVALUEMULTIPLIERCUTOFFVALUE then @REALESTATEVALUELESSTHANCUTOFFMULTIPLIER * REALESTATEROWVALUE_CTE.ROWVALUE
else @REALESTATEVALUEGREATERTHANCUTOFFMULTIPLIER * REALESTATEROWVALUE_CTE.ROWVALUE
end
end
),0)
from
REALESTATEROWVALUE_CTE;
end;
if @BUSINESSOWNERSHIPINCLUDE = 1 begin
with BUSINESSOWNERSHIPROWVALUE_CTE as (
select
case @BUSINESSOWNERSHIPVALUECODE
when 0 then
BO.OWNERSHIPVALUE
when 1 then
BO.VALUATION
else
0
end ROWVALUE
from
dbo.WPBUSINESSOWNERSHIP BO
where
BO.WEALTHID = @WEALTHID and
BO.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULABUSINESSOWNERSHIPSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
BO.REJECTED = 0 and
(BO.CONFIRMED = 1 or @BUSINESSOWNERSHIPCONFIRMEDONLY = 0)
)
select
@BUSINESSOWNERSHIPASSETS = coalesce(
sum(
case @BUSINESSOWNERSHIPVALUEMULTIPLIERTYPECODE
when 0 then @BUSINESSOWNERSHIPVALUEMULTIPLIER * BUSINESSOWNERSHIPROWVALUE_CTE.ROWVALUE
when 1 then
case
when BUSINESSOWNERSHIPROWVALUE_CTE.ROWVALUE < @BUSINESSOWNERSHIPVALUEMULTIPLIERCUTOFFVALUE then @BUSINESSOWNERSHIPVALUELESSTHANCUTOFFMULTIPLIER * BUSINESSOWNERSHIPROWVALUE_CTE.ROWVALUE
else @BUSINESSOWNERSHIPVALUEGREATERTHANCUTOFFMULTIPLIER * BUSINESSOWNERSHIPROWVALUE_CTE.ROWVALUE
end
end
),0)
from
BUSINESSOWNERSHIPROWVALUE_CTE;
end;
if @SECURITIESINCLUDE = 1 begin
with SECURITIESROWVALUE_CTE as (
select
case @SECURITIESVALUECODE
when 0 then
SEC.VALUEDIRECT
when 1 then
SEC.VALUEINDIRECT
when 2 then
SEC.VALUEDIRECT + SEC.VALUEINDIRECT
else
0
end ROWVALUE
from
dbo.WPSECURITIES SEC
where
SEC.WEALTHID = @WEALTHID and
SEC.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULASECURITIESSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
SEC.REJECTED = 0 and
(SEC.CONFIRMED = 1 or @SECURITIESCONFIRMEDONLY = 0)
)
select
@SECURITIESASSETS = coalesce(
sum(
case @SECURITIESVALUEMULTIPLIERTYPECODE
when 0 then @SECURITIESVALUEMULTIPLIER * SECURITIESROWVALUE_CTE.ROWVALUE
when 1 then
case
when SECURITIESROWVALUE_CTE.ROWVALUE < @SECURITIESVALUEMULTIPLIERCUTOFFVALUE then @SECURITIESVALUELESSTHANCUTOFFMULTIPLIER * SECURITIESROWVALUE_CTE.ROWVALUE
else @SECURITIESVALUEGREATERTHANCUTOFFMULTIPLIER * SECURITIESROWVALUE_CTE.ROWVALUE
end
end
),0)
from
SECURITIESROWVALUE_CTE;
end;
if @INCOMECOMPENSATIONINCLUDE = 1 begin
with INCOMECOMPENSATIONROWVALUE_CTE as (
select (
case @INCOMECOMPENSATIONINCLUDESALARY when 1 then IC.LATESTFISCALYEARSALARY else 0 end +
case @INCOMECOMPENSATIONINCLUDEBONUS when 1 then IC.LATESTFISCALYEARBONUS else 0 end +
case @INCOMECOMPENSATIONINCLUDESHORTTERMCOMP when 1 then IC.LATESTFISCALYEAROTHERSHORTTERMCOMPENSATION else 0 end +
case @INCOMECOMPENSATIONINCLUDELONGTERMCOMP when 1 then IC.LATESTFISCALYEAROTHERLONGTERMCOMPENSATION else 0 end +
case @INCOMECOMPENSATIONINCLUDEEXERCISEDOPTIONS when 1 then IC.VALUEOFOPTIONSEXERCISED else 0 end +
case @INCOMECOMPENSATIONINCLUDEUNEXERCISEDOPTIONS when 1 then IC.VALUEOFOPTIONSUNEXERCISED_EXERCISABLE else 0 end +
case @INCOMECOMPENSATIONINCLUDEUNEXERCISABLEOPTIONS when 1 then IC.VALUEOFOPTIONSUNEXERCISED_UNEXERCISABLE else 0 end
) ROWVALUE
from
dbo.WPINCOMECOMPENSATION IC
where
IC.WEALTHID = @WEALTHID and
IC.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAINCOMECOMPENSATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
IC.REJECTED = 0 and
(IC.CONFIRMED = 1 or @INCOMECOMPENSATIONCONFIRMEDONLY = 0) and
(IC.HISTORICCODE <> 1 or @INCOMECOMPENSATIONINCLUDEHISTORICAL = 1)
)
select
@INCOMECOMPENSATIONASSETS = coalesce(
sum(
case @INCOMECOMPENSATIONVALUEMULTIPLIERTYPECODE
when 0 then @INCOMECOMPENSATIONVALUEMULTIPLIER * INCOMECOMPENSATIONROWVALUE_CTE.ROWVALUE
when 1 then
case
when INCOMECOMPENSATIONROWVALUE_CTE.ROWVALUE < @INCOMECOMPENSATIONVALUEMULTIPLIERCUTOFFVALUE then @INCOMECOMPENSATIONVALUELESSTHANCUTOFFMULTIPLIER * INCOMECOMPENSATIONROWVALUE_CTE.ROWVALUE
else @INCOMECOMPENSATIONVALUEGREATERTHANCUTOFFMULTIPLIER * INCOMECOMPENSATIONROWVALUE_CTE.ROWVALUE
end
end
),0)
from
INCOMECOMPENSATIONROWVALUE_CTE;
end;
if @OTHERASSETINCLUDE = 1 begin
with OTHERASSETROWVALUE_CTE as (
select
case @OTHERASSETVALUECODE
when 0 then
OA.VALUE
else
0
end ROWVALUE
from
dbo.WPOTHERASSET OA
where
OA.WEALTHID = @WEALTHID and
OA.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAOTHERASSETSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
OA.REJECTED = 0 and
(OA.CONFIRMED = 1 or @OTHERASSETCONFIRMEDONLY = 0)
)
select
@OTHERASSETS = coalesce(
sum(
case @OTHERASSETVALUEMULTIPLIERTYPECODE
when 0 then @OTHERASSETVALUEMULTIPLIER * OTHERASSETROWVALUE_CTE.ROWVALUE
when 1 then
case
when OTHERASSETROWVALUE_CTE.ROWVALUE < @OTHERASSETVALUEMULTIPLIERCUTOFFVALUE then @OTHERASSETVALUELESSTHANCUTOFFMULTIPLIER * OTHERASSETROWVALUE_CTE.ROWVALUE
else @OTHERASSETVALUEGREATERTHANCUTOFFMULTIPLIER * OTHERASSETROWVALUE_CTE.ROWVALUE
end
end
),0)
from
OTHERASSETROWVALUE_CTE;
end;
if @NONPROFITAFFILIATIONINCLUDE = 1 begin
with NONPROFITAFFILIATIONMAXFORMYEAR_CTE as (
select
NA.DN_ORGANIZATION,
NA.CITY,
NA.STATE,
max(NA.FORMYEAR) MAXFORMYEAR
from
dbo.WPNONPROFITAFFILIATION NA
where
NA.WEALTHID = @WEALTHID and
NA.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULANONPROFITAFFILIATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
NA.REJECTED = 0 and
(NA.CONFIRMED = 1 or @NONPROFITAFFILIATIONCONFIRMEDONLY = 0) and
NA.FORMYEAR > 0
group by
NA.DN_ORGANIZATION,
NA.CITY,
NA.STATE
),
NONPROFITAFFILIATIONMAXFORMYEARDATEADDED_CTE as (
select
NPAMFY.DN_ORGANIZATION,
NPAMFY.CITY,
NPAMFY.STATE,
NPAMFY.MAXFORMYEAR,
max(NA.DATEADDED) MAXDATEADDED
from
NONPROFITAFFILIATIONMAXFORMYEAR_CTE NPAMFY
inner join
dbo.WPNONPROFITAFFILIATION NA
on
NA.DN_ORGANIZATION = NPAMFY.DN_ORGANIZATION and
NA.CITY = NPAMFY.CITY and
NA.STATE = NPAMFY.STATE and
NA.FORMYEAR = NPAMFY.MAXFORMYEAR
where
NA.WEALTHID = @WEALTHID and
NA.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULANONPROFITAFFILIATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
NA.REJECTED = 0 and
(NA.CONFIRMED = 1 or @NONPROFITAFFILIATIONCONFIRMEDONLY = 0) and
NA.FORMYEAR > 0
group by
NPAMFY.DN_ORGANIZATION,
NPAMFY.CITY,
NPAMFY.STATE,
NPAMFY.MAXFORMYEAR
),
NONPROFITAFFILIATIONROWVALUE_CTE as (
select
case @NONPROFITAFFILIATIONVALUECODE
when 0 then
NA.SALARY
else
0
end ROWVALUE
from
NONPROFITAFFILIATIONMAXFORMYEARDATEADDED_CTE NPAMFYDA
inner join
dbo.WPNONPROFITAFFILIATION NA
on
NA.DN_ORGANIZATION = NPAMFYDA.DN_ORGANIZATION and
NA.CITY = NPAMFYDA.CITY and
NA.STATE = NPAMFYDA.STATE and
NA.FORMYEAR = NPAMFYDA.MAXFORMYEAR and
NA.DATEADDED = NPAMFYDA.MAXDATEADDED
where
NA.WEALTHID = @WEALTHID and
NA.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULANONPROFITAFFILIATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
NA.REJECTED = 0 and
(NA.CONFIRMED = 1 or @NONPROFITAFFILIATIONCONFIRMEDONLY = 0) and
NA.FORMYEAR > 0
)
select
@NONPROFITAFFILIATIONASSETS = coalesce(
sum(
case @NONPROFITAFFILIATIONVALUEMULTIPLIERTYPECODE
when 0 then @NONPROFITAFFILIATIONVALUEMULTIPLIER * NONPROFITAFFILIATIONROWVALUE_CTE.ROWVALUE
when 1 then
case
when NONPROFITAFFILIATIONROWVALUE_CTE.ROWVALUE < @NONPROFITAFFILIATIONVALUEMULTIPLIERCUTOFFVALUE then @NONPROFITAFFILIATIONVALUELESSTHANCUTOFFMULTIPLIER * NONPROFITAFFILIATIONROWVALUE_CTE.ROWVALUE
else @NONPROFITAFFILIATIONVALUEGREATERTHANCUTOFFMULTIPLIER * NONPROFITAFFILIATIONROWVALUE_CTE.ROWVALUE
end
end
),0)
from
NONPROFITAFFILIATIONROWVALUE_CTE;
end;
if @PRIVATEFOUNDATIONINCLUDE = 1 begin
with PRIVATEFOUNDATIONMAXFORMYEAR_CTE as (
select
PF.COMPANY,
PF.CITY,
PF.STATE,
max(PF.FORMYEAR) MAXFORMYEAR
from
dbo.WPPRIVATEFOUNDATION PF
where
PF.WEALTHID = @WEALTHID and
PF.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAPRIVATEFOUNDATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
PF.REJECTED = 0 and
(PF.CONFIRMED = 1 or @PRIVATEFOUNDATIONCONFIRMEDONLY = 0) and
PF.FORMYEAR > 0
group by
PF.COMPANY,
PF.CITY,
PF.STATE
),
PRIVATEFOUNDATIONMAXFORMYEARDATEADDED_CTE as (
select
PFMFY.COMPANY,
PFMFY.CITY,
PFMFY.STATE,
PFMFY.MAXFORMYEAR,
max(PF.DATEADDED) MAXDATEADDED
from
PRIVATEFOUNDATIONMAXFORMYEAR_CTE PFMFY
inner join
dbo.WPPRIVATEFOUNDATION PF
on
PF.COMPANY = PFMFY.COMPANY and
PF.CITY = PFMFY.CITY and
PF.STATE = PFMFY.STATE and
PF.FORMYEAR = PFMFY.MAXFORMYEAR
where
PF.WEALTHID = @WEALTHID and
PF.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAPRIVATEFOUNDATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
PF.REJECTED = 0 and
(PF.CONFIRMED = 1 or @PRIVATEFOUNDATIONCONFIRMEDONLY = 0) and
PF.FORMYEAR > 0
group by
PFMFY.COMPANY,
PFMFY.CITY,
PFMFY.STATE,
PFMFY.MAXFORMYEAR
),
PRIVATEFOUNDATIONROWVALUE_CTE as (
select
case @PRIVATEFOUNDATIONVALUECODE
when 0 then
PF.COMP
else
0
end ROWVALUE
from
PRIVATEFOUNDATIONMAXFORMYEARDATEADDED_CTE PFMFYDA
inner join
dbo.WPPRIVATEFOUNDATION PF
on
PF.COMPANY = PFMFYDA.COMPANY and
PF.CITY = PFMFYDA.CITY and
PF.STATE = PFMFYDA.STATE and
PF.FORMYEAR = PFMFYDA.MAXFORMYEAR and
PF.DATEADDED = PFMFYDA.MAXDATEADDED
where
PF.WEALTHID = @WEALTHID and
PF.SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAPRIVATEFOUNDATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
PF.REJECTED = 0 and
(PF.CONFIRMED = 1 or @PRIVATEFOUNDATIONCONFIRMEDONLY = 0) and
PF.FORMYEAR > 0
)
select
@PRIVATEFOUNDATIONASSETS = coalesce(
sum(
case @PRIVATEFOUNDATIONVALUEMULTIPLIERTYPECODE
when 0 then @PRIVATEFOUNDATIONVALUEMULTIPLIER * PRIVATEFOUNDATIONROWVALUE_CTE.ROWVALUE
when 1 then
case
when PRIVATEFOUNDATIONROWVALUE_CTE.ROWVALUE < @PRIVATEFOUNDATIONVALUEMULTIPLIERCUTOFFVALUE then @PRIVATEFOUNDATIONVALUELESSTHANCUTOFFMULTIPLIER * PRIVATEFOUNDATIONROWVALUE_CTE.ROWVALUE
else @PRIVATEFOUNDATIONVALUEGREATERTHANCUTOFFMULTIPLIER * PRIVATEFOUNDATIONROWVALUE_CTE.ROWVALUE
end
end
),0)
from
PRIVATEFOUNDATIONROWVALUE_CTE;
end;
with CTE_ASSETS as (
select
@REALESTATEASSETS TOTALASSETVALUE
where
@REALESTATEINCLUDE = 1
union all
select
@BUSINESSOWNERSHIPASSETS
where
@BUSINESSOWNERSHIPINCLUDE = 1
union all
select
@SECURITIESASSETS
where
@SECURITIESINCLUDE = 1
union all
select
@INCOMECOMPENSATIONASSETS
where
@INCOMECOMPENSATIONINCLUDE = 1
union all
select
@OTHERASSETS
where
@OTHERASSETINCLUDE = 1
union all
select
@NONPROFITAFFILIATIONASSETS
where
@NONPROFITAFFILIATIONINCLUDE = 1
union all
select
@PRIVATEFOUNDATIONASSETS
where
@PRIVATEFOUNDATIONINCLUDE = 1
)
select
@TOTALASSETS = floor(coalesce(sum(CTE_ASSETS.TOTALASSETVALUE),0))
from
CTE_ASSETS;
if @PHILANTHROPICGIFTINCLUDE = 1 begin
with PHILANTHROPICGIFT_CTE as (
select
ID, LO, HI, GIFTYEAR
from
dbo.WPPHILANTHROPICGIFT PG
where
WEALTHID = @WEALTHID and
SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAPHILANTHROPICGIFTSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
REJECTED = 0 and
(CONFIRMED = 1 or @PHILANTHROPICGIFTCONFIRMEDONLY = 0)
),
PHILANTHROPICGIFTROWVALUE_CTE as (
select
case @PHILANTHROPICGIFTVALUECODE
when 0 then
max(PG.LO)
when 1 then
max(PG.HI)
when 2 then
sum(isnull(PGPASTTHREEYEARS.LO, 0))
when 3 then
sum(isnull(PGPASTTHREEYEARS.HI, 0))
when 4 then
sum(isnull(PGPASTFIVEYEARS.LO, 0))
when 5 then
sum(isnull(PGPASTFIVEYEARS.HI, 0))
else
0
end ROWVALUE
from
PHILANTHROPICGIFT_CTE PG
left join
PHILANTHROPICGIFT_CTE PGPASTTHREEYEARS on PGPASTTHREEYEARS.ID = PG.ID and PGPASTTHREEYEARS.GIFTYEAR >= (@CURRENTYEAR - 2) and PGPASTTHREEYEARS.GIFTYEAR <= @CURRENTYEAR
left join
PHILANTHROPICGIFT_CTE PGPASTFIVEYEARS on PGPASTFIVEYEARS.ID = PG.ID and PGPASTFIVEYEARS.GIFTYEAR >= (@CURRENTYEAR - 4) and PGPASTFIVEYEARS.GIFTYEAR <= @CURRENTYEAR
)
select
@PHILANTHROPICGIFTS = coalesce(
sum(
case @PHILANTHROPICGIFTVALUEMULTIPLIERTYPECODE
when 0 then @PHILANTHROPICGIFTVALUEMULTIPLIER * PHILANTHROPICGIFTROWVALUE_CTE.ROWVALUE
when 1 then
case
when PHILANTHROPICGIFTROWVALUE_CTE.ROWVALUE < @PHILANTHROPICGIFTVALUEMULTIPLIERCUTOFFVALUE then @PHILANTHROPICGIFTVALUELESSTHANCUTOFFMULTIPLIER * PHILANTHROPICGIFTROWVALUE_CTE.ROWVALUE
else @PHILANTHROPICGIFTVALUEGREATERTHANCUTOFFMULTIPLIER * PHILANTHROPICGIFTROWVALUE_CTE.ROWVALUE
end
end
),0)
from
PHILANTHROPICGIFTROWVALUE_CTE;
end;
if @POLITICALDONATIONINCLUDE = 1 begin
with POLITICALDONATION_CTE as (
select
ID, AMOUNT, TRANSACTIONDATE
from
dbo.WPPOLITICALDONATION PD
where
WEALTHID = @WEALTHID and
SOURCE in (select SOURCE from dbo.WEALTHCAPACITYFORMULAPOLITICALDONATIONSOURCE where WEALTHCAPACITYFORMULAID = @WEALTHCAPACITYFORMULAID) and
REJECTED = 0 and
(CONFIRMED = 1 or @POLITICALDONATIONCONFIRMEDONLY = 0)
),
POLITICALDONATIONROWVALUE_CTE as (
select
case @POLITICALDONATIONVALUECODE
when 0 then
max(PD.AMOUNT)
when 1 then
sum(isnull(PDLASTFOURYEARS.AMOUNT, 0))
when 2 then
sum(isnull(PDLASTEIGHTYEARS.AMOUNT, 0))
else
0
end ROWVALUE
from
POLITICALDONATION_CTE PD
left join
POLITICALDONATION_CTE PDLASTFOURYEARS on PDLASTFOURYEARS.ID = PD.ID and PDLASTFOURYEARS.TRANSACTIONDATE >= dbo.UFN_DATE_GETEARLIESTTIME(dateadd(yy, -4, @CURRENTDATE)) and PDLASTFOURYEARS.TRANSACTIONDATE < dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE)
left join
POLITICALDONATION_CTE PDLASTEIGHTYEARS on PDLASTEIGHTYEARS.ID = PD.ID and PDLASTEIGHTYEARS.TRANSACTIONDATE >= dbo.UFN_DATE_GETEARLIESTTIME(dateadd(yy, -8, @CURRENTDATE)) and PDLASTEIGHTYEARS.TRANSACTIONDATE < dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE)
)
select
@POLITICALDONATIONS = coalesce(
sum(
case @POLITICALDONATIONVALUEMULTIPLIERTYPECODE
when 0 then @POLITICALDONATIONVALUEMULTIPLIER * POLITICALDONATIONROWVALUE_CTE.ROWVALUE
when 1 then
case
when POLITICALDONATIONROWVALUE_CTE.ROWVALUE < @POLITICALDONATIONVALUEMULTIPLIERCUTOFFVALUE then @POLITICALDONATIONVALUELESSTHANCUTOFFMULTIPLIER * POLITICALDONATIONROWVALUE_CTE.ROWVALUE
else @POLITICALDONATIONVALUEGREATERTHANCUTOFFMULTIPLIER * POLITICALDONATIONROWVALUE_CTE.ROWVALUE
end
end
),0)
from
POLITICALDONATIONROWVALUE_CTE;
end;
if @GIVINGTOMYORGINCLUDE = 1 begin
with GIVINGTOMYORGROWVALUE_CTE as (
select
case @GIVINGTOMYORGVALUECODE
when 0 then
TOTALGIFTAMOUNT/TOTALGIFTSGIVEN
when 1 then
LARGESTGIFTAMOUNT
when 2 then
LATESTGIFTAMOUNT
when 3 then
TOTALGIFTAMOUNT
else
0
end ROWVALUE
from
dbo.RE7INTEGRATIONGIVINGSUMMARY
where
ID = @WEALTHID
)
select
@GIVINGTOMYORG = coalesce(
sum(
case @GIVINGTOMYORGVALUEMULTIPLIERTYPECODE
when 0 then @GIVINGTOMYORGVALUEMULTIPLIER * GIVINGTOMYORGROWVALUE_CTE.ROWVALUE
when 1 then
case
when GIVINGTOMYORGROWVALUE_CTE.ROWVALUE < @GIVINGTOMYORGVALUEMULTIPLIERCUTOFFVALUE then @GIVINGTOMYORGVALUELESSTHANCUTOFFMULTIPLIER * GIVINGTOMYORGROWVALUE_CTE.ROWVALUE
else @GIVINGTOMYORGVALUEGREATERTHANCUTOFFMULTIPLIER * GIVINGTOMYORGROWVALUE_CTE.ROWVALUE
end
end
),0)
from
GIVINGTOMYORGROWVALUE_CTE;
end;
with CTE_MAJORGIFTS as (
select
@TOTALASSETS TOTALGIVINGVALUE
where
@TOTALASSETS <> 0
union all
select
@PHILANTHROPICGIFTS
where
@PHILANTHROPICGIFTINCLUDE = 1 and
@PHILANTHROPICGIFTS <> 0
union all
select
@POLITICALDONATIONS
where
@POLITICALDONATIONINCLUDE = 1 and
@POLITICALDONATIONS <> 0
union all
select
@GIVINGTOMYORG
where
@GIVINGTOMYORGINCLUDE = 1 and
@GIVINGTOMYORG <> 0
)
select
@ESTIMATEDWEALTHVALUE = floor(coalesce(case @ASSETCALCULATIONMETHODCODE
when 4 then avg(CTE_MAJORGIFTS.TOTALGIVINGVALUE)
when 5 then max(CTE_MAJORGIFTS.TOTALGIVINGVALUE)
else 0
end,0))
from
CTE_MAJORGIFTS;
if (@ASSETCALCULATIONMETHODCODE = 5)
begin
if (@ESTIMATEDWEALTHVALUE = 0)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = 'None'
end
else
begin
if (@ESTIMATEDWEALTHVALUE = @TOTALASSETS)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = 'Assets'
end
if (@ESTIMATEDWEALTHVALUE = @PHILANTHROPICGIFTS)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = @MAJORGIVINGCAPACITYBASISVALUE + (case when @MAJORGIVINGCAPACITYBASISVALUE <> '' then (case when (@ESTIMATEDWEALTHVALUE <> @POLITICALDONATIONS and @ESTIMATEDWEALTHVALUE <> @GIVINGTOMYORG) then ' and ' else ', ' end) else '' end) + 'Philanthropic gifts'
end
if (@ESTIMATEDWEALTHVALUE = @POLITICALDONATIONS)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = @MAJORGIVINGCAPACITYBASISVALUE + (case when @MAJORGIVINGCAPACITYBASISVALUE <> '' then (case when @ESTIMATEDWEALTHVALUE <> @GIVINGTOMYORG then ' and ' else ', ' end) else '' end) + 'Political donations'
end
if (@ESTIMATEDWEALTHVALUE = @GIVINGTOMYORG)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = @MAJORGIVINGCAPACITYBASISVALUE + (case when @MAJORGIVINGCAPACITYBASISVALUE <> '' then ' and ' else '' end) + 'Giving to my organization'
end
end
end
else if (@ASSETCALCULATIONMETHODCODE = 4)
begin
if ((@REALESTATEINCLUDE = 1 or @BUSINESSOWNERSHIPINCLUDE = 1 or @SECURITIESINCLUDE = 1 or @INCOMECOMPENSATIONINCLUDE = 1
or @OTHERASSETINCLUDE = 1 or @NONPROFITAFFILIATIONINCLUDE = 1 or @PRIVATEFOUNDATIONINCLUDE = 1))
begin
set @MAJORGIVINGCAPACITYBASISVALUE = 'Assets'
end
if (@PHILANTHROPICGIFTINCLUDE = 1)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = @MAJORGIVINGCAPACITYBASISVALUE + (case when @MAJORGIVINGCAPACITYBASISVALUE <> '' then (case when (@POLITICALDONATIONINCLUDE = 0 and @GIVINGTOMYORGINCLUDE = 0) then ' and ' else ', ' end) else '' end) + 'Philanthropic gifts'
end
if (@POLITICALDONATIONINCLUDE = 1)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = @MAJORGIVINGCAPACITYBASISVALUE + (case when @MAJORGIVINGCAPACITYBASISVALUE <> '' then (case when @GIVINGTOMYORGINCLUDE = 0 then ' and ' else ', ' end) else '' end) + 'Political donations'
end
if (@GIVINGTOMYORGINCLUDE = 1)
begin
set @MAJORGIVINGCAPACITYBASISVALUE = @MAJORGIVINGCAPACITYBASISVALUE + (case when @MAJORGIVINGCAPACITYBASISVALUE <> '' then ' and ' else '' end) + 'Giving to my organization'
end
set @MAJORGIVINGCAPACITYBASISVALUE = 'Average of ' + @MAJORGIVINGCAPACITYBASISVALUE
end
else
begin
set @MAJORGIVINGCAPACITYBASISVALUE = 'None'
end
select
@MAJORGIVINGCAPACITYVALUE = floor(case @MAJORGIVINGMULTIPLIERTYPECODE
when 0 then @MAJORGIVINGSETVALUEMULTIPLIER * @ESTIMATEDWEALTHVALUE
when 1 then
case
when C.AGE >= 70 then @MAJORGIVINGOVER70MULTIPLIER * @ESTIMATEDWEALTHVALUE
when C.AGE >= 60 then @MAJORGIVING60TO69MULTIPLIER * @ESTIMATEDWEALTHVALUE
when C.AGE >= 50 then @MAJORGIVING50TO59MULTIPLIER * @ESTIMATEDWEALTHVALUE
when C.AGE >= 40 then @MAJORGIVING40TO49MULTIPLIER * @ESTIMATEDWEALTHVALUE
when C.BIRTHDATE = '00000000' then @MAJORGIVINGAGEUNKNOWNMULTIPLIER * @ESTIMATEDWEALTHVALUE
else @MAJORGIVINGUNDER40MULTIPLIER * @ESTIMATEDWEALTHVALUE
end
else 0
end)
from
dbo.CONSTITUENT C
where
C.ID = @WEALTHID;
end
else begin
-- Use old calculation method
-- Get the total assets that have been confirmed.
select
@REALESTATEASSETS = REALESTATEASSETSCONFIRMED,
@BUSINESSOWNERSHIPASSETS = BUSINESSOWNERSHIPASSETSCONFIRMED,
@SECURITIESASSETS = SECURITIESASSETSCONFIRMED,
@INCOMECOMPENSATIONASSETS = INCOMECOMPENSATIONASSETSCONFIRMED,
@OTHERASSETS = OTHERASSETSCONFIRMED
from
dbo.WEALTH
where
WEALTH.ID = @WEALTHID;
-- Calculate the estimated wealth.
set @ESTIMATEDWEALTHVALUE = floor(
coalesce(@REALESTATEASSETS, 0) +
coalesce(@SECURITIESASSETS, 0) +
coalesce(@BUSINESSOWNERSHIPASSETS, 0) +
coalesce(@INCOMECOMPENSATIONASSETS, 0) +
coalesce(@OTHERASSETS, 0));
-- Calculate the major giving capacity.
set @MAJORGIVINGCAPACITYVALUE = floor(@ESTIMATEDWEALTHVALUE * 0.05);
end
end
return 0;