USP_DATALIST_SYSTEMCREDITCARDTRANSACTION

Parameters

Parameter Parameter Type Mode Description
@FROMDATE datetime IN
@TODATE datetime IN
@INCLUDESETTLEDTRANSACTIONS bit IN
@CURRENTAPPUSERID uniqueidentifier IN
@VENDORID nvarchar(50) IN
@INCLUDEDTRANSACTIONS tinyint IN

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_SYSTEMCREDITCARDTRANSACTION
                (
                    @FROMDATE datetime,
                    @TODATE datetime,
                    @INCLUDESETTLEDTRANSACTIONS bit = 0,
                    @CURRENTAPPUSERID uniqueidentifier,
                    @VENDORID nvarchar(50) = null,
                    @INCLUDEDTRANSACTIONS tinyint = 0
                )
                as
                    set nocount on;

                    if @VENDORID = '0'
                        set @VENDORID = '';
                    else if @VENDORID = ''
                        set @VENDORID = null;

                    if @INCLUDEDTRANSACTIONS = 0
                        set @INCLUDESETTLEDTRANSACTIONS = 0
                    else
                        set @INCLUDESETTLEDTRANSACTIONS = 1;

                    declare 
                        @APPUSERISSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID),
                        @FEATUREID uniqueidentifier = '9151decb-5734-4fd9-8884-7d18aba1e2ed';

                    declare @BASICPROGRAMSINSTALLED bit = 0;
                    if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('BB1C17BC-9E0B-4683-B490-EE40D511FA05') = 1
                        set @BASICPROGRAMSINSTALLED = 1;

                    declare @SITESFORUSERONFEATURE table (SITEID uniqueidentifier);
                    insert into @SITESFORUSERONFEATURE
                    select * from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@FEATUREID,2);

                    declare @ORGCURRENCYID uniqueidentifier = (select ID from dbo.CURRENCY where ISORGANIZATIONCURRENCY = 1);

                    select
                        [CREDITCARDPAYMENTMETHODDETAIL].[ID],
                        null as [TRANSACTIONDATEGROUP],
                        convert(date, [FINANCIALTRANSACTION].[DATE]) as [TRANSACTIONDATE],
                        [CREDITTYPECODE].[DESCRIPTION] as [CARDTYPE],
                        [CREDITCARDPAYMENTMETHODDETAIL].[CARDHOLDERNAME],
                        [CREDITCARDPAYMENTMETHODDETAIL].[AUTHORIZATIONCODE],
                        [CREDITCARDPAYMENTMETHODDETAIL].[CREDITCARDPARTIALNUMBER],
                        case @BASICPROGRAMSINSTALLED
                            when 0 then [FINANCIALTRANSACTION].[TRANSACTIONAMOUNT] + coalesce((select sum([CREDITPAYMENT].[AMOUNT]) from dbo.[CREDITPAYMENT] where [CREDITPAYMENT].[REVENUEID] = [FINANCIALTRANSACTION].[ID]), 0)
                            else [FINANCIALTRANSACTION].[TRANSACTIONAMOUNT]
                        end as [AMOUNT],
                        case [CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTTYPECODE]
                            when 0 then 0
                            else 1
                        end,
                        [CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTTYPECODE],
                        [CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTDATE],
                        0 as [ISPARENT],
                        cast(convert(date, [FINANCIALTRANSACTION].[DATE]) as nvarchar(100)) + cast([FINANCIALTRANSACTION].TRANSACTIONCURRENCYID as nvarchar(100)) as [GROUPID],
                        [FINANCIALTRANSACTION].TRANSACTIONCURRENCYID CURRENCYID,
                        [CREDITCARDPAYMENTMETHODDETAIL].VENDORID,
                        null [GROUP],
                        case [CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTTYPECODE]
                            when 0 then 0
                            else 1
                        end as [STATUSCODE],
                        [CREDITCARDPAYMENTMETHODDETAIL].[TRANSACTIONID]
                    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 convert(date, [FINANCIALTRANSACTION].[DATE]) between @FROMDATE and @TODATE
                    and (
                             @INCLUDEDTRANSACTIONS = 2
                             or (@INCLUDEDTRANSACTIONS = 0 and [CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTTYPECODE] = 0)
                             or (@INCLUDEDTRANSACTIONS = 1 and [CREDITCARDPAYMENTMETHODDETAIL].[SETTLEMENTTYPECODE] <> 0)
                        )
                        and (@VENDORID is null or CREDITCARDPAYMENTMETHODDETAIL.VENDORID = @VENDORID)
                    and (
                            ( --if 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 @SITESFORUSERONFEATURE
                                    where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)
                                )
                            ) 
                        ) > 0)

                    union all

                    --refunds

                    select
                        [CREDITPAYMENT].[ID],
                        null as [TRANSACTIONDATEGROUP],
                        convert(date, [CREDITPAYMENT].[DATEADDED]) as [TRANSACTIONDATE],
                        [CREDITTYPECODE].[DESCRIPTION] as [CARDTYPE],
                        [CREDITCARDPAYMENTMETHODDETAIL].[CARDHOLDERNAME],
                        [CREDITCARDPAYMENTMETHODDETAIL].[AUTHORIZATIONCODE],
                        [CREDITCARDPAYMENTMETHODDETAIL].[CREDITCARDPARTIALNUMBER],
                        -[CREDITPAYMENT].[AMOUNT],
                        case [CREDITPAYMENT].[SETTLEMENTTYPECODE]
                            when 0 then 0
                            else 1
                        end,
                        [CREDITPAYMENT].[SETTLEMENTTYPECODE],
                        [CREDITPAYMENT].[SETTLEMENTDATE],
                        0 as [ISPARENT],
                        cast(convert(date, [CREDITPAYMENT].[DATEADDED]) as nvarchar(100)) + cast(@ORGCURRENCYID as nvarchar(100)) as [GROUPID],
                        case [CRM_REFUND].[ID]
                            when null then @ORGCURRENCYID
                            else [FINANCIALTRANSACTION].[TRANSACTIONCURRENCYID]
                        end as [CURRENCYID],
                        [CREDITCARDPAYMENTMETHODDETAIL].VENDORID,
                        null [GROUP],
                        case [CREDITPAYMENT].[SETTLEMENTTYPECODE]
                            when 0 then 0
                            else 1
                        end as [STATUSCODE],
                        [CREDITCARDPAYMENTMETHODDETAIL].[TRANSACTIONID]
                    from dbo.[CREDITPAYMENT]
                    left join dbo.[FINANCIALTRANSACTIONLINEITEM] on [CREDITPAYMENT].[REVENUESPLITID] = [FINANCIALTRANSACTIONLINEITEM].[ID]
                    left join dbo.[REVENUEPAYMENTMETHOD] as [CRM_REFUND] on ([CRM_REFUND].[REVENUEID] = [CREDITPAYMENT].[CREDITID])
                    left join dbo.[REVENUEPAYMENTMETHOD] as [ALTRU_REFUND] on ([ALTRU_REFUND].[REVENUEID] = [CREDITPAYMENT].[REVENUEID] or [ALTRU_REFUND].[REVENUEID] = [FINANCIALTRANSACTIONLINEITEM].[FINANCIALTRANSACTIONID])
                    inner join dbo.[CREDITCARDPAYMENTMETHODDETAIL] on ([CREDITCARDPAYMENTMETHODDETAIL].[ID] = [CRM_REFUND].[ID] or ([CRM_REFUND].[ID] is null and [CREDITCARDPAYMENTMETHODDETAIL].[ID] = [ALTRU_REFUND].[ID]))
                    left join dbo.[CREDITTYPECODE] on [CREDITTYPECODE].[ID] = [CREDITCARDPAYMENTMETHODDETAIL].[CREDITTYPECODEID]
                    left join dbo.[FINANCIALTRANSACTION] on [FINANCIALTRANSACTION].[ID] = [CRM_REFUND].[REVENUEID]
                    where convert(date, [CREDITPAYMENT].[DATEADDED]) between @FROMDATE and @TODATE
                    and (
                             @INCLUDEDTRANSACTIONS = 2
                             or (@INCLUDEDTRANSACTIONS = 0 and [CREDITPAYMENT].[SETTLEMENTTYPECODE] = 0)
                             or (@INCLUDEDTRANSACTIONS = 1 and [CREDITPAYMENT].[SETTLEMENTTYPECODE] <> 0)
                         )
                        and (@VENDORID is null or CREDITCARDPAYMENTMETHODDETAIL.VENDORID = @VENDORID)
                        and [CREDITPAYMENT].[PAYMENTMETHODCODE] = 2