UFN_CREDIT_GETORDERPAYMENTS_2

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@SALESORDERID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_CREDIT_GETORDERPAYMENTS_2
            (
                @SALESORDERID uniqueidentifier

            ) 
            returns table
            --(

            --    [INCLUDE] bit,

            --    [DESCRIPTION] nvarchar(100),

            --    [DISPLAYDESCRIPTION] nvarchar(100),

            --    [DISPLAYSOURCE] nvarchar(100),

            --    [SOURCENUMBER] integer,

            --    [SOURCETYPE] tinyint,

            --    [REFUNDAMOUNT] money,

            --    [AMOUNTPAID] money,

            --    [PAYMENTTYPECODE] tinyint,

            --    [REVENUEID] uniqueidentifier,

            --    [REVENUESPLITID] uniqueidentifier,

            --    [TRANSACTIONID] uniqueidentifier,

            --    [OTHERPAYMENTMETHODCODEID] uniqueidentifier,

            --    [PAYMENTDATE] datetime

            --)

            as return
                select
                    [INCLUDE],
                    [DESCRIPTION],
                    '$' + cast([AMOUNTPAID] as nvarchar(20)) + ' ' + [DESCRIPTION] as [DISPLAYDESCRIPTION],
                    [DISPLAYSOURCE],
                    [SOURCENUMBER],
                    [SOURCETYPE],
                    [REFUNDAMOUNT],
                    [AMOUNTPAID],
                    [PAYMENTTYPECODE],
                    [REVENUEID],
                    [REVENUESPLITID],
                    [TRANSACTIONID],
                    [OTHERPAYMENTMETHODCODEID],
                    [PAYMENTDATE]
                from
                    (select
                        cast(0 as bit) as [INCLUDE],
                        case
                            when [REVENUEPAYMENTMETHOD].[PAYMENTMETHODCODE] = 10 then
                                dbo.UFN_OTHERPAYMENTMETHODCODE_GETDESCRIPTION([OTHERPAYMENTMETHODCODEID])
                            else
                                [REVENUEPAYMENTMETHOD].[PAYMENTMETHOD] + 
                                coalesce(', ' + dbo.UFN_CREDITTYPECODE_GETDESCRIPTION([CREDITCARDPAYMENTMETHODDETAIL].[CREDITTYPECODEID]) + ' #' + [CREDITCARDPAYMENTMETHODDETAIL].[CREDITCARDPARTIALNUMBER], '') +
                                coalesce(' #' + [CHECKPAYMENTMETHODDETAIL].[CHECKNUMBER], '')
                        end [DESCRIPTION],
                        null as [DISPLAYSOURCE],
                        [SALESORDER].[SEQUENCEID] as [SOURCENUMBER],
                        0 as [SOURCETYPE],
                        0 as [REFUNDAMOUNT],
                        [FINANCIALTRANSACTION].[BASEAMOUNT] - coalesce((select sum(coalesce([CREDITPAYMENT].[AMOUNT], 0)) 
                                                            from dbo.[CREDITPAYMENT] 
                                                        where [REVENUEID] = [FINANCIALTRANSACTION].[ID]), 0) as [AMOUNTPAID], -- (amount - refunds)

                        [REVENUEPAYMENTMETHOD].[PAYMENTMETHODCODE] as [PAYMENTTYPECODE],
                        cast(1 as bit) as [AUTOINCLUDED],
                        [FINANCIALTRANSACTION].[ID] as [REVENUEID],
                        cast(null as uniqueidentifier) as [REVENUESPLITID],
                        [CREDITCARDPAYMENTMETHODDETAIL].[TRANSACTIONID],
                        [OTHERPAYMENTMETHODDETAIL].[OTHERPAYMENTMETHODCODEID],
                        cast(FINANCIALTRANSACTION.DATE as datetime) as [PAYMENTDATE]
                    from dbo.[SALESORDER]
                    inner join dbo.[SALESORDERPAYMENT] on [SALESORDERPAYMENT].[SALESORDERID] = [SALESORDER].[ID]
                    inner join dbo.[FINANCIALTRANSACTION] on [SALESORDERPAYMENT].[PAYMENTID] = [FINANCIALTRANSACTION].[ID]
                    inner join dbo.[REVENUEPAYMENTMETHOD] on [FINANCIALTRANSACTION].[ID] = [REVENUEPAYMENTMETHOD].[REVENUEID]
                    left join dbo.[CREDITCARDPAYMENTMETHODDETAIL] on [CREDITCARDPAYMENTMETHODDETAIL].[ID] = [REVENUEPAYMENTMETHOD].[ID]
                    left join dbo.[OTHERPAYMENTMETHODDETAIL] on [OTHERPAYMENTMETHODDETAIL].[ID] = [REVENUEPAYMENTMETHOD].[ID]
                    left join dbo.[CHECKPAYMENTMETHODDETAIL] on [CHECKPAYMENTMETHODDETAIL].[ID] = [REVENUEPAYMENTMETHOD].[ID]
                    where [SALESORDER].[ID] = @SALESORDERID) [PAYMENTS]
                where [PAYMENTS].[AMOUNTPAID] > 0;