USP_DATAFORMTEMPLATE_ADD_MGPLEDGE_2
The save procedure used by the add dataform template "Matching Gift Claim Add Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@ORIGINALGIFTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@MATCHINGORGANIZATIONID | uniqueidentifier | IN | Matching organization |
@DATE | datetime | IN | Date |
@AMOUNT | money | IN | Amount |
@SPLITS | xml | IN | Designations |
@MATCHINGGIFTCONDITIONID | uniqueidentifier | IN | Matching gift condition type |
@RELATIONSHIPID | uniqueidentifier | IN | Relationship |
@DISMISSMATCHINGGIFTCLAIMELIGIBILITY | bit | IN | Dismiss matching gift claim eligibility notification |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | Transaction currency |
@BASEEXCHANGERATEID | uniqueidentifier | IN | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | IN | Exchange rate |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_MGPLEDGE_2
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier,
@ORIGINALGIFTID uniqueidentifier,
@MATCHINGORGANIZATIONID uniqueidentifier,
@DATE datetime,
@AMOUNT money = 0,
@SPLITS xml,
@MATCHINGGIFTCONDITIONID uniqueidentifier = null,
@RELATIONSHIPID uniqueidentifier = null,
@DISMISSMATCHINGGIFTCLAIMELIGIBILITY bit = 1,
@CURRENTAPPUSERID uniqueidentifier = null,
@TRANSACTIONCURRENCYID uniqueidentifier = null,
@BASEEXCHANGERATEID uniqueidentifier = null,
@EXCHANGERATE decimal(20,8) = null
)
as
set nocount on;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
declare @CURRENTDATE datetime = getdate();
if exists (select 1 from dbo.CONSTITUENT where ID = @MATCHINGORGANIZATIONID)
begin
-- Check security for this constituent. Using UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT
-- since this form's security is implied through other forms.
declare @ISADMIN bit;
declare @APPUSER_IN_NONRACROLE bit;
declare @APPUSER_IN_NOSECGROUPROLE bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
if @ISADMIN = 0
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
if @ISADMIN = 0 and @APPUSER_IN_NONRACROLE = 0
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
if
(
@ISADMIN = 0
and @APPUSER_IN_NONRACROLE = 0
and (dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, @MATCHINGORGANIZATIONID, @APPUSER_IN_NOSECGROUPROLE) = 0)
)
raiserror('BBERR_DB_RECORDSECURITY_PERMISSION_DENIED', 13, 1);
end
--Set currency parameters for backwards compatibility
if @TRANSACTIONCURRENCYID is null
set @TRANSACTIONCURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
if not @TRANSACTIONCURRENCYID in (
select CURRENCYID
from dbo.UFN_CURRENCYSET_GETTRANSACTIONCURRENCIES(dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID))
)
begin
raiserror('BB_ERR_TRANSACTIONCURRENCYNOTACCESSIBLE',13,1)
end
declare @BASECURRENCYID uniqueidentifier = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
--Multicurrency - AdamBu 5/7/10 - Create spot rate, if the new record uses one.
if @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001'
begin
set @BASEEXCHANGERATEID = newid()
--Replace with call to USP_CURRENCYEXCHANGERATE_ENSURESPOTRATEEXISTS for PBI 102747 in the future
/*if not dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@CURRENTAPPUSERID,'911f104d-ba5f-4469-b0ae-184c879aea99') = 1
and not dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
begin
raiserror('User does not have the right to add a new spot rate.', 13, 1);
return 1;
end*/
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
exec dbo.USP_MATCHINGGIFTPLEDGE_ADD
@ID output,
@CHANGEAGENTID,
@ORIGINALGIFTID,
@MATCHINGORGANIZATIONID,
@DATE,
@AMOUNT,
@SPLITS,
@MATCHINGGIFTCONDITIONID,
@RELATIONSHIPID,
@TRANSACTIONCURRENCYID,
@BASECURRENCYID,
@BASEEXCHANGERATEID
if @DISMISSMATCHINGGIFTCLAIMELIGIBILITY = 1
begin
update dbo.REVENUE
set ELIGIBLEFORMATCHINGGIFTCLAIM = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = getdate()
where ID = @ORIGINALGIFTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;