USP_REVENUE_SPLIT_EDIT_LOAD_2
Provides a common method to load data for revenue detail split edit forms.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@REVENUEAMOUNT | money | INOUT | |
@SPLITS | xml | INOUT | |
@TSLONG | bigint | INOUT | |
@APPEALID | uniqueidentifier | INOUT | |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_REVENUE_SPLIT_EDIT_LOAD_2
(
@ID uniqueidentifier,
@DATALOADED bit = null output,
@REVENUEAMOUNT money = null output,
@SPLITS xml = null output,
@TSLONG bigint = null output,
@APPEALID as uniqueidentifier = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output
)
as
set nocount on;
declare @TESTID uniqueidentifier;
declare @ISMEMBERSHIPTRANSACTION bit;
select @TESTID = REVENUE.ID,
@REVENUEAMOUNT = REVENUE.TRANSACTIONAMOUNT,
@APPEALID = REVENUE_EXT.APPEALID,
@TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
@ISMEMBERSHIPTRANSACTION = case REVENUE.TYPECODE when 2 then dbo.UFN_RECURRINGGIFT_ISMEMBERSHIP(@ID)
when 15 then 1
else 0 end
from dbo.FINANCIALTRANSACTION REVENUE
inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
where REVENUE.ID = @ID
and REVENUE.DELETEDON is null;
if @ISMEMBERSHIPTRANSACTION = 1
begin
set @SPLITS =(
select
SPLIT.ID,
SPLIT.DESIGNATIONID,
SPLIT.TRANSACTIONAMOUNT as AMOUNT,
SPLIT.APPLICATIONCODE,
SPLIT.TYPECODE,
SPLIT.DECLINESGIFTAID,
SPLIT.TRANSACTIONCURRENCYID
from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLIT
where SPLIT.DESIGNATIONID is not null
for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64
);
select @REVENUEAMOUNT = @REVENUEAMOUNT - sum(coalesce(SPLIT.TRANSACTIONAMOUNT, 0))
from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLIT
where SPLIT.DESIGNATIONID is null
end
else
begin
set @SPLITS =(
select
SPLIT.ID,
SPLIT.DESIGNATIONID,
SPLIT.TRANSACTIONAMOUNT as AMOUNT,
SPLIT.APPLICATIONCODE,
SPLIT.TYPECODE,
SPLIT.DECLINESGIFTAID,
SPLIT.TRANSACTIONCURRENCYID
from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLIT
for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64
);
end
if @TESTID is not null
set @DATALOADED = 1;
else
set @DATALOADED = 0;
if @SPLITS is not null
select @TSLONG = max(REVENUESPLIT.TSLONG) from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT where REVENUESPLIT.FINANCIALTRANSACTIONID = @ID and REVENUESPLIT.TYPECODE <> 1 and REVENUESPLIT.DELETEDON is null;
else
set @TSLONG = 0;
return 0;