USP_DATAFORMTEMPLATE_EDIT_ORGANIZATIONCURRENCYSETUP

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

Parameters

Parameter Parameter Type Mode Description
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@LOCALEID uniqueidentifier IN Locale
@NAME nvarchar(100) IN Name
@ISO4217 nvarchar(3) IN ISO code
@DECIMALDIGITS tinyint IN Decimal digits
@CURRENCYSYMBOL nvarchar(5) IN Currency symbol

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ORGANIZATIONCURRENCYSETUP
                (    
                    @CHANGEAGENTID uniqueidentifier = null,
                    @LOCALEID uniqueidentifier,    
                    @NAME nvarchar(100),
                    @ISO4217 nvarchar(3),
                    @DECIMALDIGITS tinyint,
                    @CURRENCYSYMBOL nvarchar(5)
                )
                as
                    set nocount on;

                    declare @CURRENTDATE datetime;

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

                    set @CURRENTDATE = getdate();

                    begin try                    

                        declare @IDTODELETE uniqueidentifier;


                        -- If another currency row has this ISO code, delete it.

                        select
                            @IDTODELETE = ID
                        from
                            dbo.CURRENCY
                        where
                            ISO4217 = @ISO4217
                            and ISORGANIZATIONCURRENCY = 0;

                        exec dbo.USP_CURRENCY_DELETEBYID_WITHCHANGEAGENTID @IDTODELETE, @CHANGEAGENTID;


                        -- If another currency row has this name, delete it.

                        set @IDTODELETE = null;
                        select
                            @IDTODELETE = ID
                        from
                            dbo.CURRENCY
                        where
                            NAME = @NAME
                            and ISORGANIZATIONCURRENCY = 0;

                        exec dbo.USP_CURRENCY_DELETEBYID_WITHCHANGEAGENTID @IDTODELETE, @CHANGEAGENTID;


                        -- Set the organization currency.


                        update
                            dbo.[CURRENCY]
                        set
                            [LOCALEID] = @LOCALEID,
                            [NAME] = @NAME,
                            [ISO4217] = @ISO4217,
                            [INACTIVE] = 0,
                            [DECIMALDIGITS] = @DECIMALDIGITS,
                            [CURRENCYSYMBOL] = @CURRENCYSYMBOL,
                            [SYMBOLDISPLAYSETTINGCODE] = 1,  -- always display symbol

                            [CHANGEDBYID] = @CHANGEAGENTID,
                            [DATECHANGED] = @CURRENTDATE
                        where
                            ISORGANIZATIONCURRENCY = 1;

                        if @@ROWCOUNT < 1                    -- no org currency in the DB, add one

                            insert into dbo.CURRENCY 
                            (
                                ID, 
                                NAME, 
                                INACTIVE, 
                                ISO4217, 
                                LOCALEID,
                                DECIMALDIGITS,
                                CURRENCYSYMBOL,
                                ROUNDINGTYPECODE,
                                SYMBOLDISPLAYSETTINGCODE,
                                ISORGANIZATIONCURRENCY,
                                ADDEDBYID, 
                                CHANGEDBYID, 
                                DATEADDED, 
                                DATECHANGED
                            )    
                            values
                            (
                                NEWID(),
                                @NAME
                                0,                            -- set as active

                                @ISO4217
                                @LOCALEID,
                                @DECIMALDIGITS,
                                @CURRENCYSYMBOL,
                                0,                            -- default rounding code

                                1,                            -- always display symbol

                                1,                            -- set as org currency

                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

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

                    return 0;