USP_ORDERPAYMENT_GETTRANSACTION

Gets credit card transaction details for an order payment.

Parameters

Parameter Parameter Type Mode Description
@SALESORDERPAYMENTID uniqueidentifier IN
@SALESORDERID uniqueidentifier IN
@FILTERTRANSACTIONLESS bit IN

Definition

Copy


CREATE procedure dbo.USP_ORDERPAYMENT_GETTRANSACTION (
    @SALESORDERPAYMENTID uniqueidentifier = null,
    @SALESORDERID uniqueidentifier = null,
    @FILTERTRANSACTIONLESS bit = 1
)
as begin
    set nocount on;

    -- Not ideal, but this branch allows SQL Server

    -- to generate better queries without needing to recompile

    if @SALESORDERPAYMENTID is not null begin
        select
            [SALESORDERPAYMENT].[ID],
            FT.BASEAMOUNT,
            [CREDITCARDPAYMENTMETHODDETAIL].[TRANSACTIONID],
            [SALESORDER].[STATUSCODE] as [ORDERSTATUSCODE]
        from dbo.[SALESORDERPAYMENT]
        inner join dbo.[SALESORDER]
            on [SALESORDERPAYMENT].[SALESORDERID] = [SALESORDER].[ID]
        inner join dbo.FINANCIALTRANSACTION as FT
            on [SALESORDERPAYMENT].[PAYMENTID] = FT.ID
        inner join dbo.[REVENUEPAYMENTMETHOD]
            on FT.ID = [REVENUEPAYMENTMETHOD].[REVENUEID]
        left join dbo.[CREDITCARDPAYMENTMETHODDETAIL]
            on [REVENUEPAYMENTMETHOD].[ID] = [CREDITCARDPAYMENTMETHODDETAIL].[ID]
        where
            FT.DELETEDON is null
            and [SALESORDERPAYMENT].[ID] = @SALESORDERPAYMENTID
            and (
                @FILTERTRANSACTIONLESS = 0 or
                [CREDITCARDPAYMENTMETHODDETAIL].[TRANSACTIONID] is not null
            )
    end
    else if @SALESORDERID is not null begin
        select
            [SALESORDERPAYMENT].[ID],
            FT.BASEAMOUNT,
            [CREDITCARDPAYMENTMETHODDETAIL].[TRANSACTIONID],
            [SALESORDER].[STATUSCODE] as [ORDERSTATUSCODE]
        from dbo.[SALESORDERPAYMENT]
        inner join dbo.[SALESORDER]
            on [SALESORDERPAYMENT].[SALESORDERID] = [SALESORDER].[ID]
        inner join dbo.FINANCIALTRANSACTION as FT
            on [SALESORDERPAYMENT].[PAYMENTID] = FT.ID
        inner join dbo.[REVENUEPAYMENTMETHOD]
            on FT.ID = [REVENUEPAYMENTMETHOD].[REVENUEID]
        left join dbo.[CREDITCARDPAYMENTMETHODDETAIL]
            on [REVENUEPAYMENTMETHOD].[ID] = [CREDITCARDPAYMENTMETHODDETAIL].[ID]
        where
            FT.DELETEDON is null
            and [SALESORDER].[ID] = @SALESORDERID
            and (
                @FILTERTRANSACTIONLESS = 0 or
                [CREDITCARDPAYMENTMETHODDETAIL].[TRANSACTIONID] is not null
            )
    end

    return 0;
end