USP_PLANNEDGIFTREVENUE_DEFAULTSOLICITORS
Creates default solicitors for planned gift revenue.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLANNEDGIFTID | uniqueidentifier | IN | |
@REVENUEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_PLANNEDGIFTREVENUE_DEFAULTSOLICITORS
(
@PLANNEDGIFTID uniqueidentifier,
@REVENUEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime
)
as
set nocount on
--Multicurrency - AdamBu 5/19/10 - Retrieve multicurrency info for conversions
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @BASECURRENCYID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
--SlyyMu added the following block to handle systems that are not configured for O -> B
--Solicitors don't have a transaction currency, @ORGANIZATIONEXCHANGERATEIDFROMBASE handles the
-- case where the revenue split ORGANIZATIONEXCHANGERATE is for converting from transaction to org currencies
--Multicurrency - AdamBu 3/30/10 - Retrieve and calculate the necessary multicurrency values.
declare @AMOUNT money;
declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
select
@BASECURRENCYID = BASECURRENCYID,
@BASEEXCHANGERATEID = BASEEXCHANGERATEID,
@ORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID,
@TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID,
@AMOUNT = AMOUNT
from dbo.REVENUE
where ID = @REVENUEID
if @CURRENTDATE is null
set @CURRENTDATE = getdate()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @APPLYTOPLANNEDGIFTS bit
select
@APPLYTOPLANNEDGIFTS = coalesce(APPLYTOPLANNEDGIFTS, 0)
from
dbo.SOLICITORCREDITRULES
if @APPLYTOPLANNEDGIFTS = 1
begin
declare @PROSPECTPLANID uniqueidentifier
select @PROSPECTPLANID = PROSPECTPLANID from dbo.PLANNEDGIFT where PLANNEDGIFT.ID = @PLANNEDGIFTID
exec dbo.USP_CURRENCY_GETCURRENCYVALUES
@AMOUNT=@AMOUNT,
@DATE=@CURRENTDATE,
@BASECURRENCYID=@BASECURRENCYID,
@BASEEXCHANGERATEID=@BASEEXCHANGERATEID,
@TRANSACTIONCURRENCYID=@TRANSACTIONCURRENCYID,
@BASEAMOUNT=null,
@ORGANIZATIONCURRENCYID=null,
@ORGANIZATIONAMOUNT=null,
@ORGANIZATIONEXCHANGERATEID=null,
@LOOKUPORGANIZATIONEXCHANGERATE=0,
@BASETOORGANIZATIONEXCHANGERATEID=@BASETOORGANIZATIONEXCHANGERATEID;
insert into dbo.REVENUESOLICITOR (
REVENUESPLITID,
CONSTITUENTID,
AMOUNT,
SEQUENCE,
DATEADDED,
DATECHANGED,
ADDEDBYID,
CHANGEDBYID,
BASECURRENCYID,
ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID
)
select
REVENUESPLIT.ID,
FUNDRAISER.ID,
(REVENUESPLIT.AMOUNT * FUNDRAISER.CREDITPERCENTAGE) / 100.0,
FUNDRAISER.SEQUENCE,
@CURRENTDATE,
@CURRENTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@BASECURRENCYID BASECURRENCYID,
case --Multicurrency - AdamBu 5/19/10 - Calculate organization amount.
when @BASECURRENCYID <> @ORGANIZATIONCURRENCYID
then dbo.UFN_CURRENCY_CONVERT((FUNDRAISER.CREDITPERCENTAGE * REVENUESPLIT.AMOUNT) / 100.0, @BASETOORGANIZATIONEXCHANGERATEID)
else
(FUNDRAISER.CREDITPERCENTAGE * REVENUESPLIT.AMOUNT) / 100.0
end ORGANIZATIONAMOUNT,
@BASETOORGANIZATIONEXCHANGERATEID ORGANIZATIONEXCHANGERATEID
from
dbo.REVENUESPLIT
cross join dbo.UFN_PROSPECTPLAN_GETFUNDRAISERSANDCREDITS(@PROSPECTPLANID) as FUNDRAISER
where REVENUESPLIT.REVENUEID = @REVENUEID
order by FUNDRAISER.SEQUENCE
end