USP_DATALIST_RECENTREFUNDS

Parameters

Parameter Parameter Type Mode Description
@REFUNDMETHODTYPECODE tinyint IN
@OTHERPAYMENTMETHODCODEID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@INCLUDESENTCHECKS bit IN

Definition

Copy


CREATE procedure dbo.USP_DATALIST_RECENTREFUNDS
(
    @REFUNDMETHODTYPECODE tinyint,
    @OTHERPAYMENTMETHODCODEID uniqueidentifier = null,
    @STARTDATE datetime = null,
    @ENDDATE datetime = null,
    @INCLUDESENTCHECKS bit = null
)
as
    set nocount on;

    select top(4)
        FT.ID,
        cast(FT.DATE as datetime),
        NF.NAME as CONSTITUENT,
        FT.TRANSACTIONAMOUNT,
        dbo.UFN_CREDIT_GETPAYMENTMETHODLIST(FT.ID) as REFUNDMETHOD,
        case
            when exists (
                select CREDITPAYMENT.ID
                from dbo.CREDITPAYMENT
                where CREDITPAYMENT.CREDITID = FT.ID
                    and CREDITPAYMENT.PAYMENTMETHODCODE = 1
            ) then 1
            else 0            
        end as HASCHECK,
        case
            when exists (
                select CREDITPAYMENT.ID
                from dbo.CREDITPAYMENT
                inner join dbo.CREDITPAYMENTCHECKPAYMENTMETHODDETAIL
                    on CREDITPAYMENT.ID = CREDITPAYMENTCHECKPAYMENTMETHODDETAIL.ID
                where CREDITPAYMENT.CREDITID = FT.ID
                    and CREDITPAYMENT.PAYMENTMETHODCODE = 1
                    and CREDITPAYMENTCHECKPAYMENTMETHODDETAIL.CHECKDATE <> '00000000'
            ) then 1
            else 0            
        end as CHECKSENT
    from
        dbo.FINANCIALTRANSACTION as FT
    outer apply
        dbo.UFN_CONSTITUENT_DISPLAYNAME(FT.CONSTITUENTID) as NF
    where
        FT.TYPECODE = 23  -- Refund

        and (@STARTDATE is null or FT.CALCULATEDDATE >= @STARTDATE)
        and (@ENDDATE is null or FT.CALCULATEDDATE <= @ENDDATE)
        and (
            @REFUNDMETHODTYPECODE = 0
            or exists(
                select ID
                from dbo.CREDITPAYMENT
                where CREDITPAYMENT.CREDITID = FT.ID
                    and CREDITPAYMENT.PAYMENTMETHODCODE = @REFUNDMETHODTYPECODE - 1
                    and (
                        (CREDITPAYMENT.OTHERPAYMENTMETHODCODEID is null and @OTHERPAYMENTMETHODCODEID is null)
                        or CREDITPAYMENT.OTHERPAYMENTMETHODCODEID = @OTHERPAYMENTMETHODCODEID
                    )
            )
        )
        and (
                @INCLUDESENTCHECKS = 1
                or not exists (
                        select CREDITPAYMENT.ID
                        from dbo.CREDITPAYMENT
                        inner join dbo.CREDITPAYMENTCHECKPAYMENTMETHODDETAIL
                            on CREDITPAYMENT.ID = CREDITPAYMENTCHECKPAYMENTMETHODDETAIL.ID
                        where CREDITPAYMENT.CREDITID = FT.ID
                            and CREDITPAYMENT.PAYMENTMETHODCODE = 1
                            and CREDITPAYMENTCHECKPAYMENTMETHODDETAIL.CHECKDATE <> '00000000'
                    )
            )
    order by
        FT.DATE desc
    option (recompile);

    return 0;