USP_MKTPACKAGE_EMAIL_SAVE

Saves an email channel package.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(255) IN
@CODE nvarchar(10) IN
@CATEGORYCODEID uniqueidentifier IN
@COST money IN
@COSTDISTRIBUTIONMETHODCODE tinyint IN
@SITEID uniqueidentifier IN
@NETCOMMUNITYTEMPLATEID int IN
@NETCOMMUNITYDATASOURCEID int IN
@EXPORTDEFINITIONID uniqueidentifier IN
@CODEVALUEID uniqueidentifier IN
@CHANNELSOURCECODE nvarchar(10) IN
@CHANNELSOURCECODEVALUEID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTPACKAGE_EMAIL_SAVE]
(
  @ID uniqueidentifier = null output,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @CODE nvarchar(10),
  @CATEGORYCODEID uniqueidentifier,
  @COST money,
  @COSTDISTRIBUTIONMETHODCODE tinyint,
  @SITEID uniqueidentifier,
  @NETCOMMUNITYTEMPLATEID integer,
  @NETCOMMUNITYDATASOURCEID integer,
  @EXPORTDEFINITIONID uniqueidentifier,
  @CODEVALUEID uniqueidentifier,
  @CHANNELSOURCECODE nvarchar(10),
  @CHANNELSOURCECODEVALUEID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier = null
)
as
  begin
    set nocount on;

    declare @CURRENTDATE datetime;
    declare @CURRENTSITEID uniqueidentifier;

    if exists (select top 1 1 from dbo.[MKTPACKAGE] where [ID] = @ID and [ISSYSTEM] = 1)
      begin
        raiserror('ERR_MKTPACKAGE_ISSYSTEMPACKAGE', 13, 1);
        return 1;
      end

    set @CURRENTDATE = getdate();

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

    begin try
      if exists(select top 1 1 from dbo.[MKTPACKAGE] where [ID] = @ID)
        update
          dbo.[MKTPACKAGE]
        set
          [NAME] = @NAME,
          [DESCRIPTION] = @DESCRIPTION,
          [CODE] = @CODE,
          [PARTDEFINITIONVALUESID] = @CODEVALUEID,
          [CHANNELSOURCECODE] = @CHANNELSOURCECODE,
          [CHANNELPARTDEFINITIONVALUESID] = @CHANNELSOURCECODEVALUEID,
          [PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
          [UNITCOST] = @COST,
          [COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
          [SITEID] = @SITEID,
          [NETCOMMUNITYTEMPLATEID] = @NETCOMMUNITYTEMPLATEID,
          [NETCOMMUNITYDATASOURCEID] = @NETCOMMUNITYDATASOURCEID,
          [EXPORTDEFINITIONID] = @EXPORTDEFINITIONID,
          [CHANGEDBYID] = @CHANGEAGENTID,
          [DATECHANGED] = @CURRENTDATE
        where
          [ID] = @ID;
      else
        begin
          if @ID is null
            set @ID = newid();

          declare @BASECURRENCYID uniqueidentifier;
          set @BASECURRENCYID = dbo.[UFN_APPUSER_GETBASECURRENCY](@CURRENTAPPUSERID);

          declare @CURRENCYEXCHANGERATEID uniqueidentifier;
          declare @ORGANIZATIONAMOUNT money;
          declare @ORGANIZATIONCURRENCYID uniqueidentifier;
          set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

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

          insert into dbo.[MKTPACKAGE] (
            [ID],
            [NAME],
            [DESCRIPTION],
            [CODE],
            [PARTDEFINITIONVALUESID],
            [CHANNELSOURCECODE],
            [CHANNELPARTDEFINITIONVALUESID],
            [CHANNELCODE],
            [PACKAGECATEGORYCODEID],
            [UNITCOST],
            [COSTDISTRIBUTIONMETHODCODE],
            [SITEID],
            [NETCOMMUNITYTEMPLATEID],
            [NETCOMMUNITYDATASOURCEID],
            [EXPORTDEFINITIONID],
            [ADDEDBYID],
            [CHANGEDBYID],
            [DATEADDED],
            [DATECHANGED],
            [BASECURRENCYID],
            [ORGANIZATIONUNITCOST],
            [CURRENCYEXCHANGERATEID]
          ) values (
            @ID,
            @NAME,
            @DESCRIPTION,
            @CODE,
            @CODEVALUEID,
            @CHANNELSOURCECODE,
            @CHANNELSOURCECODEVALUEID,
            1, -- Email

            @CATEGORYCODEID,
            @COST,
            @COSTDISTRIBUTIONMETHODCODE,
            @SITEID,
            @NETCOMMUNITYTEMPLATEID,
            @NETCOMMUNITYDATASOURCEID,
            @EXPORTDEFINITIONID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE,
            @BASECURRENCYID,
            @ORGANIZATIONAMOUNT,
            @CURRENCYEXCHANGERATEID
          )
      end;
    end try

    begin catch
      exec dbo.[USP_RAISE_ERROR];
      return 1;
    end catch

    return 0;
  end;