USP_REPORT_CREDITCARDTRANSACTIONSETTLEMENTSTATUS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FROMDATE | datetime | IN | |
@TODATE | datetime | IN | |
@TRANSACTIONDATETYPE | int | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN | |
@REPORTUSERID | nvarchar(128) | IN |
Definition
Copy
create procedure dbo.USP_REPORT_CREDITCARDTRANSACTIONSETTLEMENTSTATUS
(
@FROMDATE datetime = null,
@TODATE datetime = null,
@TRANSACTIONDATETYPE integer = null,
@ALTREPORTUSERID nvarchar(128) = null,
@REPORTUSERID nvarchar(128) = null
)
as
declare
@CURRENCYISOCURRENCYCODE nvarchar(3) = null,
@CURRENCYDECIMALDIGITS tinyint = 0,
@CURRENCYSYMBOL nvarchar(5) = null,
@CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint = 0,
@CURRENCYROUNDINGTYPECODE tinyint = 0;
declare @CURRENTAPPUSERID uniqueidentifier = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
declare
@APPUSERISSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID),
@FEATUREID uniqueidentifier = '9e1afa09-20da-4bd1-8d42-5668f24c8c19';
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select
@CURRENCYISOCURRENCYCODE = CURRENCY.ISO4217,
@CURRENCYDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@CURRENCYSYMBOL = CURRENCY.CURRENCYSYMBOL,
@CURRENCYSYMBOLDISPLAYSETTINGCODE = CURRENCY.SYMBOLDISPLAYSETTINGCODE,
@CURRENCYROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
from dbo.CURRENCY where ID = @ORGANIZATIONCURRENCYID;
select
convert(date, [FINANCIALTRANSACTION].[DATE]) as [TRANSACTIONDATE],
[CREDITTYPECODE].[DESCRIPTION] as [CARDTYPE],
[CREDITCARDPAYMENTMETHODDETAIL].[CARDHOLDERNAME],
[CREDITCARDPAYMENTMETHODDETAIL].[AUTHORIZATIONCODE],
[CREDITCARDPAYMENTMETHODDETAIL].[CREDITCARDPARTIALNUMBER],
[FINANCIALTRANSACTION].[ORGAMOUNT] as [AMOUNT],
[CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTDATE],
[CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTTYPECODE],
@CURRENCYISOCURRENCYCODE as [CURRENCYISO],
@CURRENCYDECIMALDIGITS as [CURRENCYDECIMALDIGITS],
@CURRENCYSYMBOL as [CURRENCYSYMBOL],
@CURRENCYSYMBOLDISPLAYSETTINGCODE as [CURRENCYSYMBOLDISPLAYSETTINGCODE],
@CURRENCYROUNDINGTYPECODE
from dbo.[CREDITCARDPAYMENTMETHODDETAIL]
inner join dbo.[REVENUEPAYMENTMETHOD] on [CREDITCARDPAYMENTMETHODDETAIL].[ID] = [REVENUEPAYMENTMETHOD].[ID]
inner join dbo.[FINANCIALTRANSACTION] on [FINANCIALTRANSACTION].[ID] = [REVENUEPAYMENTMETHOD].[REVENUEID]
left join dbo.[CREDITTYPECODE] on [CREDITTYPECODE].[ID] = [CREDITCARDPAYMENTMETHODDETAIL].[CREDITTYPECODEID]
where ((@TRANSACTIONDATETYPE = 1 and convert(date, [FINANCIALTRANSACTION].[DATE]) between @FROMDATE and @TODATE)
or (@TRANSACTIONDATETYPE = 2 and [CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTDATE] between @FROMDATE and @TODATE))
and (
( --there's no revenue
select
count(ID)
from dbo.FINANCIALTRANSACTIONLINEITEM
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
) = 0
or
(--Check site security
select
count(*)
from dbo.UFN_SITEID_MAPFROM_REVENUEID(FINANCIALTRANSACTION.ID) as SITE
where (
@APPUSERISSYSADMIN = 1 or
exists (
select 1
from dbo.UFN_REPORT_HASUSERSITEPERMISSION(@CURRENTAPPUSERID, '9e1afa09-20da-4bd1-8d42-5668f24c8c19', SITE.SITEID)
where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)
)
)
) > 0)
union all
--refunds
select
convert(date, [CREDITPAYMENT].[DATEADDED]) as [TRANSACTIONDATE],
[CREDITTYPECODE].[DESCRIPTION] as [CARDTYPE],
[CREDITCARDPAYMENTMETHODDETAIL].[CARDHOLDERNAME],
[CREDITCARDPAYMENTMETHODDETAIL].[AUTHORIZATIONCODE],
[CREDITCARDPAYMENTMETHODDETAIL].[CREDITCARDPARTIALNUMBER],
-[CREDITPAYMENT].[AMOUNT],
[CREDITPAYMENT].[SETTLEMENTDATE],
[CREDITPAYMENT].[SETTLEMENTTYPECODE],
@CURRENCYISOCURRENCYCODE as [CURRENCYISO],
@CURRENCYDECIMALDIGITS as [CURRENCYDECIMALDIGITS],
@CURRENCYSYMBOL as [CURRENCYSYMBOL],
@CURRENCYSYMBOLDISPLAYSETTINGCODE as [CURRENCYSYMBOLDISPLAYSETTINGCODE],
@CURRENCYROUNDINGTYPECODE
from dbo.[CREDITPAYMENT]
left join dbo.[FINANCIALTRANSACTION] on [CREDITPAYMENT].[REVENUEID] = [FINANCIALTRANSACTION].[ID]
left join dbo.[FINANCIALTRANSACTIONLINEITEM] on [CREDITPAYMENT].[REVENUESPLITID] = [FINANCIALTRANSACTIONLINEITEM].[ID]
inner join dbo.[REVENUEPAYMENTMETHOD] on ([REVENUEPAYMENTMETHOD].[REVENUEID] = [FINANCIALTRANSACTION].[ID] or [REVENUEPAYMENTMETHOD].[REVENUEID] = [FINANCIALTRANSACTIONLINEITEM].[FINANCIALTRANSACTIONID])
inner join dbo.[CREDITCARDPAYMENTMETHODDETAIL] on [CREDITCARDPAYMENTMETHODDETAIL].[ID] = [REVENUEPAYMENTMETHOD].[ID]
left join dbo.[CREDITTYPECODE] on [CREDITTYPECODE].[ID] = [CREDITCARDPAYMENTMETHODDETAIL].[CREDITTYPECODEID]
where ((@TRANSACTIONDATETYPE = 1 and convert(date, [CREDITPAYMENT].[DATEADDED]) between @FROMDATE and @TODATE)
or (@TRANSACTIONDATETYPE = 2 and [CREDITPAYMENT].[SETTLEMENTDATE] between @FROMDATE and @TODATE))
and [CREDITPAYMENT].[PAYMENTMETHODCODE] = 2
order by [TRANSACTIONDATE]
return 0;