USP_NAMINGOPPORTUNITYREVENUERECOGNITION_ADD
Adds a naming opportunity recognition for a revenue split or constituent record.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@REVENUESPLITID | uniqueidentifier | IN | |
@NAMINGOPPORTUNITYID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@CONSTITUENTNAMEFORMATID | uniqueidentifier | IN | |
@CUSTOMNAMEFORMAT | nvarchar(100) | IN | |
@STARTDATE | UDT_FUZZYDATE | IN | |
@ENDDATE | UDT_FUZZYDATE | IN | |
@AMOUNT | money | IN | |
@QUANTITY | int | IN | |
@INSCRIPTION | nvarchar(max) | IN | |
@SPECIALREQUEST | nvarchar(max) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_NAMINGOPPORTUNITYREVENUERECOGNITION_ADD
(
@ID uniqueidentifier output,
@REVENUESPLITID uniqueidentifier,
@NAMINGOPPORTUNITYID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@CONSTITUENTNAMEFORMATID uniqueidentifier = null,
@CUSTOMNAMEFORMAT nvarchar(100) = '',
@STARTDATE dbo.UDT_FUZZYDATE = '00000000',
@ENDDATE dbo.UDT_FUZZYDATE = '00000000',
@AMOUNT money,
@QUANTITY int,
@INSCRIPTION nvarchar(max) = '',
@SPECIALREQUEST nvarchar(max) = '',
@CHANGEAGENTID uniqueidentifier
)
as
begin
begin try
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CHANGEDATE datetime;
set @CHANGEDATE = getdate();
if @STARTDATE is null
set @STARTDATE = '00000000';
if @ENDDATE is null
set @ENDDATE = '00000000';
--Sanitize the name format to make it agree with our rules
if not @CONSTITUENTNAMEFORMATID is null
set @CUSTOMNAMEFORMAT = N'';
declare @EXISTINGRECOGNITIONS int;
declare @MAXRECOGNITIONS int;
select @MAXRECOGNITIONS = coalesce(QUANTITY, 0) from dbo.NAMINGOPPORTUNITY where ID = @NAMINGOPPORTUNITYID;
select @EXISTINGRECOGNITIONS = coalesce(sum(QUANTITY), 0) from dbo.NAMINGOPPORTUNITYRECOGNITION where NAMINGOPPORTUNITYID = @NAMINGOPPORTUNITYID;
declare @BASECURRENCYID uniqueidentifier;
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONAMOUNT money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select
@BASECURRENCYID = BASECURRENCYID
from
dbo.NAMINGOPPORTUNITY
where
NAMINGOPPORTUNITY.ID = @NAMINGOPPORTUNITYID
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
begin
set @ORGANIZATIONAMOUNT = @AMOUNT;
end
else
begin
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CHANGEDATE, 0, null);
set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @CURRENCYEXCHANGERATEID);
end
if @EXISTINGRECOGNITIONS + @QUANTITY > @MAXRECOGNITIONS
raiserror('ERR_TOOMANYRECOGNITIONS', 13, 1);
else
begin
insert into dbo.NAMINGOPPORTUNITYRECOGNITION(ID, NAMINGOPPORTUNITYID, CONSTITUENTID, STARTDATE, ENDDATE, AMOUNT, QUANTITY, INSCRIPTION, SPECIALREQUEST, CONSTITUENTNAMEFORMATID, CUSTOMNAMEFORMAT, ORGANIZATIONAMOUNT, ORGANIZATIONEXCHANGERATEID, BASECURRENCYID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @NAMINGOPPORTUNITYID, @CONSTITUENTID, @STARTDATE, @ENDDATE, @AMOUNT, @QUANTITY, @INSCRIPTION, @SPECIALREQUEST, @CONSTITUENTNAMEFORMATID, @CUSTOMNAMEFORMAT, @ORGANIZATIONAMOUNT, @CURRENCYEXCHANGERATEID, @BASECURRENCYID, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
if @REVENUESPLITID is not null
insert into dbo.NAMINGOPPORTUNITYRECOGNITIONREVENUESPLIT(NAMINGOPPORTUNITYRECOGNITIONID, REVENUESPLITID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @REVENUESPLITID, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end