USP_DATAFORMTEMPLATE_EDIT_MKTMARKETINGPLANITEMASSUMPTIONS
The save procedure used by the edit dataform template "Marketing Plan Item Assumptions Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@BUDGETAMOUNT | money | IN | Budget amount |
@TOTALREVENUEGOAL | money | IN | Revenue |
@QUANTITY | int | IN | Quantity |
@RESPONSERATEGOAL | decimal(20, 2) | IN | Response rate |
@TOTALTRANSACTIONSGOAL | int | IN | Responses |
@ASSUMPTIONSLIST | xml | IN | Child assumptions |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTMARKETINGPLANITEMASSUMPTIONS]
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@BUDGETAMOUNT money,
@TOTALREVENUEGOAL money,
@QUANTITY int,
@RESPONSERATEGOAL decimal(20,2),
@TOTALTRANSACTIONSGOAL int,
@ASSUMPTIONSLIST xml
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONBUDGETAMOUNT money;
declare @ORGANIZATIONTOTALREVENUEGOAL money;
declare @DATEADDED datetime;
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
select @BASECURRENCYID = [BASECURRENCYID], @DATEADDED = [DATEASSUMPTIONSADDED] from dbo.[MKTMARKETINGPLANITEM] where [ID] = @ID;
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if @DATEADDED is null set @DATEADDED = @CURRENTDATE;
if @BASECURRENCYID = @ORGANIZATIONCURRENCYID
begin
set @CURRENCYEXCHANGERATEID = null;
set @ORGANIZATIONBUDGETAMOUNT = @BUDGETAMOUNT;
set @ORGANIZATIONTOTALREVENUEGOAL = @TOTALREVENUEGOAL;
end
else
begin
set @CURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);
set @ORGANIZATIONBUDGETAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@BUDGETAMOUNT, @CURRENCYEXCHANGERATEID);
set @ORGANIZATIONTOTALREVENUEGOAL = dbo.[UFN_CURRENCY_CONVERT](@TOTALREVENUEGOAL, @CURRENCYEXCHANGERATEID);
end
begin try
-- save the template items
update dbo.[MKTMARKETINGPLANITEM] set
[CURRENCYEXCHANGERATEID] = @CURRENCYEXCHANGERATEID,
[BUDGETAMOUNT] = @BUDGETAMOUNT,
[ORGANIZATIONBUDGETAMOUNT] = @ORGANIZATIONBUDGETAMOUNT,
[TOTALREVENUEGOAL] = @TOTALREVENUEGOAL,
[ORGANIZATIONTOTALREVENUEGOAL] = @ORGANIZATIONTOTALREVENUEGOAL,
[QUANTITY] = @QUANTITY,
[RESPONSERATEGOAL] = @RESPONSERATEGOAL,
[TOTALTRANSACTIONSGOAL] = @TOTALTRANSACTIONSGOAL,
[DATEASSUMPTIONSADDED] = isnull([DATEASSUMPTIONSADDED], @CURRENTDATE),
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
if @ASSUMPTIONSLIST is null
delete from dbo.[MKTMARKETINGPLANITEM] where [PARENTMARKETINGPLANITEMID] = @ID;
else
begin
exec dbo.[USP_MKTMARKETINGPLANITEM_GETCHILDASSUMPTIONSLIST_UPDATEFROMXML] @ID, @ASSUMPTIONSLIST, @CHANGEAGENTID, @CURRENTDATE;
if @BASECURRENCYID = @ORGANIZATIONCURRENCYID
update dbo.[MKTMARKETINGPLANITEM] set
[CURRENCYEXCHANGERATEID] = null,
[ORGANIZATIONBUDGETAMOUNT] = [BUDGETAMOUNT],
[ORGANIZATIONTOTALREVENUEGOAL] = [TOTALREVENUEGOAL],
[DATEASSUMPTIONSADDED] = isnull([DATEASSUMPTIONSADDED], @CURRENTDATE),
[DATECHANGED] = @CURRENTDATE
where [PARENTMARKETINGPLANITEMID] = @ID;
else
update dbo.[MKTMARKETINGPLANITEM] set
[CURRENCYEXCHANGERATEID] = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, isnull([DATEASSUMPTIONSADDED], @CURRENTDATE), 0, null),
[ORGANIZATIONBUDGETAMOUNT] = dbo.[UFN_CURRENCY_CONVERT]([BUDGETAMOUNT], dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, isnull([DATEASSUMPTIONSADDED], @CURRENTDATE), 0, null)),
[ORGANIZATIONTOTALREVENUEGOAL] = dbo.[UFN_CURRENCY_CONVERT]([TOTALREVENUEGOAL], dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, isnull([DATEASSUMPTIONSADDED], @CURRENTDATE), 0, null)),
[DATEASSUMPTIONSADDED] = isnull([DATEASSUMPTIONSADDED], @CURRENTDATE),
[DATECHANGED] = @CURRENTDATE
where [PARENTMARKETINGPLANITEMID] = @ID;
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;