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.
291 lines
24 KiB
291 lines
24 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_RBAEvaluatedCustomers] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE PROC [dbo].[proc_RBAEvaluatedCustomers]
|
|
@flag VARCHAR(30) = NULL
|
|
,@assessement VARCHAR(30) = NULL
|
|
,@customerId VARCHAR(50) = NULL
|
|
,@RBAStatus VARCHAR(15) = NULL
|
|
,@pendingTxnGE30 VARCHAR(10) = NULL -- GreaterThanOrEqual to 30
|
|
,@pendingTxnL30 VARCHAR(10) = NULL -- LessThan 30
|
|
,@remarks VARCHAR(100) = NULL
|
|
,@user VARCHAR(50) = NULL
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
SET XACT_ABORT ON
|
|
BEGIN TRY
|
|
|
|
SET @pageNumber = ISNULL(@pageNumber, 1)
|
|
SET @pageSize = ISNULL(@pageSize, 100)
|
|
|
|
DECLARE
|
|
@sql VARCHAR(MAX)
|
|
,@oldValue VARCHAR(MAX)
|
|
,@newValue VARCHAR(MAX)
|
|
,@module VARCHAR(10)
|
|
,@tableAlias VARCHAR(100)
|
|
,@logIdentifier VARCHAR(50)
|
|
,@logParamMod VARCHAR(100)
|
|
,@logParamMain VARCHAR(100)
|
|
,@table VARCHAR(MAX)
|
|
,@select_field_list VARCHAR(MAX)
|
|
,@extra_field_list VARCHAR(MAX)
|
|
,@sql_filter VARCHAR(MAX)
|
|
,@modType VARCHAR(6)
|
|
,@errorMsg VARCHAR(MAX)
|
|
|
|
IF(@flag='rba-ec')
|
|
BEGIN
|
|
|
|
DECLARE
|
|
@LOWrFrom MONEY
|
|
,@LOWrTo MONEY
|
|
,@MEDIUMrFrom MONEY
|
|
,@MEDIUMrTo MONEY
|
|
,@HIGHrFrom MONEY
|
|
,@HIGHrTo MONEY
|
|
|
|
SELECT @LOWrFrom=rFrom ,@LOWrTo=rTo FROM RBAScoreMaster WHERE TYPE='LOW'
|
|
SELECT @MEDIUMrFrom=rFrom ,@MEDIUMrTo=rTo FROM RBAScoreMaster WHERE TYPE='MEDIUM'
|
|
SELECT @HIGHrFrom=rFrom ,@HIGHrTo=rTo FROM RBAScoreMaster WHERE TYPE='HIGH'
|
|
|
|
SELECT
|
|
ASSESSMENT = '<a onClick="showReport(''as'','''+x.ASSESSMENT+''','''')" class="contentlink">'+ x.ASSESSMENT+'</a>',
|
|
CLEARED = '<a onClick="showReport(''rs'',''CLEARED'','''+x.ASSESSMENT+''')" class="contentlink">'+ CAST(x.CLEARED AS VARCHAR)+'</a>',
|
|
PENDING_GE_30 = '<a onClick="showReport(''pge30'',''PENDING_GE_30'','''+x.ASSESSMENT+''')" class="contentlink">'+ CAST(x.PENDING_GE_30 AS VARCHAR)+'</a>',
|
|
PENDING_L_30 = '<a onClick="showReport(''pl30'',''PENDING_L_30'','''+x.ASSESSMENT+''')" class="contentlink">'+ CAST(x.PENDING_L_30 AS VARCHAR)+'</a>',
|
|
BLOCKED = '<a onClick="showReport(''rs'',''BLOCKED'','''+x.ASSESSMENT+''')" class="contentlink">'+ CAST(x.BLOCKED AS VARCHAR)+'</a>',
|
|
x.TOTAL FROM (
|
|
SELECT 'HIGH' ASSESSMENT
|
|
, CLEARED = SUM(CASE WHEN RBA BETWEEN @HIGHrFrom AND @HIGHrTo AND RBASTATUS='CLEARED' THEN 1 ELSE 0 END )
|
|
, PENDING_GE_30 = SUM( CASE WHEN RBA BETWEEN @HIGHrFrom AND @HIGHrTo AND RBASTATUS IS NULL AND DATEDIFF(D,LASTTXNDATE,GETDATE()) >=30 THEN 1 ELSE 0 END )
|
|
, PENDING_L_30 = SUM( CASE WHEN RBA BETWEEN @HIGHrFrom AND @HIGHrTo AND RBASTATUS IS NULL AND DATEDIFF(D,LASTTXNDATE,GETDATE()) <30 THEN 1 ELSE 0 END )
|
|
, BLOCKED = SUM( CASE WHEN RBA BETWEEN @HIGHrFrom AND @HIGHrTo AND RBASTATUS='BLOCKED' THEN 1 ELSE 0 END )
|
|
, TOTAL = SUM( CASE WHEN RBA BETWEEN @HIGHrFrom AND @HIGHrTo THEN 1 ELSE 0 END )
|
|
FROM CUSTOMERS WITH (NOLOCK) WHERE RBA IS NOT NULL
|
|
UNION ALL
|
|
SELECT 'MEDIUM' ASSESSMENT
|
|
, CLEARED = SUM( CASE WHEN RBA BETWEEN @MEDIUMrFrom AND @MEDIUMrTo AND RBASTATUS='CLEARED' THEN 1 ELSE 0 END )
|
|
, PENDING_GE_30 = SUM( CASE WHEN RBA BETWEEN @MEDIUMrFrom AND @MEDIUMrTo AND RBASTATUS IS NULL AND DATEDIFF(D,LASTTXNDATE,GETDATE()) >=30 THEN 1 ELSE 0 END )
|
|
, PENDING_L_30 = SUM( CASE WHEN RBA BETWEEN @MEDIUMrFrom AND @MEDIUMrTo AND RBASTATUS IS NULL AND DATEDIFF(D,LASTTXNDATE,GETDATE()) <30 THEN 1 ELSE 0 END )
|
|
, BLOCKED = SUM( CASE WHEN RBA BETWEEN @MEDIUMrFrom AND @MEDIUMrTo AND RBASTATUS='BLOCKED' THEN 1 ELSE 0 END )
|
|
, TOTAL = SUM( CASE WHEN RBA BETWEEN @MEDIUMrFrom AND @MEDIUMrTo THEN 1 ELSE 0 END )
|
|
FROM CUSTOMERS WITH (NOLOCK) WHERE RBA IS NOT NULL
|
|
UNION ALL
|
|
SELECT 'LOW' ASSESSMENT
|
|
, CLEARED = SUM( CASE WHEN RBA BETWEEN @LOWrFrom AND @LOWrTo AND RBASTATUS='CLEARED' THEN 1 ELSE 0 END )
|
|
, PENDING_GE_30 = SUM( CASE WHEN RBA BETWEEN @LOWrFrom AND @LOWrTo AND RBASTATUS IS NULL AND DATEDIFF(D,LASTTXNDATE,GETDATE()) >=30 THEN 1 ELSE 0 END )
|
|
, PENDING_L_30 = SUM( CASE WHEN RBA BETWEEN @LOWrFrom AND @LOWrTo AND RBASTATUS IS NULL AND DATEDIFF(D,LASTTXNDATE,GETDATE()) <30 THEN 1 ELSE 0 END )
|
|
, BLOCKED = SUM( CASE WHEN RBA BETWEEN @LOWrFrom AND @LOWrTo AND RBASTATUS='BLOCKED' THEN 1 ELSE 0 END )
|
|
, TOTAL = SUM( CASE WHEN RBA BETWEEN @LOWrFrom AND @LOWrTo THEN 1 ELSE 0 END )
|
|
FROM CUSTOMERS WITH (NOLOCK) WHERE RBA IS NOT NULL
|
|
)x
|
|
|
|
|
|
|
|
|
|
END
|
|
|
|
IF(@flag='rba-ec-dl')
|
|
BEGIN
|
|
|
|
DECLARE
|
|
@rFrom MONEY
|
|
,@rTo MONEY
|
|
|
|
SELECT @rFrom=rFrom ,@rTo=rTo FROM RBAScoreMaster WHERE TYPE=@assessement
|
|
|
|
DECLARE @cusRBALink VARCHAR(5000)
|
|
SET @cusRBALink='<a href="#" onclick="OpenInNewWindow(''''/Remit/RiskBaseAnalysis/cusRBACalcDetails.aspx?'
|
|
SET @table = '
|
|
SELECT
|
|
customerId
|
|
,[Name] = UPPER(fullname)
|
|
,mobile
|
|
,idType = sd.detailTitle
|
|
,idNumber
|
|
,country = cm.countryName
|
|
,RBA = ''' + @cusRBALink + 'customerId=''+ CAST(customerId AS VARCHAR)+''&dt=''+ (SELECT MAX(dt) FROM PERIODICRBA WITH(NOLOCK) WHERE customerId = customerId) +'''''')">'' + CONVERT(VARCHAR, RBA, 2) + ''</a>''
|
|
--,RBA
|
|
,lastTxnDate
|
|
,[Status]=RBASTATUS
|
|
,pendingRemarks
|
|
,''Action''= CASE RBASTATUS WHEN ''CLEARED'' THEN ''<a class="link" onclick="ShowRemarks(this,''''BLOCKED'''',''''''+ CAST(customerId AS VARCHAR)+'''''')"> BLOCK </a>''
|
|
WHEN ''BLOCKED'' THEN ''<a class="link" onclick="ShowRemarks(this,''''CLEARED'''',''''''+ CAST(customerId AS VARCHAR)+'''''')"> CLEAR </a>''
|
|
ELSE ''<a class="link" onclick="ShowRemarks(this,''''CLEARED'''',''''''+ CAST(customerId AS VARCHAR)+'''''')"> CLEAR </a> | <a class="link" onclick="ShowRemarks(this,''''BLOCKED'''',''''''+ CAST(customerId AS VARCHAR)+'''''')"> BLOCK </a> | <a class="link" onclick="ShowRemarks(this,''''PENDINGRELEASE'''',''''''+ CAST(customerId AS VARCHAR)+'''''')"> PENDING RELEASE REMARKS </a>''
|
|
END
|
|
, ''Links''= ''<a class="link" onclick="OpenInNewWindow(''''../../Remit/Administration/CustomerSetup/CustomerDocument/DocumentView.aspx?customerId=''+CAST(customerId AS VARCHAR)+'''''');"><img alt = "Documents" title = "Documents" src="../../Images/uploadIdImage.gif" height="16" widht="16" /></a> ''
|
|
+''<a class="link" onclick="OpenInNewWindow(''''../../Remit/Administration/CustomerSetup/TranHistory.aspx?customerId=''+CAST(customerId AS VARCHAR)+''&idNumber=''+CAST(customerId AS VARCHAR)+'''''');"><img alt = "History" title = "History" src="../../Images/view-detail-icon.png" /></a> ''
|
|
+''<a class="link" onclick="OpenInNewWindow(''''../../Remit/Administration/CustomerSetup/CustomerLimit/ListCustomerLimit.aspx?customerId=''+CAST(customerId AS VARCHAR)+'''''');"><img alt = "Limit" title = "Limit" src="../../Images/limit.png" /></a>''
|
|
FROM CUSTOMERS cu WITH (NOLOCK)
|
|
|
|
LEFT JOIN countryMaster cm WITH(NOLOCK) ON cu.country = cm.countryId
|
|
LEFT JOIN staticDataValue sd WITH(NOLOCK) ON sd.valueId = cu.idType
|
|
LEFT JOIN (
|
|
SELECT cid = RP.customerId, RP.pendingRemarks FROM RBApendingRemarks RP
|
|
INNER JOIN (
|
|
SELECT rowId = MAX(rowId),customerId FROM RBApendingRemarks WITH(NOLOCK) GROUP BY customerId
|
|
)Y ON Y.customerId = RP.customerId
|
|
)rpr on CU.customerId = rpr.cid
|
|
|
|
WHERE RBA IS NOT NULL
|
|
'
|
|
|
|
IF ISNULL(@assessement,'') <> ''
|
|
BEGIN
|
|
SET @table=@table + ' AND RBA BETWEEN ' + CAST(@rFrom AS VARCHAR) + ' AND ' + CAST(@rTo AS VARCHAR) + ''
|
|
END
|
|
IF ISNULL(@RBAStatus,'') <> ''
|
|
SET @table=@table+' AND RBASTATUS = ''' + @RBAStatus + ''' '
|
|
|
|
IF ISNULL(@pendingTxnGE30,'') <> ''
|
|
SET @table=@table+' AND DATEDIFF(D,LASTTXNDATE,GETDATE()) >= 30 AND RBASTATUS IS NULL '
|
|
|
|
IF ISNULL(@pendingTxnL30,'') <> ''
|
|
SET @table=@table+' AND DATEDIFF(D,LASTTXNDATE,GETDATE()) < 30 AND RBASTATUS IS NULL '
|
|
|
|
SET @sql = 'SELECT
|
|
COUNT(*) AS TXNCOUNT
|
|
,' + CAST(@pageSize AS VARCHAR) + ' PAGESIZE
|
|
,' + CAST(@pageNumber AS VARCHAR) + ' PAGENUMBER
|
|
FROM (' + @table + ') x'
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
SET @sql = '
|
|
SELECT
|
|
[Customer Id] = customerId
|
|
,[Customer Name] = Name
|
|
,[Mobile No.] = mobile
|
|
,[ID Type] = idType
|
|
,[ID No.] = idNumber
|
|
,[Country] = country
|
|
,[RBA] = RBA
|
|
,[Last Txn Date] = lastTxnDate
|
|
,[Status] = Status
|
|
,[Pending Release Remarks] = pendingRemarks
|
|
,[Action] = Action
|
|
,Links
|
|
FROM (
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS [S.N],*
|
|
FROM (' + @table + ') x
|
|
) AS tmp WHERE tmp.[S.N] BETWEEN ' + CAST(((@pageNumber - 1) * @pageSize + 1) AS VARCHAR) + ' AND ' + CAST(@pageNumber * @pageSize AS VARCHAR)
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
|
|
--DECLARE @filterQuery VARCHAR(MAX)
|
|
--SET @filterQuery='
|
|
--SELECT ''ASSESSMENT'' head, '+@assessement+' VALUE '
|
|
|
|
--IF ISNULL(@RBAStatus,'') <> ''
|
|
-- SET @filterQuery=@filterQuery+' UNION ALL SELECT ''RBA STATUS'' head, ' + @RBAStatus + ' VALUE '
|
|
|
|
--IF ISNULL(@pendingTxnGE30,'') <> ''
|
|
-- SET @filterQuery=@filterQuery+' UNION ALL SELECT ''PENDING'' head, ''Last TXN date>=30 Days'' VALUE '
|
|
|
|
--IF ISNULL(@pendingTxnL30,'') <> ''
|
|
--SET @filterQuery=@filterQuery+' UNION ALL SELECT ''PENDING'' head, ''Last TXN date<30 Days'' VALUE '
|
|
|
|
SELECT 'ASSESSMENT' head, UPPER(@assessement) VALUE
|
|
UNION ALL
|
|
SELECT 'RBA STATUS' head, ISNULL(UPPER(@RBAStatus),'ALL') VALUE
|
|
UNION ALL
|
|
SELECT 'PENDING' head, CASE WHEN @pendingTxnGE30 IS NULL AND @pendingTxnL30 IS NULL THEN 'ALL' ELSE
|
|
CASE WHEN @pendingTxnGE30 IS NULL THEN 'LAST TXN DATE <30 DAYS' ELSE 'LAST TXN DATE>=30 DAYS' END END VALUE
|
|
|
|
SELECT 'RBA Customer Report' title
|
|
|
|
END
|
|
|
|
IF @flag = 'reviewstatus'
|
|
BEGIN
|
|
DECLARE @oldStatus VARCHAR(15)
|
|
|
|
SELECT @oldStatus = rbaStatus FROM dbo.customers WITH(NOLOCK) WHERE customerId = @customerId
|
|
|
|
BEGIN TRAN
|
|
INSERT INTO RBAreviewhistory(customerid,oldStatus,newStatus,remarks,reviewedBy,reviewedDate)
|
|
SELECT @customerId, @oldStatus, @RBAStatus, @remarks, @user, GETDATE()
|
|
|
|
UPDATE customers SET RBASTATUS = @RBAStatus WHERE customerId = @customerId
|
|
COMMIT TRAN
|
|
|
|
EXEC proc_errorHandler '0', 'success', @customerId
|
|
|
|
END
|
|
|
|
IF @flag = 'pendingRemarks'
|
|
BEGIN
|
|
INSERT INTO RBApendingRemarks(customerid,pendingRemarks,createdBy,createdDate)
|
|
SELECT @customerId, @remarks, @user, GETDATE()
|
|
EXEC proc_errorHandler '0', 'success', @customerId
|
|
END
|
|
|
|
IF @flag='calculationDetail'
|
|
BEGIN
|
|
DECLARE @RBA MONEY,@type VARCHAR(20)
|
|
|
|
SELECT @RBA = RBA FROM customers WITH(NOLOCK) WHERE customerId = @customerId
|
|
SELECT @type = TYPE FROM RBAScoreMaster where @RBA BETWEEN rFrom AND rTo
|
|
|
|
SELECT
|
|
c.fullName
|
|
,dob = CONVERT(varchar,dob,101)
|
|
,gender
|
|
,nativeCountry = cm.countryName
|
|
,country = cm1.countryName
|
|
,idType = sdv.detailTitle
|
|
,idNumber
|
|
,state
|
|
,city
|
|
,address
|
|
,mobile
|
|
,email
|
|
,rba = cast(@RBA as decimal(10,2))
|
|
,[type] = @type
|
|
FROM customers c WITH(NOLOCK)
|
|
INNER JOIN countryMaster cm WITH(NOLOCK) ON c.nativeCountry = cm.countryId
|
|
INNER JOIN countryMaster cm1 WITH(NOLOCK) ON c.country = cm1.countryId
|
|
INNER JOIN staticDataValue sdv WITH(NOLOCK) ON sdv.valueId = c.idType
|
|
WHERE customerId = @customerId
|
|
|
|
---RBA Calculation Summary---
|
|
SELECT [taRating] = 20 , [taWeight] = 10,[paRating] = 80 , [paWeight] = 10
|
|
|
|
--RBA Calculation Summary-Transaction Assesement---
|
|
SELECT Criteria,remarks Description, isnull(rangefrom,1) [Range From], ISNULL(rangeto,100) [Range To], ISNULL(rating,100) Rating, ISNULL(Weight,100) Weight
|
|
FROM rbacriteria WHERE assessmenttype='Transaction'
|
|
|
|
--RBA Calculation Summary-Periodic Assesement--
|
|
SELECT Criteria,ISNULL(remarks,criteria) Description, isnull(rangefrom,1) [Range From], ISNULL(rangeto,100) [Range To], ISNULL(rating,100) Rating, ISNULL(Weight,100) Weight
|
|
FROM rbacriteria WHERE assessmenttype='Periodic'
|
|
|
|
RETURN
|
|
END
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0
|
|
ROLLBACK TRANSACTION
|
|
DECLARE @errorMessage VARCHAR(MAX)
|
|
SET @errorMessage = ERROR_MESSAGE()
|
|
EXEC proc_errorHandler 1, @errorMessage, @customerId
|
|
END CATCH
|
|
|
|
|
|
|
|
GO
|