USP_REPORT_DEPOSITREPORT_DEPOSITSLIP

Parameters

Parameter Parameter Type Mode Description
@DEPOSITID uniqueidentifier IN
@BANKNAME nvarchar(100) IN
@BANKADDRESS nvarchar(150) IN
@BANKACCOUNTNAME nvarchar(100) IN
@DEPOSITDATE date IN

Definition

Copy

            create procedure [dbo].[USP_REPORT_DEPOSITREPORT_DEPOSITSLIP]
            (
                @DEPOSITID uniqueidentifier,
                @BANKNAME nvarchar(100),
                @BANKADDRESS nvarchar(150),
                @BANKACCOUNTNAME nvarchar(100),
                @DEPOSITDATE date
            )
            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 @DBOBJECTNAME nvarchar(128);
                declare @DBOBJECTTYPE smallint;
                declare @TRANSACTIONCURRENCYID uniqueidentifier
                declare @MICRLINE nvarchar(100)

                select @TRANSACTIONCURRENCYID=TRANSACTIONCURRENCYID from BANKACCOUNTDEPOSIT where ID = @DEPOSITID
                set @MICRLINE = dbo.[UFN_TREASURY_BUILDDEPOSITMICRLINE](@DEPOSITID)

                declare @TEMPDEPOSITSLIP table (
                    [DATE] date,
                    [PAYMENTMETHOD] varchar(100),
                    [REFERENCE] varchar(100),
                    [AMOUNT] money,
                    [CORRECTIONAMOUNT] money,
                    [DEPOSITID] uniqueidentifier,
                    [BANKNAME] varchar(100),
                    [BANKADDRESS] nvarchar(150),
                    [BANKACCOUNTNAME] nvarchar(100),
                    [DEPOSITDATE] date,
                    [MICRLINE] nvarchar(100))

                insert into @TEMPDEPOSITSLIP
                    select  
                        cast(REVENUE.DATE as datetime) [DATE],
                        REVENUEPAYMENTMETHOD.PAYMENTMETHOD AS [PAYMENTMETHOD],
                        REVENUE_EXT.REFERENCE AS [PAYMENTSOURCE],
                            IsNull(REVENUE.TRANSACTIONAMOUNT, REVENUE.BASEAMOUNT) AS AMOUNT,
                        null as [CORRECTIONAMOUNT],
                        BANKACCOUNTDEPOSITPAYMENT.DEPOSITID,
                        @BANKNAME as [BANKNAME],
                        @BANKADDRESS as [BANKADDRESS],
                        @BANKACCOUNTNAME as [BANKACCOUNTNAME],
                        @DEPOSITDATE as [DEPOSITDATE],
                        @MICRLINE as MICRLINE
                    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
                    left outer join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID                    
                    where (REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE IN (0,1,2,9,10)) 
                        and REVENUE.TYPECODE = 0  
                        and (BANKACCOUNTDEPOSITPAYMENT.DEPOSITID = @DEPOSITID)

                    union all
                    select  
                        isnull(cast(FT.[DATE] as datetime), '') [DATE],
                        BADCE.PAYMENTMETHOD,
                        null AS [PAYMENTSOURCE],
                        null as [AMOUNT],
                        (case when FT.TYPECODE=24 then -FT.TRANSACTIONAMOUNT else FT.TRANSACTIONAMOUNT end) as [CORRECTIONAMOUNT],
                        FT.PARENTID [DEPOSITID],
                        @BANKNAME as [BANKNAME],
                        @BANKADDRESS as [BANKADDRESS],
                        @BANKACCOUNTNAME as [BANKACCOUNTNAME],
                        @DEPOSITDATE as [DEPOSITDATE],
                        @MICRLINE as MICRLINE
                    from dbo.FINANCIALTRANSACTION as FT
                    inner join dbo.BANKACCOUNTDEPOSITCORRECTION_EXT as BADCE on BADCE.ID = FT.ID
                    where (BADCE.PAYMENTMETHODCODE IN (0,1,2,3))  
                        and FT.TYPECODE in (24,25)
                        and (FT.PARENTID = @DEPOSITID)

                    union all                
                    select 
                        CAST([CREDIT].[DATE] as datetime) [TRANSACTIONDATE],
                        [CREDITPAYMENT].[PAYMENTMETHOD],
                        null as [PAYMENTSOURCE],
                        0 as [AMOUNT],
                        -1 * [CREDITPAYMENT].[AMOUNT] as [CORRECTIONAMOUNT],
                        [BANKACCOUNTDEPOSITCREDITPAYMENT].[DEPOSITID],
                        @BANKNAME as [BANKNAME],
                        @BANKADDRESS as [BANKADDRESS],
                        @BANKACCOUNTNAME as [BANKACCOUNTNAME],
                        @DEPOSITDATE as [DEPOSITDATE],
                        @MICRLINE as MICRLINE
                    from dbo.[BANKACCOUNTDEPOSITCREDITPAYMENT] with (nolock)
                    inner join dbo.[CREDITPAYMENT] on [BANKACCOUNTDEPOSITCREDITPAYMENT].[ID] = [CREDITPAYMENT].[ID]
                    inner join dbo.FINANCIALTRANSACTION [CREDIT] on [CREDITPAYMENT].[CREDITID] = [CREDIT].[ID]
                    where [BANKACCOUNTDEPOSITCREDITPAYMENT].[DEPOSITID] = @DEPOSITID

                order by cast(REVENUE.DATE as datetime) desc

                select top 1
                    [DATE] AS [DATE]
                    ,[REFERENCE] AS [REFERENCE]
                    ,[AMOUNT] AS [AMOUNT]
                    ,[CORRECTIONAMOUNT] AS [CORRECTIONAMOUNT]
                    ,[BANKNAME] AS [BANKNAME]
                    ,[BANKADDRESS] AS [BANKADDRESS]
                    ,[BANKACCOUNTNAME] AS [BANKACCOUNTNAME]
                    ,[DEPOSITDATE] AS [DEPOSITDATE]
                    ,[MICRLINE] AS [MICRLINE]
                    ,case when [CASH].[TOTAL] < 0 then 0 else [CASH].[TOTAL] end as CASHTOTAL
                    ,case when [CHECK].[TOTAL] < 0 then 0 else [CHECK].[TOTAL] end as CHECKTOTAL
                    ,case when [CREDITCARD].[TOTAL] < 0 then 0 else [CREDITCARD].[TOTAL] end as CREDITCARDTOTAL
                    ,case when [OTHER].[TOTAL] < 0 then 0 else [OTHER].[TOTAL] end as OTHERTOTAL
                    ,(select COUNT(AMOUNT) from @TEMPDEPOSITSLIP) AS NUMRECORDS,
                    CURRENCYPROPERTIES.ID as CURRENCYID,
                    CURRENCYPROPERTIES.ISO4217 as CURRENCYISO,
                    CURRENCYPROPERTIES.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
                    CURRENCYPROPERTIES.CURRENCYSYMBOL as CURRENCYSYMBOL,
                    CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
                from @TEMPDEPOSITSLIP
                outer apply(select SUM(ISNULL(AMOUNT, 0) + ISNULL(CORRECTIONAMOUNT, 0)) AS [TOTAL] from @TEMPDEPOSITSLIP where [PAYMENTMETHOD] = 'Cash') AS [CASH]
                outer apply(select SUM(ISNULL(AMOUNT, 0) + ISNULL(CORRECTIONAMOUNT, 0)) AS [TOTAL] from @TEMPDEPOSITSLIP where [PAYMENTMETHOD] = 'Check') AS [CHECK]
                outer apply(select SUM(ISNULL(AMOUNT, 0) + ISNULL(CORRECTIONAMOUNT, 0)) AS [TOTAL] from @TEMPDEPOSITSLIP where [PAYMENTMETHOD] = 'Credit card') AS [CREDITCARD]
                outer apply(select SUM(ISNULL(AMOUNT, 0) + ISNULL(CORRECTIONAMOUNT, 0)) AS [TOTAL] from @TEMPDEPOSITSLIP where [PAYMENTMETHOD] = 'Other') AS [OTHER]
                outer apply dbo.UFN_CURRENCY_GETPROPERTIES(@TRANSACTIONCURRENCYID) CURRENCYPROPERTIES