UFN_REVENUEUPDATEBATCH_LOADINSTALLMENTS

Loads installments into the update revenue batch from the revenue tables.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_REVENUEUPDATEBATCH_LOADINSTALLMENTS(
  @REVENUEID uniqueidentifier
)
    returns table            
            as            
            return (
                select 
                    '00000000-0000-0000-0000-000000000000' as ID,
                    ID as INSTALLMENTID,
                    DATE,
                    TRANSACTIONAMOUNT as AMOUNT,
                    (TRANSACTIONAMOUNT - (AMOUNTPAID + AMOUNTWRITTENOFF)) as BALANCE,
                    (AMOUNTPAID + AMOUNTWRITTENOFF) as APPLIED,
                    SEQUENCE,
                    (
                        select 
                            '00000000-0000-0000-0000-000000000000' as ID,
                            SPLITINFO.ID as INSTALLMENTSPLITID, 
                            SPLITINFO.DESIGNATIONID, 
                            SPLITINFO.TRANSACTIONAMOUNT as AMOUNT,
                            (SPLITINFO.AMOUNTPAID + SPLITINFO.AMOUNTWRITTENOFF) APPLIED,
                            SPLITINFO.TRANSACTIONCURRENCYID,
                            SPLITINFO.REVENUESPLITID,
                            SPLITINFO.PAYMENTCOUNT,
                            SPLITINFO.WRITEOFFCOUNT,
                            (
                                select
                                    ISP.ID,
                                    ISP.AMOUNT,
                                    ISP.PAYMENTID LINEITEMID,
                                    LI.FINANCIALTRANSACTIONID TRANSACTIONID
                                from
                                    dbo.INSTALLMENTSPLITPAYMENT ISP
                                    inner join dbo.FINANCIALTRANSACTIONLINEITEM LI on LI.ID = ISP.PAYMENTID
                                where
                                    ISP.INSTALLMENTSPLITID = SPLITINFO.ID
                                for xml raw('ITEM'),type,elements,BINARY BASE64
                            ) INSTALLMENTSPLITPAYMENTS,
                            (
                                select
                                    ISW.ID,
                                    ISW.AMOUNT,
                                    ISW.WRITEOFFID TRANSACTIONID
                                from
                                    dbo.INSTALLMENTSPLITWRITEOFF ISW
                                where
                                    ISW.INSTALLMENTSPLITID = SPLITINFO.ID
                                for xml raw('ITEM'),type,elements,BINARY BASE64
                            ) INSTALLMENTSPLITWRITEOFFS
                        from dbo.UFN_INSTALLMENT_GETINSTALLMENTSPLITINFO_BULK() SPLITINFO
                        left join dbo.DESIGNATION on DESIGNATION.ID = SPLITINFO.DESIGNATIONID
                        where SPLITINFO.INSTALLMENTID = INSTALLMENT.ID
                        order by DESIGNATION.VANITYNAME
                        for xml raw('ITEM'),type,elements,BINARY BASE64
                    ) INSTALLMENTSPLITS,
                    case
                        when PAYMENTCOUNT > 0 then cast(1 as bit)
                        else cast(0 as bit)
                    end as PAYMENTAPPLIED,
                    PAYMENTCOUNT,
                    WRITEOFFCOUNT,
                    TRANSACTIONRECEIPTAMOUNT as RECEIPTAMOUNT
                from dbo.UFN_INSTALLMENT_GETINFO_BULK() as INSTALLMENT
                where 
                    REVENUEID = @REVENUEID);