UFN_RECONCILIATION_GETOTHERRECEIPTS_FULL

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_FULL
(
    @RECONCILIATIONID uniqueidentifier,
    @APPUSERID uniqueidentifier = null,
    @WORKSTATIONID uniqueidentifier = null
) returns table 
as return
    select
        (
            select ID 
            from dbo.RECONCILIATIONDETAIL
            where 
                RECONCILIATIONID = @RECONCILIATIONID
                and PAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE
                and (CREDITTYPECODEID = CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID or CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID is null)
                and (OTHERPAYMENTMETHODCODEID = OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID or OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID is null)
        ) as ID,
        REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
        REVENUEPAYMENTMETHOD.PAYMENTMETHOD,
        CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID,
        OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID,
        cast(0 as bit) as ISREFUND,
        cast(0 as bit) as ISLABEL,
        FT.BASEAMOUNT as TOTALAMOUNT,
        isnull(SALESORDER.TRANSACTIONDATE, cast(FT.DATE as datetime)) as DATE,
        CREDITCARDPAYMENTMETHODDETAIL.CARDHOLDERNAME,
        CREDITCARDPAYMENTMETHODDETAIL.AUTHORIZATIONCODE,
        CREDITCARDPAYMENTMETHODDETAIL.CREDITCARDPARTIALNUMBER
    from
        dbo.FINANCIALTRANSACTION as FT
    inner join (
        select ID, SALESORDERID, PAYMENTID, RECONCILIATIONID, APPUSERID
        from dbo.SALESORDERPAYMENT 
        where 
            (SALESORDERPAYMENT.APPUSERID = @APPUSERID or @APPUSERID is null)
            and SALESORDERPAYMENT.DONOTRECONCILE = 0

        union all 
        select ID, RESERVATIONID as SALESORDERID, PAYMENTID, RECONCILIATIONID, APPUSERID
        from dbo.RESERVATIONSECURITYDEPOSITPAYMENT
        where
            (RESERVATIONSECURITYDEPOSITPAYMENT.APPUSERID = @APPUSERID or @APPUSERID is null)
    ) as SALESORDERPAYMENT on FT.ID = SALESORDERPAYMENT.PAYMENTID
    inner join
        dbo.REVENUEPAYMENTMETHOD on FT.ID = REVENUEPAYMENTMETHOD.REVENUEID
    inner join
        dbo.SALESORDER on SALESORDERPAYMENT.SALESORDERID = SALESORDER.ID
    left join
        dbo.CREDITCARDPAYMENTMETHODDETAIL on REVENUEPAYMENTMETHOD.ID = CREDITCARDPAYMENTMETHODDETAIL.ID
    left join
        dbo.OTHERPAYMENTMETHODDETAIL on REVENUEPAYMENTMETHOD.ID = OTHERPAYMENTMETHODDETAIL.ID
    where 
        (
            SALESORDERPAYMENT.RECONCILIATIONID = @RECONCILIATIONID
            or (
                SALESORDERPAYMENT.RECONCILIATIONID is null
                and (select STATUSCODE from dbo.RECONCILIATION where ID = @RECONCILIATIONID) = 0 
                and (SALESORDERPAYMENT.APPUSERID = @APPUSERID or @APPUSERID is null)
            )
        )
        and REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE <> 0  -- Cash

        and SALESORDER.SALESMETHODTYPECODE <> 2  -- Online Sales

        and FT.DELETEDON is null

    --Get refunds

    union all
    select
        @RECONCILIATIONID,
        null as PAYMENTMETHODCODE,
        null as PAYMENTMETHOD,
        null as CREDITTYPECODEID,
        null as OTHERPAYMENTMETHODCODEID,
        cast(1 as bit) as ISREFUND,
        cast(0 as bit) as ISLABEL,
        FT.TRANSACTIONAMOUNT as TOTALAMOUNT,
        cast(FT.DATE as datetime) as DATE,
        null as CARDHOLDERNAME,
        null as AUTHORIZATIONCODE,
        null as CREDITCARDPARTIALNUMBER
    from
        dbo.FINANCIALTRANSACTION as FT
    inner join
        dbo.CREDIT_EXT as EXT on EXT.ID = FT.ID
    inner join
        dbo.CREDITPAYMENT on CREDITPAYMENT.CREDITID = FT.ID
    left outer join
        dbo.SALESORDER on SALESORDER.REVENUEID = FT.PARENTID
    where
        (CREDITPAYMENT.APPUSERID = @APPUSERID or @APPUSERID is null)
        and (SALESORDER.ID is not null or EXT.SALESORDERID is not null)
        and (
            CREDITPAYMENT.RECONCILIATIONID = @RECONCILIATIONID
            or (
                CREDITPAYMENT.RECONCILIATIONID is null
                and CREDITPAYMENT.REFUNDPROCESSED = 1
                and (select STATUSCODE from dbo.RECONCILIATION where ID = @RECONCILIATIONID) = 0
            )
        )