USP_DATAFORMTEMPLATE_EDIT_MKTPACKAGE_PHONE

The save procedure used by the edit dataform template "Package Edit Form (Phone Channel)".

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
@SITEID uniqueidentifier IN Site
@CATEGORYCODEID uniqueidentifier IN Category
@COST money IN Base cost
@COSTDISTRIBUTIONMETHODCODE tinyint IN Distribution
@CODE nvarchar(10) IN Code
@DOCUMENTFILENAME nvarchar(255) IN Document
@DOCUMENTFILENAMEFORDISPLAY nvarchar(255) IN Document
@DOCUMENTFILE varbinary IN File
@DOCUMENTFILECHANGED bit IN File changed?
@EXPORTDEFINITIONID uniqueidentifier IN Export definition
@CODEVALUEID uniqueidentifier IN Code value ID
@CHANNELSOURCECODE nvarchar(10) IN Channel source code
@CHANNELSOURCECODEVALUEID uniqueidentifier IN Channel code value ID

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTPACKAGE_PHONE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @SITEID uniqueidentifier,
  @CATEGORYCODEID uniqueidentifier,
  @COST money,
  @COSTDISTRIBUTIONMETHODCODE tinyint,
  @CODE nvarchar(10),
  @DOCUMENTFILENAME nvarchar(255),
  @DOCUMENTFILENAMEFORDISPLAY nvarchar(255),
  @DOCUMENTFILE varbinary(max),
  @DOCUMENTFILECHANGED bit,
  @EXPORTDEFINITIONID uniqueidentifier,
  @CODEVALUEID uniqueidentifier,
  @CHANNELSOURCECODE nvarchar(10),
  @CHANNELSOURCECODEVALUEID 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.[MKTPACKAGE] where [ID] = @ID and [ISSYSTEM] = 1)
    begin
      raiserror('ERR_MKTPACKAGE_ISSYSTEMPACKAGE', 13, 1);
      return 1;
    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)
      set @ORGANIZATIONAMOUNT = @COST;
    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

    if @DOCUMENTFILECHANGED = 1
      update dbo.[MKTPACKAGE] set
        [NAME] = @NAME,
        [DESCRIPTION] = @DESCRIPTION,
        [SITEID] = @SITEID,
        [PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
        [UNITCOST] = @COST,
        [COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
        [CODE] = @CODE,
        [PARTDEFINITIONVALUESID] = @CODEVALUEID,
        [CHANNELSOURCECODE] = @CHANNELSOURCECODE,
        [CHANNELPARTDEFINITIONVALUESID] = @CHANNELSOURCECODEVALUEID,
        [DOCUMENTFILENAME] = @DOCUMENTFILENAME,
        [DOCUMENTFILE] = @DOCUMENTFILE,
        [EXPORTDEFINITIONID] = @EXPORTDEFINITIONID,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [CURRENCYEXCHANGERATEID] = @CURRENCYEXCHANGERATEID,
        [ORGANIZATIONUNITCOST] = @ORGANIZATIONAMOUNT
      where [ID] = @ID;
    else
      update dbo.[MKTPACKAGE] set
        [NAME] = @NAME,
        [DESCRIPTION] = @DESCRIPTION,
        [SITEID] = @SITEID,
        [PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
        [CHANNELSOURCECODE] = @CHANNELSOURCECODE,
        [CHANNELPARTDEFINITIONVALUESID] = @CHANNELSOURCECODEVALUEID,
        [UNITCOST] = @COST,
        [COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
        [CODE] = @CODE,
        [PARTDEFINITIONVALUESID] = @CODEVALUEID,
        [EXPORTDEFINITIONID] = @EXPORTDEFINITIONID,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [CURRENCYEXCHANGERATEID] = @CURRENCYEXCHANGERATEID,
        [ORGANIZATIONUNITCOST] = @ORGANIZATIONAMOUNT
      where [ID] = @ID;
  end try

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

  return 0;