USP_DATAFORMTEMPLATE_EDIT_ACTION_ITEM

The save procedure used by the edit dataform template "Action Item Edit Form".

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(250) IN Name
@SYNOPSIS nvarchar(4000) IN Synopsis
@DESCRIPTION nvarchar(max) IN Description
@TYPECODE tinyint IN Type
@STATUSCODE tinyint IN Status
@TOPICCODE tinyint IN Topic
@STARTDATE datetime IN Startdate
@ENDDATE datetime IN Enddate
@ISEMAILDELIVERY bit IN Isemaildelivery
@ISFAXDELIVERY bit IN Isfaxdelivery
@ISLETTERDELIVERY bit IN Isletterdelivery
@ISDELIVERYNONE bit IN Isdeliverynone
@ISFAXBACKUPFOREMAILSENABLED bit IN Isfaxbackupforemailsenabled
@ISEMAILBACKUPFORFAXENABLED bit IN Isemailbackupforfaxenabled
@TARGETOPTIONCODE tinyint IN Targetoption
@TARGETDATABASE nvarchar(100) IN Targetdatabase
@CONFIRMATIONTEXT nvarchar(max) IN Confirmationtext
@RESULTTEXT nvarchar(max) IN Resulttext
@FOLDERID int IN Folderid
@SUBJECT nvarchar(250) IN Subject
@MESSAGETEXT nvarchar(max) IN Messagetext
@INSTRUCTIONS nvarchar(1000) IN Instructions
@THANKYOUMESSAGETEXT nvarchar(max) IN Thankyoumessagetext
@SENDCOPYTONPO bit IN Sendcopytonpo
@OVERWRITECODE tinyint IN Overwritetype
@ISTOPOSTALCODEDEPENDENT bit IN IsToPostalcodeDependent
@ISCCPOSTALCODEDEPENDENT bit IN IsCCPostalcodeDependent
@PERSONALIZATIONCODE tinyint IN Persoanlizationtype
@SCHEDULEACTIVATION bit IN ScheduleActivation
@ISTODMADEPENDENT bit IN IsToDMADependent
@ISCCDMADEPENDENT bit IN IsCCDMADependent
@EMAILTEMPLATEID int IN EmailTemplateID

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ACTION_ITEM
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(250),
    @SYNOPSIS nvarchar(4000),
    @DESCRIPTION nvarchar(max),
    @TYPECODE tinyint,
    @STATUSCODE tinyint,
    @TOPICCODE tinyint,
    @STARTDATE datetime,
    @ENDDATE datetime,
    @ISEMAILDELIVERY bit,
    @ISFAXDELIVERY bit,
    @ISLETTERDELIVERY bit,
    @ISDELIVERYNONE bit,
    @ISFAXBACKUPFOREMAILSENABLED bit,
    @ISEMAILBACKUPFORFAXENABLED bit,
    @TARGETOPTIONCODE tinyint,
    @TARGETDATABASE nvarchar(100),
    @CONFIRMATIONTEXT nvarchar(max),
    @RESULTTEXT nvarchar(max),
    @FOLDERID int,
    @SUBJECT nvarchar(250),
    @MESSAGETEXT nvarchar(max),
    @INSTRUCTIONS nvarchar(1000),
    @THANKYOUMESSAGETEXT nvarchar(max),
    @SENDCOPYTONPO bit,
    @OVERWRITECODE tinyint,
    @ISTOPOSTALCODEDEPENDENT bit,
    @ISCCPOSTALCODEDEPENDENT bit,
--    @THANKYOUEMAILSUBJECT nvarchar(250),

--    @THANKYOUEMAILTEXT nvarchar(max),

    @PERSONALIZATIONCODE tinyint,
    @SCHEDULEACTIVATION bit,
    @ISTODMADEPENDENT bit,
    @ISCCDMADEPENDENT bit,
  @EMAILTEMPLATEID INT
)
as

    set nocount on;

  DECLARE @CURRENTSTATUSCODE tinyint

  SELECT @CURRENTSTATUSCODE = STATUSCODE FROM dbo.ACTION_ITEM WITH (NOLOCK) WHERE ID = @ID

  SET @CURRENTSTATUSCODE = ISNULL(@CURRENTSTATUSCODE,10)

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

    begin try

        -- handle updating the data

        IF @SCHEDULEACTIVATION = 0
        BEGIN
            SET @STARTDATE = NULL
            SET @ENDDATE = NULL
        END

        IF @STARTDATE = '9999-12-31 23:59:59'
            SET @STARTDATE = NULL

        IF @ENDDATE = '9999-12-31 23:59:59'
            SET @ENDDATE = NULL

        update dbo.ACTION_ITEM set
            NAME = @NAME,
            SYNOPSIS = @SYNOPSIS,
            DESCRIPTION = @DESCRIPTION,
            TYPECODE = @TYPECODE,
            STATUSCODE = @STATUSCODE,
            TOPICCODE = @TOPICCODE,
            STARTDATE = @STARTDATE,
            ENDDATE = @ENDDATE,
            ISEMAILDELIVERY = @ISEMAILDELIVERY,
            ISFAXDELIVERY = @ISFAXDELIVERY,
            ISLETTERDELIVERY = @ISLETTERDELIVERY,
            ISDELIVERYNONE = @ISDELIVERYNONE,
            ISFAXBACKUPFOREMAILSENABLED = @ISFAXBACKUPFOREMAILSENABLED,
            ISEMAILBACKUPFORFAXENABLED = @ISEMAILBACKUPFORFAXENABLED,
            TARGETOPTIONCODE = @TARGETOPTIONCODE,
            TARGETDATABASE = @TARGETDATABASE,
            CONFIRMATIONTEXT = @CONFIRMATIONTEXT,
            RESULTTEXT = @RESULTTEXT,
            ISTOPOSTALCODEDEPENDENT = @ISTOPOSTALCODEDEPENDENT,
            ISCCPOSTALCODEDEPENDENT = @ISCCPOSTALCODEDEPENDENT,
            SCHEDULEACTIVATION = @SCHEDULEACTIVATION,
            ISTODMADEPENDENT = @ISTODMADEPENDENT,
            ISCCDMADEPENDENT = @ISCCDMADEPENDENT,

            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = getdate()
        where ID = @ID

        -- update actionitem folder


        update dbo.ACTIONITEMFOLDER    set 
            FOLDERID = @FOLDERID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = getdate()
        where ACTIONITEMID = @ID

        IF EXISTS (select 1 from dbo.ACTIONITEMMESSAGETEXT where ACTIONITEMID = @ID)
        update dbo.ACTIONITEMMESSAGETEXT set
            SUBJECT = @SUBJECT,
            MESSAGETEXT = @MESSAGETEXT,
            INSTRUCTIONS = @INSTRUCTIONS,
            THANKYOUMESSAGETEXT = @THANKYOUMESSAGETEXT,
            SENDCOPYTONPO = @SENDCOPYTONPO,
            OVERWRITECODE = @OVERWRITECODE,
    --        THANKYOUEMAILSUBJECT = @THANKYOUEMAILSUBJECT,

    --        THANKYOUEMAILTEXT = @THANKYOUEMAILTEXT,

            PERSONALIZATIONCODE = @PERSONALIZATIONCODE,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = getdate(),
      EMAILTEMPLATEID = @EMAILTEMPLATEID
        where ACTIONITEMID = @ID

    IF @CURRENTSTATUSCODE = 0 AND @STATUSCODE = 1
    BEGIN
        UPDATE ACTIONITEMPETITION 
          SET PETITIONCOUNT = 0
          WHERE ACTIONITEMID = @ID

        DELETE FROM dbo.ADVOCACYPETITION WHERE ACTIONITEMID =  @ID;

        DELETE FROM dbo.ADVOCACYACTIVITY WHERE ACTIONITEMID = @ID;

        DELETE FROM dbo.ADVOCACYLOG WHERE ACTIONITEMID = @ID;

    END

    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;