USP_REPORT_DEPOSITREPORT_PAYMENTS_SUMMARY
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DEPOSITID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_REPORT_DEPOSITREPORT_PAYMENTS_SUMMARY
(
@DEPOSITID uniqueidentifier
)
with execute as owner
as
set nocount on;
/*declare @CURRENTAPPUSERID uniqueidentifier;
declare @ISADMIN bit;
declare @APPUSER_IN_NONRACROLE bit;
declare @APPUSER_IN_NOSECGROUPROLE bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
*/
declare @SQLTOEXEC nvarchar(max);
declare @DBOBJECTNAME nvarchar(128);
declare @DBOBJECTTYPE smallint;
set @SQLTOEXEC =
'select
REVENUEPAYMENTMETHOD.PAYMENTMETHOD,
coalesce(sum(REVENUE.TRANSACTIONAMOUNT),0) as [AMOUNT],
count(*) as [NUMBEROFPAYMENTS],
0 as [NUMBEROFCORRECTIONS],
CP0.ID as CURRENCYID,
CP0.ISO4217 as CURRENCYISO,
CP0.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
CP0.CURRENCYSYMBOL as CURRENCYSYMBOL,
CP0.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
count(coalesce (CREDITTYPECODE.DESCRIPTION,OTHERPAYMENTMETHODCODE.DESCRIPTION,''<Card type not specified>'')) as [PAYMENTTYPECOUNT],
coalesce (CREDITTYPECODE.DESCRIPTION,OTHERPAYMENTMETHODCODE.DESCRIPTION,''<Card type not specified>'') as [PAYMENTTYPEDESCRIPTION],
0 as [CORRECTIONTYPECOUNT],
REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE as [PAYMENTMETHODCODE]
from dbo.FINANCIALTRANSACTION REVENUE with (nolock)
inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT on REVENUE.ID = BANKACCOUNTDEPOSITPAYMENT.ID
inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
left outer join dbo.CREDITCARDPAYMENTMETHODDETAIL on CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.id
left outer join dbo.OTHERPAYMENTMETHODDETAIL on OTHERPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
left outer join dbo.OTHERPAYMENTMETHODCODE on OTHERPAYMENTMETHODCODE.ID = OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID
left outer join dbo.CREDITTYPECODE on CREDITTYPECODE.ID = CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(REVENUE.TRANSACTIONCURRENCYID) as CP0
where (REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE IN (0,1,2,9,10))
and REVENUE.TYPECODE = 0 and REVENUE.DELETEDON is null
and (BANKACCOUNTDEPOSITPAYMENT.DEPOSITID = @DEPOSITID)
group by [REVENUEPAYMENTMETHOD].[PAYMENTMETHOD], REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE, CP0.ID, CP0.ISO4217, CP0.DECIMALDIGITS, CP0.CURRENCYSYMBOL, CP0.SYMBOLDISPLAYSETTINGCODE,CREDITTYPECODE.DESCRIPTION,OTHERPAYMENTMETHODCODE.DESCRIPTION '
set @SQLTOEXEC = @SQLTOEXEC +
'union all
select
[BADCE].[PAYMENTMETHOD],
coalesce(sum((case when BANKACCOUNTDEPOSITCORRECTION.TYPECODE=24 then -BANKACCOUNTDEPOSITCORRECTION.TRANSACTIONAMOUNT else BANKACCOUNTDEPOSITCORRECTION.TRANSACTIONAMOUNT end)),0) as [AMOUNT],
0 as [NUMBEROFPAYMENTS],
count(*) as [NUMBEROFCORRECTIONS],
CP1.ID as CURRENCYID,
CP1.ISO4217 as CURRENCYISO,
CP1.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
CP1.CURRENCYSYMBOL as CURRENCYSYMBOL,
CP1.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
null as [PAYMENTTYPECOUNT],
case BADCE.PAYMENTMETHODCODE when 2 then ''<Card type not specified>'' when 3 then ''<Type not specified>'' else null end as [PAYMENTTYPEDESCRIPTION],
count(*) as [CORRECTIONTYPECOUNT],
case BADCE.PAYMENTMETHODCODE when 3 then 10 else BADCE.PAYMENTMETHODCODE end as [PAYMENTMETHODCODE]
from dbo.FINANCIALTRANSACTION [BANKACCOUNTDEPOSITCORRECTION] with (nolock)
inner join dbo.BANKACCOUNTDEPOSITCORRECTION_EXT as BADCE on BADCE.ID = BANKACCOUNTDEPOSITCORRECTION.ID
inner join BANKACCOUNTDEPOSIT on BANKACCOUNTDEPOSIT.ID = [BANKACCOUNTDEPOSITCORRECTION].[PARENTID]
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(BANKACCOUNTDEPOSIT.TRANSACTIONCURRENCYID) as CP1
where ([BADCE].[PAYMENTMETHODCODE] IN (0,1,2,3))
and ([BANKACCOUNTDEPOSITCORRECTION].[PARENTID] = @DEPOSITID)
and BANKACCOUNTDEPOSITCORRECTION.TYPECODE in (24,25)
group by [BADCE].[PAYMENTMETHOD], BADCE.PAYMENTMETHODCODE, CP1.ID, CP1.ISO4217, CP1.DECIMALDIGITS, CP1.CURRENCYSYMBOL, CP1.SYMBOLDISPLAYSETTINGCODE '
set @SQLTOEXEC = @SQLTOEXEC +
'union all
select
[CREDITPAYMENT].[PAYMENTMETHOD],
-1 * coalesce(sum([CREDITPAYMENT].[AMOUNT]),0) as [AMOUNT],
0 as [NUMBEROFPAYMENTS],
count(*) as [NUMBEROFCORRECTIONS],
CP2.ID as CURRENCYID,
CP2.ISO4217 as CURRENCYISO,
CP2.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
CP2.CURRENCYSYMBOL as CURRENCYSYMBOL,
CP2.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
0 as [PAYMENTTYPECOUNT],
coalesce(CREDITTYPECODE.DESCRIPTION,OTHERPAYMENTMETHODCODE.DESCRIPTION,''<Card type not specified>'') as [PAYMENTTYPEDESCRIPTION],
count(1) as [CORRECTIONTYPECOUNT],
CREDITPAYMENT.PAYMENTMETHODCODE
from dbo.[BANKACCOUNTDEPOSITCREDITPAYMENT] with (nolock)
inner join dbo.[CREDITPAYMENT] on [BANKACCOUNTDEPOSITCREDITPAYMENT].[ID] = [CREDITPAYMENT].[ID]
left outer join BANKACCOUNTDEPOSIT on BANKACCOUNTDEPOSIT.ID = [BANKACCOUNTDEPOSITCREDITPAYMENT].[DEPOSITID]
left outer join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = CREDITPAYMENT.REVENUEID and REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE=CREDITPAYMENT.PAYMENTMETHODCODE
left outer join dbo.CREDITCARDPAYMENTMETHODDETAIL on CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
left outer join dbo.OTHERPAYMENTMETHODDETAIL on OTHERPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
left outer join dbo.OTHERPAYMENTMETHODCODE on OTHERPAYMENTMETHODCODE.ID = OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID
left outer join dbo.CREDITTYPECODE on CREDITTYPECODE.ID = CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(BANKACCOUNTDEPOSIT.TRANSACTIONCURRENCYID) CP2
where [BANKACCOUNTDEPOSITCREDITPAYMENT].[DEPOSITID] = @DEPOSITID
group by [CREDITPAYMENT].[PAYMENTMETHOD], CP2.ID, CP2.ISO4217, CP2.DECIMALDIGITS, CP2.CURRENCYSYMBOL, CP2.SYMBOLDISPLAYSETTINGCODE,CREDITPAYMENT.REVENUEID,CREDITPAYMENT.PAYMENTMETHODCODE,[CREDITPAYMENT].[PAYMENTMETHODCODE]
,coalesce(CREDITTYPECODE.DESCRIPTION,OTHERPAYMENTMETHODCODE.DESCRIPTION,''<Card type not specified>'') '
exec sp_executesql @SQLTOEXEC,
N'@DEPOSITID uniqueidentifier',
@DEPOSITID=@DEPOSITID