UFN_RECONCILIATION_GETOTHERRECEIPTS_WITH_REFUNDDETAIL

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@RECONCILIATIONID uniqueidentifier IN
@APPUSERID uniqueidentifier IN
@WORKSTATIONID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_RECONCILIATION_GETOTHERRECEIPTS_WITH_REFUNDDETAIL
(
    @RECONCILIATIONID uniqueidentifier,
    @APPUSERID uniqueidentifier = null,
    @WORKSTATIONID uniqueidentifier = null
) returns table 
as return
        select T.ID
            ,coalesce(CREDITTYPECODE.DESCRIPTION, OTHERPAYMENTMETHODCODE.DESCRIPTION, T.PAYMENTMETHOD) as PAYMENTMETHOD
            ,T.TOTALAMOUNT
            ,T.EXPECTED
            ,T.PAYMENTMETHODCODE
            ,ISREFUND
            ,case when NONDEPOSITABLEPAYMENTMETHOD.ID is null then 1 else 0 end as DEPOSITABLE
            ,T.CREDITTYPECODEID
            ,T.OTHERPAYMENTMETHODCODEID
        from dbo.UFN_RECONCILIATION_GETOTHERRECEIPTS(@RECONCILIATIONID, @APPUSERID) T
        left join dbo.CREDITTYPECODE on T.CREDITTYPECODEID = CREDITTYPECODE.ID
        left join dbo.OTHERPAYMENTMETHODCODE on T.OTHERPAYMENTMETHODCODEID = OTHERPAYMENTMETHODCODE.ID
        left join dbo.NONDEPOSITABLEPAYMENTMETHOD on NONDEPOSITABLEPAYMENTMETHOD.ID = OTHERPAYMENTMETHODCODE.ID
        where T.ISREFUND = 0

        union all

        select
            @RECONCILIATIONID
            ,T.PAYMENTMETHOD
            ,sum(AMOUNT)
            ,count(1)
            ,T.PAYMENTMETHODCODE
            ,1
            ,T.DEPOSITABLE
            ,T.CREDITTYPECODEID
            ,T.OTHERPAYMENTMETHODCODEID
        from (
            select
                coalesce(CREDITTYPECODE.DESCRIPTION, OTHERPAYMENTMETHODCODE.DESCRIPTION, CP.PAYMENTMETHOD) as PAYMENTMETHOD
                ,CP.AMOUNT
                ,CP.PAYMENTMETHODCODE
                ,case when NONDEPOSITABLEPAYMENTMETHOD.ID is null then 1 else 0 end as DEPOSITABLE
                ,D.CREDITTYPECODEID
                ,CP.OTHERPAYMENTMETHODCODEID
            from dbo.CREDITPAYMENT CP
            inner join dbo.FINANCIALTRANSACTION as FT on FT.ID = CP.CREDITID
            inner join dbo.CREDIT_EXT as EXT on EXT.ID = FT.ID
            left outer join dbo.SALESORDER on SALESORDER.REVENUEID = FT.PARENTID
            left join dbo.REVENUEPAYMENTMETHOD PM on PM.REVENUEID = CP.REVENUEID
            left join dbo.CREDITCARDPAYMENTMETHODDETAIL D on D.ID = PM.ID and CP.PAYMENTMETHODCODE = 2
            left join dbo.CREDITTYPECODE on D.CREDITTYPECODEID = CREDITTYPECODE.ID
            left join dbo.OTHERPAYMENTMETHODCODE on CP.OTHERPAYMENTMETHODCODEID = OTHERPAYMENTMETHODCODE.ID and CP.PAYMENTMETHODCODE = 10
            left join dbo.NONDEPOSITABLEPAYMENTMETHOD on NONDEPOSITABLEPAYMENTMETHOD.ID = OTHERPAYMENTMETHODCODE.ID
            where
                CP.PAYMENTMETHODCODE != 0  -- Cash

                and (SALESORDER.ID is not null or EXT.SALESORDERID is not null)
                and (@APPUSERID is null or CP.APPUSERID = @APPUSERID)
                and (
                    CP.RECONCILIATIONID = @RECONCILIATIONID 
                    or (
                        CP.RECONCILIATIONID is null
                        and CP.REFUNDPROCESSED = 1
                        and (select STATUSCODE from dbo.RECONCILIATION where ID = @RECONCILIATIONID) = 0
                    )
                )
        ) T
        group by
            T.PAYMENTMETHOD, T.PAYMENTMETHODCODE, T.DEPOSITABLE, T.CREDITTYPECODEID, T.OTHERPAYMENTMETHODCODEID