USP_DATAFORMTEMPLATE_EDITLOAD_MGPLEDGE_3

The load procedure used by the edit dataform template "Matching Gift Claim Edit Form 3"

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.
@ORIGINALGIFTID uniqueidentifier INOUT Original Gift
@ORIGINALGIFTAMOUNT money INOUT Original gift amount
@ORIGINALRECEIPTAMOUNT money INOUT Original receipt amount
@CONSTITUENTID uniqueidentifier INOUT Constituent ID
@CONSTITUENTNAME nvarchar(700) INOUT Constituent name
@MATCHINGORGANIZATIONID uniqueidentifier INOUT Matching organization
@DATE datetime INOUT Date
@AMOUNT money INOUT Amount
@SPLITS xml INOUT Designations
@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.
@MATCHINGGIFTCONDITIONID uniqueidentifier INOUT Matching gift condition type
@MGCONDITIONTYPE nvarchar(100) INOUT Existing type
@MAXSOLICITORAMOUNT money INOUT Max solicitor amount
@RELATIONSHIPID uniqueidentifier INOUT Relationship
@RELATIONSHIPCONTEXTID nvarchar(73) INOUT Relationship Context ID
@BASECURRENCYID uniqueidentifier INOUT Base currency
@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
@BASEDECIMALDIGITS tinyint INOUT Decimal digits
@BASEROUNDINGTYPECODE tinyint INOUT Rounding type
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) INOUT Transaction currency description
@ORIGINALGIFTTRANSACTIONCURRENCYID uniqueidentifier INOUT Original gift transaction currency
@HASRECOGNITIONCREDIT bit INOUT Has recognition credit
@UPDATERECOGNITIONOPTION tinyint INOUT Recognition update option
@HASNEEDEDEXCHANGERATES bit INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_MGPLEDGE_3
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @ORIGINALGIFTID uniqueidentifier = null output,
  @ORIGINALGIFTAMOUNT money = null output,
  @ORIGINALRECEIPTAMOUNT money = null output,
  @CONSTITUENTID uniqueidentifier = null output,
  @CONSTITUENTNAME nvarchar(700) = null output,
  @MATCHINGORGANIZATIONID uniqueidentifier = null output,
  @DATE datetime = null output,
  @AMOUNT money = null output,
  @SPLITS xml = null output,
  @TSLONG bigint = 0 output,
  @MATCHINGGIFTCONDITIONID uniqueidentifier = null output,
  @MGCONDITIONTYPE nvarchar(100) = null output,
  @MAXSOLICITORAMOUNT money = null output,
  @RELATIONSHIPID uniqueidentifier = null output,
  @RELATIONSHIPCONTEXTID nvarchar(73) = 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,
  @BASEDECIMALDIGITS tinyint = null output,
  @BASEROUNDINGTYPECODE tinyint = null output,
  @TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output,
  @ORIGINALGIFTTRANSACTIONCURRENCYID uniqueidentifier = null output,
  @HASRECOGNITIONCREDIT bit = null output,
  @UPDATERECOGNITIONOPTION tinyint = null output,
  @HASNEEDEDEXCHANGERATES bit = null output
)
as 
  set nocount on;

  set @DATALOADED = 0;
  set @TSLONG = 0;                    

  select
    @DATALOADED = 1,
    @ORIGINALGIFTID = RMG.MGSOURCEREVENUEID,
    @MATCHINGORGANIZATIONID = REVENUE.CONSTITUENTID,
    @DATE = REVENUE.DATE,
    @AMOUNT = REVENUE.TRANSACTIONAMOUNT,
    @TSLONG = REVENUE.TSLONG,
    @MATCHINGGIFTCONDITIONID = RMG.MATCHINGGIFTCONDITIONID,
    @MGCONDITIONTYPE = dbo.UFN_MATCHINGGIFTCONDITIONTYPECODE_GETDESCRIPTION(MGC.MATCHINGGIFTCONDITIONTYPECODEID),
    @MAXSOLICITORAMOUNT = coalesce((select max(AMOUNT) from dbo.REVENUESOLICITOR where REVENUESPLITID = REVENUE.ID), 0),
    @RELATIONSHIPID = RMG.RELATIONSHIPID,
    @BASECURRENCYID = REVENUE.BASECURRENCYID,
    @TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
    @BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID,
    @EXCHANGERATE = 
      case
        when REVENUE.BASEEXCHANGERATEID is not null
          then CURRENCYEXCHANGERATE.RATE
        when REVENUE.TRANSACTIONCURRENCYID = REVENUE.BASECURRENCYID
          then 1
        else 0
      end,
    @HADSPOTRATE =  
      case
        when CURRENCYEXCHANGERATE.TYPECODE = 2
          then 1
        else 0
      end,
    @RATECHANGED = 0,
    @BASEDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
    @BASEROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
    @TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(REVENUE.TRANSACTIONCURRENCYID)
  from dbo.REVENUE
    left join dbo.REVENUEPOSTED on REVENUEPOSTED.ID = REVENUE.ID
    left join dbo.REVENUEMATCHINGGIFT RMG on REVENUE.ID = RMG.ID
    left join dbo.MATCHINGGIFTCONDITION MGC on RMG.MATCHINGGIFTCONDITIONID = MGC.ID
    inner join dbo.CURRENCY on CURRENCY.ID = REVENUE.BASECURRENCYID
    left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = REVENUE.BASEEXCHANGERATEID
            where REVENUE.ID = @ID and REVENUE.TRANSACTIONTYPECODE = 3;

  set @SPLITS = (
    select  
      SPLITS.ID, 
      SPLITS.DESIGNATIONID,
      SPLITS.TRANSACTIONAMOUNT AMOUNT, 
      @ID REVENUEID,
      SPLITS.APPLICATIONCODE,  
      SPLITS.TYPECODE,
      SPLITS.TRANSACTIONCURRENCYID,
      SPLITS.BASEEXCHANGERATEID
    from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLITS
    for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64
  );

  select 
    @ORIGINALGIFTAMOUNT = REVENUE.TRANSACTIONAMOUNT,
    @ORIGINALRECEIPTAMOUNT = REVENUE.RECEIPTAMOUNT,
    @CONSTITUENTID = REVENUE.CONSTITUENTID,
    @CONSTITUENTNAME = NF.NAME,
    @ORIGINALGIFTTRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
  from dbo.REVENUE
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(REVENUE.CONSTITUENTID) NF
  where REVENUE.ID = @ORIGINALGIFTID

  set @RELATIONSHIPCONTEXTID = cast(@CONSTITUENTID as nvarchar(36)) + cast(@MATCHINGORGANIZATIONID as nvarchar(36)) + cast(1 as nvarchar(1))

  select @HASRECOGNITIONCREDIT = count(1
  from dbo.REVENUERECOGNITION
    inner join dbo.REVENUESPLIT on REVENUERECOGNITION.REVENUESPLITID = REVENUESPLIT.ID
  where REVENUESPLIT.REVENUEID = @ID;
  set @UPDATERECOGNITIONOPTION = 2;   --update based on defaults


  set @HASNEEDEDEXCHANGERATES = dbo.UFN_REVENUE_HASNEEDEDRATES(@ORIGINALGIFTID);

  return 0;