USP_REVENUE_ADDORIGIN

Adds campaigns to a revenue transaction.

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@ORIGINCODE tinyint IN

Definition

Copy


CREATE procedure dbo.USP_REVENUE_ADDORIGIN
(
  @REVENUEID uniqueidentifier,
  @CONSTITUENTID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @CHANGEDATE datetime = null,
  @ORIGINCODE tinyint = 0
)
as
  set nocount on

  --If there is no constituent or revenueid then exit

  if (@CONSTITUENTID is null or @REVENUEID is null)
    return 0;

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

  if @CHANGEDATE is null
    set @CHANGEDATE = getdate();

  set @ORIGINCODE = coalesce(@ORIGINCODE, 0);

  declare @SOURCECODEID uniqueidentifier;
  if @ORIGINCODE = 0
    set @SOURCECODEID = dbo.UFN_ORIGINATIONSETTING_GETREVENUESOURCECODEID();

  merge 
    dbo.CONSTITUENTORIGINATION as TARGET
  using
      (select @CONSTITUENTID as ID) as [SOURCE]
  on
    TARGET.ID  = [SOURCE].ID
  when matched and
        TARGET.INFOSOURCECODEID is null and
        TARGET.REVENUEID is null and
        coalesce(TARGET.ORIGINCODE, 0) = 0 then
    update set
      INFOSOURCECODEID = @SOURCECODEID,
      REVENUEID = @REVENUEID,
      ORIGINCODE = @ORIGINCODE,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CHANGEDATE

  when not matched by TARGET then
    insert(ID, INFOSOURCECODEID, REVENUEID, ORIGINCODE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    values(@CONSTITUENTID, @SOURCECODEID, @REVENUEID, @ORIGINCODE, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);