USP_DATAFORMTEMPLATE_ADD_PLEDGE

The save procedure used by the add dataform template "Pledge 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 Opportunity
@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
@TRANSACTIONCURRENCYID uniqueidentifier IN Transaction currency
@BASEEXCHANGERATEID uniqueidentifier IN Exchange rate ID
@EXCHANGERATE decimal(20, 8) IN Exchange rate
@PDACCOUNTSYSTEMID uniqueidentifier IN Account system
@GENERATEREFERENCENUMBER bit IN Automatically generate reference number
@STANDINGORDERREFERENCENUMBER nvarchar(18) IN Reference number
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@EVENTID uniqueidentifier IN Event
@LOCALCORPID uniqueidentifier IN Local corp
@BATCHNUMBER nvarchar(100) IN
@INSTALLMENTAMOUNT money IN
@INSTALLMENTSPLITSCHEDULEOPTIONCODE tinyint IN
@SEPAMANDATEID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PLEDGE 
(
  @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 = null,
  @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,
  @TRANSACTIONCURRENCYID uniqueidentifier = null,
  @BASEEXCHANGERATEID uniqueidentifier = null,
  @EXCHANGERATE decimal(20,8) = null,
  @PDACCOUNTSYSTEMID uniqueidentifier  = null,
  @GENERATEREFERENCENUMBER bit = 1,
  @STANDINGORDERREFERENCENUMBER nvarchar(18) = null,
  @CURRENTAPPUSERID uniqueidentifier = null,
  @EVENTID uniqueidentifier = null,
  @LOCALCORPID uniqueidentifier = null,
  @BATCHNUMBER nvarchar(100) = '',
  @INSTALLMENTAMOUNT money = 0,
  @INSTALLMENTSPLITSCHEDULEOPTIONCODE tinyint = 0,
  @SEPAMANDATEID uniqueidentifier = null
)

as
begin
  set nocount on;

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

  declare @CURRENTDATE datetime = getdate();

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

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

  -- ****

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

      set @POSTDATE = null
    end
  -- ****                                            


  --Multicurrency - AdamBu 3/30/10 - Retrieve base currency from the account system's currency set.

  declare @CURRENCYSETID uniqueidentifier
  select 
    @CURRENCYSETID = CURRENCYSETID
  from 
    dbo.PDACCOUNTSYSTEM
  where 
    ID = @PDACCOUNTSYSTEMID

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

  --Multicurrency - AdamBu 4/1/10 - 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()

    --Replace with call to USP_CURRENCYEXCHANGERATE_ENSURESPOTRATEEXISTS for PBI 102747 in the future

    /*if not dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@CURRENTAPPUSERID,'911f104d-ba5f-4469-b0ae-184c879aea99') = 1
      and not dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
    begin
      raiserror('User does not have the right to add a new spot rate.', 13, 1);
      return 1;
    end*/

    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 @ID is null
    set @ID = NewID();

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

    set @STANDINGORDERSETUPDATE = null;

  if @NUMBEROFINSTALLMENTS > 150
    raiserror('BBERR_NUMINSTALLMENTS',13,1);

  begin try
    declare @SPLITSDECLININGGIFTAID xml;

    --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;

if @BATCHNUMBER is null
      set @BATCHNUMBER = ''

    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,
      @BATCHNUMBER,
      @OPPORTUNITYID,
      @REFERENCE,
      @CATEGORYCODEID,
      @CREDITCARDTOKEN,
      @STANDINGORDERSETUP,
      @STANDINGORDERSETUPDATE,
      @DDISOURCECODEID,
      @DDISOURCEDATE,
      @SPLITSDECLININGGIFTAID output,
      @PERCENTAGEBENEFITS,
      @TRANSACTIONCURRENCYID,
      @BASECURRENCYID,
      @BASEEXCHANGERATEID,
      @PDACCOUNTSYSTEMID,
      0, -- business units applied

      @GENERATEREFERENCENUMBER,
      @STANDINGORDERREFERENCENUMBER,
      @EVENTID,
      @LOCALCORPID,
      0, --ISMEMBERSHIPPLEDGE

      @SEPAMANDATEID

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


    insert into dbo.PLEDGEINSTALLMENTOPTION
        (ID
        ,INSTALLMENTAMOUNT
        ,SPLITSCHEDULEOPTIONCODE
        ,ADDEDBYID
        ,CHANGEDBYID
        ,DATEADDED
        ,DATECHANGED)
    values (@ID
        ,case @FREQUENCYCODE when 4 then null else @INSTALLMENTAMOUNT end
        ,@INSTALLMENTSPLITSCHEDULEOPTIONCODE
        ,@CHANGEAGENTID
        ,@CHANGEAGENTID
        ,@CURRENTDATE
        ,@CURRENTDATE);

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

  return 0;
end