USP_DATAFORMTEMPLATE_EDIT_NAMINGOPPORTUNITYREVENUERECOGNITION

The save procedure used by the edit dataform template "Naming Opportunity Revenue Recognition Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@NAMINGOPPORTUNITYID uniqueidentifier IN Naming opportunity
@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_NAMINGOPPORTUNITYREVENUERECOGNITION
                    (
                        @ID uniqueidentifier,
                        @NAMINGOPPORTUNITYID uniqueidentifier,
                        @CONSTITUENTID uniqueidentifier,
                        @CONSTITUENTNAMEFORMATID uniqueidentifier,
                        @CUSTOMNAMEFORMAT nvarchar(100),
                        @STARTDATE dbo.UDT_FUZZYDATE,
                        @ENDDATE dbo.UDT_FUZZYDATE,
                        @AMOUNT money,
                        @QUANTITY int,
                        @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;

                        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;

                        if @EXISTINGRECOGNITIONS + @QUANTITY > @MAXRECOGNITIONS
                            raiserror('ERR_TOOMANYRECOGNITIONS', 13, 1);
                        else
                            update dbo.NAMINGOPPORTUNITYRECOGNITION
                                set NAMINGOPPORTUNITYID = @NAMINGOPPORTUNITYID,
                                    CONSTITUENTID = @CONSTITUENTID,
                                    CONSTITUENTNAMEFORMATID = @CONSTITUENTNAMEFORMATID,
                                    CUSTOMNAMEFORMAT = @CUSTOMNAMEFORMAT,
                                    STARTDATE = @STARTDATE,
                                    ENDDATE = @ENDDATE,
                                    AMOUNT = @AMOUNT,
                                    QUANTITY = @QUANTITY,
                                    INSCRIPTION = @INSCRIPTION,
                                    SPECIALREQUEST = @SPECIALREQUEST,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CHANGEDATE
                            where ID = @ID;

                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;