USP_DATALIST_INSTALLMENTSBYCONSTITUENT

Returns a list of all installments for a constituent

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


        CREATE procedure [dbo].[USP_DATALIST_INSTALLMENTSBYCONSTITUENT] 
                (
                    @CONSTITUENTID uniqueidentifier
                )
                as 
                begin

           select * from 
                    (
                        select 
                            REVENUE.ID as REVENUEID,
              REVENUE.LOOKUPID as REVENUELOOKUPID,
                            INSTALLMENT.ID as ID,
                            INSTALLMENT.SEQUENCE,
                            LISTORDER = 0,
                            ACTIVITY = 'Installment '  + cast(INSTALLMENT.SEQUENCE as nvarchar(3)),
                            INSTALLMENT.DATE as Date,
                            INSTALLMENT.TRANSACTIONAMOUNT as AMOUNT,
                            PAIDBY = null,
                            PAYMETHOD = NULL,
                            BALANCE = coalesce(dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCE(INSTALLMENT.ID),0),
                            TRANSACTIONID = null,
                            TRANSACTIONLOOKUPID = '',
                            TRANSACTIONAMOUNT = 0,
                            RECORDTYPE = 0,
                            dbo.UDA_BUILDLIST(DISTINCT DESIGNATION.NAME) DESIGNATIONLIST,
                            PARENT = null
                        from
                            dbo.INSTALLMENT
                        inner join 
                            dbo.REVENUE on INSTALLMENT.REVENUEID = REVENUE.ID
                        inner join 
                            dbo.INSTALLMENTSPLIT on INSTALLMENT.ID = INSTALLMENTSPLIT.INSTALLMENTID 
                        inner join 
                            dbo.DESIGNATION on DESIGNATION.ID = INSTALLMENTSPLIT.DESIGNATIONID 
                        where 
                            REVENUE.[CONSTITUENTID] = @CONSTITUENTID
              and
                            REVENUE.[TRANSACTIONTYPECODE] = 1
                        group by 
                            REVENUE.ID,
                            REVENUE.LOOKUPID,
                            INSTALLMENT.ID,
                            INSTALLMENT.SEQUENCE,
                            INSTALLMENT.DATE,
                            INSTALLMENT.TRANSACTIONAMOUNT

                        union all

                        select 
                            REVENUE.ID as REVENUEID,
              REVENUE.LOOKUPID as REVENUELOOKUPID,
                            null as ID,
                            INSTALLMENT.SEQUENCE,
                            LISTORDER = 1,
                            ACTIVITY = 'Payment',
                            PAYMENT.DATE as Date,
                            sum(INSTALLMENTSPLITPAYMENT.AMOUNT) AMOUNT,
                            PAIDBY = CONSTITUENT.NAME,
                            PAYMETHOD = REVENUEPAYMENTMETHOD.PAYMENTMETHOD,
                            BALANCE = null,
                            PAYMENT.ID as TRANSACTIONID,
                            PAYMENT.LOOKUPID as TRANSACTIONLOOKUPID,
                            PAYMENT.TRANSACTIONAMOUNT as TRANSACTIONAMOUNT,
                            RECORDTYPE = 1,
                            '' DESIGNATIONLIST,
                            PARENT = INSTALLMENT.ID    
                        from 
                            dbo.REVENUE                        
                        inner join
                            dbo.INSTALLMENT on REVENUE.ID = INSTALLMENT.REVENUEID
                        inner join
                            dbo.INSTALLMENTSPLIT on INSTALLMENT.ID = INSTALLMENTSPLIT.INSTALLMENTID
                        inner join
                            dbo.INSTALLMENTSPLITPAYMENT on INSTALLMENTSPLIT.ID = INSTALLMENTSPLITPAYMENT.INSTALLMENTSPLITID
                        inner join
                            dbo.REVENUESPLIT PAYMENTSPLIT on INSTALLMENTSPLITPAYMENT.PAYMENTID = PAYMENTSPLIT.ID
                        inner join
                            dbo.REVENUE PAYMENT on PAYMENTSPLIT.REVENUEID = PAYMENT.ID
                        inner join
                            dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = PAYMENT.ID
                        inner join
                            dbo.CONSTITUENT on PAYMENT.CONSTITUENTID = CONSTITUENT.ID
                        where 
              REVENUE.[CONSTITUENTID] = @CONSTITUENTID
              and
                            REVENUE.[TRANSACTIONTYPECODE] = 1
                        group by 
                            REVENUE.ID,
                            REVENUE.LOOKUPID,
                            INSTALLMENT.SEQUENCE,
                            PAYMENT.DATE,
                            CONSTITUENT.NAME,
                            REVENUEPAYMENTMETHOD.PAYMENTMETHOD,
                            PAYMENT.ID,
                            PAYMENT.LOOKUPID,
                            INSTALLMENT.ID,
                            PAYMENT.TRANSACTIONAMOUNT
                        union all

                        select
                            REVENUE.ID as REVENUEID,
              REVENUE.LOOKUPID as REVENUELOOKUPID,
                            null as ID,
                            INSTALLMENT.SEQUENCE,
                            LISTORDER = 2,
                            ACTIVITY = 'Write-off',
                            WRITEOFF.DATE as Date,
                            sum(INSTALLMENTSPLITWRITEOFF.TRANSACTIONAMOUNT) AMOUNT,
                            PAIDBY = null,
                            PAYMETHOD = null,
                            BALANCE = null,
                            null as TRANSACTIONID,
                            TRANSACTIONLOOKUPID = '',
                            TRANSACTIONAMOUNT = 0,
                            RECORDTYPE = 2,
                            '' DESIGNATIONLIST,
                            PARENT = INSTALLMENT.ID    
                        from
                            dbo.REVENUE
                        inner join
                            dbo.INSTALLMENT on REVENUE.ID = INSTALLMENT.REVENUEID
                        inner join 
                            dbo.INSTALLMENTSPLIT on INSTALLMENTSPLIT.INSTALLMENTID = INSTALLMENT.ID
                        inner join
                            dbo.INSTALLMENTSPLITWRITEOFF on INSTALLMENTSPLIT.ID = INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID
                        inner join
                            dbo.WRITEOFF on INSTALLMENTSPLITWRITEOFF.WRITEOFFID = WRITEOFF.ID
                        where 
                            REVENUE.[CONSTITUENTID] = @CONSTITUENTID
              and
                            REVENUE.[TRANSACTIONTYPECODE] = 1
                        group by 
                            REVENUE.ID,
                            REVENUE.LOOKUPID,
                            INSTALLMENT.SEQUENCE,
                            WRITEOFF.DATE,
                            INSTALLMENT.ID

                    ) as INSTALLMENTDATA
                    order by REVENUEID, SEQUENCE

        end