USP_DATALIST_PAYMENTSNOTLINKEDTODEPOSITS
A list of depositable payments that are not linked to a deposit broken down by payment method.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TOTAL | money | INOUT | unlinked |
@COUNT | int | INOUT | Count |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_PAYMENTSNOTLINKEDTODEPOSITS
(
@TOTAL money = null output
,@COUNT integer = null output
)
as
set nocount on;
declare @Data table (PAYMENTMETHOD nvarchar(100), AMOUNT money, [COUNT] integer);
insert into @Data
select
REVENUEPAYMENTMETHOD.PAYMENTMETHOD
,SUM([REVENUE].[TRANSACTIONAMOUNT]) AMOUNT
,COUNT([REVENUE].[TRANSACTIONAMOUNT]) [COUNT]
from dbo.REVENUE
left join dbo.BANKACCOUNTDEPOSITPAYMENT on REVENUE.ID = BANKACCOUNTDEPOSITPAYMENT.ID
left join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
left join dbo.REVENUEPOSTED on REVENUEPOSTED.ID = REVENUE.ID
left join dbo.ADJUSTMENT on ADJUSTMENT.REVENUEID = REVENUEPOSTED.ID
left join dbo.SALESORDERPAYMENT on SALESORDERPAYMENT.PAYMENTID = REVENUE.ID
left join dbo.SALESORDER on SALESORDER.ID = SALESORDERPAYMENT.SALESORDERID
left join dbo.RECONCILIATION on SALESORDERPAYMENT.RECONCILIATIONID = RECONCILIATION.ID
left join dbo.OTHERPAYMENTMETHODDETAIL on OTHERPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
left join dbo.RESERVATIONSECURITYDEPOSITPAYMENT on RESERVATIONSECURITYDEPOSITPAYMENT.PAYMENTID = REVENUE.ID
where [BANKACCOUNTDEPOSITPAYMENT].[DEPOSITID] IS NULL AND [REVENUE].[TRANSACTIONTYPECODE] = 0
and [REVENUEPAYMENTMETHOD].[PAYMENTMETHODCODE] in (0,1,2,10)
and (SALESORDERPAYMENT.ID is null or RECONCILIATION.STATUSCODE = 3 or (SALESORDERPAYMENT.DONOTRECONCILE = 1 and SALESORDER.STATUSCODE = 1))
and (NOT exists(select ID from dbo.NONDEPOSITABLEPAYMENTMETHOD where ID = OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID))
and ((RESERVATIONSECURITYDEPOSITPAYMENT.ID is null) or
(RESERVATIONSECURITYDEPOSITPAYMENT.RECONCILIATIONID is not null and exists
(select 1 from dbo.RECONCILIATION REC where REC.STATUSCODE = 3 and REC.ID = RESERVATIONSECURITYDEPOSITPAYMENT.RECONCILIATIONID)
))
and ((REVENUE.DONOTPOST = 0 and REVENUEPOSTED.ID is null) or (ADJUSTMENT.ID is not null and ADJUSTMENT.POSTSTATUSCODE = 1))
group by REVENUEPAYMENTMETHOD.PAYMENTMETHOD;
select @TOTAL = SUM(D.AMOUNT)
,@COUNT = SUM(D.[COUNT])
from @Data D;
select D.PAYMENTMETHOD + ' - ' + convert(nvarchar(30), SUM(D.[COUNT])), SUM(D.AMOUNT)
from @Data D
group by D.PAYMENTMETHOD
order by SUM(D.AMOUNT) / @TOTAL desc;