USP_DATAFORMTEMPLATE_EDIT_NAMINGOPPORTUNITYRECOGNITION
The save procedure used by the edit dataform template "Naming Opportunity Recognition Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@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_EDIT_NAMINGOPPORTUNITYRECOGNITION
(
@ID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@CONSTITUENTNAMEFORMATID uniqueidentifier,
@CUSTOMNAMEFORMAT nvarchar(100),
@STARTDATE dbo.UDT_FUZZYDATE,
@ENDDATE dbo.UDT_FUZZYDATE,
@AMOUNT money,
@QUANTITY integer,
@INSCRIPTION nvarchar(max),
@SPECIALREQUEST nvarchar(max),
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
begin try
declare @CHANGEDATE datetime;
set @CHANGEDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CUSTOMNAMEFORMAT is null
set @CUSTOMNAMEFORMAT = '';
if not @CONSTITUENTNAMEFORMATID is null
set @CUSTOMNAMEFORMAT = '';
if @STARTDATE is null
set @STARTDATE = '00000000';
if @ENDDATE is null
set @ENDDATE = '00000000';
declare @EXISTINGRECOGNITIONS int;
declare @MAXRECOGNITIONS int;
declare @NAMINGOPPORTUNITYID uniqueidentifier;
select @NAMINGOPPORTUNITYID = NAMINGOPPORTUNITYID from dbo.NAMINGOPPORTUNITYRECOGNITION where ID = @ID;
select @MAXRECOGNITIONS = coalesce(QUANTITY, 0) from dbo.NAMINGOPPORTUNITY where ID = @NAMINGOPPORTUNITYID;
select @EXISTINGRECOGNITIONS = coalesce(sum(QUANTITY), 0) from dbo.NAMINGOPPORTUNITYRECOGNITION where NAMINGOPPORTUNITYID = @NAMINGOPPORTUNITYID and not ID = @ID;
declare @BASECURRENCYID uniqueidentifier;
declare @DATEADDED datetime;
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONAMOUNT money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select
@BASECURRENCYID = NAMINGOPPORTUNITYRECOGNITION.BASECURRENCYID,
@DATEADDED = NAMINGOPPORTUNITYRECOGNITION.DATEADDED,
@CURRENCYEXCHANGERATEID = NAMINGOPPORTUNITYRECOGNITION.ORGANIZATIONEXCHANGERATEID
from
dbo.NAMINGOPPORTUNITYRECOGNITION
where
NAMINGOPPORTUNITYRECOGNITION.ID = @ID;
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
begin
set @ORGANIZATIONAMOUNT = @AMOUNT;
end
else
begin
if @CURRENCYEXCHANGERATEID is null
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);
set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @CURRENCYEXCHANGERATEID);
end
if @EXISTINGRECOGNITIONS + @QUANTITY > @MAXRECOGNITIONS
raiserror('ERR_TOOMANYRECOGNITIONS', 13, 1);
else
update dbo.NAMINGOPPORTUNITYRECOGNITION
set CONSTITUENTID = @CONSTITUENTID,
CONSTITUENTNAMEFORMATID = @CONSTITUENTNAMEFORMATID,
CUSTOMNAMEFORMAT = @CUSTOMNAMEFORMAT,
STARTDATE = @STARTDATE,
ENDDATE = @ENDDATE,
AMOUNT = @AMOUNT,
QUANTITY = @QUANTITY,
INSCRIPTION = @INSCRIPTION,
SPECIALREQUEST = @SPECIALREQUEST,
ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID = @CURRENCYEXCHANGERATEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CHANGEDATE
where ID = @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;