You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
10 KiB
154 lines
10 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_userLoginAgingRpt] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE procEDURE [dbo].[proc_userLoginAgingRpt]
|
|
@flag VARCHAR(20),
|
|
@agentType VARCHAR(20) = NULL,
|
|
@days INT = NULL,
|
|
@chkInactiveAgent VARCHAR(1) = NULL,
|
|
@agingFor CHAR(1) = NULL,
|
|
@user VARCHAR(50) = NULL,
|
|
@PageSize VARCHAR(20) = NULL,
|
|
@PageNumber VARCHAR(20) = NULL
|
|
AS
|
|
SET NOCOUNT ON;
|
|
SET ANSI_NULLS ON;
|
|
DECLARE @SQL AS VARCHAR(MAX),@SQL1 AS VARCHAR(MAX)
|
|
IF @FLAG='a'
|
|
BEGIN
|
|
IF @agingFor = 'a'
|
|
BEGIN
|
|
IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL
|
|
DROP TABLE #tempTable
|
|
|
|
IF OBJECT_ID('tempdb..#tempTable1') IS NOT NULL
|
|
DROP TABLE #tempTable1
|
|
|
|
CREATE TABLE #tempTable
|
|
(
|
|
agentId VARCHAR(200) NULL
|
|
)
|
|
|
|
|
|
CREATE TABLE #tempTable2
|
|
(
|
|
agentId VARCHAR(200) NULL,
|
|
lastLoginDate VARCHAR(50) NULL
|
|
)
|
|
|
|
insert into #tempTable2
|
|
select distinct agentId,MAX(createdDate) lastLoginDate from LoginLogs A WITH(NOLOCK)
|
|
WHERE logType='Login'
|
|
group by agentId
|
|
|
|
insert into #tempTable
|
|
select distinct agentId
|
|
from LoginLogs with(nolock)
|
|
where createdDate between dateadd(D,-@days,CONVERT(VARCHAR,GETDATE(),101)) and CONVERT(VARCHAR,GETDATE(),101)+' 23:59:59'
|
|
and logType='Login' and datediff(day,createdDate,CONVERT(VARCHAR,GETDATE(),101))<>@days
|
|
|
|
insert into #tempTable
|
|
select distinct sBranch
|
|
from remitTran with(nolock)
|
|
where approvedDate between dateadd(D,-@days,CONVERT(VARCHAR,GETDATE(),101)) and CONVERT(VARCHAR,GETDATE(),101)+' 23:59:59'
|
|
and datediff(day,approvedDate,CONVERT(VARCHAR,GETDATE(),101))<>@days
|
|
|
|
insert into #tempTable
|
|
select distinct pBranch
|
|
from remitTran with(nolock)
|
|
where paidDate between dateadd(D,-@days,CONVERT(VARCHAR,GETDATE(),101)) and CONVERT(VARCHAR,GETDATE(),101)+' 23:59:59'
|
|
and datediff(day,paidDate,CONVERT(VARCHAR,GETDATE(),101))<>@days
|
|
|
|
DELETE FROM #tempTable2
|
|
FROM #tempTable2 A
|
|
INNER JOIN #tempTable B ON A.agentId=B.agentId
|
|
|
|
SET @SQL='SELECT
|
|
[Agent Name] = C.agentName
|
|
,[Address] = C.agentAddress
|
|
,[Zone] = C.agentState
|
|
,[District] = c.agentDistrict
|
|
,[Contact] = isnull(C.agentPhone1,'''')+'',''+isnull(C.agentPhone2,'''')
|
|
,[Location] = D.districtName
|
|
,[Last Login Date] = A.lastLoginDate
|
|
,[Inactive Days] = datediff(day,A.lastLoginDate,CONVERT(VARCHAR,GETDATE(),101))
|
|
FROM #tempTable2 A WITH(NOLOCK)
|
|
INNER JOIN AGENTMASTER C WITH(NOLOCK) ON A.agentId=C.agentId
|
|
INNER JOIN api_DistrictList D with(nolock) on C.agentLocation=D.districtCode
|
|
WHERE ISNULL(C.agentBlock,''U'') <>''B'''
|
|
|
|
IF @agentType IS NOT NULL
|
|
SET @SQL=@SQL+' AND C.agentGrp='''+@agentType+''''
|
|
|
|
|
|
IF @chkInactiveAgent ='Y'
|
|
SET @SQL=@SQL+' AND ISNULL(C.isActive,''Y'')=''Y'''
|
|
|
|
SET @SQL1='
|
|
SELECT COUNT(''a'') AS TXNCOUNT,'+@pageSize+' PAGESIZE,'+@pageNumber+' PAGENUMBER FROM ('+ @SQL +') AS tmp;
|
|
|
|
SELECT * FROM
|
|
(
|
|
SELECT ROW_NUMBER() OVER (ORDER BY [Agent Name]) AS [S.N],*
|
|
FROM
|
|
(
|
|
'+ @SQL +'
|
|
) AS aa
|
|
) AS tmp WHERE 1 = 1 AND tmp.[S.N] BETWEEN (('+@pageNumber+' - 1) * '+@pageSize+' + 1) AND '+@pageNumber+' * '+@pageSize+''
|
|
|
|
EXEC(@SQL1)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @SQL='SELECT
|
|
[S.N.] = row_number()over(order by am.agentName),
|
|
[Agent Name] = CASE WHEN bm.agentType = 2903 AND bm.actAsBranch =''Y'' THEN bm.agentName ELSE am.agentName END,
|
|
[Branch Name] = bm.agentName,
|
|
[Country] = cm.countryName,
|
|
[User Name] = au.userName,
|
|
[User Full Name] = au.firstName + ISNULL( '' '' + au.middleName, '''') + ISNULL( '' '' + au.lastName, ''''),
|
|
[Inactive Days] = DATEDIFF(day,lastLoginTs,CONVERT(VARCHAR,GETDATE(),101)) ,
|
|
[Phone No] = au.telephoneNo,
|
|
[Active Status] = CASE WHEN au.isActive = ''N'' THEN ''Inactive'' ELSE ''Active'' END,
|
|
[Lock Status] = CASE WHEN au.isLocked = ''Y'' THEN ''Locked'' ELSE ''Unlocked'' END,
|
|
[Created By] = au.createdBy,
|
|
[Created Date] = au.createdDate,
|
|
[Last Login Time] = au.lastLoginTs
|
|
FROM dbo.applicationUsers au WITH(NOLOCK)
|
|
LEFT JOIN dbo.agentMaster bm WITH(NOLOCK) ON au.agentId = bm.agentId
|
|
LEFT JOIN dbo.agentMaster am WITH(NOLOCK) ON bm.parentId = am.agentId
|
|
LEFT JOIN dbo.countryMaster cm WITH(NOLOCK) ON au.countryId = cm.countryId
|
|
WHERE 1=1 '
|
|
|
|
IF @days IS NOT NULL
|
|
SET @SQL = @SQL+ ' AND ISNULL(bm.agentBlock,''U'') <>''B'' AND ISNULL(DATEDIFF(day,lastLoginTs,CONVERT(VARCHAR,GETDATE(),101)),'+CAST(@days AS VARCHAR)+'+1) > ='+CAST(@days AS VARCHAR)+''
|
|
IF @agentType IS NOT NULL
|
|
SET @SQL = @SQL+ ' AND bm.agentGrp = '''+@agentType+''''
|
|
|
|
PRINT(@SQL)
|
|
EXEC(@SQL)
|
|
END
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
|
|
SELECT 'Agent Type' head,isnull(@agentType,'All') value
|
|
|
|
UNION ALL
|
|
|
|
SELECT 'Inactive Within' head,case when cast(@days as varchar)='3' then 'More than 3 days' when cast(@days as varchar)='7' then 'More than a week'
|
|
else 'More than a month' end value
|
|
|
|
UNION ALL
|
|
|
|
SELECT 'Ignore Blocked Agents' head,case when @chkInactiveAgent='Y' then 'Yes' else 'No' end value
|
|
|
|
SELECT 'AGENT/USER LOGIN AGING REPORT' title
|
|
END
|
|
|
|
|
|
|
|
|
|
GO
|