UFN_SALESDEPOSITTEMPLATE_GETUNLINKEDCREDITPAYMENTS4
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESDEPOSITTEMPLATEID | uniqueidentifier | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@TRANSACTIONDATE | date | IN |
Definition
Copy
CREATE function dbo.UFN_SALESDEPOSITTEMPLATE_GETUNLINKEDCREDITPAYMENTS4
(
@SALESDEPOSITTEMPLATEID uniqueidentifier = null
,@PAYMENTMETHODCODE tinyint = null
,@TRANSACTIONDATE date = null
)
returns table
as return
select
CP.ID
,CP.AMOUNT
,CAST(SO.SEQUENCEID as nvarchar(20)) as SALESORDERNUMBER
,CP.PAYMENTMETHODCODE
,COALESCE(OC.[DESCRIPTION], CC.[DESCRIPTION], CP.PAYMENTMETHOD) as PAYMENTTYPE
,CCD.CREDITCARDPARTIALNUMBER
,CP.DATEADDED as TRANSACTIONDATE
from (
select
CP1.ID
,CP1.AMOUNT
,CP1.CREDITID
,CP1.PAYMENTMETHODCODE
,CP1.PAYMENTMETHOD
,CP1.RECONCILIATIONID
,CP1.REFUNDPROCESSED
,case when CP1.PAYMENTMETHODCODE = 2
then (
select top 1 RPM.ID
from dbo.REVENUEPAYMENTMETHOD RPM
left join dbo.FINANCIALTRANSACTIONLINEITEM FTLI on FTLI.FINANCIALTRANSACTIONID = RPM.REVENUEID
where CP1.REVENUEID = RPM.REVENUEID or CP1.REVENUESPLITID = FTLI.ID
)
else
null
end as REVENUEPAYMENTMETHODID
,CP1.OTHERPAYMENTMETHODCODEID
,CP1.DATEADDED
,CP1.DEPOSITED
from dbo.CREDITPAYMENT CP1
) CP
inner join
dbo.FINANCIALTRANSACTION as FT on FT.ID = CP.CREDITID
inner join
dbo.CREDIT_EXT as EXT on EXT.ID = FT.ID
inner join
dbo.RECONCILIATION R on CP.RECONCILIATIONID = R.ID
left join
dbo.SALESORDER SO on SO.ID = EXT.SALESORDERID or SO.REVENUEID = FT.PARENTID
left join
dbo.CREDITCARDPAYMENTMETHODDETAIL CCD on CCD.ID = CP.REVENUEPAYMENTMETHODID
left join
dbo.CREDITTYPECODE CC on CC.ID = CCD.CREDITTYPECODEID
left join
dbo.OTHERPAYMENTMETHODCODE OC on OC.ID = CP.OTHERPAYMENTMETHODCODEID
where
R.STATUSCODE > 1 and CP.DEPOSITED = 0
and (@PAYMENTMETHODCODE is null or CP.PAYMENTMETHODCODE = @PAYMENTMETHODCODE)
and (CP.PAYMENTMETHODCODE != 10 or CP.OTHERPAYMENTMETHODCODEID not in (select ID from dbo.NONDEPOSITABLEPAYMENTMETHOD))
and CP.REFUNDPROCESSED = 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 = CP.PAYMENTMETHODCODE
and (
(SDTPM.CREDITTYPECODEID is null and CCD.CREDITTYPECODEID is null)
or SDTPM.CREDITTYPECODEID = CCD.CREDITTYPECODEID
)
and (
(SDTPM.OTHERPAYMENTMETHODCODEID is null and CP.OTHERPAYMENTMETHODCODEID is null)
or SDTPM.OTHERPAYMENTMETHODCODEID = CP.OTHERPAYMENTMETHODCODEID
)
)
)
and (SDT.SALESCHANNELOPTIONCODE = 0
or (SDTSC.SALESMETHODTYPECODE = SO.SALESMETHODTYPECODE))
)
and (convert(date, CP.DATEADDED) = @TRANSACTIONDATE or @TRANSACTIONDATE is null)