USP_DATAFORMTEMPLATE_ADD_ADVOCACY_PETITION

The save procedure used by the add dataform template "Advocacy Petition Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@ACTIONITEMID uniqueidentifier IN Actionitem
@CONSTITUENTID uniqueidentifier IN Constituent
@SITECONTENTID int IN SitecontentID
@FEDERALDISTRICTCODE varchar(4) IN Federal District Code
@UPPERSTATEDISTRICTCODE varchar(5) IN Upper District Code
@LOWERSTATEDISTRICTCODE varchar(5) IN Lower District Code
@ISANONYMOUS bit IN IsAnonymous

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ADVOCACY_PETITION
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @ACTIONITEMID uniqueidentifier,
    @CONSTITUENTID uniqueidentifier,
    @SITECONTENTID int,
    @FEDERALDISTRICTCODE varchar(4) = null,
      @UPPERSTATEDISTRICTCODE varchar(5) = null,
      @LOWERSTATEDISTRICTCODE varchar(5) = null,
    @ISANONYMOUS bit = 0
)
as

set nocount on;

--if @ID is null

    set @ID = newid()

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

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

declare @CURRENTCOUNT int
SELECT  @CURRENTCOUNT = PETITIONCOUNT FROM dbo.ACTIONITEMPETITION (NOLOCK) WHERE ACTIONITEMID = @ACTIONITEMID
SET @CURRENTCOUNT = ISNULL(@CURRENTCOUNT,0)

begin try
    -- handle inserting the data

  IF NOT EXISTS (SELECT 1 FROM dbo.ADVOCACYPETITION (NOLOCK) WHERE ACTIONITEMID = @ACTIONITEMID AND CONSTITUENTID = @CONSTITUENTID)
  BEGIN
    insert into dbo.ADVOCACYPETITION
        (ID, ACTIONITEMID, CONSTITUENTID, SITECONTENTID, FEDERALDISTRICTCODE, UPPERSTATEDISTRICTCODE, LOWERSTATEDISTRICTCODE, ISANONYMOUS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    values
        (@ID, @ACTIONITEMID, @CONSTITUENTID, @SITECONTENTID, @FEDERALDISTRICTCODE, @UPPERSTATEDISTRICTCODE, @LOWERSTATEDISTRICTCODE, @ISANONYMOUS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

    UPDATE ACTIONITEMPETITION 
    SET PETITIONCOUNT = @CURRENTCOUNT + 1
    WHERE ACTIONITEMID = @ACTIONITEMID

    UPDATE AI SET STATUSCODE = 2
    FROM dbo.ACTION_ITEM AI (NOLOCK)
    INNER JOIN dbo.ACTIONITEMPETITION AP (NOLOCK)
    ON AI.ID = AP.ACTIONITEMID
    WHERE AI.STATUSCODE = 1
    AND ISNULL(AP.GOAL,0) > 0
    AND AP.PETITIONCOUNT >= AP.GOAL
    AND AI.ID = @ACTIONITEMID
  END
end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0