USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTADDITION

The load procedure used by the edit dataform template "Planned Gift Addition Edit Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@EXPECTEDGIFTAMOUNT money INOUT Gift amount
@RECOGNITIONAMOUNT money INOUT Recognition amount
@GIFTDATE datetime INOUT Date
@CONSTITUENTLOOKUPID nvarchar(36) INOUT
@CONSTITUENTFIRSTNAME nvarchar(50) INOUT
@CONSTITUENTKEYNAME nvarchar(100) INOUT
@DESIGNATION xml INOUT Planned gift addition details
@ASSETS xml INOUT Assets
@BASECURRENCYID uniqueidentifier INOUT Base currency ID
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency
@BASEEXCHANGERATEID uniqueidentifier INOUT Exchange rate ID
@EXCHANGERATE decimal(20, 8) INOUT Exchange rate
@HADSPOTRATE bit INOUT Had spot rate
@RATECHANGED bit INOUT Rate changed
@CONSTITUENTID uniqueidentifier INOUT Constituent ID
@DONOTRECEIPT bit INOUT Do not receipt
@DONOTRECEIPT_LOCKED bit INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTADDITION(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @TSLONG bigint = 0 output,
  @EXPECTEDGIFTAMOUNT money = null output,
  @RECOGNITIONAMOUNT money = null output,
  @GIFTDATE datetime = null output,
  @CONSTITUENTLOOKUPID nvarchar(36) = null output,
  @CONSTITUENTFIRSTNAME nvarchar(50) = null output,
  @CONSTITUENTKEYNAME nvarchar(100) = null output,
  @DESIGNATION xml = null output,
  @ASSETS xml = null output,
  @BASECURRENCYID uniqueidentifier = null output,
  @TRANSACTIONCURRENCYID uniqueidentifier = null output,
  @BASEEXCHANGERATEID uniqueidentifier = null output,
  @EXCHANGERATE decimal(20,8) = null output,
  @HADSPOTRATE bit = null output,
  @RATECHANGED bit = null output,
  @CONSTITUENTID uniqueidentifier = null output,
  @DONOTRECEIPT bit = null output,
  @DONOTRECEIPT_LOCKED bit = null output
)
as

  set nocount on;

  set @DATALOADED = 0
  set @TSLONG = 0

  select
    @DATALOADED = 1,
    @TSLONG  = PLANNEDGIFTADDITION.TSLONG,
    @EXPECTEDGIFTAMOUNT = PLANNEDGIFTADDITION.TRANSACTIONEXPECTEDGIFTAMOUNT,
    @RECOGNITIONAMOUNT = PLANNEDGIFTADDITION.TRANSACTIONRECOGNITIONAMOUNT,
    @GIFTDATE = PLANNEDGIFTADDITION.GIFTDATE,
    @CONSTITUENTLOOKUPID = CONSTITUENT.LOOKUPID,
    @CONSTITUENTFIRSTNAME = CONSTITUENT.FIRSTNAME,
    @CONSTITUENTKEYNAME = CONSTITUENT.KEYNAME,
    @CONSTITUENTID = CONSTITUENT.ID,
    @BASECURRENCYID = PLANNEDGIFT.BASECURRENCYID,
    @TRANSACTIONCURRENCYID = PLANNEDGIFT.TRANSACTIONCURRENCYID,
    @BASEEXCHANGERATEID = PLANNEDGIFTADDITION.BASEEXCHANGERATEID,
    @EXCHANGERATE = CURRENCYEXCHANGERATE.RATE,
    @HADSPOTRATE =  
      case
        when CURRENCYEXCHANGERATE.TYPECODE = 2
          then 1
        else 0
      end,
    @RATECHANGED = 0,
    @DONOTRECEIPT = PLANNEDGIFTADDITION.DONOTRECEIPT,
    @DONOTRECEIPT_LOCKED =
      case when PLANNEDGIFTADDITION.DONOTRECEIPT != 0
        and (
          ISREVOCABLE != 0
          or TRUSTHELDOUTSIDE != 0
          or dbo.UFN_PLANNEDGIFT_ISRECEIPTABLE(PLANNEDGIFT.VEHICLECODE) = 0
        )
        then 1
        else 0
      end
  from
    dbo.PLANNEDGIFTADDITION
    inner join dbo.PLANNEDGIFT on PLANNEDGIFTADDITION.PLANNEDGIFTID = PLANNEDGIFT.ID
    inner join dbo.CONSTITUENT on CONSTITUENT.ID = PLANNEDGIFT.CONSTITUENTID
    left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = PLANNEDGIFTADDITION.BASEEXCHANGERATEID
  where
    PLANNEDGIFTADDITION.ID = @ID;

  set @DESIGNATION = (
    select
      DESIGNATION.ID,
      DESIGNATION.DESIGNATIONID,
      DESIGNATION.TRANSACTIONAMOUNT as AMOUNT,
      DESIGNATION.CATEGORYCODEID,
      DESIGNATION.TYPECODEID,
      DESIGNATION.USECODEID,
      DESIGNATION.DATE,
      DESIGNATION.SEQUENCE,
      DESIGNATION.TRANSACTIONCURRENCYID
    from dbo.UFN_PLANNEDGIFTADDITION_GETDESIGNATIONS(@ID) DESIGNATION
    order by DESIGNATION.SEQUENCE
    for xml raw('ITEM'),type,elements,root('DESIGNATION'),BINARY BASE64
  );

  set @ASSETS = (
    select
      ASSETS.ID,
      ASSETS.ASSETTYPECODEID,
      ASSETS.DESCRIPTION,
      ASSETS.TRANSACTIONVALUE as VALUE,
      ASSETS.TRANSACTIONCOSTBASIS as COSTBASIS,
      ASSETS.ASSETVALUATIONMETHODCODEID,
      ASSETS.VALUATIONSOURCE,
      (
        select 
          ID, PLANNEDGIFTADDITIONASSETID, HOLDERCONSTITUENTID
        from
          dbo.PLANNEDGIFTADDITIONASSETHOLDER
        where
          PLANNEDGIFTADDITIONASSETHOLDER.PLANNEDGIFTADDITIONASSETID = ASSETS.ID
        for xml raw('ITEM'), type, elements, binary base64
      ) ASSETHOLDERS,
      ASSETS.ADDRESSID,
      ASSETS.SEQUENCE,
      ASSETS.TRANSACTIONCURRENCYID
    from dbo.UFN_PLANNEDGIFTADDITION_GETASSETS(@ID) ASSETS
    order by ASSETS.SEQUENCE
    for xml raw('ITEM'),type,elements,root('ASSETS'),BINARY BASE64
  );                        

  return 0;