USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTREVENUE
The load procedure used by the edit dataform template "Planned Gift Revenue Edit Form"
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. |
| @CONSTITUENTID | uniqueidentifier | INOUT | |
| @CONSTITUENTNAME | nvarchar(700) | INOUT | Constituent |
| @DATE | datetime | INOUT | Date |
| @AMOUNT | money | INOUT | Amount |
| @POSTSTATUSCODE | tinyint | INOUT | Post status |
| @POSTDATE | datetime | INOUT | Post date |
| @SPLITS | xml | INOUT | Designations |
| @FINDERNUMBER | bigint | INOUT | Finder number |
| @SOURCECODE | nvarchar(50) | INOUT | Source code |
| @APPEALID | uniqueidentifier | INOUT | Appeal |
| @BENEFITS | xml | INOUT | Benefits |
| @BENEFITSWAIVED | bit | INOUT | Benefits waived |
| @GIVENANONYMOUSLY | bit | INOUT | Planned gift is anonymous |
| @MAILINGID | uniqueidentifier | INOUT | Effort |
| @CHANNELCODEID | uniqueidentifier | INOUT | Inbound channel |
| @DONOTACKNOWLEDGE | bit | INOUT | Do not acknowledge |
| @PLEDGESUBTYPEID | uniqueidentifier | INOUT | Subtype |
| @MAXSOFTCREDITAMOUNT | money | INOUT | Max soft credit amount |
| @MAXSOLICITORAMOUNT | money | INOUT | Max solicitor amount |
| @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. |
| @MAINSINGLEDESIGNATIONID | uniqueidentifier | INOUT | Designation |
| @FINDERNUMBERVALID | bit | INOUT | FINDERNUMBERVALID |
| @OPPORTUNITYID | uniqueidentifier | INOUT | Opportunity |
| @OPPORTUNITYCONSTITUENTNAME | nvarchar(154) | INOUT | |
| @OPPORTUNITYASKDATE | datetime | INOUT | |
| @OPPORTUNITYASKAMOUNT | money | INOUT | |
| @MAXSOLICITORSPLITAMOUNTS | xml | INOUT | Max solicitor split amounts |
| @REFERENCE | nvarchar(255) | INOUT | Reference |
| @CATEGORYCODEID | uniqueidentifier | INOUT | Revenue category |
| @OPPORTUNITYSTATUS | nvarchar(32) | INOUT | |
| @PERCENTAGEBENEFITS | xml | INOUT | Benefits |
| @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 |
| @BASEDECIMALDIGITS | tinyint | INOUT | Decimal digits |
| @BASEROUNDINGTYPECODE | tinyint | INOUT | Rounding type |
| @TRANSACTIONCURRENCYDESCRIPTION | nvarchar(110) | INOUT | Transaction currency description |
| @HASPOSTEDPAYMENTS | bit | INOUT | Has posted payments |
| @DONOTRECEIPT | bit | INOUT | Do not receipt |
| @DONOTRECEIPT_LOCKED | bit | INOUT | |
| @RECEIPTAMOUNT | money | INOUT | Receipt amount |
| @ALLOWGLDISTRIBUTIONS | bit | INOUT | |
| @UPDATESOLICITORS | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTREVENUE
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@CONSTITUENTID uniqueidentifier = null output,
@CONSTITUENTNAME nvarchar(700) = null output,
@DATE datetime = null output,
@AMOUNT money = null output,
@POSTSTATUSCODE tinyint = null output,
@POSTDATE datetime = null output,
@SPLITS xml = null output,
@FINDERNUMBER bigint = null output,
@SOURCECODE nvarchar(50) = null output,
@APPEALID uniqueidentifier = null output,
@BENEFITS xml = null output,
@BENEFITSWAIVED bit = null output,
@GIVENANONYMOUSLY bit = null output,
@MAILINGID uniqueidentifier = null output,
@CHANNELCODEID uniqueidentifier = null output,
@DONOTACKNOWLEDGE bit = null output,
@PLEDGESUBTYPEID uniqueidentifier = null output,
@MAXSOFTCREDITAMOUNT money = null output,
@MAXSOLICITORAMOUNT money = null output,
@TSLONG bigint = 0 output,
@MAINSINGLEDESIGNATIONID uniqueidentifier = null output,
@FINDERNUMBERVALID bit = null output,
@OPPORTUNITYID uniqueidentifier = null output,
@OPPORTUNITYCONSTITUENTNAME nvarchar(154) = null output,
@OPPORTUNITYASKDATE datetime = null output,
@OPPORTUNITYASKAMOUNT money = null output,
@MAXSOLICITORSPLITAMOUNTS xml = null output,
@REFERENCE nvarchar(255) = null output,
@CATEGORYCODEID uniqueidentifier = null output,
@OPPORTUNITYSTATUS nvarchar(32) = null output,
@PERCENTAGEBENEFITS xml = 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,
@BASEDECIMALDIGITS tinyint = null output,
@BASEROUNDINGTYPECODE tinyint = null output,
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output,
@HASPOSTEDPAYMENTS bit = null output,
@DONOTRECEIPT bit = null output,
@DONOTRECEIPT_LOCKED bit = null output,
@RECEIPTAMOUNT money = null output,
@ALLOWGLDISTRIBUTIONS bit = null output,
@UPDATESOLICITORS bit = null output
)
as
begin
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
declare @LASTINSTALLMENT uniqueidentifier;
select
@DATALOADED = 1,
@CONSTITUENTID = REVENUE.CONSTITUENTID,
@CONSTITUENTNAME = NF.NAME,
@DATE = REVENUE.DATE,
@AMOUNT = REVENUE.TRANSACTIONAMOUNT,
@POSTSTATUSCODE =
case
when REVENUE.DONOTPOST = 1
then 2
when REVENUEPOSTED.ID is not null
then 0
else 1
end,
@MAXSOFTCREDITAMOUNT = 0,
@MAXSOLICITORAMOUNT = 0,
@POSTDATE = REVENUE.POSTDATE,
@TSLONG = REVENUE.TSLONG,
@FINDERNUMBER = FINDERNUMBER,
@SOURCECODE = SOURCECODE,
@APPEALID = APPEALID,
@BENEFITSWAIVED = BENEFITSWAIVED,
@GIVENANONYMOUSLY = GIVENANONYMOUSLY,
@MAILINGID = MAILINGID,
@CHANNELCODEID = CHANNELCODEID,
@DONOTACKNOWLEDGE = DONOTACKNOWLEDGE,
@PLEDGESUBTYPEID = PLEDGESUBTYPEID,
@MAXSOLICITORSPLITAMOUNTS = dbo.UFN_REVENUEDETAIL_GETMAXSOLICITORSPLITAMOUNTS_TOITEMLISTXML(@ID),
@REFERENCE = REVENUEREFERENCE.REFERENCE,
@CATEGORYCODEID = (
select top 1
GLREVENUECATEGORYMAPPINGID
from dbo.REVENUECATEGORY
inner join dbo.REVENUESPLIT on REVENUECATEGORY.ID = REVENUESPLIT.ID
where REVENUEID = REVENUE.ID
),
@BASECURRENCYID = REVENUE.BASECURRENCYID,
@TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID,
@EXCHANGERATE = CURRENCYEXCHANGERATE.RATE,
@HADSPOTRATE =
case
when CURRENCYEXCHANGERATE.TYPECODE = 2
then 1
else 0
end,
@RATECHANGED = 0,
@BASEDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@BASEROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
@TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(REVENUE.TRANSACTIONCURRENCYID),
@DONOTRECEIPT = REVENUE.DONOTRECEIPT,
@DONOTRECEIPT_LOCKED =
case when REVENUE.DONOTRECEIPT != 0
and (
PLANNEDGIFT.ISREVOCABLE != 0
or PLANNEDGIFT.TRUSTHELDOUTSIDE != 0
or dbo.UFN_PLANNEDGIFT_ISRECEIPTABLE(PLANNEDGIFT.VEHICLECODE) = 0
)
then 1
else 0
end,
@RECEIPTAMOUNT = REVENUE.RECEIPTAMOUNT,
@UPDATESOLICITORS = 0
from dbo.REVENUE
inner join dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(REVENUE.CONSTITUENTID) NF
inner join dbo.CURRENCY on CURRENCY.ID = REVENUE.BASECURRENCYID
left join dbo.REVENUEPOSTED on REVENUEPOSTED.ID = REVENUE.ID
left join dbo.REVENUEREFERENCE on REVENUEREFERENCE.ID = REVENUE.ID
left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = REVENUE.BASEEXCHANGERATEID
left join dbo.V_PLANNEDGIFTREVENUE_WITHADDITIONS PLANNEDGIFTREVENUE on REVENUE.ID = PLANNEDGIFTREVENUE.REVENUEID
left join dbo.PLANNEDGIFT on PLANNEDGIFTREVENUE.PLANNEDGIFTID = PLANNEDGIFT.ID
where REVENUE.ID = @ID and REVENUE.TRANSACTIONTYPECODE = 4;
if @DATALOADED = 1
begin
select top 1
@OPPORTUNITYID = RO.OPPORTUNITYID,
@OPPORTUNITYCONSTITUENTNAME = OC.NAME,
@OPPORTUNITYASKDATE = O.ASKDATE,
@OPPORTUNITYASKAMOUNT = O.ASKAMOUNT,
@OPPORTUNITYSTATUS = O.STATUS
from dbo.REVENUESPLIT
left outer join dbo.REVENUEOPPORTUNITY RO on RO.ID = REVENUESPLIT.ID
left outer join dbo.OPPORTUNITY O on O.ID = RO.OPPORTUNITYID
left outer join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
left outer join dbo.CONSTITUENT OC on OC.ID = PP.PROSPECTID
where REVENUESPLIT.REVENUEID = @ID
--Multicurrency - AdamBu 5/21/10 - Break apart the splits and build our own XML so that
-- TRANSACTIONAMOUNT can be passed as AMOUNT.
set @SPLITS = (
select
SPLITS.TRANSACTIONAMOUNT AMOUNT,
SPLITS.APPLICATIONCODE,
SPLITS.CATEGORYCODEID,
SPLITS.DECLINESGIFTAID,
SPLITS.DESIGNATIONID,
SPLITS.ID,
SPLITS.TYPECODE,
SPLITS.TRANSACTIONCURRENCYID
from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLITS
inner join dbo.DESIGNATION on DESIGNATION.ID = SPLITS.DESIGNATIONID
for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64
);
exec dbo.USP_REVENUE_GETBENEFITSSPLIT @ID, @BENEFITS output, @PERCENTAGEBENEFITS output
if @FINDERNUMBER = 0
set @FINDERNUMBER = null;
if (not @FINDERNUMBER is null)
set @FINDERNUMBERVALID = 1;
else
set @FINDERNUMBERVALID = 0;
set @HASPOSTEDPAYMENTS = dbo.UFN_PLEDGEHASPOSTEDPAYMENTS(@ID)
end
-- Check GL business rule for this account system and set to 'Do not post' if needed.
declare @PDACCOUNTSYSTEMID uniqueidentifier;
select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID from dbo.PDACCOUNTSYSTEMFORREVENUE where ID = @ID;
set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
return 0;
end