USP_PAYMENT_LOAD

Stored procedure to load a payment.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@CONSTITUENTID uniqueidentifier INOUT
@CONSTITUENTNAME nvarchar(700) INOUT
@DATE datetime INOUT
@AMOUNT money INOUT
@APPLICATIONCODE tinyint INOUT
@RECEIPTAMOUNT money INOUT
@REVENUESTREAMS xml INOUT
@SOURCECODE nvarchar(50) INOUT
@POSTSTATUSCODE tinyint INOUT
@POSTDATE datetime INOUT
@APPEALID uniqueidentifier INOUT
@BENEFITS xml INOUT
@BENEFITSWAIVED bit INOUT
@GIVENANONYMOUSLY bit INOUT
@MAILINGID uniqueidentifier INOUT
@CHANNELCODEID uniqueidentifier INOUT
@DONOTRECEIPT bit INOUT
@REFERENCE nvarchar(255) INOUT
@TSLONG bigint INOUT
@DONOTACKNOWLEDGE bit INOUT
@FINDERNUMBER bigint INOUT
@PERCENTAGEBENEFITS xml INOUT
@BASECURRENCYID uniqueidentifier INOUT
@TRANSACTIONCURRENCYID uniqueidentifier INOUT
@BASEEXCHANGERATEID uniqueidentifier INOUT
@EXCHANGERATE decimal(20, 8) INOUT
@HADSPOTRATE bit INOUT
@BASEDECIMALDIGITS tinyint INOUT
@BASEROUNDINGTYPECODE tinyint INOUT
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) INOUT

Definition

Copy


      CREATE procedure dbo.USP_PAYMENT_LOAD
      (
        @ID uniqueidentifier,
        @DATALOADED bit = 0 output,
        @CONSTITUENTID uniqueidentifier = null output,    
        @CONSTITUENTNAME nvarchar(700) = null output,
        @DATE datetime = null output,
        @AMOUNT money = null output,
        @APPLICATIONCODE tinyint = null output,
        @RECEIPTAMOUNT money = null output,
        @REVENUESTREAMS xml = null output,
        @SOURCECODE nvarchar(50) = null output,
        @POSTSTATUSCODE tinyint = null output,
        @POSTDATE datetime = null output,
        @APPEALID uniqueidentifier = null output,
        @BENEFITS xml = null output,
        @BENEFITSWAIVED bit = null output,
        @GIVENANONYMOUSLY bit = null output,
        @MAILINGID uniqueidentifier = null output,
        @CHANNELCODEID uniqueidentifier = null output,
        @DONOTRECEIPT bit = null output,
        @REFERENCE nvarchar(255) = null output,
        @TSLONG bigint = 0 output,
        @DONOTACKNOWLEDGE bit = null output,
        @FINDERNUMBER bigint = null output,
        @PERCENTAGEBENEFITS 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,
        @BASEDECIMALDIGITS tinyint = null output,
        @BASEROUNDINGTYPECODE tinyint = null output,
        @TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output
      )
      as
      set nocount on;

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

      select
        @DATALOADED = 1,
        @APPLICATIONCODE = 0,
        @CONSTITUENTID = REVENUE.CONSTITUENTID,
        @CONSTITUENTNAME = NF.NAME,
        @DATE = cast(REVENUE.DATE as datetime),
        @AMOUNT = REVENUE.TRANSACTIONAMOUNT,
        @DONOTRECEIPT = REVENUE_EXT.DONOTRECEIPT,
        @DONOTACKNOWLEDGE = REVENUE_EXT.DONOTACKNOWLEDGE,
        @RECEIPTAMOUNT = REVENUE_EXT.RECEIPTAMOUNT,
        @SOURCECODE = REVENUE_EXT.SOURCECODE,
        @POSTSTATUSCODE = case REVENUE.POSTSTATUSCODE when 3 then 2 when 2 then 0 else 1 end,
        @POSTDATE = REVENUE.POSTDATE,
        @APPEALID = REVENUE_EXT.APPEALID,
        @GIVENANONYMOUSLY = REVENUE_EXT.GIVENANONYMOUSLY,
        @MAILINGID = REVENUE_EXT.MAILINGID,
        @CHANNELCODEID = REVENUE_EXT.CHANNELCODEID,
        @BENEFITSWAIVED = REVENUE_EXT.BENEFITSWAIVED,
        @TSLONG = REVENUE.TSLONG,
        @REFERENCE = REVENUE_EXT.REFERENCE,
        @REVENUESTREAMS = dbo.[UFN_REVENUE_GETAPPLICATIONS_2_TOITEMLISTXML](@ID, 1),
        @FINDERNUMBER = REVENUE_EXT.FINDERNUMBER,
        @BASECURRENCYID = V.BASECURRENCYID,
        @TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
        @BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID,
        @EXCHANGERATE = 
          case
            when REVENUE.BASEEXCHANGERATEID is not null
              then CURRENCYEXCHANGERATE.RATE
            when REVENUE.TRANSACTIONCURRENCYID = V.BASECURRENCYID
              then 1
            else 0
          end,
        @HADSPOTRATE =  
          case
            when CURRENCYEXCHANGERATE.TYPECODE = 2
              then 1
            else 0
          end,
        @BASEDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
        @BASEROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
        @TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(REVENUE.TRANSACTIONCURRENCYID)
      from dbo.FINANCIALTRANSACTION REVENUE
      inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
      left outer join  dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on REVENUE.ID = V.FINANCIALTRANSACTIONID
      left join dbo.CURRENCY on CURRENCY.ID = V.BASECURRENCYID
      left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = REVENUE.BASEEXCHANGERATEID
      outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(REVENUE.CONSTITUENTID) NF
      where 
        REVENUE.ID = @ID and 
        REVENUE.TYPECODE = 0 and
        REVENUE.DELETEDON is null;

      exec dbo.USP_REVENUE_GETBENEFITSSPLIT @ID, @BENEFITS output, @PERCENTAGEBENEFITS output

      return 0;