USP_COMMUNICATIONLETTERACTIVITYEXCLUSIONS_CREATEORUPDATE

Create or update an instance of communication exclusions.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@IDSETREGISTERID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@COMMUNICATIONLETTERID uniqueidentifier IN
@EXCLUDEBASEDONRECENTCOMMUNICATION bit IN
@NUMRECENTCOMMUNICATIONPERIODS int IN
@RECENTCOMMUNICATIONPERIODTYPECODE tinyint IN
@EXCLUDEBASEDONTOTALCOMMUNICATIONSINPASTYEAR bit IN
@NUMTOTALCOMMUNICATIONSINPASTYEAR int IN
@EXCLUDEBASEDONRECENTGIVING bit IN
@NUMRECENTGIVINGPERIODS int IN
@RECENTGIVINGPERIODTYPECODE tinyint IN
@EXCLUDEBASEDONTOTALGIVINGINPASTYEAR bit IN
@TOTALREVENUEAMOUNTINPASTYEAR money IN
@COMMUNICATIONTYPES xml IN

Definition

Copy


create procedure dbo.USP_COMMUNICATIONLETTERACTIVITYEXCLUSIONS_CREATEORUPDATE
(
    @ID uniqueidentifier = null output,
    @IDSETREGISTERID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,    
    @COMMUNICATIONLETTERID uniqueidentifier,
    @EXCLUDEBASEDONRECENTCOMMUNICATION bit,
    @NUMRECENTCOMMUNICATIONPERIODS int,    
    @RECENTCOMMUNICATIONPERIODTYPECODE tinyint,
    @EXCLUDEBASEDONTOTALCOMMUNICATIONSINPASTYEAR bit,
    @NUMTOTALCOMMUNICATIONSINPASTYEAR int,
    @EXCLUDEBASEDONRECENTGIVING bit,
    @NUMRECENTGIVINGPERIODS int,    
    @RECENTGIVINGPERIODTYPECODE tinyint,
    @EXCLUDEBASEDONTOTALGIVINGINPASTYEAR bit,
    @TOTALREVENUEAMOUNTINPASTYEAR money,
    @COMMUNICATIONTYPES xml
)
as
begin

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

    declare @CURRENTDATE datetime = getDate();

    select
        @ID = ID,
        @IDSETREGISTERID = IDSETREGISTERID
    from dbo.COMMUNICATIONLETTERACTIVITYEXCLUSIONS
    where COMMUNICATIONLETTERID = @COMMUNICATIONLETTERID;

    exec dbo.USP_COMMUNICATIONLETTERACTIVITYEXCLUSIONS_CREATEORUPDATEIDSET
        @IDSETREGISTERID output,
        @CHANGEAGENTID,
        @EXCLUDEBASEDONRECENTCOMMUNICATION,
        @NUMRECENTCOMMUNICATIONPERIODS,    
        @RECENTCOMMUNICATIONPERIODTYPECODE,
        @EXCLUDEBASEDONTOTALCOMMUNICATIONSINPASTYEAR,
        @NUMTOTALCOMMUNICATIONSINPASTYEAR,
        @EXCLUDEBASEDONRECENTGIVING,
        @NUMRECENTGIVINGPERIODS,    
        @RECENTGIVINGPERIODTYPECODE,
        @EXCLUDEBASEDONTOTALGIVINGINPASTYEAR,
        @TOTALREVENUEAMOUNTINPASTYEAR,
        @COMMUNICATIONTYPES;

    if @ID is null
        begin
            set @ID = newID();

            insert into dbo.COMMUNICATIONLETTERACTIVITYEXCLUSIONS
                (ID, COMMUNICATIONLETTERID, IDSETREGISTERID, EXCLUDEBASEDONRECENTCOMMUNICATION, NUMRECENTCOMMUNICATIONPERIODS, RECENTCOMMUNICATIONPERIODTYPECODE, 
                 EXCLUDEBASEDONTOTALCOMMUNICATIONSINPASTYEAR, NUMTOTALCOMMUNICATIONSINPASTYEAR, EXCLUDEBASEDONRECENTGIVING, NUMRECENTGIVINGPERIODS,
                 RECENTGIVINGPERIODTYPECODE, EXCLUDEBASEDONTOTALGIVINGINPASTYEAR, TOTALREVENUEAMOUNTINPASTYEAR,
                 ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (@ID, @COMMUNICATIONLETTERID, @IDSETREGISTERID, @EXCLUDEBASEDONRECENTCOMMUNICATION, @NUMRECENTCOMMUNICATIONPERIODS, @RECENTCOMMUNICATIONPERIODTYPECODE
                 @EXCLUDEBASEDONTOTALCOMMUNICATIONSINPASTYEAR, @NUMTOTALCOMMUNICATIONSINPASTYEAR, @EXCLUDEBASEDONRECENTGIVING, @NUMRECENTGIVINGPERIODS,
                 @RECENTGIVINGPERIODTYPECODE, @EXCLUDEBASEDONTOTALGIVINGINPASTYEAR, @TOTALREVENUEAMOUNTINPASTYEAR,
                 @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

            exec dbo.USP_COMMUNICATIONLETTERACTIVITYEXCLUSION_GETCOMMUNICATIONTYPES_ADDFROMXML
                @ID,
                @COMMUNICATIONTYPES,
                @CHANGEAGENTID,
                @CURRENTDATE;        
        end
    else
        begin
            update dbo.COMMUNICATIONLETTERACTIVITYEXCLUSIONS set    
                COMMUNICATIONLETTERID = @COMMUNICATIONLETTERID,
                IDSETREGISTERID = @IDSETREGISTERID,
                EXCLUDEBASEDONRECENTCOMMUNICATION = @EXCLUDEBASEDONRECENTCOMMUNICATION,
                NUMRECENTCOMMUNICATIONPERIODS = @NUMRECENTCOMMUNICATIONPERIODS,
                RECENTCOMMUNICATIONPERIODTYPECODE = @RECENTCOMMUNICATIONPERIODTYPECODE,
                EXCLUDEBASEDONTOTALCOMMUNICATIONSINPASTYEAR = @EXCLUDEBASEDONTOTALCOMMUNICATIONSINPASTYEAR,
                NUMTOTALCOMMUNICATIONSINPASTYEAR = @NUMTOTALCOMMUNICATIONSINPASTYEAR,
                EXCLUDEBASEDONRECENTGIVING = @EXCLUDEBASEDONRECENTGIVING,
                NUMRECENTGIVINGPERIODS = @NUMRECENTGIVINGPERIODS,
                RECENTGIVINGPERIODTYPECODE = @RECENTGIVINGPERIODTYPECODE,
                EXCLUDEBASEDONTOTALGIVINGINPASTYEAR = @EXCLUDEBASEDONTOTALGIVINGINPASTYEAR,
                TOTALREVENUEAMOUNTINPASTYEAR = @TOTALREVENUEAMOUNTINPASTYEAR,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
            where ID = @ID;

            exec dbo.USP_COMMUNICATIONLETTERACTIVITYEXCLUSION_GETCOMMUNICATIONTYPES_UPDATEFROMXML
                @ID,
                @COMMUNICATIONTYPES,
                @CHANGEAGENTID,
                @CURRENTDATE;                
        end

end