USP_DATAFORMTEMPLATE_EDIT_ORGANIZATIONCURRENCY

The save procedure used by the edit dataform template "Organization Currency Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CURRENCYID uniqueidentifier IN Currency
@DEFAULTCURRENCYSETID uniqueidentifier IN Default currency set

Definition

Copy


create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ORGANIZATIONCURRENCY (
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENCYID uniqueidentifier,
    @DEFAULTCURRENCYSETID uniqueidentifier
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try

        -- don't change anything if the same currency was chosen

        declare @OLDORGCURRENCY uniqueidentifier
        select 
            @OLDORGCURRENCY = CURRENCY.ID
        from
            dbo.CURRENCY
        where
            CURRENCY.ISORGANIZATIONCURRENCY = 1;

        if @OLDORGCURRENCY <> @CURRENCYID
            begin            
                update dbo.CURRENCY set
                    ISORGANIZATIONCURRENCY = 0,
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                where
                    ISORGANIZATIONCURRENCY = 1;

                update dbo.CURRENCY set
                    ISORGANIZATIONCURRENCY = 1,
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                where
                    ID = @CURRENCYID;
            end

        -- don't change anything if the same currency set was chosen

        declare @OLDDEFAULTCURRENCYSETID uniqueidentifier
        select 
            @OLDDEFAULTCURRENCYSETID = CURRENCYSET.ID
        from
            dbo.CURRENCYSET
        where
            CURRENCYSET.ISAPPUSERDEFAULT = 1;

        if @OLDDEFAULTCURRENCYSETID <> @DEFAULTCURRENCYSETID
            begin            
                update dbo.CURRENCYSET set
                    ISAPPUSERDEFAULT = 0,
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                where
                    ISAPPUSERDEFAULT = 1;

                update dbo.CURRENCYSET set
                    ISAPPUSERDEFAULT = 1,
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                where
                    ID = @DEFAULTCURRENCYSETID;
            end

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

    return 0;