USP_DATAFORMTEMPLATE_EDITLOAD_REVENUETRANSACTIONCHANGECONSTITUENTPOSTED_3

The load procedure used by the edit dataform template "Revenue Transaction Change Constituent Posted 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.
@CONSTITUENTNAME nvarchar(154) INOUT Current constituent
@TYPE nvarchar(22) INOUT Type
@NEWCONSTITUENTID uniqueidentifier INOUT New constituent
@CONSTITUENTACCOUNTID uniqueidentifier INOUT Account
@ADJUSTMENTPOSTDATE datetime INOUT Adjustment post date
@ADJUSTMENTDATE datetime INOUT Adjustment date
@ADJUSTMENTREASON nvarchar(100) INOUT Adjustment details
@RESETRECOGNITIONCREDITS bit INOUT Recognition credit
@RESETSOLICITORS bit INOUT Solicitors
@HOUSEHOLDSCANBEDONORS bit INOUT Households can be donors
@TYPECODE tinyint INOUT Transaction type
@PAYMENTMETHOD nvarchar(30) INOUT Payment method
@PAYMENTMETHODCODE tinyint INOUT Payment method
@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.
@ADJUSTMENTREASONCODEID uniqueidentifier INOUT Adjustment reason
@ADJUSTMENTPOSTSTATUSCODE tinyint INOUT Adjustment post status code
@RESETMATCHINGGIFTCLAIMS bit INOUT Matching gift claims
@ALLOWMATCHINGGIFTCLAIM bit INOUT
@LINKEDTODEPOSIT bit INOUT
@SEPAMANDATEID uniqueidentifier INOUT
@TRANSACTIONCURRENCYID uniqueidentifier INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_REVENUETRANSACTIONCHANGECONSTITUENTPOSTED_3
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @CONSTITUENTNAME nvarchar(154) = null output,
  @TYPE nvarchar(22) = null output,
  @NEWCONSTITUENTID uniqueidentifier = null output,
  @CONSTITUENTACCOUNTID uniqueidentifier= null output,
  @ADJUSTMENTPOSTDATE datetime = null output,
  @ADJUSTMENTDATE datetime = null output,
  @ADJUSTMENTREASON nvarchar(100) = null output,
  @RESETRECOGNITIONCREDITS bit = null output,
  @RESETSOLICITORS bit = null output,
  @HOUSEHOLDSCANBEDONORS bit = null output,
  @TYPECODE tinyint = null output,
  @PAYMENTMETHOD nvarchar(30) = null output,
  @PAYMENTMETHODCODE tinyint = null output,
  @TSLONG bigint = 0 output,
  @ADJUSTMENTREASONCODEID uniqueidentifier = null output,
  @ADJUSTMENTPOSTSTATUSCODE tinyint = null output,
  @RESETMATCHINGGIFTCLAIMS bit = null output,
  @ALLOWMATCHINGGIFTCLAIM bit = null output,
  @LINKEDTODEPOSIT bit = null output,
  @SEPAMANDATEID uniqueidentifier = null output,
  @TRANSACTIONCURRENCYID uniqueidentifier = null output
)
as
  set nocount on;

  select top 1
    @DATALOADED = 1,
    @CONSTITUENTNAME = CONSTITUENT.NAME,
    @TYPE = FINANCIALTRANSACTION.TYPE,
    @TYPECODE = FINANCIALTRANSACTION.TYPECODE,
    @PAYMENTMETHOD = REVENUEPAYMENTMETHOD.PAYMENTMETHOD,
    @PAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
    @TSLONG = FINANCIALTRANSACTION.TSLONG,
    @ADJUSTMENTPOSTDATE=FINANCIALTRANSACTION.POSTDATE,
    @TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
  from dbo.FINANCIALTRANSACTION
      inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
      inner join dbo.CONSTITUENT on CONSTITUENT.ID = FINANCIALTRANSACTION.CONSTITUENTID
      inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = FINANCIALTRANSACTION.ID 
  where FINANCIALTRANSACTION.ID = @ID
      and FINANCIALTRANSACTION.DELETEDON is null;

  set @ADJUSTMENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
  if not exists(select 1 from dbo.BANKACCOUNTDEPOSITPAYMENT where ID = @ID and DEPOSITID is not null)
    set @ADJUSTMENTPOSTDATE = getdate();

  select top 1
    @ADJUSTMENTDATE = ADJUSTMENT.DATE,
    @ADJUSTMENTPOSTDATE = ADJUSTMENT.POSTDATE,
    @ADJUSTMENTREASON = ADJUSTMENT.REASON,
    @ADJUSTMENTREASONCODEID = ADJUSTMENT.REASONCODEID,
    @ADJUSTMENTPOSTSTATUSCODE = ADJUSTMENT.POSTSTATUSCODE
  from dbo.ADJUSTMENT
  inner join dbo.FINANCIALTRANSACTION on ADJUSTMENT.REVENUEID = FINANCIALTRANSACTION.ID
  inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
  where FINANCIALTRANSACTION.ID = @ID and ADJUSTMENT.POSTSTATUSCODE > 0
      and FINANCIALTRANSACTION.DELETEDON is null;

  set @RESETRECOGNITIONCREDITS = 0;
  set @RESETSOLICITORS = 0;

  set @HOUSEHOLDSCANBEDONORS = dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS();
  set @RESETMATCHINGGIFTCLAIMS = 0;

  set @ALLOWMATCHINGGIFTCLAIM = case when exists (
    select top 1 FINANCIALTRANSACTION.ID
    from dbo.FINANCIALTRANSACTION
    inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
    where FINANCIALTRANSACTION.TYPECODE = 0 
    and FINANCIALTRANSACTION.DELETEDON is null
    and exists (
      select top 1 FINANCIALTRANSACTION.ID 
      from dbo.FINANCIALTRANSACTIONLINEITEM
      inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
      where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID 
        and REVENUESPLIT_EXT.APPLICATIONCODE <> 7
        and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
        and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null)
    and not exists(
      select top 1 FINANCIALTRANSACTION.ID 
      from dbo.FINANCIALTRANSACTIONLINEITEM
      inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
      where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID 
        and REVENUESPLIT_EXT.APPLICATIONCODE = 11
        and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
        and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null)
    and FINANCIALTRANSACTION.ID = @ID
    ) then 1 else 0 end;

  if exists(select 1 from dbo.BANKACCOUNTDEPOSITPAYMENT where ID = @ID and DEPOSITID is not null)
    set @LINKEDTODEPOSIT = 1;
  else
    set @LINKEDTODEPOSIT = 0;