UFN_CREDIT_GETITEMLIST

Return

Return Type
nvarchar(max)

Parameters

Parameter Parameter Type Mode Description
@CREDITID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_CREDIT_GETITEMLIST
(
    @CREDITID uniqueidentifier
)
returns nvarchar(max)
with execute as caller
as begin
    declare @LIST nvarchar(max) = null;

    -- Note:

    --        Excluding Tax and Discount on purpose as these are not items that can be chosen to be refunded.


    select
        @LIST = coalesce(@LIST + ', ', '') +
            case EXT.TYPECODE
                when 0 then    coalesce(PROGRAM.NAME, TICKETEVENT.NAME, FTLI.DESCRIPTION)    -- ticket

                when 2 then EXT.TYPE + ' (' + FTLI.DESCRIPTION    + ')'                    -- donation

                when 6 then EVENT.NAME                                                    -- event registration

                when 255 then                                                            -- Group Sales reservation

                    case
                        when right(RESERVATION.NAME, 12) = N' Reservation' then RESERVATION.NAME
                        else RESERVATION.NAME + N' Reservation'
                    end
                else FTLI.DESCRIPTION
            end
    from dbo.FINANCIALTRANSACTIONLINEITEM FTLI
        inner join dbo.CREDITITEM_EXT EXT on FTLI.ID = EXT.ID
        left outer join dbo.CREDITITEMTICKET on FTLI.ID = CREDITITEMTICKET.ID
        left outer join dbo.TICKET on CREDITITEMTICKET.TICKETID = TICKET.ID
        left outer join dbo.PROGRAM on TICKET.PROGRAMID = PROGRAM.ID
        left outer join dbo.EVENT TICKETEVENT on TICKET.EVENTID = TICKETEVENT.ID
        left outer join dbo.CREDITITEMEVENTREGISTRATION on FTLI.ID = CREDITITEMEVENTREGISTRATION.ID
        left outer join dbo.REGISTRANT on CREDITITEMEVENTREGISTRATION.REGISTRANTID = REGISTRANT.ID
        left outer join dbo.EVENT on REGISTRANT.EVENTID = EVENT.ID
        left outer join dbo.FINANCIALTRANSACTIONLINEITEM SOURCELI on SOURCELI.ID = FTLI.SOURCELINEITEMID
        left outer join dbo.SALESORDERPAYMENT on SALESORDERPAYMENT.PAYMENTID = SOURCELI.FINANCIALTRANSACTIONID
        left outer join dbo.RESERVATION on RESERVATION.ID = SALESORDERPAYMENT.SALESORDERID
    where EXT.TYPECODE not in (4,5)-- Tax and Discount

        and (EVENT.ID is not null or EXT.TYPECODE <> 6 )  -- Event Registration 

        and EXT.CREDITID = @CREDITID;        

    return @LIST;
end