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.
 
 
 

124 lines
3.1 KiB

ALTER proc [dbo].proc_riskBasedAssessement
@flag VARCHAR(50) = NULL
,@user VARCHAR(30) = NULL
,@rowId INT = NULL
,@type VARCHAR(20) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
,@riskScore VARCHAR(10) = NULL
,@weightage VARCHAR(10) = NULL
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRY
CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
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)
If @flag='riskType'
BEGIN
SELECT DISTINCT RowId, RiskType from RiskTypeWeightage(nolock)
RETURN
END
ELSE IF @flag = 'u'
BEGIN
BEGIN TRANSACTION
UPDATE RbaSetup SET
RiskScore = ISNULL(Convert(Decimal(10,2),@riskScore),0.0)
,Weightage = ISNULL(Convert(Decimal(10,2),@weightage),0.0)
,rbaScore = (ISNULL(Convert(Decimal(10,2),@weightage),0.0)/100) * (ISNULL(Convert(Decimal(10,2),@riskScore),0.0))
WHERE rowid = @rowid
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC proc_errorHandler 0, 'Record updated successfully.', rowid
END
IF @flag IN ('s')
BEGIN
--IF @sortBy IS NULL
SET @sortBy = 'RiskScore'
IF @sortOrder IS NULL
SET @sortOrder = 'DESC'
SET @table = '(
SELECT
rs.rowId
,type=rt.rowid
,RiskType = rt.RiskType
,Item = x.ItemName
,rs.RiskScore
,rs.Weightage
,rs.rbaScore from RbaSetup(NOLOCK) rs
INNER join RiskTypeWeightage (NOLOCK) rt on rt.rowid=rs.RiskType
INNER JOIN (
SELECT countryId AS ItemId,countryName ItemName, 1 AS RiskType FROM dbo.countryMaster(NOLOCK)
UNION ALL
SELECT valueId,detailTitle, 2 AS RiskType FROM dbo.staticDataValue(NOLOCK) WHERE TypeID = 7008
UNION ALL
SELECT valueId,detailTitle, 3 AS RiskType FROM dbo.staticDataValue(NOLOCK) WHERE TypeID = 2000
UNION ALL
SELECT valueId,detailTitle, 4 AS RiskType FROM dbo.staticDataValue(NOLOCK) WHERE TypeID = 7009
)x ON rs.Item = x.ItemId AND rt.rowId = x.RiskType
WHERE 1 = 1
) x'
SET @sql_filter = ''
IF @type IS NOT NULL
SET @sql_filter = @sql_filter + ' AND X.type = ''' + @type + ''''
SET @select_field_list ='
rowId
,type
,RiskType
,Item
,RiskScore
,Weightage
,rbaScore
'
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, @rowId
END CATCH