USP_MKTSEGMENTATIONBUDGET_UPDATE
Updates a marketing effort's budget information.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@BUDGETAMOUNT | money | IN | |
@FIXEDCOST | money | IN |
Definition
Copy
CREATE procedure dbo.USP_MKTSEGMENTATIONBUDGET_UPDATE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@BUDGETAMOUNT money,
@FIXEDCOST money
)
as
set nocount on;
declare @ORGANIZATIONCURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONBUDGETAMOUNT money;
declare @ORGANIZATIONFIXEDCOST money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @DATEADDED datetime;
begin try
if (select [ACTIVE] from dbo.[MKTSEGMENTATION] where [ID] = @ID) = 0
--Check if the mailing is currently being activated...
exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @ID;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
select @BASECURRENCYID = [BASECURRENCYID], @DATEADDED = [DATEADDED], @ORGANIZATIONCURRENCYEXCHANGERATEID = [ORGANIZATIONCURRENCYEXCHANGERATEID] from dbo.[MKTSEGMENTATIONBUDGET] where [ID] = @ID;
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
begin
set @ORGANIZATIONBUDGETAMOUNT = @BUDGETAMOUNT;
set @ORGANIZATIONFIXEDCOST = @FIXEDCOST;
end
else
begin
if @ORGANIZATIONCURRENCYEXCHANGERATEID is null
set @ORGANIZATIONCURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);
set @ORGANIZATIONBUDGETAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@BUDGETAMOUNT, @ORGANIZATIONCURRENCYEXCHANGERATEID);
set @ORGANIZATIONFIXEDCOST = dbo.[UFN_CURRENCY_CONVERT](@FIXEDCOST, @ORGANIZATIONCURRENCYEXCHANGERATEID);
end
update dbo.[MKTSEGMENTATIONBUDGET] set
[BUDGETAMOUNT] = @BUDGETAMOUNT,
[FIXEDCOST] = @FIXEDCOST,
[CHANGEDBYID] = @CHANGEAGENTID,
[ORGANIZATIONFIXEDCOST] = @ORGANIZATIONFIXEDCOST,
[ORGANIZATIONBUDGETAMOUNT] = @ORGANIZATIONBUDGETAMOUNT,
[ORGANIZATIONCURRENCYEXCHANGERATEID] = @ORGANIZATIONCURRENCYEXCHANGERATEID
where [ID] = @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;