USP_DATAFORMTEMPLATE_ADD_PLANNEDGIFTREVENUE
The save procedure used by the add dataform template "Planned Gift Revenue Add As Revenue".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@PLANNEDGIFTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@AMOUNT | money | IN | Revenue amount |
@DATE | datetime | IN | Date |
@GENERATEGLDISTRIBUTIONS | bit | IN | Generate GL distributions |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | Account system |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | Transaction currency |
@BASEEXCHANGERATEID | uniqueidentifier | IN | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | IN | Exchange rate |
@DONOTRECEIPT | bit | IN | Do not receipt |
@RECEIPTAMOUNT | money | IN | Receipt amount |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PLANNEDGIFTREVENUE
(
@ID uniqueidentifier output,
@PLANNEDGIFTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@AMOUNT money = null,
@DATE datetime = null,
@GENERATEGLDISTRIBUTIONS bit = 1,
@PDACCOUNTSYSTEMID uniqueidentifier = null,
@TRANSACTIONCURRENCYID uniqueidentifier = null,
@BASEEXCHANGERATEID uniqueidentifier = null,
@EXCHANGERATE decimal(20,8) = null,
@DONOTRECEIPT bit = null,
@RECEIPTAMOUNT money = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime = getdate();
if @PDACCOUNTSYSTEMID is null
set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'
-- Check GL business rule for this account system and set to 'Do not post' if needed.
-- ****
if @GENERATEGLDISTRIBUTIONS = 1
set @GENERATEGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
-- ****
--Multicurrency - AdamBu 5/19/10 - Retrieve base currency from the account system's currency set.
declare @CURRENCYSETID uniqueidentifier
select
@CURRENCYSETID = CURRENCYSETID
from
dbo.PDACCOUNTSYSTEM
where
ID = @PDACCOUNTSYSTEMID
declare @BASECURRENCYID uniqueidentifier;
select
@BASECURRENCYID = BASECURRENCYID
from
dbo.CURRENCYSET
where
ID = coalesce(@CURRENCYSETID,dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET())
--Multicurrency - AdamBu 5/19/10 - If needed, create the spot exchange rate.
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,
@DATE,
2,
null,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
begin try
declare @ISANONYMOUS bit;
declare @VEHICLECODE2 smallint;
declare @PAYOUTAMOUNT money;
select
@ISANONYMOUS = ISANONYMOUS,
@VEHICLECODE2 = VEHICLECODE,
@PAYOUTAMOUNT = case VEHICLECODE when 6 then TRANSACTIONLIFEINSURANCEPREMIUM else TRANSACTIONPAYOUTAMOUNT end
from dbo.PLANNEDGIFT where id = @PLANNEDGIFTID;
set @RECEIPTAMOUNT = coalesce(@RECEIPTAMOUNT, @AMOUNT); --For backwards compatibility with old behavior
exec USP_ADDPLANNEDGIFTREVENUE
@PLANNEDGIFTID,
@AMOUNT,
@DATE,
@RECEIPTAMOUNT,
@CHANGEAGENTID,
@ISANONYMOUS,
@ID,
@GENERATEGLDISTRIBUTIONS,
@PDACCOUNTSYSTEMID,
@TRANSACTIONCURRENCYID,
@BASECURRENCYID,
@BASEEXCHANGERATEID,
@DONOTRECEIPT;
select @ID = REVENUEID from dbo.PLANNEDGIFTREVENUE where id = @PLANNEDGIFTID;
if (@VEHICLECODE2 = 0 or @VEHICLECODE2 = 5 or @VEHICLECODE2 = 6) and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('0E85C527-E6E9-4C5F-A8E8-105FD0E18FE7') = 1
begin
exec USP_ADDPLANNEDGIFTPAYOUT
@PLANNEDGIFTID,
@PAYOUTAMOUNT,
@DATE,
@AMOUNT,
@CHANGEAGENTID,
@ISANONYMOUS,
@ID,
@GENERATEGLDISTRIBUTIONS,
@TRANSACTIONCURRENCYID,
@BASECURRENCYID,
@BASEEXCHANGERATEID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;