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