USP_DATAFORMTEMPLATE_ADD_NAMINGOPPORTUNITY

The save procedure used by the add dataform template "Naming Opportunity Add Form".

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@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.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(100) IN Description
@TYPECODEID uniqueidentifier IN Type
@CONTACTID uniqueidentifier IN Contact
@QUANTITY int IN Quantity
@PURPOSEID uniqueidentifier IN Fundraising purpose
@FACILITYID uniqueidentifier IN Facility
@CAMPAIGNID uniqueidentifier IN Campaign
@MINIMUMAMOUNT money IN Minimum gift amount
@SITEID uniqueidentifier IN Site
@COMMENTS nvarchar(max) IN Comments
@SPECIALHANDLING nvarchar(max) IN Special handling

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_NAMINGOPPORTUNITY
                    (
                        @CURRENTAPPUSERID uniqueidentifier,
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @NAME nvarchar(100),
                        @DESCRIPTION nvarchar(100) = null,
                        @TYPECODEID uniqueidentifier = null,
                        @CONTACTID uniqueidentifier = null,
                        @QUANTITY int = 1,
                        @PURPOSEID uniqueidentifier,
                        @FACILITYID uniqueidentifier = null,
                        @CAMPAIGNID uniqueidentifier = null,
                        @MINIMUMAMOUNT money = 0,
                        @SITEID uniqueidentifier = null,
                        @COMMENTS nvarchar(max) = '',
                        @SPECIALHANDLING nvarchar(max) = ''
                    )
                    as
                    set nocount on;

                    begin try
                        if @SITEID is null
                        begin 
                            if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 
                            begin
                                raiserror('Site is required.',13,1)
                                return
                            end
                        end

                        declare @CHANGEDATE datetime;

                        if @ID is null
                            set @ID = newid();
                        if @CHANGEAGENTID is null
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
                        set @CHANGEDATE = getdate();

                        if @QUANTITY > 999999999
                            raiserror('ERR_QUANTITYINVALID', 13, 1);
                        else begin

                            declare @BASECURRENCYID uniqueidentifier;
                            declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONMINIMUMAMOUNT money;
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select
                                @BASECURRENCYID = (select CURRENCYSET.BASECURRENCYID from dbo.CURRENCYSET where ID = dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID));

                            if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                            begin
                                set @ORGANIZATIONMINIMUMAMOUNT = @MINIMUMAMOUNT;
                            end
                            else
                            begin
                                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CHANGEDATE, 0, null);
                                set @ORGANIZATIONMINIMUMAMOUNT = dbo.UFN_CURRENCY_CONVERT(@MINIMUMAMOUNT, @CURRENCYEXCHANGERATEID);
                            end

                            insert into dbo.NAMINGOPPORTUNITY
                            (
                                ID,
                                NAME,
                                DESCRIPTION,
                                NAMINGOPPORTUNITYTYPECODEID,
                                CONTACTID,
                                QUANTITY,
                                PURPOSEID,
                                FACILITYID,
                                CAMPAIGNID,
                                MINIMUMAMOUNT,
                                SITEID,
                                COMMENTS,
                                SPECIALHANDLING,
                                ORGANIZATIONMINIMUMAMOUNT,
                                ORGANIZATIONEXCHANGERATEID,
                                BASECURRENCYID,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                @ID,
                                @NAME,
                                @DESCRIPTION,
                                @TYPECODEID,
                                @CONTACTID,
                                @QUANTITY,
                                @PURPOSEID,
                                @FACILITYID,
                                @CAMPAIGNID,
                                @MINIMUMAMOUNT,
                                @SITEID,
                                @COMMENTS,
                                @SPECIALHANDLING,
                                @ORGANIZATIONMINIMUMAMOUNT,
                                @CURRENCYEXCHANGERATEID,
                                @BASECURRENCYID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CHANGEDATE,
                                @CHANGEDATE
                            );
                        end                        
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;