USP_ORGANIZATIONCURRENCY_EDIT
Saves organization currency changes.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CHANGEAGENTID | uniqueidentifier | IN | |
@ORGANIZATIONCURRENCYID | uniqueidentifier | IN | |
@DEFAULTCURRENCYSETID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_ORGANIZATIONCURRENCY_EDIT
(
@CHANGEAGENTID uniqueidentifier = null,
@ORGANIZATIONCURRENCYID uniqueidentifier,
@DEFAULTCURRENCYSETID uniqueidentifier
)
with execute as caller
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
begin try
-- ORGANIZATIONCURRENCYID is required. Enforced at the web server level, but not at
-- the table level so also enforce it here
if @ORGANIZATIONCURRENCYID is null
begin
raiserror('BB_ERR_ORGANIZATIONCURRENCYREQUIRED : An organization currency is required.', 13, 1);
return 1;
end
-- DEFAULTCURRENCYSETID is required. Enforced at the web server level, but not at
-- the table level so also enforce it here
if @DEFAULTCURRENCYSETID is null
begin
raiserror('BB_ERR_DEFAULTCURRENCYSETREQUIRED : A default currency set is required.', 13, 1);
return 1;
end
-- the organization currency cannot be changed
declare @OLDORGANIZATIONCURRENCY uniqueidentifier;
select
@OLDORGANIZATIONCURRENCY = CURRENCY.ID
from
dbo.CURRENCY
where
CURRENCY.ISORGANIZATIONCURRENCY = 1;
if (@OLDORGANIZATIONCURRENCY is not null) and (@OLDORGANIZATIONCURRENCY <> @ORGANIZATIONCURRENCYID)
begin
raiserror('BB_ERR_ORGANIZATIONCURRENCYCANNOTCHANGE : The organization currency cannot be changed once it has been set.', 13, 1);
return 1;
end
update dbo.CURRENCY set
ISORGANIZATIONCURRENCY = 1,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ORGANIZATIONCURRENCYID;
-- don't change the row if the same currency set was chosen
declare @OLDDEFAULTCURRENCYSETID uniqueidentifier;
select
@OLDDEFAULTCURRENCYSETID = CURRENCYSET.ID
from
dbo.CURRENCYSET
where
CURRENCYSET.ISAPPUSERDEFAULT = 1;
if (@OLDDEFAULTCURRENCYSETID is null) or (@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
exec dbo.USP_CONDITIONSETTING_SETCONDITION
@NAME = N'Multicurrency',
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTDATE = @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;