USP_MEMBERSHIPADDON_UPDATEPAYMENT

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_MEMBERSHIPADDON_UPDATEPAYMENT
            (
              @ID uniqueidentifier,
              @AMOUNT money,
              @CHANGEDATE datetime = null,
              @CHANGEAGENTID uniqueidentifier = null,
              @UPDATERECOGNITIONOPTION tinyint = null,
              @BASEAPPLIEDAMOUNT money = null,
              @ORGANIZATIONAPPLIEDAMOUNT money = null,
              @UPDATESOLICITORSOPTION tinyint = null
            )
            as
              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 dbo.MEMBERSHIPADDON set
                PURCHASEPRICE = @BASEAPPLIEDAMOUNT,
                TRANSACTIONPURCHASEPRICE = @AMOUNT,
                ORGANIZATIONPURCHASEPRICE = @ORGANIZATIONAPPLIEDAMOUNT,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CHANGEDATE
              where REVENUESPLITID = @ID
                and (
                    PURCHASEPRICE <> @BASEAPPLIEDAMOUNT or
                    TRANSACTIONPURCHASEPRICE <> @AMOUNT or
                    ORGANIZATIONPURCHASEPRICE <> @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;