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.
 
 
 

883 lines
69 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_branchRating] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[proc_branchRating]
(
@flag VARCHAR(50) = NULL
,@brDetailId VARCHAR(50) = NULL
,@branchId VARCHAR(50) = NULL
,@rmBranchId INT = NULL
,@agentID INT = NULL
,@fromDate DATE = NULL
,@toDate DATE = NULL
,@createdDate DATETIME = NULL
,@ratingComment VARCHAR(2500) = NULL
,@modifiedBy VARCHAR(50) = NULL
,@modifedDate DATETIME = NULL
,@reviewedDate DATETIME = NULL
,@reviewerComment VARCHAR(2500) = NULL
,@approverComment VARCHAR(2500) = NULL
,@remarks VARCHAR(2500) = NULL
,@isActive VARCHAR(5) = NULL
,@user VARCHAR(50) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
,@xml XML = NULL
,@isRatingCompleted CHAR(1) = NULL
,@rating VARCHAR(10) = NULL
,@approvedDate DATETIME = NULL
,@category VARCHAR(50) = NULL
)
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRY
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 = 'i'
BEGIN
-- select * from branchratingdetail
IF EXISTS (SELECT 'x' FROM branchratingdetail WITH(NOLOCK) WHERE branchId=@branchId and approvedBy is null and isnull(isActive,'Y')='Y')
BEGIN
EXEC proc_errorHandler 1, 'Sorry, there is already active assessement exists for this branch, which has not been approved yet. Please kindly do inactive or review the existing record and try again.', @branchId
RETURN
END
IF EXISTS (SELECT 'x' FROM branchratingdetail WITH(NOLOCK) WHERE branchId=@branchId AND ISNULL(isActive,'Y')='Y' AND toDate>=@fromDate)
BEGIN
EXEC proc_errorHandler 1, 'Sorry, Assessement is already exists for this date. Please kindly another date.', @branchId
RETURN
END
BEGIN TRANSACTION
INSERT INTO branchratingdetail (
branchId
,fromDate
,toDate
,createdBy
,createdDate
,isActive
)
SELECT
@branchId
,@fromDate
,@toDate
,@user
,GETDATE()
,@isActive
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC proc_errorHandler 0, 'Record has been added successfully.', @agentID
END
IF @flag='rbd' -- Rating branch details
BEGIN
SET @sortBy = 'branchName'
DECLARE @hasRight CHAR(1),@reviewRight CHAR(1),@approveRight CHAR(1),@initiateRight CHAR(1)
SET @initiateRight = dbo.FNAHasRight(@user, '20201010') --Intiate
SET @hasRight = dbo.FNAHasRight(@user, '20201020') --Rating
SET @reviewRight = dbo.FNAHasRight(@user, '20201030') --Review
SET @approveRight = dbo.FNAHasRight(@user, '20201040') --Approve
SET @table = '(
SELECT
brDetailid = brd.ratingId
,brd.branchId
,branchName = am.agentName
,brd.fromDate
,brd.toDate
,operations=dbo.FNAGetBranchRating(''merge'',''operations'',brd.ratingId)
,security=dbo.FNAGetBranchRating(''merge'',''security'',brd.ratingId)
,compliance=dbo.FNAGetBranchRating(''merge'',''compliance'',brd.ratingId)
,others=dbo.FNAGetBranchRating(''merge'',''others'',brd.ratingId)
,overall=dbo.FNAGetBranchRating(''merge'',''overall'',brd.ratingId)
,brd.createdBy
,brd.createdDate
,rankedBy = brd.ratingBy
,rankingDate = brd.ratingDate
,reviewedDate = brd.reviewedDate
,brd.reviewerComment
,brd.approvedBy
,brd.approvedDate
,approverComment
,brd.isActive
,scorelink =
CASE WHEN brd.isActive=''y'' AND brd.ratingDate IS NULL AND brd.reviewedDate IS NULL AND brd.approvedDate IS NULL THEN
CASE WHEN '''+@hasRight+'''=''Y'' THEN
''<a href="Manage.aspx?type=rating&brId=''+CAST(brd.ratingId AS VARCHAR)+''&bId=''+CAST(brd.branchId AS VARCHAR)
+''&bName=''+CAST(am.agentName AS VARCHAR)
+''&ron=''+ISNULL(CAST(brd.reviewedDate AS VARCHAR),'''')
+''&r=''+CAST(ISNULL(brd.reviewedBy,'''') AS VARCHAR)
+''&rPeriod=''+CAST(brd.fromDate AS VARCHAR)+'' to ''+ CAST(brd.toDate AS VARCHAR)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Rating</a>&nbsp;''
+''<a onclick="return confirm(''''Are you sure you want to inactive this assessement?'''');" href="List.aspx?type=inactive&brId=''+CAST(brd.ratingId AS VARCHAR)+''&bId=''+CAST(brd.branchId AS VARCHAR)+''">Mark Inactive</a>&nbsp;''
ELSE ''''
END
when brd.isActive=''y'' and brd.ratingDate is not null AND brd.ratingComment IS NOT NULL AND brd.reviewedBy is null then
CASE WHEN '''+@reviewRight+'''=''Y'' THEN
''<a href="Manage.aspx?type=review&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Review</a>&nbsp;''
+''<a onclick="return confirm(''''Are you sure you want to inactive this assessement?'''');" href="List.aspx?type=inactive&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)+''">Mark Inactive</a>&nbsp;''
ELSE ''
<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;
''
END
when brd.isActive=''y'' and brd.reviewedDate is not null AND brd.approvedDate is null and brd.reviewedBy<>'''+@user+''' then
CASE WHEN '''+@approveRight+'''=''Y'' THEN
''<a href="Manage.aspx?type=approve&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Approve</a>&nbsp;''
+''<a onclick="return confirm(''''Are you sure you want to inactive this assessement?'''');" href="List.aspx?type=inactive&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)+''">Mark Inactive</a>&nbsp;''
ELSE ''
<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;
''
END
when brd.isActive=''y'' and brd.ratingDate is not null then
+ ''<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;''
else
''<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;''
+case when isnull(brd.isActive,''y'')=''y'' then
+''<a onclick="return confirm(''''Are you sure you want to inactive this assessement?'''');" href="List.aspx?type=inactive&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)+''">Mark Inactive</a>''
else '''' end
end
FROM branchratingdetail brd WITH(NOLOCK)
INNER JOIN agentMaster am on am.agentId=brd.branchId
WHERE 1 = 1 ) x'
print @table
SET @sql_filter = ''
IF @agentID is not NULL
SET @sql_filter=@sql_filter+' And branchId = '''+CAST(@agentID AS VARCHAR)+''''
IF @fromDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND fromDate BETWEEN ''' + CONVERT(VARCHAR, @fromDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @fromDate, 101) + ' 23:59:59'''
IF @toDate IS NOT NULL AND @toDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND toDate BETWEEN ''' + CONVERT(VARCHAR, @toDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @toDate, 101) + ' 23:59:59'''
IF @reviewedDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND reviewedDate BETWEEN ''' + CONVERT(VARCHAR, @reviewedDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @reviewedDate, 101) + ' 23:59:59'''
IF @approvedDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND approvedDate BETWEEN ''' + CONVERT(VARCHAR, @approvedDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @approvedDate, 101) + ' 23:59:59'''
--IF @category is not NULL
-- SET @sql_filter=@sql_filter+' And operations = '''+CAST(@category AS VARCHAR)+''''
IF @isActive IS NOT NULL AND @isActive<>'All'
SET @sql_filter = @sql_filter + ' And isActive='''+@isActive+''''
ELSE IF @isActive IS NULL
SET @sql_filter = @sql_filter + ' And isActive=''1'''
--IF @score is not NULL
-- -- SET @sql_filter=@sql_filter+' And score = '''+ @score +''''
-- SET @sql_filter=@sql_filter+' And score ='''+ CAST(@score AS VARCHAR)+''' '
IF @rating is not NULL
SET @sql_filter=@sql_filter+' And dbo.FNAGetBranchRating(''rating'','''+@category+''',x.brDetailid) = '''+CAST(@rating AS VARCHAR)+''''
print @table+''+@sql_filter
SET @select_field_list ='
brDetailid
,branchId
,branchName
,rankedBy
,rankingDate
,fromDate
,toDate
,operations
,security
,compliance
,others
,overall
,reviewedDate
,approvedDate
,createdBy
,scorelink '
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,@extra_field_list
,@sortBy
,@sortOrder
,@pageSize
,@pageNumber
END
ELSE IF @flag='rc' -- Rating Criteria
BEGIN
CREATE TABLE #tmpTable(
rowId INT IDENTITY(1,1),
[type] VARCHAR(10),
displayOrder VARCHAR(10),
[weight] MONEY,
[description] VARCHAR(2500),
[summaryDescription] VARCHAR(250),
[ParentId] VARCHAR(10)
)
DECLARE @catFlag INT, @catCount INT,@subCatFlag INT, @subCatCount INT
SET @catFlag = 1
SET @catCount=(SELECT COUNT(rowId) FROM branchratingmaster WITH(NOLOCK) WHERE [type]='A')
WHILE (@catFlag <=@catCount)
BEGIN
INSERT INTO #tmpTable
SELECT [type],displayOrder,[weight],[description],summaryDescription,'' FROM branchratingmaster WITH(NOLOCK) WHERE [type]='A' AND
displayOrder= @catFlag
SET @subCatFlag = 1
SET @subCatCount=(SELECT COUNT(rowId) FROM branchratingmaster WITH(NOLOCK) WHERE [type]='B' AND
displayOrder LIKE CAST(@catFlag AS VARCHAR)+'.%') --AND CHARINDEX('.',displayOrder)>0)
WHILE (@subCatFlag <=@subCatCount)
BEGIN
INSERT INTO #tmpTable
SELECT [type],displayOrder,[weight],[description],'',CAST(@catFlag AS VARCHAR)+'.'+CAST(@subCatFlag AS VARCHAR)
FROM branchratingmaster WITH(NOLOCK) WHERE [type]='B' AND
displayOrder= CAST(@catFlag AS VARCHAR)+'.'+CAST(@subCatFlag AS VARCHAR)
INSERT INTO #tmpTable
SELECT [type],ROW_NUMBER() OVER(ORDER BY displayOrder DESC) AS displayOrder,[weight],[description],'',
CAST(@catFlag AS VARCHAR)+'.'+CAST(@subCatFlag AS VARCHAR)
FROM branchratingmaster WITH(NOLOCK) WHERE [type]='C' AND
displayOrder LIKE CAST(@catFlag AS VARCHAR)+'.'+CAST(@subCatFlag AS VARCHAR)+'.%'
SET @subCatFlag = @subCatFlag + 1 -- sub cat loop
END
SET @catFlag = @catFlag + 1 -- main loop
END
IF EXISTS (SELECT 'x' FROM branchrating WITH(NOLOCK) WHERE brDetailid=@brDetailId)
BEGIN
SELECT
bm.rowId
,bm.[type]
,bm.displayOrder
,bm.[weight]
,bm.[description]
,bm.summaryDescription
,bm.ParentId
,score=dbo.ShowDecimal(x.score)
,x.remarks
,x.reviewedBy
,x.reviewedDate
,x.reviewerComment
,x.approvedBy
,x.approvedDate
,x.approverComment
,x.ratingBy
,x.ratingDate
,x.ratingComment
FROM #tmpTable bm WITH(NOLOCK)
LEFT JOIN
(
SELECT rowId,br.brMasterId,br.Score,br.remarks,brd.isActive,brd.reviewedBy,brd.reviewedDate,brd.reviewerComment,brd.approvedBy,brd.approvedDate,brd.approverComment,brd.ratingBy,brd.ratingDate,brd.ratingComment from
branchrating br WITH(NOLOCK)
INNER JOIN branchratingdetail brd WITH(NOLOCK)
ON
br.brDetailid=brd.ratingId
WHERE brd.isActive='y' and brd.ratingId=@brDetailId
) x ON x.brMasterId= bm.rowId
--WHERE x.isActive='Y'
ORDER BY rowId
END
ELSE
BEGIN
SELECT *,'' score,'' remarks,'' reviewedBy,'' reviewedDate,'' reviewerComment,'' approvedBy,'' approvedDate ,'' approverComment,'' ratingBy, '' ratingDate, '' ratingComment FROM #tmpTable ORDER BY rowId
END
DROP TABLE #tmpTable
SELECT rowId, brMasterId,brDetailId,riskCategory, ROUND(score,2) AS score, rating FROM branchRatingSummary where brDetailId=@brDetailId
SELECT * FROM branchScoremaster
END
ELSE IF @flag = 'i-br'
BEGIN
BEGIN TRANSACTION
IF EXISTS (SELECT 'x' FROM branchrating WITH(NOLOCK) WHERE brDetailid=@brDetailId)
BEGIN
DELETE FROM branchrating WHERE brDetailid=@brDetailId
END
INSERT INTO branchrating(
brMasterId
,brDetailid
,score
,remarks
,modifiedBy
,modifieddate
)
SELECT
p.value('@rowId','VARCHAR(50)')
,p.value('@brDetaildId','VARCHAR(50)')
,p.value('@score','VARCHAR(50)')
,p.value('@remarks','VARCHAR(2500)')
,@user
,GETDATE()
FROM @xml.nodes('/root/row') AS tmp(p)
UPDATE branchratingdetail
set modifiedBy=@user
,modifiedDate= GETDATE()
,ratingDate= CASE WHEN @isRatingCompleted='Y' THEN GETDATE() ELSE NULL END
,ratingBy=@user
--,ratingComment=@ratingComment
WHERE ratingId=@brDetailId
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC proc_errorHandler 0, 'Record has been added successfully.', @branchId
EXEC proc_branchRating @flag = 'rc', @user=@user,@branchId=@branchId,@brDetailId=@brDetailId
END
ELSE IF @flag = 'branchcomment'
BEGIN
UPDATE branchratingdetail
set
--modifiedBy=@user
--,modifiedDate=GETDATE()
--ratingBy=@user
--,ratingDate=GETDATE()
ratingComment = @ratingComment
,reviewedByBranch = @user
,reviewedDateBranch = GETDATE()
WHERE ratingId = @brDetailId
EXEC proc_errorHandler 0, 'Branch Rating Comment added successfully.', @brDetailId
END
ELSE IF @flag = 'review'
BEGIN
UPDATE branchratingdetail
set
--modifiedBy=@user
--,modifiedDate=GETDATE()
reviewedBy=@user
,reviewedDate=GETDATE()
,reviewerComment=@reviewerComment
WHERE ratingId=@brDetailId
EXEC proc_errorHandler 0, 'Review Comment Added successfully.', @brDetailId
END
ELSE IF @flag = 'approve'
BEGIN
UPDATE branchratingdetail
set
--modifiedBy=@user
--,modifiedDate=GETDATE()
approvedBy=@user
,approvedDate=GETDATE()
,approverComment=@approverComment
WHERE ratingId=@brDetailId
EXEC proc_errorHandler 0, 'Branch Rating Approved successfully.', @brDetailId
END
ELSE IF @flag='ddlStatus'
BEGIN
SELECT 'All' '0', 'All' AS '1' UNION ALL
SELECT 'Y' '0','Active' as '1' UNION ALL
SELECT 'N','Inactive'
END
ELSE IF @flag='ddlCategory'
BEGIN
SELECT NULL '0' ,'All' AS '1' UNION ALL
SELECT summaryDescription,summaryDescription FROM branchRatingMaster WHERE [type]='A' AND summaryDescription IS NOT NULL
UNION ALL
SELECT 'Overall','Overall'
END
ELSE IF @flag='ddlRating'
BEGIN
SELECT NULL '0' ,'All' AS '1' UNION ALL
SELECT rating,rating FROM branchScoremaster WHERE rating IS NOT NULL
END
ELSE IF @flag='summary'
BEGIN
IF EXISTS (SELECT 'x' FROM branchRatingSummary WITH(NOLOCK) WHERE brDetailid=@brDetailId)
BEGIN
DELETE FROM branchRatingSummary WHERE brDetailid=@brDetailId
END
-- SELECT * FROM branchRatingSummary
/*
INSERT INTO branchRatingSummary(
brMasterId
,brDetailid
,riskCategory
,score
,rating
)
SELECT
p.value('@brMasterId','VARCHAR(50)')
,@brDetailId
,p.value('@riskCategory','VARCHAR(50)')
,p.value('@score','VARCHAR(50)')
,p.value('@rating','VARCHAR(2500)')
FROM @xml.nodes('/root/row') AS tmp(p) */
INSERT INTO branchRatingSummary ( brMasterId ,brDetailId, riskCategory, score, rating)
SELECT x.rowid,@brDetailId brDetailId ,summarydescription,score,rating FROM
(SELECT rowid,displayorder,summarydescription,[weight] FROM branchRatingMaster WHERE TYPE='A') x
INNER JOIN
(
SELECT SUBSTRING( displayorder, 1,1) sn , ROUND(SUM( CAST([weight] AS MONEY) *score/100.00),2) score FROM
branchRatingMaster b WITH (NOLOCK) INNER JOIN branchRating bd WITH (NOLOCK)
ON b.rowid=bd.brMasterId
AND brDetailid=@brDetailId
GROUP BY SUBSTRING( displayorder, 1,1)
) y ON x.displayorder=y.sn
, branchScoremaster s WHERE y.score BETWEEN s.scorefrom AND s.scoreto
UNION ALL
SELECT 99,@brDetailId,'Overall', score ,rating FROM
(
SELECT ROUND(SUM (score * CAST (x.[weight] AS MONEY) /100.00),2) score FROM
(SELECT rowid,displayorder,summarydescription,[weight] FROM branchRatingMaster WHERE TYPE='A') x
INNER JOIN
(
SELECT SUBSTRING( displayorder, 1,1) sn , ROUND(SUM( CAST ([weight] AS MONEY ) *score/100.00),2) score FROM
branchRatingMaster b WITH (NOLOCK) INNER JOIN branchRating bd WITH (NOLOCK)
ON b.rowid=bd.brMasterId
AND brDetailid=@brDetailId
GROUP BY SUBSTRING ( displayorder, 1,1)
) y ON x.displayorder=y.sn ) zz
, branchScoremaster s WHERE zz.score BETWEEN s.scorefrom AND s.scoreto
EXEC proc_errorHandler 0, 'Branch Rating Summary added successfully.', @branchId
END
ELSE IF @flag='inactive'
BEGIN
BEGIN TRANSACTION
UPDATE branchratingdetail
set isactive=@isActive
WHERE branchId=@branchId And ratingId=@brDetailId
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC proc_errorHandler 0, 'Record has been updated successfully.', @brDetailId
END
----DISPLAY GRID FOR RM
IF @flag='rbd_rm' -- Rating branch details
BEGIN
DECLARE @userType VARCHAR(5)
SELECT @userType=userType,@rmBranchId=agentId FROM applicationUsers WHERE userName=@user
CREATE TABLE #rmBranch (agentId INT,agentName VARCHAR(100))
IF @userType = 'RH'
BEGIN
INSERT INTO #rmBranch
SELECT distinct
branch.agentId, branch.agentName
FROM (
SELECT
am.agentId
,am.agentName
FROM agentMaster am WITH(NOLOCK)
INNER JOIN regionalBranchAccessSetup rba ON am.agentId = rba.memberAgentId
WHERE rba.agentId = @rmBranchId
AND ISNULL(rba.isDeleted, 'N') = 'N'
AND ISNULL(rba.isActive, 'N') = 'Y'
UNION ALL
SELECT agentId, agentName
FROM agentMaster WITH(NOLOCK) WHERE agentId = @rmBranchId
) branch
END
ELSE
BEGIN
INSERT INTO #rmBranch
SELECT agentId, agentName
FROM agentMaster WITH(NOLOCK) WHERE agentId = @rmBranchId
END
SET @hasRight='N'
IF @userType = 'RH'
SET @hasRight = dbo.FNAHasRight(@user, '40241010')-- Rating
SET @reviewRight = 'N'-- Review
SELECT a.brdetailid,operations,[security],compliance,others,overall INTO #RATINGDETAIL from
(select brDetailId,operations=dbo.FNAGetBranchRating('merge','operations',brDetailId) from branchRatingSummary WITH(NOLOCK) where riskcategory='operations') A
LEFT JOIN (select brDetailId, [security]=dbo.FNAGetBranchRating('merge','security',brDetailId) from branchRatingSummary WITH(NOLOCK) where riskcategory='security')B on B.brDetailId=a.brDetailId
LEFT JOIN (select brDetailId, compliance=dbo.FNAGetBranchRating('merge','compliance',brDetailId) from branchRatingSummary WITH(NOLOCK) where riskcategory='compliance') C on C.brDetailId=a.brDetailId
LEFT JOIN (select brDetailId, others=dbo.FNAGetBranchRating('merge','others',brDetailId) from branchRatingSummary WITH(NOLOCK) where riskcategory='others') D on D.brDetailId=a.brDetailId
LEFT JOIN (select brDetailId, overall=dbo.FNAGetBranchRating('merge','overall',brDetailId) from branchRatingSummary WITH(NOLOCK) where riskcategory='overall') E on E.brDetailId=a.brDetailId
SET @table = '(
SELECT
brDetailid = brd.ratingId
,brd.branchId
,branchName = am.agentName
,brd.fromDate
,brd.toDate
,operations,security ,compliance ,others,overall
,brd.createdBy
,brd.createdDate
,rankedBy = brd.ratingBy
,rankingDate = brd.ratingDate
,reviewedDate = brd.reviewedDate
,brd.reviewerComment
,brd.approvedBy
,brd.approvedDate
,approverComment
,brd.isActive
,scorelink =
CASE WHEN brd.isActive=''y'' AND brd.ratingDate IS NULL AND brd.reviewedDate IS NULL AND brd.approvedDate IS NULL THEN
CASE WHEN '''+@hasRight+'''=''Y'' THEN
''<a href="Manage.aspx?type=rating&brId=''+CAST(brd.ratingId AS VARCHAR)+''&bId=''+CAST(brd.branchId AS VARCHAR)
+''&bName=''+CAST(am.agentName AS VARCHAR)
+''&ron=''+ISNULL(CAST(brd.reviewedDate AS VARCHAR),'''')
+''&r=''+CAST(ISNULL(brd.reviewedBy,'''') AS VARCHAR)
+''&rPeriod=''+CAST(brd.fromDate AS VARCHAR)+'' to ''+ CAST(brd.toDate AS VARCHAR)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Rating</a>&nbsp;''
ELSE ''
<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;
''
END
WHEN brd.isActive=''y'' AND brd.ratingDate IS NOT NULL AND brd.ratingComment IS NULL THEN
''<a href="Manage.aspx?type=branchcomment&brId=''+CAST(brd.ratingId AS VARCHAR)+''&bId=''+CAST(brd.branchId AS VARCHAR)
+''&bName=''+CAST(am.agentName AS VARCHAR)
+''&ron=''+ISNULL(CAST(brd.reviewedDate AS VARCHAR),'''')
+''&r=''+CAST(ISNULL(brd.reviewedBy,'''') AS VARCHAR)
+''&rPeriod=''+CAST(brd.fromDate AS VARCHAR)+'' to ''+ CAST(brd.toDate AS VARCHAR)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Add Comment</a>&nbsp;''
WHEN brd.isActive=''y'' and brd.ratingDate is not null AND brd.ratingComment IS NOT NULL AND brd.reviewedBy is null then
CASE WHEN '''+@reviewRight+'''=''Y'' THEN
''<a href="Manage.aspx?type=review&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Review</a>&nbsp;''
ELSE ''
<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;
''
END
WHEN brd.isActive=''y'' and brd.reviewedDate is not null AND brd.approvedDate is null and brd.reviewedBy<>'''+@user+''' then
CASE WHEN '''+@reviewRight+'''=''Y'' THEN
''<a href="Manage.aspx?type=approve&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Approve</a>&nbsp;''
+''<a onclick="return confirm(''''Are you sure you want to inactive this assessement?'''');" href="List.aspx?type=inactive&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)+''"></a>&nbsp;''
ELSE ''
<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;
''
END
ELSE
''<a href="Manage.aspx?type=riskhistory&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)
+''&bName=''+cast(am.agentName as varchar)
+''&ron=''+isnull(cast(brd.reviewedDate as varchar),'''')
+''&r=''+cast(isnull(brd.reviewedBy,'''') as varchar)
+''&rPeriod=''+cast(brd.fromDate as varchar)+'' to ''+ cast(brd.toDate as varchar)
+''&ratedby=''+CAST(ISNULL(brd.ratingBy,'''') AS VARCHAR)
+''&ratedon=''+ISNULL(CAST(brd.ratingDate AS VARCHAR),'''')
+''&appby=''+CAST(ISNULL(brd.approvedBy,'''') AS VARCHAR)
+''&appon=''+ISNULL(CAST(brd.approvedDate AS VARCHAR),'''')
+''">Details</a>&nbsp;''
+ CASE WHEN isnull(brd.isActive,''y'')=''y'' THEN
+ ''<a onclick="return confirm(''''Are you sure you want to inactive this assessement?'''');" href="List.aspx?type=inactive&brId=''+CAST(brd.ratingId as varchar)+''&bId=''+cast(brd.branchId as varchar)+''"></a>''
ELSE '''' END
END
FROM branchratingdetail brd WITH(NOLOCK)
INNER JOIN agentMaster am on am.agentId=brd.branchId
INNER JOIN #rmBranch T ON T.agentId = brd.branchId
LEFT JOIN #RATINGDETAIL rd WITH(NOLOCK) ON brd.ratingId = rd.brdetailid
WHERE 1 = 1
) x'
print @table
SET @sql_filter = ''
IF @agentID is not NULL
SET @sql_filter=@sql_filter+' And branchId = '''+CAST(@agentID AS VARCHAR)+''''
IF @fromDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND fromDate BETWEEN ''' + CONVERT(VARCHAR, @fromDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @fromDate, 101) + ' 23:59:59'''
IF @toDate IS NOT NULL AND @toDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND toDate BETWEEN ''' + CONVERT(VARCHAR, @toDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @toDate, 101) + ' 23:59:59'''
IF @reviewedDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND reviewedDate BETWEEN ''' + CONVERT(VARCHAR, @reviewedDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @reviewedDate, 101) + ' 23:59:59'''
IF @approvedDate IS NOT NULL
SET @sql_filter = @sql_filter + ' AND approvedDate BETWEEN ''' + CONVERT(VARCHAR, @approvedDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @approvedDate, 101) + ' 23:59:59'''
--IF @category is not NULL
-- SET @sql_filter=@sql_filter+' And operations = '''+CAST(@category AS VARCHAR)+''''
IF @isActive IS NOT NULL AND @isActive<>'All'
SET @sql_filter = @sql_filter + ' And isActive='''+@isActive+''''
ELSE IF @isActive IS NULL
SET @sql_filter = @sql_filter + ' And isActive=''1'''
--IF @score is not NULL
-- -- SET @sql_filter=@sql_filter+' And score = '''+ @score +''''
-- SET @sql_filter=@sql_filter+' And score ='''+ CAST(@score AS VARCHAR)+''' '
IF @rating is not NULL
SET @sql_filter=@sql_filter+' And dbo.FNAGetBranchRating(''rating'','''+@category+''',x.brDetailid) = '''+CAST(@rating AS VARCHAR)+''''
print @table+''+@sql_filter
SET @select_field_list ='
brDetailid
,branchId
,branchName
,rankedBy
,rankingDate
,fromDate
,toDate
,operations
,security
,compliance
,others
,overall
,reviewedDate
,approvedDate
,createdBy
,scorelink '
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,@extra_field_list
,@sortBy
,@sortOrder
,@pageSize
,@pageNumber
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
DECLARE @errorMessage VARCHAR(MAX)
SET @errorMessage = ERROR_MESSAGE()
EXEC proc_errorHandler 1, @errorMessage, @branchId
END CATCH
GO