USP_SPONSOR_UPDATEPAYMENT

Update event sponsorship payment.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@AMOUNT money IN
@CHANGEDATE datetime IN
@CHANGEAGENTID uniqueidentifier IN
@UPDATERECOGNITIONOPTION tinyint IN
@BASEAPPLIEDAMOUNT money IN
@ORGANIZATIONAPPLIEDAMOUNT money IN
@UPDATESOLICITORSOPTION tinyint IN

Definition

Copy


CREATE procedure dbo.USP_SPONSOR_UPDATEPAYMENT
(
  @ID uniqueidentifier,
  @AMOUNT money,
  @CHANGEDATE datetime = null,
  @CHANGEAGENTID uniqueidentifier = null,
  @UPDATERECOGNITIONOPTION tinyint = null,
  @BASEAPPLIEDAMOUNT money = null,
  @ORGANIZATIONAPPLIEDAMOUNT money = null,
  @UPDATESOLICITORSOPTION tinyint = null
)
as
begin
    set nocount on;

  declare @TRANSACTIONCURRENCYID uniqueidentifier;
  declare @BASECURRENCYID uniqueidentifier;
  declare @BASEEXCHANGERATEID uniqueidentifier;
  declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
  declare @DATE datetime;
    declare @REVENUEID uniqueidentifier;

  select
    @DATE = cast(REVENUE.DATE as datetime),
    @BASECURRENCYID = CS.BASECURRENCYID,
    @TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
    @BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID,
    @ORGANIZATIONEXCHANGERATEID = REVENUE.ORGEXCHANGERATEID,
        @REVENUEID = REVENUE.ID
  from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
    inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = REVENUESPLIT.ID
    inner join dbo.FINANCIALTRANSACTION REVENUE on REVENUE.ID = REVENUESPLIT.FINANCIALTRANSACTIONID
    inner join dbo.PDACCOUNTSYSTEM PD on PD.ID = REVENUE.PDACCOUNTSYSTEMID
    inner join dbo.CURRENCYSET CS on CS.ID = PD.CURRENCYSETID
  where REVENUESPLIT.ID = @ID;

  -- Convert the applied amount into base and organization amounts.

  if @BASEAPPLIEDAMOUNT is null or @ORGANIZATIONAPPLIEDAMOUNT is null
    exec dbo.USP_CURRENCY_GETCURRENCYVALUES
      @AMOUNT,
      null,
      @BASECURRENCYID,
      @BASEEXCHANGERATEID,
      @TRANSACTIONCURRENCYID,
      @BASEAPPLIEDAMOUNT output,
      null,
      @ORGANIZATIONAPPLIEDAMOUNT output,
      @ORGANIZATIONEXCHANGERATEID,
      0;

  declare @ORIGINALREVENUESPLITAMOUNT money;
  select @ORIGINALREVENUESPLITAMOUNT = BASEAMOUNT from dbo.FINANCIALTRANSACTIONLINEITEM where ID = @ID;

    update dbo.FINANCIALTRANSACTIONLINEITEM set
        TRANSACTIONAMOUNT = @AMOUNT
        ,BASEAMOUNT = @BASEAPPLIEDAMOUNT
        ,ORGAMOUNT = @ORGANIZATIONAPPLIEDAMOUNT
        ,CHANGEDBYID = @CHANGEAGENTID
        ,DATECHANGED = @CHANGEDATE
    where ID = @ID
        and (
            TRANSACTIONAMOUNT != @AMOUNT or
            BASEAMOUNT != @BASEAPPLIEDAMOUNT or
            ORGAMOUNT != @ORGANIZATIONAPPLIEDAMOUNT);

  /* Update recognitions based on user selection */
  exec dbo.USP_REVENUESPLIT_UPDATERECOGNITION @ID, @ORIGINALREVENUESPLITAMOUNT, @UPDATERECOGNITIONOPTION, @CHANGEAGENTID, @CHANGEDATE;

  /* Update solicitors */
  exec dbo.USP_REVENUESPLIT_UPDATESOLICITORS
    @REVENUESPLITID = @ID,
    @CHANGEAGENTID = @CHANGEAGENTID,
    @CHANGEDATE = @CHANGEDATE,
    @UPDATEOPTION = @UPDATESOLICITORSOPTION;


end