USP_DATAFORMTEMPLATE_PLANNEDGIFT_EDITLOAD_4
The load procedure used by the edit dataform template "Planned Gift Edit Form 4"
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. |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@PROSPECTPLANID | uniqueidentifier | INOUT | Prospect plan |
@VEHICLECODE | tinyint | INOUT | Planned gift vehicle |
@SUBTYPECODE | tinyint | INOUT | Subtype |
@EXPECTEDGIFTAMOUNT | money | INOUT | Gift amount |
@ISREVOCABLE | bit | INOUT | Revocable |
@ISANONYMOUS | bit | INOUT | Anonymous gift |
@EXPECTEDMATURITY | UDT_YEAR | INOUT | Expected maturity year |
@DISCOUNTRATE | decimal(6, 1) | INOUT | Discount rate |
@NETPRESENTVALUE | money | INOUT | Net present value |
@NETPRESENTVALUEDATE | datetime | INOUT | As of |
@REMAINDERVALUE | money | INOUT | Remainder value |
@REMAINDERVALUEDATE | datetime | INOUT | As of |
@RECOGNITIONAMOUNT | money | INOUT | Recognition amount |
@GIFTDATE | datetime | INOUT | Date |
@PAYOUTRATE | decimal(6, 3) | INOUT | Payout percentage |
@PAYOUTAMOUNT | money | INOUT | Payout amount |
@PAYMENTPERIODSTART | datetime | INOUT | Payments start |
@PAYMENTPERIODEND | datetime | INOUT | Payments end |
@PAYMENTFREQUENCYCODE | tinyint | INOUT | Payment frequency |
@TERMTYPECODE | tinyint | INOUT | Term type |
@TERMENDDATE | datetime | INOUT | Term end date |
@YEARSINTERM | tinyint | INOUT | Years in term |
@TRUSTTAXIDNUMBER | nvarchar(100) | INOUT | Tax ID number |
@POOLEDINCOMEFUNDCODEID | uniqueidentifier | INOUT | Name |
@POOLEDINCOMEFUNDUNITS | int | INOUT | PIF units |
@POOLEDINCOMEFUNDTOTALUNITS | int | INOUT | Total PIF units |
@LIFEINSURANCEPREMIUM | money | INOUT | Amount |
@LIFEINSURANCEPREMIUMFREQUENCYCODE | tinyint | INOUT | Frequency |
@LIFEINSURANCEPREMIUMDUEDATE | datetime | INOUT | Due date |
@SSN | nvarchar(36) | INOUT | SSN |
@ISORGANIZATION | bit | INOUT | |
@CONSTITUENTID | uniqueidentifier | INOUT | |
@STATUSCODE | tinyint | INOUT | Status |
@CONSTITUENTLOOKUPID | nvarchar(36) | INOUT | |
@CONSTITUENTFIRSTNAME | nvarchar(50) | INOUT | |
@CONSTITUENTKEYNAME | nvarchar(100) | INOUT | |
@DESIGNATION | xml | INOUT | Planned Gift Details |
@ASSETS | xml | INOUT | Assets |
@BENEFICIARIES | xml | INOUT | Beneficiaries |
@RELATIONSHIPS | xml | INOUT | Relationships |
@PROBATEDATE | datetime | INOUT | As of |
@DISCOUNTDATE | datetime | INOUT | As of |
@REMAINDERMANPERCENT | decimal(7, 4) | INOUT | Remainderman % |
@PROBATESTATUSCODE | tinyint | INOUT | Probate status |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SITES | xml | INOUT | Sites |
@SITEREQUIRED | bit | INOUT | Site required |
@ISTESTAMENTARY | bit | INOUT | Testamentary |
@OTHERSUBTYPECODEID | uniqueidentifier | INOUT | Subtype |
@ISLIVINGTRUST | bit | INOUT | Living trust |
@GIFTVALUEISNOMINAL | bit | INOUT | Gift value is nominal |
@ISCONTINGENT | bit | INOUT | Gift is contingent |
@ORGISPOLICY | bit | INOUT | Organization is policy |
@ORGISBENEFICIARY | bit | INOUT | Organization is beneficiary |
@TRUSTHELDOUTSIDE | bit | INOUT | Trust held outside |
@TOTALPAYOUT | money | INOUT | Total payout |
@REALIZEDVALUE | money | INOUT | Realized amount |
@AUTOCALCULATEREALIZEDAMOUNT | bit | INOUT | Auto calculate realized amount |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency |
@BASEEXCHANGERATEID | uniqueidentifier | INOUT | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | INOUT | Exchange rate |
@HADSPOTRATE | bit | INOUT | Had spot rate |
@RATECHANGED | bit | INOUT | Rate changed |
@ADDEDASREVENUE | bit | INOUT | Added as revenue |
@TRIGGERDATE | datetime | INOUT | Trigger date |
@ISFLIP | bit | INOUT | FLIP situation |
@TRIGGEREVENTCODEID | uniqueidentifier | INOUT | Trigger event |
@EXCL_RATIO | decimal(6, 3) | INOUT | Exclusion ratio |
@EXCL_EXPDATE | datetime | INOUT | Expiration date |
@DONOTRECEIPT | bit | INOUT | Do not receipt |
@LIFEINSURANCEPOLICYNUMBER | nvarchar(50) | INOUT | Policy number |
@LIFEINSURANCEDATEISSUED | datetime | INOUT | Issue date |
@LIFEINSURANCEFACEVALUE | money | INOUT | Face value |
@LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION | bit | INOUT | Policy includes dividend participation |
@LIFEINSURANCEISLOANALLOWED | bit | INOUT | Loan is allowed |
@LIFEINSURANCEOUTSTANDINGLOANAMOUNT | money | INOUT | Outstanding loan amount |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_PLANNEDGIFT_EDITLOAD_4 (
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@PROSPECTPLANID uniqueidentifier = null output,
@VEHICLECODE tinyint = null output,
@SUBTYPECODE tinyint = null output,
@EXPECTEDGIFTAMOUNT money = null output,
@ISREVOCABLE bit = null output,
@ISANONYMOUS bit = null output,
@EXPECTEDMATURITY dbo.UDT_YEAR = null output,
@DISCOUNTRATE decimal(6,1) = null output,
@NETPRESENTVALUE money = null output,
@NETPRESENTVALUEDATE datetime = null output,
@REMAINDERVALUE money = null output,
@REMAINDERVALUEDATE datetime = null output,
@RECOGNITIONAMOUNT money = null output,
@GIFTDATE datetime = null output,
@PAYOUTRATE decimal(6,3) = null output,
@PAYOUTAMOUNT money = null output,
@PAYMENTPERIODSTART datetime = null output,
@PAYMENTPERIODEND datetime = null output,
@PAYMENTFREQUENCYCODE tinyint = null output,
@TERMTYPECODE tinyint = null output,
@TERMENDDATE datetime = null output,
@YEARSINTERM tinyint = null output,
@TRUSTTAXIDNUMBER nvarchar(100) = null output,
@POOLEDINCOMEFUNDCODEID uniqueidentifier = null output,
@POOLEDINCOMEFUNDUNITS int = null output,
@POOLEDINCOMEFUNDTOTALUNITS int = null output,
@LIFEINSURANCEPREMIUM money = null output,
@LIFEINSURANCEPREMIUMFREQUENCYCODE tinyint = null output,
@LIFEINSURANCEPREMIUMDUEDATE datetime = null output,
@SSN nvarchar(36) = null output,
@ISORGANIZATION bit = null output,
@CONSTITUENTID uniqueidentifier = null output,
@STATUSCODE tinyint = null output,
@CONSTITUENTLOOKUPID nvarchar(36) = null output,
@CONSTITUENTFIRSTNAME nvarchar(50) = null output,
@CONSTITUENTKEYNAME nvarchar(100) = null output,
@DESIGNATION xml = null output,
@ASSETS xml = null output,
@BENEFICIARIES xml = null output,
@RELATIONSHIPS xml = null output,
@PROBATEDATE datetime = null output,
@DISCOUNTDATE datetime = null output,
@REMAINDERMANPERCENT decimal(7,4) = null output,
@PROBATESTATUSCODE tinyint = null output,
@CURRENTAPPUSERID uniqueidentifier,
@SITES xml = null output,
@SITEREQUIRED bit = null output,
@ISTESTAMENTARY bit = null output,
@OTHERSUBTYPECODEID uniqueidentifier = null output,
@ISLIVINGTRUST bit = null output,
@GIFTVALUEISNOMINAL bit = null output,
@ISCONTINGENT bit = null output,
@ORGISPOLICY bit = null output,
@ORGISBENEFICIARY bit = null output,
@TRUSTHELDOUTSIDE bit = null output,
@TOTALPAYOUT money = null output,
@REALIZEDVALUE money = null output,
@AUTOCALCULATEREALIZEDAMOUNT bit = null output,
@BASECURRENCYID uniqueidentifier = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@BASEEXCHANGERATEID uniqueidentifier = null output,
@EXCHANGERATE decimal(20,8) = null output,
@HADSPOTRATE bit = null output,
@RATECHANGED bit = null output,
@ADDEDASREVENUE bit = null output,
@TRIGGERDATE datetime = null output,
@ISFLIP bit = null output,
@TRIGGEREVENTCODEID uniqueidentifier = null output,
@EXCL_RATIO decimal(6,3) = null output,
@EXCL_EXPDATE datetime = null output,
@DONOTRECEIPT bit = null output,
@LIFEINSURANCEPOLICYNUMBER nvarchar(50) = null output,
@LIFEINSURANCEDATEISSUED datetime = null output,
@LIFEINSURANCEFACEVALUE money = null output,
@LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION bit = null output,
@LIFEINSURANCEISLOANALLOWED bit = null output,
@LIFEINSURANCEOUTSTANDINGLOANAMOUNT money = null output
) as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
select
@DATALOADED = 1,
@TSLONG = PG.TSLONG,
@PROSPECTPLANID = PG.PROSPECTPLANID,
@VEHICLECODE = PG.VEHICLECODE,
@SUBTYPECODE = PG.SUBTYPECODE,
@EXPECTEDGIFTAMOUNT = PG.TRANSACTIONEXPECTEDGIFTAMOUNT,
@ISREVOCABLE = PG.ISREVOCABLE,
@ISANONYMOUS = PG.ISANONYMOUS,
@EXPECTEDMATURITY = PG.EXPECTEDMATURITY,
@DISCOUNTRATE = PG.DISCOUNTRATE*100,
@NETPRESENTVALUE = PG.TRANSACTIONNETPRESENTVALUE,
@NETPRESENTVALUEDATE = PG.NETPRESENTVALUEDATE,
@REMAINDERVALUE = PG.TRANSACTIONREMAINDERVALUE,
@REMAINDERVALUEDATE = PG.REMAINDERVALUEDATE,
@RECOGNITIONAMOUNT = PG.TRANSACTIONRECOGNITIONAMOUNT,
@GIFTDATE = PG.GIFTDATE,
@PAYOUTRATE = PG.PAYOUTRATE*100,
@PAYOUTAMOUNT = PG.TRANSACTIONPAYOUTAMOUNT,
@PAYMENTPERIODSTART = PG.PAYMENTPERIODSTART,
@PAYMENTPERIODEND = PG.PAYMENTPERIODEND,
@PAYMENTFREQUENCYCODE = PG.PAYMENTFREQUENCYCODE,
@TERMTYPECODE = PG.TERMTYPECODE,
@TERMENDDATE = PG.TERMENDDATE,
@YEARSINTERM = PG.YEARSINTERM,
@TRUSTTAXIDNUMBER = PG.TRUSTTAXIDNUMBER,
@POOLEDINCOMEFUNDCODEID = PG.POOLEDINCOMEFUNDCODEID,
@POOLEDINCOMEFUNDUNITS = PG.POOLEDINCOMEFUNDUNITS,
@POOLEDINCOMEFUNDTOTALUNITS = PG.POOLEDINCOMEFUNDTOTALUNITS,
@LIFEINSURANCEPREMIUM = PG.TRANSACTIONLIFEINSURANCEPREMIUM,
@LIFEINSURANCEPREMIUMFREQUENCYCODE = PG.LIFEINSURANCEPREMIUMFREQUENCYCODE,
@LIFEINSURANCEPREMIUMDUEDATE = PG.LIFEINSURANCEPREMIUMDUEDATE,
@SSN = N'', /* C.SSN, */
@ISORGANIZATION = case when O.ID is null then 0 else 1 end,
@CONSTITUENTID = C.ID,
@STATUSCODE = PG.STATUSCODE,
@CONSTITUENTLOOKUPID = C.LOOKUPID,
@CONSTITUENTFIRSTNAME = C.FIRSTNAME,
@CONSTITUENTKEYNAME = C.KEYNAME,
@BENEFICIARIES = dbo.UFN_PLANNEDGIFT_BENEFICIARIES_TOITEMLISTXML(@ID),
@RELATIONSHIPS = dbo.UFN_PLANNEDGIFT_RELATIONSHIPS_TOITEMLISTXML(@ID),
@PROBATEDATE = PG.PROBATEDATE,
@DISCOUNTDATE = PG.DISCOUNTDATE,
@REMAINDERMANPERCENT = PG.REMAINDERMANPERCENT*100.0,
@PROBATESTATUSCODE = PG.PROBATESTATUSCODE,
@SITES = dbo.UFN_PLANNEDGIFT_GETSITES_TOITEMLISTXML(PG.ID),
@SITEREQUIRED = dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID),
@ISTESTAMENTARY = PG.ISTESTAMENTARY,
@OTHERSUBTYPECODEID = PG.OTHERSUBTYPECODEID,
@ISLIVINGTRUST = PG.ISLIVINGTRUST,
@GIFTVALUEISNOMINAL = PG.GIFTVALUEISNOMINAL,
@ISCONTINGENT = PG.ISCONTINGENT,
@ORGISPOLICY = PG.ORGISPOLICY,
@ORGISBENEFICIARY = PG.ORGISBENEFICIARY,
@TRUSTHELDOUTSIDE = PG.TRUSTHELDOUTSIDE,
@TOTALPAYOUT = PG.TRANSACTIONTOTALPAYOUT,
@REALIZEDVALUE = PG.TRANSACTIONREALIZEDVALUE,
@AUTOCALCULATEREALIZEDAMOUNT = dbo.UFN_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT(@ID),
@BASECURRENCYID = PG.BASECURRENCYID,
@TRANSACTIONCURRENCYID = PG.TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID = PG.BASEEXCHANGERATEID,
@EXCHANGERATE = CURRENCYEXCHANGERATE.RATE,
@HADSPOTRATE =
case
when CURRENCYEXCHANGERATE.TYPECODE = 2
then 1
else 0
end,
@RATECHANGED = 0,
@TRIGGERDATE = TRIGGERDATE,
@ISFLIP = ISFLIP,
@TRIGGEREVENTCODEID = TRIGGEREVENTCODEID,
@EXCL_RATIO = EXCL_RATIO,
@EXCL_EXPDATE = EXCL_EXPDATE,
@DONOTRECEIPT = DONOTRECEIPT,
@LIFEINSURANCEPOLICYNUMBER = PG.LIFEINSURANCEPOLICYNUMBER,
@LIFEINSURANCEDATEISSUED = PG.LIFEINSURANCEDATEISSUED,
@LIFEINSURANCEFACEVALUE = PG.TRANSACTIONLIFEINSURANCEFACEVALUE,
@LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION = PG.LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION,
@LIFEINSURANCEISLOANALLOWED = PG.LIFEINSURANCEISLOANALLOWED,
@LIFEINSURANCEOUTSTANDINGLOANAMOUNT = PG.TRANSACTIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT
from
dbo.PLANNEDGIFT PG
inner join dbo.CONSTITUENT C on C.ID=PG.CONSTITUENTID
left outer join dbo.ORGANIZATIONDATA O on O.ID=C.ID
left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = PG.BASEEXCHANGERATEID
where
PG.ID = @ID;
-- Check whether this planned gift is associated with revenue. If it is,
-- don't allow the currencies to be changed.
set @ADDEDASREVENUE = 0;
select @ADDEDASREVENUE = 1 from dbo.PLANNEDGIFTREVENUE where ID = @ID;
select @ADDEDASREVENUE = 1 from dbo.PLANNEDGIFTREVENUESPLIT where PLANNEDGIFTID = @ID;
set @DESIGNATION = (
select
DESIGNATION.ID,
DESIGNATION.DESIGNATIONID,
DESIGNATION.TRANSACTIONAMOUNT as AMOUNT,
DESIGNATION.CATEGORYCODEID,
DESIGNATION.TYPECODEID,
DESIGNATION.USECODEID,
DESIGNATION.DATE,
DESIGNATION.SEQUENCE,
DESIGNATION.TRANSACTIONCURRENCYID
from dbo.UFN_PLANNEDGIFT_DESIGNATION_2(@ID) DESIGNATION
order by DESIGNATION.SEQUENCE
for xml raw('ITEM'),type,elements,root('DESIGNATION'),BINARY BASE64
);
set @ASSETS = (
select
ASSETS.ID,
ASSETS.ASSETTYPECODEID,
ASSETS.DESCRIPTION,
ASSETS.TRANSACTIONVALUE as VALUE,
ASSETS.TRANSACTIONCOSTBASIS as COSTBASIS,
ASSETS.ASSETVALUATIONMETHODCODEID,
ASSETS.VALUATIONSOURCE,
(
select
ID, PLANNEDGIFTASSETID, HOLDERCONSTITUENTID
from
dbo.PLANNEDGIFTASSETHOLDER
where
PLANNEDGIFTASSETHOLDER.PLANNEDGIFTASSETID = ASSETS.ID
for xml raw('ITEM'), type, elements, binary base64
) ASSETHOLDERS,
ASSETS.ADDRESSID,
ASSETS.SEQUENCE,
ASSETS.TRANSACTIONCURRENCYID
from dbo.UFN_PLANNEDGIFT_ASSETS_2(@ID) ASSETS
order by ASSETS.SEQUENCE
for xml raw('ITEM'),type,elements,root('ASSETS'),BINARY BASE64
);
return 0;