USP_DATAFORMTEMPLATE_ADD_ADDPROSPECTPLANSPROCESS

The save procedure used by the add dataform template "Add Prospect Plans Process 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.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@IDSETREGISTERID uniqueidentifier IN Constituent selection
@PROSPECTMANAGERFUNDRAISERID uniqueidentifier IN Manager for new prospects
@PROSPECTPLANNAME nvarchar(100) IN Plan name
@PROSPECTPLANTYPECODEID uniqueidentifier IN Plan type
@NARRATIVE nvarchar(1000) IN Narrative
@PLANOUTLINEID uniqueidentifier IN Plan outline
@STARTDATETYPECODE tinyint IN Plan start date
@STARTDATE date IN
@DAYSBEFOREORAFTER int IN
@PRIMARYMANAGERFUNDRAISERID uniqueidentifier IN Primary manager
@SECONDARYMANAGERFUNDRAISERID uniqueidentifier IN Secondary manager
@SECONDARYFUNDRAISERS xml IN Secondary solicitors
@SITES xml IN Sites
@OPPORTUNITYTYPECODEID uniqueidentifier IN Opportunity type
@EXPECTEDASKAMOUNT money IN Expected ask amount
@OPPORTUNITYDESIGNATIONS xml IN Designations
@PROSPECTPLANCURRENCYSETID uniqueidentifier IN Plan base currency
@OPPORTUNITYTRANSACTIONCURRENCYID uniqueidentifier IN Opportunity transaction currency
@OPPORTUNITYSTATUSCODE tinyint IN Opportunity status
@PLANSTEPS xml IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ADDPROSPECTPLANSPROCESS
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @NAME nvarchar(100) = null,
    @DESCRIPTION nvarchar(255) = null,
    @IDSETREGISTERID uniqueidentifier = null,
    @PROSPECTMANAGERFUNDRAISERID uniqueidentifier = null,
    @PROSPECTPLANNAME nvarchar(100) = null,
    @PROSPECTPLANTYPECODEID uniqueidentifier = null,
    @NARRATIVE nvarchar(1000) = null,
    @PLANOUTLINEID uniqueidentifier = null,
    @STARTDATETYPECODE tinyint = 0,
    @STARTDATE date = null,
    @DAYSBEFOREORAFTER int = 1,
    @PRIMARYMANAGERFUNDRAISERID uniqueidentifier = null,
    @SECONDARYMANAGERFUNDRAISERID uniqueidentifier = null,
    @SECONDARYFUNDRAISERS xml = null,
    @SITES xml = null,
    @OPPORTUNITYTYPECODEID uniqueidentifier = null,
    @EXPECTEDASKAMOUNT money = 0,
    @OPPORTUNITYDESIGNATIONS xml = null,
    @PROSPECTPLANCURRENCYSETID uniqueidentifier = null,
    @OPPORTUNITYTRANSACTIONCURRENCYID uniqueidentifier = null,
    @OPPORTUNITYSTATUSCODE tinyint = 0,
  @PLANSTEPS xml = null
)
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 @CREATEOPPORTUNITIES bit
declare @OPPORTUNITYDESIGNATIONCOUNT int

select @OPPORTUNITYDESIGNATIONCOUNT=COUNT(*) FROM @OPPORTUNITYDESIGNATIONS.nodes('/DESIGNATION/ITEM') T(c) 

if (@EXPECTEDASKAMOUNT > 0) or (@OPPORTUNITYDESIGNATIONCOUNT > 1)
    set @CREATEOPPORTUNITIES = 1
else
    set @CREATEOPPORTUNITIES = 0

begin try
    exec dbo.USP_OPPORTUNITY_VALIDATEDESIGNATIONS @OPPORTUNITYDESIGNATIONS;

    insert into dbo.ADDPROSPECTPLANSPROCESS
        (ID,
         NAME,
         DESCRIPTION,
         IDSETREGISTERID,
         PROSPECTMANAGERFUNDRAISERID,
         PROSPECTPLANNAME,
         PROSPECTPLANTYPECODEID,
         NARRATIVE,
     --this value is no longer stored in the DB; it's for adding steps on the fly

         --PLANOUTLINEID,

         STARTDATETYPECODE,
         STARTDATE,
         DAYSBEFOREORAFTER,
         PRIMARYMANAGERFUNDRAISERID,
         SECONDARYMANAGERFUNDRAISERID,
         CREATEOPPORTUNITIES,
         OPPORTUNITYTYPECODEID,
         EXPECTEDASKAMOUNT,
         PROSPECTPLANCURRENCYSETID,
         OPPORTUNITYTRANSACTIONCURRENCYID,
         OPPORTUNITYSTATUSCODE,
         ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, PLANSTEPS)
    values
        (@ID,
         @NAME
         @DESCRIPTION
         @IDSETREGISTERID
         @PROSPECTMANAGERFUNDRAISERID,
         @PROSPECTPLANNAME
         @PROSPECTPLANTYPECODEID
         @NARRATIVE
         --@PLANOUTLINEID, 

         @STARTDATETYPECODE,
         case @STARTDATETYPECODE when 1 then @STARTDATE end,
         case when @STARTDATETYPECODE in (2,3) then @DAYSBEFOREORAFTER else 0 end,
         @PRIMARYMANAGERFUNDRAISERID
         @SECONDARYMANAGERFUNDRAISERID,
         @CREATEOPPORTUNITIES,
         @OPPORTUNITYTYPECODEID,
         @EXPECTEDASKAMOUNT,
         @PROSPECTPLANCURRENCYSETID,
         @OPPORTUNITYTRANSACTIONCURRENCYID,
         @OPPORTUNITYSTATUSCODE,
         @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @PLANSTEPS)

    exec dbo.USP_ADDPROSPECTPLANSPROCESS_SECONDARYFUNDRAISERS_ADDFROMXML @ID, @SECONDARYFUNDRAISERS, @CHANGEAGENTID, @CURRENTDATE;

    exec dbo.USP_ADDPROSPECTPLANSPROCESS_SITES_ADDFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE;

    exec dbo.USP_ADDPROSPECTPLANSPROCESS_OPPORTUNITYDESIGNATIONS_2_ADDFROMXML @ID, @OPPORTUNITYDESIGNATIONS, @CHANGEAGENTID, @CURRENTDATE;

    exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD 
        @CHANGEAGENTID = @CHANGEAGENTID
        @BUSINESSPROCESSCATALOGID = '59ba0c29-3410-4c65-adf8-25242a005ebc'
        @BUSINESSPROCESSPARAMETERSETID = @ID
        @OWNERID = @CURRENTAPPUSERID;
end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0