USP_DATAFORMTEMPLATE_ADD_APPEALBENEFIT

The save procedure used by the add dataform template "Appeal Benefit Add Form".

Parameters

Parameter Parameter Type Mode Description
@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.
@APPEALID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@AMOUNT money IN Minimum gift amount
@BENEFITDETAILS xml IN Benefit

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_APPEALBENEFIT
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @APPEALID uniqueidentifier,
                        @AMOUNT money = 0,
                        @BENEFITDETAILS xml = null
                    )
                    as
                    begin
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONAMOUNT money;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select @BASECURRENCYID = APPEAL.BASECURRENCYID
                            from dbo.APPEAL
                        where
                            APPEAL.ID = @APPEALID;

                        IF @ID is null
                            set @ID = newid();

                        if @CHANGEAGENTID is null  
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        set @CURRENTDATE = getdate();

                        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                            begin
                                set @ORGANIZATIONAMOUNT = @AMOUNT;
                            end
                            else
                            begin
                                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                                set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @CURRENCYEXCHANGERATEID);
                            end
                        begin try
                            insert into dbo.APPEALBENEFIT
                                (
                                    ID,
                                    APPEALID,
                                    AMOUNT,
                                    ADDEDBYID,
                                    CHANGEDBYID,
                                    DATEADDED,
                                    DATECHANGED,
                                    BASECURRENCYID,
                                    ORGANIZATIONEXCHANGERATEID,
                                    ORGANIZATIONAMOUNT
                                )
                            values
                                (
                                    @ID,
                                    @APPEALID,
                                    @AMOUNT,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE,
                                    @BASECURRENCYID,
                                    @CURRENCYEXCHANGERATEID,
                                    @ORGANIZATIONAMOUNT
                                );

                            --add benefit details

                            set @BENEFITDETAILS = dbo.UFN_APPEALBENEFIT_CONVERTAMOUNTSINXML(@BENEFITDETAILS);
                            exec dbo.USP_APPEALBENEFIT_GETBENEFITDETAILS_3_ADDFROMXML @ID, @BENEFITDETAILS, @CHANGEAGENTID;
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0;

                    end