UFN_EVENTREGISTRANT_GETBALANCEEVENTPORTION
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REGISTRANTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_EVENTREGISTRANT_GETBALANCEEVENTPORTION
(
@REGISTRANTID uniqueidentifier
)
returns money
as
begin
declare @REGISTRANTAMOUNT money;
declare @PAIDAMOUNT money;
declare @CREDITEDAMOUNT money;
declare @DESIGNATIONAMOUNT as money;
set @PAIDAMOUNT = 0;
set @CREDITEDAMOUNT = 0;
set @REGISTRANTAMOUNT= 0;
select @DESIGNATIONAMOUNT = sum(REGISTRANTDESIGNATION.AMOUNT)
from dbo.REGISTRANTDESIGNATION
where REGISTRANTDESIGNATION.REGISTRANTID = @REGISTRANTID
select
@REGISTRANTAMOUNT= sum(REGISTRANTREGISTRATION.AMOUNT) - @DESIGNATIONAMOUNT
from dbo.REGISTRANTREGISTRATION
where REGISTRANTREGISTRATION.REGISTRANTID = @REGISTRANTID
select
@PAIDAMOUNT = sum(EVENTREGISTRANTPAYMENT.AMOUNT)
from dbo.EVENTREGISTRANTPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = EVENTREGISTRANTPAYMENT.PAYMENTID
inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = FINANCIALTRANSACTIONLINEITEM.ID
where EVENTREGISTRANTPAYMENT.REGISTRANTID = @REGISTRANTID
and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
and REVENUESPLIT_EXT.TYPECODE = 1
select @CREDITEDAMOUNT = sum([CREDITITEMS].[TOTAL])
from dbo.[UFN_REGISTRANT_GETCREDITITEMS](@REGISTRANTID) as [CREDITITEMS]
declare @TOTALBALANCE money = coalesce(@REGISTRANTAMOUNT, 0) - coalesce(@PAIDAMOUNT, 0) + coalesce(@CREDITEDAMOUNT, 0);
if @TOTALBALANCE < 0
set @TOTALBALANCE = 0
return @TOTALBALANCE;
end