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.
 
 
 

324 lines
21 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_approveCustomer] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_approveCustomer]
@flag VARCHAR(50) = NULL
,@user VARCHAR(50) = NULL
,@fromDate VARCHAR(50) = NULL
,@toDate VARCHAR(50) = NULL
,@agentId VARCHAR(100) = NULL
,@status VARCHAR(200) = NULL
,@membershipId VARCHAR(10) = NULL
,@isDoc VARCHAR(10) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(10) = NULL
,@mode CHAR(2) = NULL
,@zone VARCHAR(50) = NULL
,@agentGrp VARCHAR(50) = NULL
,@district VARCHAR(50) = NULL
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRY
/*
EXEC proc_approveCustomer @flag='s',@user='admin',
@fromDate = '2014-06-24',
@toDate = '2014-06-28',
@agentId =NULL,
@status = NULL
*/
DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(100))
DECLARE
@table VARCHAR(MAX) = NULL
,@url VARCHAR(max) = ''
,@gobalFilter VARCHAR(MAX) = ''
,@tempSql VARCHAR(MAX) = ''
IF ISDATE(@fromDate) = 1 AND ISDATE(@toDate) = 1
BEGIN
INSERT INTO @FilterList
SELECT 'From Date',@fromDate UNION ALL
SELECT 'To Date',@toDate
SET @gobalFilter=@gobalFilter+' AND main.createdDate BETWEEN ''' + @fromDate + ''' AND ''' + @toDate + ' 23:59:59'''
END
ELSE IF ISDATE(@fromDate) = 1
BEGIN
INSERT INTO @FilterList
SELECT 'From Date',@fromDate
SET @gobalFilter=@gobalFilter+' AND main.createdDate> ''' + @fromDate + ''''
END
ELSE IF ISDATE(@toDate) = 1
BEGIN
INSERT INTO @FilterList
SELECT 'To Date',@toDate
SET @gobalFilter=@gobalFilter+' AND main.createdDate< ''' + @toDate + ''''
END
IF @agentId IS NOT NULL
BEGIN
INSERT INTO @FilterList
SELECT 'Sending Agent',agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@agentId
SET @url=@url+'&agentId='+@agentId
SET @gobalFilter=@gobalFilter+' AND am.agentId ='''+@agentId+''''
END
IF @status IS NOT NULL
BEGIN
INSERT INTO @FilterList
SELECT 'Status',@status
SET @url=@url+'&status='+@status
SET @gobalFilter=@gobalFilter+' AND main.customerStatus ='''+@status+''''
END
IF @zone IS NOT NULL
BEGIN
INSERT INTO @FilterList
SELECT 'Zone',@zone
SET @url=@url+'&sZone='+@zone
SET @gobalFilter=@gobalFilter+' AND am.agentState ='''+@zone+''''
END
IF @district IS NOT NULL
BEGIN
INSERT INTO @FilterList
SELECT 'District',@district
SET @url=@url+'&district='+@district
SET @gobalFilter=@gobalFilter+' AND am.agentDistrict ='''+@district+''''
END
IF @agentGrp IS NOT NULL
BEGIN
INSERT INTO @FilterList
SELECT 'Agent Group',detailTitle FROM dbo.staticDataValue WITH(NOLOCK) WHERE valueId=@agentGrp
SET @url=@url+'&agentGrp='+@agentGrp
SET @gobalFilter=@gobalFilter+' AND am.agentGrp ='''+@agentGrp+''''
END
IF @memberShipId IS NOT NULL
BEGIN
INSERT INTO @FilterList
SELECT 'Membership Id',@memberShipId
SET @url=@url+'&memberShipId='+@memberShipId
SET @gobalFilter=@gobalFilter+' AND cast(main.memberShipId as varchar) ='''+@memberShipId+''''
END
IF @isDoc IS NOT NULL
BEGIN
INSERT INTO @FilterList
SELECT 'Document Uploaded',@isDoc
SET @url=@url+'&isDoc='+@isDoc
IF @isDoc='Yes'
BEGIN
SET @gobalFilter=@gobalFilter+' AND cd.customerId is not null and cd.cdId is not null'
END
IF @isDoc='NO'
BEGIN
SET @gobalFilter=@gobalFilter+' AND cd.customerId is null and cd.cdId is null'
END
END
IF @flag='s'
BEGIN
SET @gobalFilter=@gobalFilter
SET @table='
SELECT
customerId = main.customerId
,[Mem. Id] = main.membershipId
,[Name] = ISNULL(main.firstName, '''') + ISNULL( '' '' + main.middleName, '''')+ ISNULL( '' '' + main.lastName, '''')
,[Mobile] = main.mobile
,[Agent Name] = am.agentName
,[Created Date] = main.createdDate
,[Is Uploaded] = case when cd.customerId is null then ''No'' else ''Yes'' end
,[Status] = customerStatus
,[Subject] = ci.subject
,[HO-Complain] = ci.description
,[Agent Group]=CASE WHEN am.agentGrp=''4301'' THEN ''Bank & Finance''
WHEN am.agentGrp=''6207'' THEN ''Private Agents''
WHEN am.agentGrp=''8026'' THEN ''Cooperative''
WHEN am.agentGrp=''8027'' THEN ''School & College''
WHEN am.agentGrp=''4300'' THEN ''IME Center''
WHEN am.agentGrp=''8028'' THEN ''International Agents''
ELSE ''ALL''
END
,[Zone]= am.agentState
,[District]= am.agentDistrict
FROM customerMaster main WITH(NOLOCK)
LEFT JOIN (
SELECT customerId, MAX(cdId) cdId FROM customerDocument WITH(NOLOCK) GROUP BY customerId
) cd on main.customerId = cd.customerId
LEFT JOIN agentMaster am with(nolock) on am.agentId = main.agentId
LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = ''Y''
WHERE rejectedDate IS NULL AND (main.isDeleted = ''N'' OR main.isDeleted IS NULL) ' + @gobalFilter
SET @tempSql='select customerId, [S.N.]=row_number() over(order by [Mem. Id]),[Mem. Id],[Name],[Mobile],[Agent Name],[Created Date],[Is Uploaded],[Status],[Subject],[HO-Complain],[Agent Group],[Zone],[District] FROM ('+@table+')X'
PRINT @tempSql
EXEC(@tempSql)
--RETURN
END
IF @flag = 'ss'
BEGIN
SELECT x.customerId
,[S.N.] = row_number() over(order by x.customerId)
,[Mem. Id]
,[Name]
,[Mobile]
,[Agent Name]
,[Created Date]
,[Is Uploaded]
,[Status]
,[Subject]
,[HO-Complain]
,[Agent Group]
,[Zone]
,[District]
FROM
(
SELECT distinct
customerId = main.customerId
,[Mem. Id] = main.membershipId
,[Name] = ISNULL(main.firstName, '') + ISNULL( ' ' + main.middleName, '')+ ISNULL( ' ' + main.lastName, '')
,[Mobile] = main.mobile
,[Agent Name] = am.agentName
,[Created Date] = main.createdDate
,[Is Uploaded] = case when cd.customerId is null then 'No' else 'Yes' end
,[Status] = customerStatus
,[Subject] = ci.subject
,[HO-Complain] = ci.description
,[Agent Group]=CASE WHEN am.agentGrp='4301' THEN 'Bank & Finance'
WHEN am.agentGrp='6207' THEN 'Private Agents'
WHEN am.agentGrp='8026' THEN 'Cooperative'
WHEN am.agentGrp='8027' THEN 'School & College'
WHEN am.agentGrp='4300' THEN 'IME Center'
WHEN am.agentGrp='8028' THEN 'International Agents'
ELSE 'ALL'
END
,[Zone]= main.pZone
,[District]= main.pDistrict
FROM customerMaster main WITH(NOLOCK)
LEFT JOIN customerDocument cd with(nolock) on main.customerId = cd.customerId
LEFT JOIN agentMaster am with(nolock) on am.agentId = main.agentId
LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = 'Y'
WHERE rejectedDate IS NULL
AND main.agentId = ISNULL(@agentId,main.agentId)
AND main.customerStatus = ISNULL(@status,main.customerStatus)
AND main.membershipId = ISNULL(@membershipId,main.membershipId)
AND ISNULL(main.isDeleted,'N') = 'N'
)X WHERE [Is Uploaded] = ISNULL(@isDoc,[Is Uploaded])
END
IF @flag = 's-dash'
BEGIN
SELECT x.customerId
,[S.N.] = row_number() over(order by x.customerId)
,[Mem. Id]
,[Name]
,[Mobile]
,[Agent Name]
,[Created Date]
,[Is Uploaded]
,[Status]
,[Subject]
,[HO-Complain]
FROM
(
SELECT distinct
customerId = main.customerId
,[Mem. Id] = main.membershipId
,[Name] = ISNULL(main.firstName, '') + ISNULL( ' ' + main.middleName, '')+ ISNULL( ' ' + main.lastName, '')
,[Mobile] = main.mobile
,[Agent Name] = am.agentName
,[Created Date] = main.createdDate
,[Is Uploaded] = case when cd.customerId is null then 'No' else 'Yes' end
,[Status] = customerStatus
,[Subject] = ci.subject
,[HO-Complain] = ci.description
FROM customerMaster main WITH(NOLOCK)
LEFT JOIN customerDocument cd with(nolock) on main.customerId = cd.customerId
INNER JOIN agentMaster am with(nolock) on am.agentId = main.agentId
LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = 'Y'
WHERE rejectedDate IS NULL
AND am.agentState = ISNULL(@zone,am.agentState)
AND main.customerStatus = ISNULL(@status,main.customerStatus)
AND ISNULL(main.isDeleted,'N') = 'N'
)X WHERE 1=1
END
IF @flag = 's_summary'
BEGIN
SELECT [Zone] = x.agentState,
[Pending] = SUM(x.Pending),
[Complain] = SUM(x.Complain),
[Updated] = SUM(x.Updated)
FROM
(
SELECT am.agentState
,CASE WHEN cm.customerStatus='Pending' THEN COUNT('a') ELSE 0 END 'Pending'
,CASE WHEN cm.customerStatus='Complain' THEN COUNT('a')ELSE 0 END 'Complain'
,CASE WHEN cm.customerStatus='Updated' THEN COUNT('a')ELSE 0 END 'Updated'
FROM dbo.customerMaster cm WITH(NOLOCK)
INNER JOIN dbo.agentMaster am WITH(NOLOCK) ON cm.agentId = am.agentId
WHERE cm.rejectedDate IS NULL
AND ISNULL(cm.isDeleted,'N') = 'N'
GROUP BY am.agentState,cm.customerStatus
)x GROUP BY x.agentState
END
IF @flag = 's_detail'
BEGIN
IF @mode = '1'
SET @status = 'Pending'
IF @mode = '2'
SET @status = 'Updated'
IF @mode = '3'
SET @status = 'Complain'
SELECT x.customerId
,[S.N.] = row_number() over(order by x.customerId)
,[Mem. Id]
,[Name]
,[Mobile]
,[Agent Name]
,[Created Date]
,[Is Uploaded]
,[Status]
,[Subject]
,[HO-Complain]
FROM
(
SELECT distinct
customerId = main.customerId
,[Mem. Id] = main.membershipId
,[Name] = ISNULL(main.firstName, '') + ISNULL( ' ' + main.middleName, '')+ ISNULL( ' ' + main.lastName, '')
,[Mobile] = main.mobile
,[Agent Name] = am.agentName
,[Created Date] = main.createdDate
,[Is Uploaded] = case when cd.customerId is null then 'No' else 'Yes' end
,[Status] = customerStatus
,[Subject] = ci.subject
,[HO-Complain] = ci.description
FROM customerMaster main WITH(NOLOCK)
LEFT JOIN customerDocument cd with(nolock) on main.customerId = cd.customerId
LEFT JOIN agentMaster am with(nolock) on am.agentId = main.agentId
LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = 'Y'
WHERE rejectedDate IS NULL
AND main.customerStatus = @status
AND ISNULL(main.isDeleted,'N') = 'N'
)X WHERE [Is Uploaded] = ISNULL(@isDoc,[Is Uploaded])
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
DECLARE @errorMessage VARCHAR(MAX)
SET @errorMessage = ERROR_MESSAGE()
EXEC proc_errorHandler 1, @errorMessage, @agentId
END CATCH
GO