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;