USP_DATAFORMTEMPLATE_ADD_NAMINGOPPORTUNITYRECOGNITION
The save procedure used by the add dataform template "Naming Opportunity Recognition Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@MGOPPORTUNITYLINKID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CONSTITUENTID | uniqueidentifier | IN | Constituent |
@CONSTITUENTNAMEFORMATID | uniqueidentifier | IN | Name format |
@CUSTOMNAMEFORMAT | nvarchar(100) | IN | Custom name format |
@STARTDATE | UDT_FUZZYDATE | IN | Recognition date |
@ENDDATE | UDT_FUZZYDATE | IN | Recognition ends |
@AMOUNT | money | IN | Recognition amount |
@QUANTITY | int | IN | Quantity |
@INSCRIPTION | nvarchar(max) | IN | Inscription |
@SPECIALREQUEST | nvarchar(max) | IN | Special request |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_NAMINGOPPORTUNITYRECOGNITION
(
@ID uniqueidentifier = null output,
@MGOPPORTUNITYLINKID uniqueidentifier,
@CONSTITUENTID uniqueidentifier = null,
@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
set nocount on;
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;
declare @NAMINGOPPORTUNITYID uniqueidentifier;
select @NAMINGOPPORTUNITYID = NAMINGOPPORTUNITYID from dbo.NAMINGOPPORTUNITYMGOPPORTUNITY where ID = @MGOPPORTUNITYLINKID;
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);
insert into dbo.NAMINGOPPORTUNITYRECOGNITIONMGLINK(NAMINGOPPORTUNITYRECOGNITIONID, MGOPPORTUNITYLINKID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @MGOPPORTUNITYLINKID, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;