USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPLEVELTERMS

The save procedure used by the edit dataform template "Membership Level Terms Edit Data 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.
@TERMS xml IN Terms

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPLEVELTERMS 
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @TERMS XML
                )
                as

                    set nocount on;

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

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        if exists (
                            select 1
                            from @TERMS.nodes('/TERMS/ITEM') T(terms)
                            where T.terms.value('(AMOUNT)[1]','money') is null
                        )
                            raiserror('BBERR_INVALIDTERMAMOUNT', 13, 1);

                        select
                            @BASECURRENCYID = ML.BASECURRENCYID
                        from
                            dbo.MEMBERSHIPLEVEL ML
                        where
                            ML.ID = @ID;

                        if (@ORGANIZATIONCURRENCYID <> @BASECURRENCYID)
                        begin
                            set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                        end

                        set @TERMS = dbo.UFN_MEMBERSHIPLEVELTERMS_CONVERTAMOUNTSINXML(@TERMS, @BASECURRENCYID, @ORGANIZATIONEXCHANGERATEID)
                        exec dbo.USP_MEMBERSHIPLEVEL_GETTERMS_2_UPDATEFROMXML @ID, @TERMS, @CHANGEAGENTID, @CURRENTDATE;

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

                return 0;