USP_DATAFORMTEMPLATE_PLANNEDGIFT_EDITSAVE_9
The save 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 indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@VEHICLECODE | tinyint | IN | Planned gift vehicle |
@SUBTYPECODE | tinyint | IN | Subtype |
@EXPECTEDGIFTAMOUNT | money | IN | Gift amount |
@ISREVOCABLE | bit | IN | Revocable |
@ISANONYMOUS | bit | IN | Anonymous gift |
@EXPECTEDMATURITY | UDT_YEAR | IN | Expected maturity year |
@DISCOUNTRATE | decimal(6, 1) | IN | Discount rate |
@NETPRESENTVALUE | money | IN | Net present value |
@NETPRESENTVALUEDATE | datetime | IN | As of |
@REMAINDERVALUE | money | IN | Remainder value |
@REMAINDERVALUEDATE | datetime | IN | As of |
@RECOGNITIONAMOUNT | money | IN | Recognition amount |
@GIFTDATE | datetime | IN | Date |
@PAYOUTRATE | decimal(6, 3) | IN | Payout percentage |
@PAYOUTAMOUNT | money | IN | Payout amount |
@PAYMENTPERIODSTART | datetime | IN | Payments start |
@PAYMENTPERIODEND | datetime | IN | Payments end |
@PAYMENTFREQUENCYCODE | tinyint | IN | Payment frequency |
@TERMTYPECODE | tinyint | IN | Term type |
@TERMENDDATE | datetime | IN | Term end date |
@YEARSINTERM | tinyint | IN | Years in term |
@TRUSTTAXIDNUMBER | nvarchar(100) | IN | Tax ID number |
@POOLEDINCOMEFUNDCODEID | uniqueidentifier | IN | Name |
@POOLEDINCOMEFUNDUNITS | int | IN | PIF units |
@POOLEDINCOMEFUNDTOTALUNITS | int | IN | Total PIF units |
@LIFEINSURANCEPREMIUM | money | IN | Amount |
@LIFEINSURANCEPREMIUMFREQUENCYCODE | tinyint | IN | Frequency |
@LIFEINSURANCEPREMIUMDUEDATE | datetime | IN | Due date |
@STATUSCODE | tinyint | IN | Status |
@DESIGNATION | xml | IN | Planned Gift Details |
@ASSETS | xml | IN | Assets |
@BENEFICIARIES | xml | IN | Beneficiaries |
@RELATIONSHIPS | xml | IN | Relationships |
@PROBATEDATE | datetime | IN | As of |
@DISCOUNTDATE | datetime | IN | As of |
@REMAINDERMANPERCENT | decimal(7, 4) | IN | Remainderman % |
@PROBATESTATUSCODE | tinyint | IN | Probate status |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SITES | xml | IN | Sites |
@ISTESTAMENTARY | bit | IN | Testamentary |
@OTHERSUBTYPECODEID | uniqueidentifier | IN | Subtype |
@ISLIVINGTRUST | bit | IN | Living trust |
@GIFTVALUEISNOMINAL | bit | IN | Gift value is nominal |
@ISCONTINGENT | bit | IN | Gift is contingent |
@ORGISPOLICY | bit | IN | Organization is policy |
@ORGISBENEFICIARY | bit | IN | Organization is beneficiary |
@TRUSTHELDOUTSIDE | bit | IN | Trust held outside |
@TOTALPAYOUT | money | IN | Total payout |
@REALIZEDVALUE | money | IN | Realized amount |
@BASECURRENCYID | uniqueidentifier | IN | Base currency |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | Transaction currency |
@BASEEXCHANGERATEID | uniqueidentifier | IN | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | IN | Exchange rate |
@HADSPOTRATE | bit | IN | Had spot rate |
@RATECHANGED | bit | IN | Rate changed |
@TRIGGERDATE | datetime | IN | Trigger date |
@ISFLIP | bit | IN | FLIP situation |
@TRIGGEREVENTCODEID | uniqueidentifier | IN | Trigger event |
@EXCL_RATIO | decimal(6, 3) | IN | Exclusion ratio |
@EXCL_EXPDATE | datetime | IN | Expiration date |
@DONOTRECEIPT | bit | IN | Do not receipt |
@LIFEINSURANCEPOLICYNUMBER | nvarchar(50) | IN | Policy number |
@LIFEINSURANCEDATEISSUED | datetime | IN | Issue date |
@LIFEINSURANCEFACEVALUE | money | IN | Face value |
@LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION | bit | IN | Policy includes dividend participation |
@LIFEINSURANCEISLOANALLOWED | bit | IN | Loan is allowed |
@LIFEINSURANCEOUTSTANDINGLOANAMOUNT | money | IN | Outstanding loan amount |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_PLANNEDGIFT_EDITSAVE_9 (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@VEHICLECODE tinyint,
@SUBTYPECODE tinyint,
@EXPECTEDGIFTAMOUNT money,
@ISREVOCABLE bit,
@ISANONYMOUS bit,
@EXPECTEDMATURITY dbo.UDT_YEAR,
@DISCOUNTRATE decimal(6,1),
@NETPRESENTVALUE money,
@NETPRESENTVALUEDATE datetime,
@REMAINDERVALUE money,
@REMAINDERVALUEDATE datetime,
@RECOGNITIONAMOUNT money,
@GIFTDATE datetime,
@PAYOUTRATE decimal(6,3),
@PAYOUTAMOUNT money,
@PAYMENTPERIODSTART datetime,
@PAYMENTPERIODEND datetime,
@PAYMENTFREQUENCYCODE tinyint,
@TERMTYPECODE tinyint,
@TERMENDDATE datetime,
@YEARSINTERM tinyint,
@TRUSTTAXIDNUMBER nvarchar(100),
@POOLEDINCOMEFUNDCODEID uniqueidentifier,
@POOLEDINCOMEFUNDUNITS int,
@POOLEDINCOMEFUNDTOTALUNITS int,
@LIFEINSURANCEPREMIUM money,
@LIFEINSURANCEPREMIUMFREQUENCYCODE tinyint,
@LIFEINSURANCEPREMIUMDUEDATE datetime,
@STATUSCODE tinyint,
@DESIGNATION xml,
@ASSETS xml,
@BENEFICIARIES xml,
@RELATIONSHIPS xml,
@PROBATEDATE datetime,
@DISCOUNTDATE datetime,
@REMAINDERMANPERCENT decimal(7,4),
@PROBATESTATUSCODE tinyint,
@CURRENTAPPUSERID uniqueidentifier,
@SITES xml,
@ISTESTAMENTARY bit,
@OTHERSUBTYPECODEID uniqueidentifier,
@ISLIVINGTRUST bit,
@GIFTVALUEISNOMINAL bit,
@ISCONTINGENT bit,
@ORGISPOLICY bit,
@ORGISBENEFICIARY bit,
@TRUSTHELDOUTSIDE bit,
@TOTALPAYOUT money,
@REALIZEDVALUE money,
@BASECURRENCYID uniqueidentifier,
@TRANSACTIONCURRENCYID uniqueidentifier,
@BASEEXCHANGERATEID uniqueidentifier,
@EXCHANGERATE decimal(20,8),
@HADSPOTRATE bit,
@RATECHANGED bit,
@TRIGGERDATE datetime,
@ISFLIP bit,
@TRIGGEREVENTCODEID uniqueidentifier,
@EXCL_RATIO decimal(6,3),
@EXCL_EXPDATE datetime,
@DONOTRECEIPT bit,
@LIFEINSURANCEPOLICYNUMBER nvarchar(50),
@LIFEINSURANCEDATEISSUED datetime,
@LIFEINSURANCEFACEVALUE money,
@LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION bit,
@LIFEINSURANCEISLOANALLOWED bit,
@LIFEINSURANCEOUTSTANDINGLOANAMOUNT money
) as
set nocount on;
--Set PROBATESTATUSCODE to default value of 4 if gift does not require PROBATESTATUSCODE.
if @VEHICLECODE NOT IN (10,11,13)
set @PROBATESTATUSCODE = 4
if @SITES is null begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 begin
raiserror('Site is required.',13,1)
return
end
end
exec dbo.USP_PLANNEDGIFTSITE_VALIDATESITES @SITES;
declare @HASADDITIONS bit;
if exists(select top 1 ID from dbo.PLANNEDGIFTADDITION where PLANNEDGIFTID = @ID)
set @HASADDITIONS = 1
if (@VEHICLECODE not in (1,3,5,6,10,11,12,13,14) and @HASADDITIONS = 1)
begin
raiserror('BBERR_PLANNEDGIFT_VEHICLECODE_VALIDWITHADDITIONS',13,1)
return
end
if @VEHICLECODE <> 6
begin
select
@LIFEINSURANCEPOLICYNUMBER = '',
@LIFEINSURANCEDATEISSUED = null,
@LIFEINSURANCEFACEVALUE = 0,
@LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION = 0,
@LIFEINSURANCEISLOANALLOWED = 0,
@LIFEINSURANCEOUTSTANDINGLOANAMOUNT = 0
end
else
if @LIFEINSURANCEISLOANALLOWED = 0
set @LIFEINSURANCEOUTSTANDINGLOANAMOUNT = 0
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @SUBTYPECODE is null
set @SUBTYPECODE = 0;
if @EXCL_RATIO > 1
set @EXCL_RATIO = @EXCL_RATIO/100
declare @CHANGEDATE datetime
set @CHANGEDATE = getdate()
-- Don't allow the transaction currency to be modified if the planned gift
-- has been added as revenue.
declare @ADDEDASREVENUE bit = 0;
declare @OLDTRANSACTIONCURRENCYID uniqueidentifier;
declare @OLDISREVOCABLE bit;
select @ADDEDASREVENUE = 1 from dbo.PLANNEDGIFTREVENUE where ID = @ID;
select @OLDTRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID, @OLDISREVOCABLE = ISREVOCABLE from dbo.PLANNEDGIFT where ID = @ID;
if @ADDEDASREVENUE = 1 and (@OLDTRANSACTIONCURRENCYID <> @TRANSACTIONCURRENCYID and (@OLDTRANSACTIONCURRENCYID is not null or @TRANSACTIONCURRENCYID is not null))
begin
raiserror('The transaction currency of this gift cannot be modified because it has been added as revenue.',13,1)
return
end
if @ADDEDASREVENUE = 1 and (@ISREVOCABLE <> @OLDISREVOCABLE)
begin
raiserror('The revocable status of this gift cannot be modified because it has been added as revenue.',13,1)
return
end
begin try
--Multicurrency - RobertDi 5/5/10 - If the planned gift previously used a spot rate, but
-- its rate has changed, store the old rate's ID, so we can remove it later.
declare @OLDSPOTRATE uniqueidentifier;
if @HADSPOTRATE = 1 and @RATECHANGED = 1
begin
select
@OLDSPOTRATE = BASEEXCHANGERATEID
from dbo.PLANNEDGIFT
where ID = @ID
end
--If the record uses a new spot rate, create it and set the rate ID.
if @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001'
begin
set @BASEEXCHANGERATEID = newid()
insert into dbo.CURRENCYEXCHANGERATE(
ID,
FROMCURRENCYID,
TOCURRENCYID,
RATE,
ASOFDATE,
TYPECODE,
SOURCECODEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values(
@BASEEXCHANGERATEID,
@TRANSACTIONCURRENCYID,
@BASECURRENCYID,
@EXCHANGERATE,
coalesce(@GIFTDATE, cast(convert(varchar,@CHANGEDATE,110) as datetime)),
2,
null,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
);
end
declare @OLDINACTIVEDESIGNATIONTABLE table (
DESIGNATIONID uniqueidentifier
);
declare @DESIGNATIONS table (
DESIGNATIONID uniqueidentifier
);
insert into @OLDINACTIVEDESIGNATIONTABLE(DESIGNATIONID)
select DESIGNATIONID
from dbo.UFN_PLANNEDGIFT_DESIGNATION_2(@ID)
insert into @DESIGNATIONS
select DESIGNATIONID
from dbo.UFN_PLANNEDGIFT_DESIGNATION_2_FROMITEMLISTXML(@DESIGNATION);
if (select count(*)
from @DESIGNATIONS [DES]
inner join dbo.DESIGNATION on [DES].DESIGNATIONID = DESIGNATION.ID
where DESIGNATION.ISACTIVE = 0
and [DES].DESIGNATIONID not in (
select DESIGNATIONID from @OLDINACTIVEDESIGNATIONTABLE)) > 0
raiserror('Revenue cannot be added to inactive designations.', 13, 2);
select
@REALIZEDVALUE = case dbo.UFN_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT(@ID)
when 0 then @REALIZEDVALUE
when 1 then TRANSACTIONREALIZEDVALUE
end
from
dbo.PLANNEDGIFT
where ID = @ID
-- Convert amount fields from transaction to base.
declare @BASEEXPECTEDGIFTAMOUNT money;
declare @BASERECOGNITIONAMOUNT money;
declare @BASENETPRESENTVALUE money;
declare @BASEREMAINDERVALUE money;
declare @BASEPAYOUTAMOUNT money;
declare @BASELIFEINSURANCEPREMIUM money;
declare @BASETOTALPAYOUT money;
declare @BASEREALIZEDVALUE money;
declare @BASELIFEINSURANCEFACEVALUE money;
declare @BASELIFEINSURANCEOUTSTANDINGLOANAMOUNT money;
if @TRANSACTIONCURRENCYID = @BASECURRENCYID
begin
set @BASEEXPECTEDGIFTAMOUNT = @EXPECTEDGIFTAMOUNT;
set @BASERECOGNITIONAMOUNT = @RECOGNITIONAMOUNT;
set @BASENETPRESENTVALUE = @NETPRESENTVALUE;
set @BASEREMAINDERVALUE = @REMAINDERVALUE;
set @BASEPAYOUTAMOUNT = @PAYOUTAMOUNT;
set @BASELIFEINSURANCEPREMIUM = @LIFEINSURANCEPREMIUM;
set @BASETOTALPAYOUT = @TOTALPAYOUT;
set @BASEREALIZEDVALUE = @REALIZEDVALUE;
set @BASELIFEINSURANCEFACEVALUE = @LIFEINSURANCEFACEVALUE;
set @BASELIFEINSURANCEOUTSTANDINGLOANAMOUNT = @LIFEINSURANCEOUTSTANDINGLOANAMOUNT;
end
else
begin
set @BASEEXPECTEDGIFTAMOUNT = dbo.UFN_CURRENCY_CONVERT(@EXPECTEDGIFTAMOUNT, @BASEEXCHANGERATEID);
set @BASERECOGNITIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@RECOGNITIONAMOUNT, @BASEEXCHANGERATEID);
set @BASENETPRESENTVALUE = dbo.UFN_CURRENCY_CONVERT(@NETPRESENTVALUE, @BASEEXCHANGERATEID);
set @BASEREMAINDERVALUE = dbo.UFN_CURRENCY_CONVERT(@REMAINDERVALUE, @BASEEXCHANGERATEID);
set @BASEPAYOUTAMOUNT = dbo.UFN_CURRENCY_CONVERT(@PAYOUTAMOUNT, @BASEEXCHANGERATEID);
set @BASELIFEINSURANCEPREMIUM = dbo.UFN_CURRENCY_CONVERT(@LIFEINSURANCEPREMIUM, @BASEEXCHANGERATEID);
set @BASETOTALPAYOUT = dbo.UFN_CURRENCY_CONVERT(@TOTALPAYOUT, @BASEEXCHANGERATEID);
set @BASEREALIZEDVALUE = dbo.UFN_CURRENCY_CONVERT(@REALIZEDVALUE, @BASEEXCHANGERATEID);
set @BASELIFEINSURANCEFACEVALUE = dbo.UFN_CURRENCY_CONVERT(@LIFEINSURANCEFACEVALUE, @BASEEXCHANGERATEID);
set @BASELIFEINSURANCEOUTSTANDINGLOANAMOUNT = dbo.UFN_CURRENCY_CONVERT(@LIFEINSURANCEOUTSTANDINGLOANAMOUNT, @BASEEXCHANGERATEID);
end
-- Convert amount fields from base to organization.
declare @ORGANIZATIONEXPECTEDGIFTAMOUNT money;
declare @ORGANIZATIONRECOGNITIONAMOUNT money;
declare @ORGANIZATIONNETPRESENTVALUE money;
declare @ORGANIZATIONREMAINDERVALUE money;
declare @ORGANIZATIONPAYOUTAMOUNT money;
declare @ORGANIZATIONLIFEINSURANCEPREMIUM money;
declare @ORGANIZATIONTOTALPAYOUT money;
declare @ORGANIZATIONREALIZEDVALUE money;
declare @ORGANIZATIONLIFEINSURANCEFACEVALUE money;
declare @ORGANIZATIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier
if @BASECURRENCYID = @ORGANIZATIONCURRENCYID
begin
set @ORGANIZATIONEXCHANGERATEID = null;
set @ORGANIZATIONEXPECTEDGIFTAMOUNT = @BASEEXPECTEDGIFTAMOUNT;
set @ORGANIZATIONRECOGNITIONAMOUNT = @BASERECOGNITIONAMOUNT;
set @ORGANIZATIONNETPRESENTVALUE = @BASENETPRESENTVALUE;
set @ORGANIZATIONREMAINDERVALUE = @BASEREMAINDERVALUE;
set @ORGANIZATIONPAYOUTAMOUNT = @BASEPAYOUTAMOUNT;
set @ORGANIZATIONLIFEINSURANCEPREMIUM = @BASELIFEINSURANCEPREMIUM;
set @ORGANIZATIONTOTALPAYOUT = @BASETOTALPAYOUT;
set @ORGANIZATIONREALIZEDVALUE = @BASEREALIZEDVALUE;
set @ORGANIZATIONLIFEINSURANCEFACEVALUE = @BASELIFEINSURANCEFACEVALUE;
set @ORGANIZATIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT = @BASELIFEINSURANCEOUTSTANDINGLOANAMOUNT;
end
else
begin
--SlyyMu 8/12/10 modified the previous code by RobertDi 5/5/10 to use the new UFN_CURRENCYEXCHANGERATE_GETLATESTORGANIZATIONRATE and
--UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY function to get the correct rate and values
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTORGANIZATIONRATE(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @GIFTDATE, null, @TRANSACTIONCURRENCYID);
set @ORGANIZATIONEXPECTEDGIFTAMOUNT = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASEEXPECTEDGIFTAMOUNT, @ORGANIZATIONEXCHANGERATEID, @EXPECTEDGIFTAMOUNT);
set @ORGANIZATIONRECOGNITIONAMOUNT = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASERECOGNITIONAMOUNT, @ORGANIZATIONEXCHANGERATEID, @RECOGNITIONAMOUNT);
set @ORGANIZATIONNETPRESENTVALUE = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASENETPRESENTVALUE, @ORGANIZATIONEXCHANGERATEID, @NETPRESENTVALUE);
set @ORGANIZATIONREMAINDERVALUE = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASEREMAINDERVALUE, @ORGANIZATIONEXCHANGERATEID, @REMAINDERVALUE);
set @ORGANIZATIONPAYOUTAMOUNT = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASEPAYOUTAMOUNT, @ORGANIZATIONEXCHANGERATEID, @PAYOUTAMOUNT);
set @ORGANIZATIONLIFEINSURANCEPREMIUM = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASELIFEINSURANCEPREMIUM, @ORGANIZATIONEXCHANGERATEID, @LIFEINSURANCEPREMIUM);
set @ORGANIZATIONTOTALPAYOUT = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASETOTALPAYOUT, @ORGANIZATIONEXCHANGERATEID, @TOTALPAYOUT);
set @ORGANIZATIONREALIZEDVALUE = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASEREALIZEDVALUE, @ORGANIZATIONEXCHANGERATEID, @REALIZEDVALUE);
set @ORGANIZATIONLIFEINSURANCEFACEVALUE = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASELIFEINSURANCEFACEVALUE, @ORGANIZATIONEXCHANGERATEID, @REALIZEDVALUE);
set @ORGANIZATIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASELIFEINSURANCEOUTSTANDINGLOANAMOUNT, @ORGANIZATIONEXCHANGERATEID, @REALIZEDVALUE);
end
update dbo.PLANNEDGIFT set
VEHICLECODE = @VEHICLECODE,
SUBTYPECODE = @SUBTYPECODE,
EXPECTEDGIFTAMOUNT = @BASEEXPECTEDGIFTAMOUNT,
ISREVOCABLE = @ISREVOCABLE,
ISANONYMOUS = @ISANONYMOUS,
EXPECTEDMATURITY = @EXPECTEDMATURITY,
DISCOUNTRATE = @DISCOUNTRATE/100,
NETPRESENTVALUE = @BASENETPRESENTVALUE,
NETPRESENTVALUEDATE = @NETPRESENTVALUEDATE,
REMAINDERVALUE = @BASEREMAINDERVALUE,
REMAINDERVALUEDATE = @REMAINDERVALUEDATE,
RECOGNITIONAMOUNT = @BASERECOGNITIONAMOUNT,
GIFTDATE = @GIFTDATE,
PAYOUTRATE = @PAYOUTRATE/100,
PAYOUTAMOUNT = @BASEPAYOUTAMOUNT,
PAYMENTPERIODSTART = @PAYMENTPERIODSTART,
PAYMENTPERIODEND = @PAYMENTPERIODEND,
PAYMENTFREQUENCYCODE = @PAYMENTFREQUENCYCODE,
TERMTYPECODE = @TERMTYPECODE,
TERMENDDATE = @TERMENDDATE,
YEARSINTERM = @YEARSINTERM,
TRUSTTAXIDNUMBER = @TRUSTTAXIDNUMBER,
POOLEDINCOMEFUNDCODEID = @POOLEDINCOMEFUNDCODEID,
POOLEDINCOMEFUNDUNITS = @POOLEDINCOMEFUNDUNITS,
POOLEDINCOMEFUNDTOTALUNITS = @POOLEDINCOMEFUNDTOTALUNITS,
LIFEINSURANCEPREMIUM = @BASELIFEINSURANCEPREMIUM,
LIFEINSURANCEPREMIUMFREQUENCYCODE = @LIFEINSURANCEPREMIUMFREQUENCYCODE,
LIFEINSURANCEPREMIUMDUEDATE = @LIFEINSURANCEPREMIUMDUEDATE,
STATUSCODE = @STATUSCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CHANGEDATE,
PROBATEDATE = @PROBATEDATE,
DISCOUNTDATE = @DISCOUNTDATE,
REMAINDERMANPERCENT = @REMAINDERMANPERCENT/100.0,
PROBATESTATUSCODE = @PROBATESTATUSCODE,
ISTESTAMENTARY = @ISTESTAMENTARY,
OTHERSUBTYPECODEID = @OTHERSUBTYPECODEID,
ISLIVINGTRUST = @ISLIVINGTRUST,
GIFTVALUEISNOMINAL = @GIFTVALUEISNOMINAL,
ISCONTINGENT = @ISCONTINGENT,
ORGISPOLICY = @ORGISPOLICY,
ORGISBENEFICIARY = @ORGISBENEFICIARY,
TRUSTHELDOUTSIDE = @TRUSTHELDOUTSIDE,
TOTALPAYOUT = @BASETOTALPAYOUT,
REALIZEDVALUE = @BASEREALIZEDVALUE,
TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
BASECURRENCYID = @BASECURRENCYID,
BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
TRANSACTIONEXPECTEDGIFTAMOUNT = @EXPECTEDGIFTAMOUNT,
TRANSACTIONRECOGNITIONAMOUNT = @RECOGNITIONAMOUNT,
TRANSACTIONNETPRESENTVALUE = @NETPRESENTVALUE,
TRANSACTIONREMAINDERVALUE = @REMAINDERVALUE,
TRANSACTIONPAYOUTAMOUNT = @PAYOUTAMOUNT,
TRANSACTIONLIFEINSURANCEPREMIUM = @LIFEINSURANCEPREMIUM,
TRANSACTIONTOTALPAYOUT = @TOTALPAYOUT,
TRANSACTIONREALIZEDVALUE = @REALIZEDVALUE,
ORGANIZATIONEXPECTEDGIFTAMOUNT = @ORGANIZATIONEXPECTEDGIFTAMOUNT,
ORGANIZATIONRECOGNITIONAMOUNT = @ORGANIZATIONRECOGNITIONAMOUNT,
ORGANIZATIONNETPRESENTVALUE = @ORGANIZATIONNETPRESENTVALUE,
ORGANIZATIONREMAINDERVALUE = @ORGANIZATIONREMAINDERVALUE,
ORGANIZATIONPAYOUTAMOUNT = @ORGANIZATIONPAYOUTAMOUNT,
ORGANIZATIONLIFEINSURANCEPREMIUM = @ORGANIZATIONLIFEINSURANCEPREMIUM,
ORGANIZATIONTOTALPAYOUT = @ORGANIZATIONTOTALPAYOUT,
ORGANIZATIONREALIZEDVALUE = @ORGANIZATIONREALIZEDVALUE,
TRIGGERDATE = @TRIGGERDATE,
ISFLIP = @ISFLIP,
TRIGGEREVENTCODEID = @TRIGGEREVENTCODEID,
EXCL_RATIO = @EXCL_RATIO,
EXCL_EXPDATE = @EXCL_EXPDATE,
DONOTRECEIPT = @DONOTRECEIPT,
LIFEINSURANCEPOLICYNUMBER = @LIFEINSURANCEPOLICYNUMBER,
LIFEINSURANCEDATEISSUED = @LIFEINSURANCEDATEISSUED,
LIFEINSURANCEFACEVALUE = @BASELIFEINSURANCEFACEVALUE,
TRANSACTIONLIFEINSURANCEFACEVALUE = @LIFEINSURANCEFACEVALUE,
ORGANIZATIONLIFEINSURANCEFACEVALUE = @ORGANIZATIONLIFEINSURANCEFACEVALUE,
LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION = @LIFEINSURANCEDOESINCLUDEDIVIDENDPARTICIPATION,
LIFEINSURANCEISLOANALLOWED = @LIFEINSURANCEISLOANALLOWED,
LIFEINSURANCEOUTSTANDINGLOANAMOUNT = @BASELIFEINSURANCEOUTSTANDINGLOANAMOUNT,
TRANSACTIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT = @LIFEINSURANCEOUTSTANDINGLOANAMOUNT,
ORGANIZATIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT = @ORGANIZATIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT
where
ID = @ID;
--Multicurrency - RobertDi 5/5/10 - Process the designations xml to calculate the base and organization amounts and place them in proper nodes.
set @DESIGNATION = dbo.UFN_PLANNEDGIFTDESIGNATION_CONVERTAMOUNTSINXML(@DESIGNATION,@BASECURRENCYID,@ORGANIZATIONEXCHANGERATEID,@TRANSACTIONCURRENCYID,@BASEEXCHANGERATEID)
declare @DESIGNATIONSCHANGED bit
set @DESIGNATIONSCHANGED = dbo.UFN_PLANNEDGIFT_DESIGNATIONSCHANGED_2(@ID, @DESIGNATION);
exec dbo.USP_PLANNEDGIFT_DESIGNATION_2_UPDATEFROMXML @ID, @DESIGNATION, @CHANGEAGENTID, @CHANGEDATE;
--Multicurrency - RobertDi 5/5/10 - Process the assets xml to calculate the base and organization amounts and place them in proper nodes.
set @ASSETS = dbo.UFN_PLANNEDGIFTASSET_CONVERTAMOUNTSINXML(@ASSETS,@BASECURRENCYID,@ORGANIZATIONEXCHANGERATEID,@TRANSACTIONCURRENCYID,@BASEEXCHANGERATEID)
exec dbo.USP_PLANNEDGIFT_ASSETS_2_UPDATEFROMXML @ID, @ASSETS, @CHANGEAGENTID, @CHANGEDATE;
exec dbo.USP_PLANNEDGIFT_BENEFICIARIES_UPDATEFROMXML @ID, @BENEFICIARIES, @CHANGEAGENTID, @CHANGEDATE;
exec dbo.USP_PLANNEDGIFT_RELATIONSHIPS_UPDATEFROMXML @ID, @RELATIONSHIPS, @CHANGEAGENTID, @CHANGEDATE;
if @DESIGNATIONSCHANGED = 1
begin
exec dbo.USP_PLANNEDGIFT_CLEARANDADDCAMPAIGNS @PLANNEDGIFTID = @ID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CHANGEDATE = @CHANGEDATE;
end
exec dbo.USP_PLANNEDGIFT_GETSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CHANGEDATE;
--Receipting - force associated additions to do not receipt when the planned gift is no longer receiptable
if @ISREVOCABLE = 1 or @TRUSTHELDOUTSIDE = 1 or dbo.UFN_PLANNEDGIFT_ISRECEIPTABLE(@VEHICLECODE) = 0
update dbo.PLANNEDGIFTADDITION set DONOTRECEIPT = 1 where PLANNEDGIFTADDITION.PLANNEDGIFTID = @ID
--Multicurrency - KeithAb 9/24/10 - Update planned gift addition transaction currency when we have updated the transaction
--currency on its parent planned gift
declare @PLANNEDGIFTADDITIONID uniqueidentifier;
declare PLANNEDGIFTADDITIONCURSOR cursor local fast_forward for
select
ID
from
dbo.PLANNEDGIFTADDITION
where
PLANNEDGIFTADDITION.PLANNEDGIFTID = @ID;
open PLANNEDGIFTADDITIONCURSOR
fetch next from PLANNEDGIFTADDITIONCURSOR into @PLANNEDGIFTADDITIONID;
while @@FETCH_STATUS = 0
begin
exec dbo.USP_PLANNEDGIFTADDITION_UPDATECURRENCIES @PLANNEDGIFTADDITIONID, @TRANSACTIONCURRENCYID, @CHANGEAGENTID, @CHANGEDATE;
fetch next from PLANNEDGIFTADDITIONCURSOR into @PLANNEDGIFTADDITIONID;
end
close PLANNEDGIFTADDITIONCURSOR
deallocate PLANNEDGIFTADDITIONCURSOR
if @OLDSPOTRATE is not null
exec dbo.USP_CURRENCYEXCHANGERATE_DELETEBYID_WITHCHANGEAGENTID @OLDSPOTRATE, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;