USP_DATAFORMTEMPLATE_EDIT_ADDPROSPECTPLANSPROCESS_3

The save procedure used by the edit dataform template "Add Prospect Plans Process 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(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_EDIT_ADDPROSPECTPLANSPROCESS_3 (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(100),
    @DESCRIPTION nvarchar(255),
    @IDSETREGISTERID uniqueidentifier,
    @PROSPECTMANAGERFUNDRAISERID uniqueidentifier,
    @PROSPECTPLANNAME nvarchar(100),
    @PROSPECTPLANTYPECODEID uniqueidentifier,
    @NARRATIVE nvarchar(1000),
    @PLANOUTLINEID uniqueidentifier,
    @STARTDATETYPECODE tinyint,
    @STARTDATE date,
    @DAYSBEFOREORAFTER int,
    @PRIMARYMANAGERFUNDRAISERID uniqueidentifier,
    @SECONDARYMANAGERFUNDRAISERID uniqueidentifier,
    @SECONDARYFUNDRAISERS xml,
    @SITES xml,
    @OPPORTUNITYTYPECODEID uniqueidentifier,
    @EXPECTEDASKAMOUNT money,
    @OPPORTUNITYDESIGNATIONS xml,
    @PROSPECTPLANCURRENCYSETID uniqueidentifier,
    @OPPORTUNITYTRANSACTIONCURRENCYID uniqueidentifier,
    @OPPORTUNITYSTATUSCODE tinyint,
  @PLANSTEPS xml
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    declare @CREATEOPPORTUNITIES bit
    declare @OPPORTUNITYDESIGNATIONCOUNT int

    --JamesWill 2011-04-15 Apply fix for 128750 to the edit form as well as the add form. 

    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;

        update dbo.ADDPROSPECTPLANSPROCESS set
            NAME = @NAME,
            DESCRIPTION = @DESCRIPTION,
            IDSETREGISTERID = @IDSETREGISTERID,
            PROSPECTMANAGERFUNDRAISERID = @PROSPECTMANAGERFUNDRAISERID,
            PROSPECTPLANNAME = @PROSPECTPLANNAME,
            PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID,
            NARRATIVE = @NARRATIVE,
      --this value is no longer stored in the DB; it's for adding steps on the fly

            --PLANOUTLINEID = @PLANOUTLINEID,

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

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

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

        exec dbo.USP_ADDPROSPECTPLANSPROCESS_OPPORTUNITYDESIGNATIONS_UPDATEFROMXML_ALWAYSADD @ID, @OPPORTUNITYDESIGNATIONS, @CHANGEAGENTID, @CURRENTDATE;
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;