USP_DATAFORMTEMPLATE_PLANNEDGIFT_EDITSAVE_4
USP_DATAFORMTEMPLATE_PLANNEDGIFT_EDITSAVE_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, 3) | 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 | Units |
@POOLEDINCOMEFUNDTOTALUNITS | int | IN | Total 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(6, 3) | 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 |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_PLANNEDGIFT_EDITSAVE_4 (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@VEHICLECODE tinyint,
@SUBTYPECODE tinyint,
@EXPECTEDGIFTAMOUNT money,
@ISREVOCABLE bit,
@ISANONYMOUS bit,
@EXPECTEDMATURITY dbo.UDT_YEAR,
@DISCOUNTRATE decimal(6,3),
@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(6,3),
@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
) as
set nocount on;
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;
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;
declare @CHANGEDATE datetime
set @CHANGEDATE = getdate()
begin try
declare @OLDINACTIVEDESIGNATIONTABLE table (
DESIGNATIONID uniqueidentifier
);
declare @DESIGNATIONS table (
DESIGNATIONID uniqueidentifier
);
insert into @OLDINACTIVEDESIGNATIONTABLE(DESIGNATIONID)
select DESIGNATIONID
from dbo.UFN_PLANNEDGIFT_DESIGNATION(@ID)
insert into @DESIGNATIONS
select DESIGNATIONID
from dbo.UFN_PLANNEDGIFT_DESIGNATION_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);
update dbo.PLANNEDGIFT set
VEHICLECODE = @VEHICLECODE,
SUBTYPECODE = @SUBTYPECODE,
EXPECTEDGIFTAMOUNT = @EXPECTEDGIFTAMOUNT,
ISREVOCABLE = @ISREVOCABLE,
ISANONYMOUS = @ISANONYMOUS,
EXPECTEDMATURITY = @EXPECTEDMATURITY,
DISCOUNTRATE = @DISCOUNTRATE/100,
NETPRESENTVALUE = @NETPRESENTVALUE,
NETPRESENTVALUEDATE = @NETPRESENTVALUEDATE,
REMAINDERVALUE = @REMAINDERVALUE,
REMAINDERVALUEDATE = @REMAINDERVALUEDATE,
RECOGNITIONAMOUNT = @RECOGNITIONAMOUNT,
GIFTDATE = @GIFTDATE,
PAYOUTRATE = @PAYOUTRATE/100,
PAYOUTAMOUNT = @PAYOUTAMOUNT,
PAYMENTPERIODSTART = @PAYMENTPERIODSTART,
PAYMENTPERIODEND = @PAYMENTPERIODEND,
PAYMENTFREQUENCYCODE = @PAYMENTFREQUENCYCODE,
TERMTYPECODE = @TERMTYPECODE,
TERMENDDATE = @TERMENDDATE,
YEARSINTERM = @YEARSINTERM,
TRUSTTAXIDNUMBER = @TRUSTTAXIDNUMBER,
POOLEDINCOMEFUNDCODEID = @POOLEDINCOMEFUNDCODEID,
POOLEDINCOMEFUNDUNITS = @POOLEDINCOMEFUNDUNITS,
POOLEDINCOMEFUNDTOTALUNITS = @POOLEDINCOMEFUNDTOTALUNITS,
LIFEINSURANCEPREMIUM = @LIFEINSURANCEPREMIUM,
LIFEINSURANCEPREMIUMFREQUENCYCODE = @LIFEINSURANCEPREMIUMFREQUENCYCODE,
LIFEINSURANCEPREMIUMDUEDATE = @LIFEINSURANCEPREMIUMDUEDATE,
STATUSCODE = @STATUSCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CHANGEDATE,
PROBATEDATE = @PROBATEDATE,
DISCOUNTDATE = @DISCOUNTDATE,
REMAINDERMANPERCENT = @REMAINDERMANPERCENT/100,
PROBATESTATUSCODE = @PROBATESTATUSCODE,
ISTESTAMENTARY = @ISTESTAMENTARY,
OTHERSUBTYPECODEID = @OTHERSUBTYPECODEID,
ISLIVINGTRUST = @ISLIVINGTRUST,
GIFTVALUEISNOMINAL = @GIFTVALUEISNOMINAL,
ISCONTINGENT = @ISCONTINGENT,
ORGISPOLICY = @ORGISPOLICY,
ORGISBENEFICIARY = @ORGISBENEFICIARY,
TRUSTHELDOUTSIDE = @TRUSTHELDOUTSIDE,
TOTALPAYOUT = @TOTALPAYOUT,
REALIZEDVALUE = case dbo.UFN_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT(@ID)
when 0 then @REALIZEDVALUE
when 1 then REALIZEDVALUE
end
where
ID = @ID;
declare @DESIGNATIONSCHANGED bit
set @DESIGNATIONSCHANGED = dbo.UFN_PLANNEDGIFT_DESIGNATIONSCHANGED(@ID, @DESIGNATION);
exec dbo.USP_PLANNEDGIFT_DESIGNATION_UPDATEFROMXML @ID, @DESIGNATION, @CHANGEAGENTID, @CHANGEDATE;
exec dbo.USP_PLANNEDGIFT_ASSETS_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;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;