USP_REPORT_DEPOSITREPORT_PAYMENTS

Parameters

Parameter Parameter Type Mode Description
@DEPOSITID uniqueidentifier IN

Definition

Copy

            create procedure dbo.USP_REPORT_DEPOSITREPORT_PAYMENTS
            (
                @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 
                        cast(REVENUE.DATE as datetime) [DATE],
                        REVENUEPAYMENTMETHOD.PAYMENTMETHOD AS [PAYMENTMETHOD],
                        REVENUE_EXT.REFERENCE AS [PAYMENTSOURCE],
                        REVENUE.TRANSACTIONAMOUNT as AMOUNT,
                        BANKACCOUNTDEPOSITPAYMENT.DEPOSITID,
                        BANKACCOUNTDEPOSITPAYMENT.ID,
                        null  as [CORRECTIONDATE],
                        null as [CORRECTIONMETHOD],
                        null as [CORRECTIONTYPE],
                        null as [CORRECTIONAMOUNT],
                        null as [CORRECTIONID],
                        CP0.ID as CURRENCYID,
                        CP0.ISO4217 as CURRENCYISO,
                        CP0.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
                        CP0.CURRENCYSYMBOL as CURRENCYSYMBOL,
                        CP0.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        coalesce (CREDITTYPECODE.DESCRIPTION,OTHERPAYMENTMETHODCODE.DESCRIPTION,''<Card type not specified>'') as [PAYMENTTYPEDESCRIPTION],
                        coalesce (CASHPAYMENTMETHODDETAIL.REFERENCENUMBER,CHECKPAYMENTMETHODDETAIL.CHECKNUMBER,CREDITCARDPAYMENTMETHODDETAIL.CREDITCARDPARTIALNUMBER,OTHERPAYMENTMETHODDETAIL.REFERENCENUMBER) as [REFERENCECHECKNUMBER],
                        CREDITCARDPAYMENTMETHODDETAIL.AUTHORIZATIONCODE,
                        REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE AS [PAYMENTMETHODCODE]
                        from dbo.BANKACCOUNTDEPOSITPAYMENT with (nolock)
                        inner join dbo.FINANCIALTRANSACTION REVENUE on REVENUE.ID = BANKACCOUNTDEPOSITPAYMENT.ID
                        inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
                        inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
                        left outer join dbo.CREDITCARDPAYMENTMETHODDETAIL on CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.id
                        left outer join dbo.CASHPAYMENTMETHODDETAIL on CASHPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
                        left outer join dbo.CHECKPAYMENTMETHODDETAIL on CHECKPAYMENTMETHODDETAIL.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  ' + nchar(13);                        

                set @SQLTOEXEC = @SQLTOEXEC + 
                    'where (BANKACCOUNTDEPOSITPAYMENT.DEPOSITID = @DEPOSITID) 
                        and REVENUE.TYPECODE = 0  and REVENUE.DELETEDON is null
                        and (REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE IN (0,1,2,9,10)) '

                set @SQLTOEXEC = @SQLTOEXEC + 
                    'union all
                    select 
                        isnull(cast(BANKACCOUNTDEPOSITCORRECTION.[DATE] as datetime), '''') as [DATE],
                        null AS [PAYMENTMETHOD],
                        null AS [PAYMENTSOURCE],
                        null as [AMOUNT],
                        isnull(BANKACCOUNTDEPOSITCORRECTION.PARENTID, ''00000000-0000-0000-0000-000000000000'') as DEPOSITID,
                        null as ID, 
                        isnull(cast(BANKACCOUNTDEPOSITCORRECTION.[DATE] as datetime), '''') as [CORRECTIONDATE],
                        BADCE.PAYMENTMETHOD as [CORRECTIONMETHOD],
                        case cast(BANKACCOUNTDEPOSITCORRECTION.TYPECODE - 24 + 2 * BADCE.CORRECTIONTYPECODE as tinyint) 
                          when (0) then N''Sales - Short'' 
                          when (1) then N''Sales - Over'' 
                          when (2) then N''Treasury - Short'' 
                          when (3) then N''Treasury - Over'' else null end as CORRECTIONTYPE,
                        (case when BANKACCOUNTDEPOSITCORRECTION.TYPECODE=24 then -BANKACCOUNTDEPOSITCORRECTION.TRANSACTIONAMOUNT else BANKACCOUNTDEPOSITCORRECTION.TRANSACTIONAMOUNT end) as [CORRECTIONAMOUNT],
                        BANKACCOUNTDEPOSITCORRECTION.ID as [CORRECTIONID],
                        CP1.ID as CURRENCYID,
                        CP1.ISO4217 as CURRENCYISO,
                        CP1.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
                        CP1.CURRENCYSYMBOL as CURRENCYSYMBOL,
                        CP1.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        null as [PAYMENTTYPEDESCRIPTION],
                        null as [REFERENCECHECKNUMBER],
                        null as [AUTHORIZATIONCODE],
                        0 AS [PAYMENTMETHODCODE]
                        from dbo.BANKACCOUNTDEPOSITCORRECTION_EXT as BADCE with (nolock)
                        inner join dbo.FINANCIALTRANSACTION BANKACCOUNTDEPOSITCORRECTION on BADCE.ID = BANKACCOUNTDEPOSITCORRECTION.ID
                        outer apply dbo.UFN_CURRENCY_GETPROPERTIES(BANKACCOUNTDEPOSITCORRECTION.TRANSACTIONCURRENCYID) as CP1 ' + nchar(13);

                set @SQLTOEXEC = @SQLTOEXEC + 
                    'where (BADCE.PAYMENTMETHODCODE IN (0,1,2,3))    
                        and BANKACCOUNTDEPOSITCORRECTION.TYPECODE in (24,25)
                        and (BANKACCOUNTDEPOSITCORRECTION.PARENTID = @DEPOSITID) '                         

                set @SQLTOEXEC = @SQLTOEXEC + 
                    'union all
                    select 
                        CAST(CREDIT.[DATE] as datetime) as [DATE],
                        null as [PAYMENTMETHOD],
                        null as [PAYMENTSOURCE],
                        null as [AMOUNT],
                        [BANKACCOUNTDEPOSITCREDITPAYMENT].[DEPOSITID],
                        null as [ID], 
                        CAST(CREDIT.[DATE] as datetime) as [CORRECTIONDATE],
                        [CREDITPAYMENT].[PAYMENTMETHOD] as [CORRECTIONMETHOD],
                        dbo.[UFN_CREDIT_TYPECODE_GETDESCRIPTION](0) as [CORRECTIONTYPE],
                        -1 * [CREDITPAYMENT].[AMOUNT] as [CORRECTIONAMOUNT],
                        [CREDITPAYMENT].[ID] as [CORRECTIONID],
                        CP2.ID as CURRENCYID,
                        CP2.ISO4217 as CURRENCYISO,
                        CP2.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
                        CP2.CURRENCYSYMBOL as CURRENCYSYMBOL,
                        CP2.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        coalesce (CREDITTYPECODE.DESCRIPTION,OTHERPAYMENTMETHODCODE.DESCRIPTION,''<Card type not specified>'') as [PAYMENTTYPEDESCRIPTION],
                        null as [REFERENCECHECKNUMBER],
                        null as [AUTHORIZATIONCODE],
                        REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE as [PAYMENTMETHODCODE]
                        from dbo.[BANKACCOUNTDEPOSITCREDITPAYMENT] with (nolock)
                        inner join dbo.[CREDITPAYMENT]
                            on [BANKACCOUNTDEPOSITCREDITPAYMENT].[ID] = [CREDITPAYMENT].[ID]
                        inner join dbo.FINANCIALTRANSACTION [CREDIT]
                            on [CREDITPAYMENT].[CREDITID] = [CREDIT].[ID]
                        left outer join BANKACCOUNTDEPOSIT 
                            on BANKACCOUNTDEPOSIT.ID = [BANKACCOUNTDEPOSITCREDITPAYMENT].[DEPOSITID]
                        left outer join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = CREDITPAYMENT.REVENUEID
                        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 CREDIT.TYPECODE = 23 and [BANKACCOUNTDEPOSITCREDITPAYMENT].[DEPOSITID] = @DEPOSITID '

                set @SQLTOEXEC = @SQLTOEXEC + 
                    'order by [CORRECTIONTYPE] desc, [CORRECTIONAMOUNT] desc, [DATE] desc '

                exec sp_executesql @SQLTOEXEC,
                    N'@DEPOSITID uniqueidentifier',
                    @DEPOSITID=@DEPOSITID