USP_DATAFORMTEMPLATE_EDIT_APPEALBENEFIT

The save procedure used by the edit dataform template "Appeal Benefit Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@AMOUNT money IN Minimum gift amount
@BENEFITDETAILS xml IN Benefit

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_APPEALBENEFIT
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @AMOUNT money,
                        @BENEFITDETAILS xml
                    )
                    as                
                    begin

                        set nocount on;

                        begin try
                            declare @CURRENTDATE datetime;
                            declare @ORGANIZATIONAMOUNT money;
                            declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                            declare @BASECURRENCYID uniqueidentifier;

                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            set @CURRENTDATE = getdate();

                            select                                    
                            @BASECURRENCYID = APPEALBENEFIT.BASECURRENCYID
                                from dbo.APPEALBENEFIT
                            where 
                                ID = @ID;

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

                            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

                            update 
                                dbo.APPEALBENEFIT
                            set    
                                AMOUNT = @AMOUNT,
                                ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = getdate(),
                                BASECURRENCYID = @BASECURRENCYID,
                                ORGANIZATIONEXCHANGERATEID = @CURRENCYEXCHANGERATEID
                            where 
                                ID = @ID;

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

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0;
                    end