USP_MEMBERSHIP_UPDATEPAYMENT
Edit the revenue splits related to a membership
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_MEMBERSHIP_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 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;