USP_DATAFORMTEMPLATE_EDIT_MKTPACKAGE_2

The save procedure used by the edit dataform template "Package Edit Form 2".

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.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@CODE nvarchar(10) IN Code
@CHANNELCODE tinyint IN Channel
@CATEGORYCODEID uniqueidentifier IN Category
@COST money IN Unit cost
@SITEID uniqueidentifier IN Site
@CODEVALUEID uniqueidentifier IN Code value ID

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTPACKAGE_2]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @CODE nvarchar(10),
  @CHANNELCODE tinyint,
  @CATEGORYCODEID uniqueidentifier,
  @COST money,
  @SITEID uniqueidentifier,
  @CODEVALUEID uniqueidentifier
)
as
  set nocount on;

  declare @CURRENTSITEID uniqueidentifier;
    declare @CURRENCYEXCHANGERATEID uniqueidentifier;
    declare @ORGANIZATIONAMOUNT money;
    declare @ORGANIZATIONCURRENCYID uniqueidentifier;
  declare @BASECURRENCYID uniqueidentifier;
  declare @DATEADDED datetime;


  if exists(select top 1 1 from dbo.[MKTSEGMENTATIONSEGMENT] where [PACKAGEID] = @ID) or
     exists(select top 1 1 from dbo.[MKTPACKAGECREATIVE] where [PACKAGEID] = @ID)
    begin
      select @CURRENTSITEID = [SITEID] from dbo.[MKTPACKAGE] where [ID] = @ID;

      if (@CURRENTSITEID <> @SITEID or (@CURRENTSITEID is null and @SITEID is not null) or (@CURRENTSITEID is not null and @SITEID is null))
        begin
          raiserror('Site may not be changed on a package that is in use or has dependencies.', 13, 1);
          return 1;
        end;
    end;

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

        select @BASECURRENCYID = [BASECURRENCYID], @DATEADDED = [DATEADDED], @CURRENCYEXCHANGERATEID = [CURRENCYEXCHANGERATEID] from dbo.[MKTPACKAGE] where [ID] = @ID;

        set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
        begin
            set @ORGANIZATIONAMOUNT = @COST;
        end
        else
        begin
            if @CURRENCYEXCHANGERATEID is null
                set @CURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

            set @ORGANIZATIONAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@COST, @CURRENCYEXCHANGERATEID);
        end

    update
      dbo.[MKTPACKAGE]
    set
      [NAME] = @NAME,
      [DESCRIPTION] = @DESCRIPTION,
      [CODE] = @CODE,
      [PARTDEFINITIONVALUESID] = @CODEVALUEID,
      [CHANNELCODE] = @CHANNELCODE,
      [PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
      [UNITCOST] = @COST,
      [SITEID] = @SITEID,
      [CHANGEDBYID] = @CHANGEAGENTID,
            [CURRENCYEXCHANGERATEID] = @CURRENCYEXCHANGERATEID,
            [ORGANIZATIONUNITCOST] = @ORGANIZATIONAMOUNT

    where
      [ID] = @ID;
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;