USP_DATALIST_SALESRECONCILIATIONREPORT_REFUNDDETAILS

Returns list of refund credits linked to a reconciliation.

Parameters

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

Definition

Copy


CREATE procedure dbo.USP_DATALIST_SALESRECONCILIATIONREPORT_REFUNDDETAILS
(
    @RECONCILIATIONID uniqueidentifier = null
)
as
    set nocount on;

    declare @CREDITS table (
        [CREDITNUMBER] integer,
        [ID] uniqueidentifier,
        [TRANSACTIONDATE] datetime,
        [SALESORDERID] uniqueidentifier
    )

    insert into @CREDITS
    select
        row_number() over(order by FT.DATE),
        FT.ID as [CREDITID],
        cast(FT.DATE as datetime),
        isnull(SALESORDER.ID, EXT.SALESORDERID)
    from
        dbo.FINANCIALTRANSACTION as FT
    inner join
        dbo.CREDIT_EXT as EXT on EXT.ID = FT.ID
    left outer join
        dbo.SALESORDER on SALESORDER.REVENUEID = FT.PARENTID
    where exists(
            select *
            from dbo.[CREDITPAYMENT]
            where
                [CREDITPAYMENT].[RECONCILIATIONID] = @RECONCILIATIONID and
                [CREDITPAYMENT].[CREDITID] = FT.ID
        )

    select
        [CREDIT].[CREDITNUMBER],
        [CREDIT].[ID] as [CREDITID],
        [CREDITPAYMENT].[PAYMENTMETHODCODE],
        [CREDITPAYMENT].[PAYMENTMETHOD],
        convert(nvarchar(20), SALESORDER.SEQUENCEID) as [SALESORDERNUMBER],
        'http://' + CONVERT(nvarchar(36),SALESORDER.ID) as [SALESORDERLINK],
        [CREDIT].[TRANSACTIONDATE],
        [CREDITPAYMENT].[AMOUNT] as [AMOUNT],
        case [CREDITPAYMENT].[PAYMENTMETHODCODE]
            when 2 then (
                select top 1
                    dbo.UFN_CREDITTYPECODE_GETDESCRIPTION(CREDITCARDDETAILS.CREDITTYPECODEID)  + ' #' + CREDITCARDDETAILS.CREDITCARDPARTIALNUMBER
                from (
                    select
                        CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID,
                        CREDITCARDPAYMENTMETHODDETAIL.CREDITCARDPARTIALNUMBER
                    from dbo.CREDITCARDPAYMENTMETHODDETAIL
                    inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.ID = CREDITCARDPAYMENTMETHODDETAIL.ID
                    where REVENUEPAYMENTMETHOD.REVENUEID = CREDITPAYMENT.REVENUEID

                    union all
                    select
                        CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID,
                        CREDITCARDPAYMENTMETHODDETAIL.CREDITCARDPARTIALNUMBER
                    from dbo.FINANCIALTRANSACTIONLINEITEM as LI
                    inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = LI.FINANCIALTRANSACTIONID
                    inner join dbo.CREDITCARDPAYMENTMETHODDETAIL on CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
                    where LI.ID = CREDITPAYMENT.REVENUESPLITID
                ) as CREDITCARDDETAILS
            )
            when 10 then
                dbo.UFN_OTHERPAYMENTMETHODCODE_GETDESCRIPTION([CREDITPAYMENT].[OTHERPAYMENTMETHODCODEID])
        end as [PAYMENTDETAILS],
        NF.NAME as [PATRONNAME],
        'http://www.blackbaud.com/ORDERID?ORDERID=' + CONVERT(nvarchar(36),SALESORDER.ID) as [SALESORDERREPORTLINK]
    from
        @CREDITS as [CREDIT]
    inner join
        dbo.[CREDITPAYMENT] on [CREDIT].[ID] = [CREDITPAYMENT].[CREDITID]
    left join
        dbo.[SALESORDER] on [CREDIT].[SALESORDERID] = [SALESORDER].[ID]
    outer apply
        dbo.UFN_CONSTITUENT_DISPLAYNAME(SALESORDER.CONSTITUENTID) as NF
    where
        [CREDITPAYMENT].[RECONCILIATIONID] = @RECONCILIATIONID
    order by 
        [CREDIT].[CREDITNUMBER] asc,
        [CREDITPAYMENT].[PAYMENTMETHOD] asc,
        [CREDITPAYMENT].[AMOUNT] asc;

    return 0;