USP_DIRECTMARKETINGEFFORTBATCHROW_DELETE

Executes the "Direct Marketing Effort Batch Row: Delete" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.

Definition

Copy


CREATE procedure dbo.[USP_DIRECTMARKETINGEFFORTBATCHROW_DELETE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier
)
as
  set nocount on;

  declare @BATCHID uniqueidentifier;
  declare @BATCHSEGMENTID uniqueidentifier;
  declare @BATCHPACKAGEID uniqueidentifier;
  declare @BATCHLISTID uniqueidentifier;
  declare @BATCHTESTSEGMENTID uniqueidentifier;

  select
    @BATCHID = [BATCHID],
    @BATCHSEGMENTID = [BATCHDIRECTMARKETINGEFFORTSEGMENTID],
    @BATCHPACKAGEID = [BATCHDIRECTMARKETINGEFFORTPACKAGEID],
    @BATCHLISTID = [BATCHDIRECTMARKETINGEFFORTLISTID],
    @BATCHTESTSEGMENTID = [BATCHDIRECTMARKETINGEFFORTTESTSEGMENTID]
  from dbo.[BATCHDIRECTMARKETINGEFFORT]
  where [ID] = @ID;


  --Delete the batch row first to avoid foreign key violations from the child tables...

  exec dbo.[USP_BATCHDIRECTMARKETINGEFFORT_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;


  --Now delete the rows in the child tables, but only if they are not being used by another row in the batch...

  if @BATCHSEGMENTID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTSEGMENTID] = @BATCHSEGMENTID and [ID] <> @ID)
    exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTSEGMENT_DELETEBYID_WITHCHANGEAGENTID] @BATCHSEGMENTID, @CHANGEAGENTID;

  if @BATCHPACKAGEID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTPACKAGEID] = @BATCHPACKAGEID and [ID] <> @ID)
    exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTPACKAGE_DELETEBYID_WITHCHANGEAGENTID] @BATCHPACKAGEID, @CHANGEAGENTID;

  if @BATCHLISTID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTLISTID] = @BATCHLISTID and [ID] <> @ID)
    exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTLIST_DELETEBYID_WITHCHANGEAGENTID] @BATCHLISTID, @CHANGEAGENTID;

  if @BATCHTESTSEGMENTID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTTESTSEGMENTID] = @BATCHTESTSEGMENTID and [ID] <> @ID)
    exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTTESTSEGMENT_DELETEBYID_WITHCHANGEAGENTID] @BATCHTESTSEGMENTID, @CHANGEAGENTID;


  return 0;