USP_DATALIST_CREDITREFUND_REFUNDMETHODS
Returns a list of credit payments for a refund.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CREDITID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CREDITREFUND_REFUNDMETHODS
(
@CREDITID uniqueidentifier
)
as
set nocount on;
declare @CHECKS table (ID uniqueidentifier, CHECKNUMBER nvarchar(20));
insert into @CHECKS
(ID, CHECKNUMBER)
(
select
DETAIL.ID,
DETAIL.CHECKNUMBER
from dbo.CREDITPAYMENTCHECKPAYMENTMETHODDETAIL DETAIL
inner join dbo.CREDITPAYMENT on DETAIL.ID = CREDITPAYMENT.ID
where CREDITPAYMENT.CREDITID = @CREDITID
);
select
[CREDITPAYMENT].[ID],
[CREDITPAYMENT].[PAYMENTMETHOD],
[CREDITPAYMENT].[AMOUNT],
case [CREDITPAYMENT].[PAYMENTMETHODCODE]
when 0 then ''
when 2 then
(
select dbo.UFN_CREDITTYPECODE_GETDESCRIPTION([CREDITCARDPAYMENTMETHODDETAIL].[CREDITTYPECODEID]) + ' #' + [CREDITCARDPAYMENTMETHODDETAIL].[CREDITCARDPARTIALNUMBER]
from dbo.[CREDITCARDPAYMENTMETHODDETAIL]
inner join dbo.[REVENUEPAYMENTMETHOD]
on [CREDITCARDPAYMENTMETHODDETAIL].[ID] = [REVENUEPAYMENTMETHOD].[ID]
where [REVENUEPAYMENTMETHOD].[REVENUEID] = [CREDITPAYMENT].[REVENUEID]
)
when 10 then dbo.UFN_OTHERPAYMENTMETHODCODE_GETDESCRIPTION([CREDITPAYMENT].[OTHERPAYMENTMETHODCODEID])
end as [PAYMENTTYPE],
[CREDITPAYMENT].[REFUNDPROCESSED],
case when [CREDITPAYMENT].[REFUNDPROCESSED] = 0 then 'res:x_16' end as [REFUNDERRORIMAGE],
[CREDITPAYMENT].[STATUS] as [BBPSSTATUS],
[CREDITPAYMENT].[PAYMENTMETHODCODE],
BANKACCOUNTDEPOSITCREDITPAYMENT.DEPOSITID,
BANKACCOUNTTRANSACTION.TRANSACTIONNUMBER [DEPOSITNUMBER],
(select TOP 1 T.POSTDATE from dbo.GLTRANSACTION T inner join dbo.CREDITGLDISTRIBUTION GL on GL.GLTRANSACTIONID = T.ID where GL.CREDITPAYMENTID = CREDITPAYMENT.ID) [POSTDATE],
isnull((select TOP 1 T.POSTSTATUS from dbo.GLTRANSACTION T inner join dbo.CREDITGLDISTRIBUTION GL on GL.GLTRANSACTIONID = T.ID where GL.CREDITPAYMENTID = CREDITPAYMENT.ID), 'Do not post') [POSTSTATUS],
coalesce(nullif(DETAIL.CHECKNUMBER, ''), 'ed828b87-f4f2-4519-8665-1fa8aa036b3d') as [PARENTCHECKNUMBER],
null as [CHECKNUMBER],
case when (select count(CHECKS.ID) from @CHECKS CHECKS where CHECKS.CHECKNUMBER = DETAIL.CHECKNUMBER) = 1
then 1
else 0
end as [CHECKEDITABLE],
case when (select count(CHECKS.ID) from @CHECKS CHECKS where CHECKS.CHECKNUMBER = DETAIL.CHECKNUMBER) = 1
then 1
else 0
end as [SINGLECHECK]
from dbo.[CREDITPAYMENT]
left join dbo.BANKACCOUNTDEPOSITCREDITPAYMENT on CREDITPAYMENT.ID = BANKACCOUNTDEPOSITCREDITPAYMENT.ID
left join dbo.BANKACCOUNTTRANSACTION on BANKACCOUNTTRANSACTION.ID = BANKACCOUNTDEPOSITCREDITPAYMENT.DEPOSITID
left join dbo.CREDITPAYMENTCHECKPAYMENTMETHODDETAIL DETAIL on CREDITPAYMENT.ID = DETAIL.ID
where [CREDITPAYMENT].[CREDITID] = @CREDITID
union
-- Adding a parent row for checks only so each refund detail record can be viewed, use a well known guid if the check number is empty
select
@CREDITID,
[CREDITPAYMENT].[PAYMENTMETHOD],
sum([CREDITPAYMENT].[AMOUNT]),
null as [PAYMENTTYPE],
null as [REFUNDPROCESSED],
null as [REFUNDERRORIMAGE],
null as [BBPSSTATUS],
1 as [PAYMENTMETHODCODE],
null as [DEPOSITID],
null as [DEPOSITNUMBER],
null as [POSTDATE],
null as [POSTSTATUS],
null as [PARENTCHECKNUMBER],
coalesce(nullif(DETAIL.CHECKNUMBER, ''), 'ed828b87-f4f2-4519-8665-1fa8aa036b3d') as [CHECKNUMBER],
1 as [CHECKEDITABLE],
0 as [SINGLECHECK]
from dbo.[CREDITPAYMENT]
left join dbo.BANKACCOUNTDEPOSITCREDITPAYMENT on CREDITPAYMENT.ID = BANKACCOUNTDEPOSITCREDITPAYMENT.ID
left join dbo.BANKACCOUNTTRANSACTION on BANKACCOUNTTRANSACTION.ID = BANKACCOUNTDEPOSITCREDITPAYMENT.DEPOSITID
inner join dbo.CREDITPAYMENTCHECKPAYMENTMETHODDETAIL DETAIL on CREDITPAYMENT.ID = DETAIL.ID
where [CREDITPAYMENT].[CREDITID] = @CREDITID
and (select count(CHECKS.ID) from @CHECKS CHECKS where CHECKS.CHECKNUMBER = DETAIL.CHECKNUMBER) > 1
group by [CREDITPAYMENT].[PAYMENTMETHOD], DETAIL.CHECKNUMBER