USP_DATAFORMTEMPLATE_ADD_PLEDGEFROMOPPORTUNITY

The save procedure used by the add dataform template "Pledge From Opportunity 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.
@CONSTITUENTID uniqueidentifier IN Constituent
@DATE datetime IN Date
@AMOUNT money IN Amount
@POSTSTATUSCODE tinyint IN Post status
@POSTDATE datetime IN Post date
@SENDPLEDGEREMINDER bit IN Send reminders
@SPLITS xml IN Designations
@FREQUENCYCODE tinyint IN Frequency
@NUMBEROFINSTALLMENTS int IN No. installments
@STARTDATE datetime IN Starting on
@INSTALLMENTS xml IN
@AUTOPAY bit IN Pay installments automatically by:
@PAYMENTMETHODCODE tinyint IN Payment method
@CARDHOLDERNAME nvarchar(255) IN Name on card
@CREDITCARDNUMBER nvarchar(20) IN Card number
@CREDITTYPECODEID uniqueidentifier IN Card type
@EXPIRESON UDT_FUZZYDATE IN Expires on
@REFERENCEDATE UDT_FUZZYDATE IN Reference date
@REFERENCENUMBER nvarchar(20) IN Reference number
@CONSTITUENTACCOUNTID uniqueidentifier IN Account
@FINDERNUMBER bigint IN Finder number
@SOURCECODE nvarchar(50) IN Source code
@APPEALID uniqueidentifier IN Appeal
@BENEFITS xml IN Benefits
@BENEFITSWAIVED bit IN Benefits waived
@GIVENANONYMOUSLY bit IN Pledge is anonymous
@MAILINGID uniqueidentifier IN Effort
@CHANNELCODEID uniqueidentifier IN Inbound channel
@DONOTACKNOWLEDGE bit IN Do not acknowledge
@PLEDGESUBTYPEID uniqueidentifier IN Pledge subtype
@OPPORTUNITYID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@REFERENCE nvarchar(255) IN Reference
@CATEGORYCODEID uniqueidentifier IN Revenue category
@CREDITCARDTOKEN uniqueidentifier IN Credit card token
@STANDINGORDERSETUP bit IN Standing order has been setup
@STANDINGORDERSETUPDATE datetime IN Setup on
@DDISOURCECODEID uniqueidentifier IN DDI source
@DDISOURCEDATE date IN DDI source date
@PERCENTAGEBENEFITS xml IN Benefits
@PDACCOUNTSYSTEMID uniqueidentifier IN Account system
@TRANSACTIONCURRENCYID uniqueidentifier IN Transaction currency
@BASEEXCHANGERATEID uniqueidentifier IN Exchange rate ID
@EXCHANGERATE decimal(20, 8) IN Exchange rate
@SEPAMANDATEID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PLEDGEFROMOPPORTUNITY
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier,
    @CONSTITUENTID uniqueidentifier,
    @DATE datetime,
    @AMOUNT money,
    @POSTSTATUSCODE tinyint = 1,
    @POSTDATE datetime = null,
    @SENDPLEDGEREMINDER bit = 1,
    @SPLITS xml,
    @FREQUENCYCODE tinyint = 5,
    @NUMBEROFINSTALLMENTS int = 1,
    @STARTDATE datetime = null,
    @INSTALLMENTS xml = null,
    @AUTOPAY bit = 0,
    @PAYMENTMETHODCODE tinyint = 2,
    @CARDHOLDERNAME nvarchar(255) = '',
    @CREDITCARDNUMBER nvarchar(20) = '',
    @CREDITTYPECODEID uniqueidentifier = null,
    @EXPIRESON dbo.UDT_FUZZYDATE = '00000000',
    @REFERENCEDATE dbo.UDT_FUZZYDATE = '00000000',
    @REFERENCENUMBER nvarchar(20) = '',
    @CONSTITUENTACCOUNTID uniqueidentifier = null,
    @FINDERNUMBER bigint = null,
    @SOURCECODE nvarchar(50) = null,
    @APPEALID uniqueidentifier = null,
    @BENEFITS xml = null,
    @BENEFITSWAIVED bit = 0,
    @GIVENANONYMOUSLY bit = null,
    @MAILINGID uniqueidentifier = null,
    @CHANNELCODEID uniqueidentifier = null,
    @DONOTACKNOWLEDGE bit = 0,
    @PLEDGESUBTYPEID uniqueidentifier = null,
    @OPPORTUNITYID uniqueidentifier,
    @REFERENCE nvarchar(255) = null,
    @CATEGORYCODEID uniqueidentifier = null,
    @CREDITCARDTOKEN uniqueidentifier = null,
    @STANDINGORDERSETUP bit = 0,
    @STANDINGORDERSETUPDATE datetime = null,
    @DDISOURCECODEID uniqueidentifier = null,
    @DDISOURCEDATE date = null,
    @PERCENTAGEBENEFITS xml = null,
    @PDACCOUNTSYSTEMID uniqueidentifier  = null,
    @TRANSACTIONCURRENCYID uniqueidentifier = null,
    @BASEEXCHANGERATEID uniqueidentifier = null,
    @EXCHANGERATE decimal(20,8) = null,
    @SEPAMANDATEID uniqueidentifier = null
)
as
begin
    set nocount on;

    if @ID is null
        set @ID = newid();

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

    if @PDACCOUNTSYSTEMID is null
        set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'

    declare @SPLITSDECLININGGIFTAID xml = null;
    declare @BASECURRENCYID uniqueidentifier;
    declare @CURRENCYSETID uniqueidentifier;

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

    declare @CURRENTDATE datetime = getdate();

    select
        @CURRENCYSETID = CURRENCYSETID
    from
        dbo.PDACCOUNTSYSTEM
    where
        ID = @PDACCOUNTSYSTEMID;

    select
        @BASECURRENCYID = BASECURRENCYID
    from
        dbo.CURRENCYSET
    where
        ID = coalesce(@CURRENCYSETID,dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET());

    begin try

        -- Check GL business rule for this account system and set to 'Do not post' if needed.

        if dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID) = 0 
    begin
          set @POSTSTATUSCODE = 2        -- Do not post

      set @POSTDATE = null
    end

        --Multicurrency - Add a spot exchange rate if an existing rate hasn't

        --been selected, the base and transaction currencies are different, and the rate

        --entered isn't zero (which indicates that the user wants to enter the record without a rate).

        if @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001'
        begin
            set @BASEEXCHANGERATEID = newid();

            insert into dbo.CURRENCYEXCHANGERATE
            (
                ID, 
                FROMCURRENCYID,
                TOCURRENCYID,
                RATE,
                ASOFDATE,
                TYPECODE,
                SOURCECODEID,
                ADDEDBYID, 
                CHANGEDBYID, 
                DATEADDED, 
                DATECHANGED
            )
            values
            (
                @BASEEXCHANGERATEID,
             @TRANSACTIONCURRENCYID,
                @BASECURRENCYID,
                @EXCHANGERATE,
                @DATE,
                2,
                null,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            );
        end

        if @PAYMENTMETHODCODE = 11 and @STANDINGORDERSETUP = 0 --Standing order

            set @STANDINGORDERSETUPDATE = null;

        --if we have a finder number make sure the constituent has been added to the tables

        if isnull(@FINDERNUMBER, 0) > 0
            exec dbo.[USP_DATAFORMTEMPLATE_ADD_ACQUISITIONLISTMEMBER] @CONSTITUENTID, @CHANGEAGENTID, @FINDERNUMBER;

        exec dbo.USP_PLEDGE_ADD
            @ID output,
            @CHANGEAGENTID,
            @CONSTITUENTID,
            @DATE,
            @AMOUNT,
            @POSTSTATUSCODE,
            @POSTDATE,
            @SENDPLEDGEREMINDER,
            @SPLITS,
            @FREQUENCYCODE,
            @NUMBEROFINSTALLMENTS,
            @STARTDATE,
            @INSTALLMENTS,
            @AUTOPAY,
            @PAYMENTMETHODCODE,
            @CARDHOLDERNAME,
            @CREDITCARDNUMBER,
            @CREDITTYPECODEID,
            @EXPIRESON,
            @REFERENCEDATE,
            @REFERENCENUMBER,
            @CONSTITUENTACCOUNTID,
            @FINDERNUMBER,
            @SOURCECODE,
            @APPEALID,
            @BENEFITS,
            @BENEFITSWAIVED,
            @GIVENANONYMOUSLY,
            @MAILINGID,
            @CHANNELCODEID,
            @DONOTACKNOWLEDGE,
            @PLEDGESUBTYPEID,
            '', -- batch number

            @OPPORTUNITYID,
            @REFERENCE,
            @CATEGORYCODEID,
            @CREDITCARDTOKEN,
            @STANDINGORDERSETUP,
            @STANDINGORDERSETUPDATE,
            @DDISOURCECODEID,
            @DDISOURCEDATE,
            @SPLITSDECLININGGIFTAID output,
            @PERCENTAGEBENEFITS,
            @TRANSACTIONCURRENCYID,
            @BASECURRENCYID,
            @BASEEXCHANGERATEID,
            @PDACCOUNTSYSTEMID,
            default,
            default,
            default,
            default,
            default,
            default,
            @SEPAMANDATEID;

        exec dbo.USP_GIFTAIDREVENUESPLIT_ADDUPDATESPLITS @ID, @APPEALID, @PAYMENTMETHODCODE, @CREDITTYPECODEID, @CHANGEAGENTID, @DATE, 1, @SPLITSDECLININGGIFTAID; --revenue transaction type code of pledge is 1


    end try

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

    return 0;
end