UFN_SALESDEPOSITTEMPLATE_GETUNLINKEDPAYMENTS_4
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESDEPOSITTEMPLATEID | uniqueidentifier | IN | |
@POSTSTATUSCODE | tinyint | IN | |
@TRANSACTIONDATE | date | IN |
Definition
Copy
CREATE function dbo.UFN_SALESDEPOSITTEMPLATE_GETUNLINKEDPAYMENTS_4
(
@SALESDEPOSITTEMPLATEID uniqueidentifier
,@POSTSTATUSCODE tinyint = null -- 1 = Not posted, 2 = Posted, 3 = Do not post
,@TRANSACTIONDATE date = null
)
returns table
as
return
select
FT.ID
,FT.[DATE] as TRANSACTIONDATE
,PM.PAYMENTMETHOD
,FT.TRANSACTIONAMOUNT as AMOUNT
,FT.[TYPE] as TRANSACTIONTYPE
from dbo.FINANCIALTRANSACTION FT with (nolock)
inner join (
select SOP.ID, SOP.SALESORDERID, SOP.PAYMENTID, SOP.RECONCILIATIONID, SOP.AMOUNT, SOP.DONOTRECONCILE, SOP.DEPOSITED
from dbo.SALESORDERPAYMENT SOP with (nolock)
union all
select RSD.ID, RSD.RESERVATIONID, RSD.PAYMENTID, RSD.RECONCILIATIONID, RSD.AMOUNT, 0, RSD.DEPOSITED
from dbo.RESERVATIONSECURITYDEPOSITPAYMENT RSD with (nolock)) P on P.PAYMENTID = FT.ID
inner join dbo.SALESORDER SO with (nolock) on SO.ID = P.SALESORDERID
inner join dbo.REVENUEPAYMENTMETHOD PM with (nolock) on PM.REVENUEID = FT.ID
left join dbo.CREDITCARDPAYMENTMETHODDETAIL CCD with (nolock) on CCD.ID = PM.ID
left join dbo.OTHERPAYMENTMETHODDETAIL OD with (nolock) on OD.ID = PM.ID
where P.DEPOSITED = 0
and (PM.PAYMENTMETHODCODE != 10 or OD.OTHERPAYMENTMETHODCODEID not in (select ID from dbo.NONDEPOSITABLEPAYMENTMETHOD))
and FT.ID not in (select BADP.ID from dbo.BANKACCOUNTDEPOSITPAYMENT BADP with (nolock))
and ((P.DONOTRECONCILE = 1 and SO.STATUSCODE = 1)
or (P.DONOTRECONCILE = 0 and P.RECONCILIATIONID in (select R.ID from dbo.RECONCILIATION R where R.STATUSCODE > 1)))
and exists(select 1
from dbo.SALESDEPOSITTEMPLATE SDT
left join dbo.SALESDEPOSITTEMPLATEPAYMENTMETHOD SDTPM on SDTPM.SALESDEPOSITTEMPLATEID = SDT.ID
left join dbo.SALESDEPOSITTEMPLATESALESCHANNEL SDTSC on SDTSC.SALESDEPOSITTEMPLATEID = SDT.ID
where SDT.ID = @SALESDEPOSITTEMPLATEID
and (SDT.PAYMENTMETHODOPTIONCODE = 0
or ((SDTPM.PAYMENTMETHODCODE = PM.PAYMENTMETHODCODE)
and ((SDTPM.CREDITTYPECODEID is null and CCD.CREDITTYPECODEID is null)
or SDTPM.CREDITTYPECODEID = CCD.CREDITTYPECODEID)
and ((SDTPM.OTHERPAYMENTMETHODCODEID is null and OD.OTHERPAYMENTMETHODCODEID is null)
or SDTPM.OTHERPAYMENTMETHODCODEID = OD.OTHERPAYMENTMETHODCODEID)))
and (SDT.SALESCHANNELOPTIONCODE = 0
or (SDTSC.SALESMETHODTYPECODE = SO.SALESMETHODTYPECODE)))
and (@POSTSTATUSCODE is null or FT.POSTSTATUSCODE = (case when @POSTSTATUSCODE = 2 then 3 else @POSTSTATUSCODE end))
and (@TRANSACTIONDATE is null or cast(FT.[DATE] as date) = @TRANSACTIONDATE)