USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[Proc_OFACRuleSetup] Script Date: 7/4/2019 11:35:48 AM ******/ DROP PROCEDURE [dbo].[Proc_OFACRuleSetup] GO /****** Object: StoredProcedure [dbo].[Proc_OFACRuleSetup] Script Date: 7/4/2019 11:35:48 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[Proc_OFACRuleSetup] ( @flag VARCHAR(50) = NULL ,@user VARCHAR(30) = NULL ,@RuleId VARCHAR(30) = NULL ,@amount MONEY = NULL ,@period INT = NULL ,@sortBy VARCHAR(50) = NULL ,@sortOrder VARCHAR(5) = NULL ,@pageSize INT = NULL ,@pageNumber INT = NULL ,@isPerTransaction VARCHAR(5) = NULL ) AS BEGIN SET NOCOUNT 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) ,@id VARCHAR(10) ,@modType VARCHAR(6) ,@ApprovedFunctionId INT SELECT @ApprovedFunctionId = 20602030 IF @flag='i' -- insert Rule setup BEGIN IF EXISTS( SELECT 'x' FROM csSafelistRuleDetail WHERE ISNULL(period, 0) = ISNULL(@period, 0) ) -- AND ISNULL(condition, 0) = ISNULL(@condition, 0) AND -- ANDISNULL(tranCount, 0) = ISNULL(@tranCount, 0) AND -- AND ISNULL(nextAction, 0) = ISNULL(@nextAction, 0) -- AND ISNULL(ruleScope, 0) = ISNULL(@ruleScope, 0) BEGIN EXEC proc_errorHandler 1, 'Record already exist.', NULL RETURN END BEGIN TRANSACTION INSERT INTO csSafelistRuleDetail ( Amount ,period ,createdBy ,createdDate ,IsPerTransaction ,IsActive ) SELECT @amount ,@period ,@user ,GETDATE() ,@isPerTransaction ,'Y' SET @RuleId = SCOPE_IDENTITY() IF @@TRANCOUNT > 0 COMMIT TRANSACTION EXEC proc_errorHandler 0, 'Record has been added successfully.', @RuleId END ELSE IF @flag = 'u' -- update rule detail (done) : (urd_v2) BEGIN IF EXISTS ( SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK) WHERE RuleId = @RuleId AND ( createdBy <> @user AND approvedBy IS NULL) ) BEGIN EXEC proc_errorHandler 1, '
You can not modify this record.
You are trying to perform an illegal operation.
', @RuleId RETURN END IF EXISTS ( SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK) WHERE RuleId = @RuleId AND (createdBy<> @user OR ISNULL(isDeleted,'N') <> 'N') AND approvedBy IS NULL ) BEGIN EXEC proc_errorHandler 1, '
You can not modify this record.
You are trying to perform an illegal operation.
', @RuleId RETURN END IF EXISTS( SELECT 'x' FROM csSafelistRuleDetail (NOLOCK) WHERE ISNULL(period, 0) = ISNULL(@period, 0) AND RuleId <> @RuleId) BEGIN EXEC proc_errorHandler 1, 'Record already exist.', NULL RETURN END BEGIN TRANSACTION IF EXISTS (SELECT 'X' FROM csSafelistRuleDetail (NOLOCK) WHERE approvedBy IS NULL AND RuleId = @RuleId) BEGIN UPDATE csSafelistRuleDetail SET amount = @amount ,period = @period ,createdBy = @user ,createdDate = GETDATE() ,IsActive = 'Y' ,ModifiedBy = @user ,ModifiedDate = GETDATE() WHERE RuleId = @RuleId END ELSE BEGIN INSERT INTO csSafelistRuleDetailHistory ( ruleId ,amount ,period ,isDeleted ,approvedBy ,approvedDate ,createdBy ,createdDate ,modifiedBy ,modifiedDate ,IsActive ) SELECT RuleId ,amount ,period ,isDeleted ,approvedBy ,ApprovedDate ,createdBy ,createdDate ,modifiedBy ,modifiedDate ,IsActive FROM csSafelistRuleDetail WHERE RuleId = @RuleId UPDATE csSafelistRuleDetail SET amount = @amount ,period = @period ,createdBy = @user ,createdDate = GETDATE() ,IsActive = 'Y' ,modifiedBy = @user ,modifiedDate = GETDATE() WHERE RuleId = @RuleId END IF @@TRANCOUNT > 0 COMMIT TRANSACTION EXEC proc_errorHandler 0, 'Record updated successfully.', @RuleId END ELSE IF @flag ='s' -- (rdGrid_v2) BEGIN IF @sortBy IS NULL SET @sortBy = 'condition' IF @sortOrder IS NULL SET @sortOrder = 'ASC' SET @pageNumber = 1 SET @pageSize = 10000 SET @table = '( SELECT main.RuleId ,main.Amount ,main.Period ,isDisabled=CASE WHEN ISNULL(main.IsActive,''n'')=''y'' then ''Enabled'' else ''Disabled'' END ,main.CreatedBy ,main.CreatedDate ,main.ModifiedBy ,main.ModifiedDate ,CASE WHEN main.ApprovedBy IS NULL THEN '''' ELSE ''none'' END as isApproved FROM csSafeListRuleDetail main WITH(NOLOCK) LEFT JOIN staticDataValue con WITH(NOLOCK) ON 1=1 --main.condition = con.valueId WHERE ISNULL(main.isDeleted, ''N'') <> ''Y'' )x' SET @sql_filter = '' IF @amount IS NOT NULL AND @amount<>0 SET @sql_filter = @sql_filter + ' AND x.amount = ''' + CAST(@amount AS VARCHAR(50))+'''' IF @period IS NOT NULL AND @period<>0 SET @sql_filter = @sql_filter + ' AND x.period = ''' + CAST(@period AS VARCHAR(50))+'''' SET @select_field_list =' RuleID ,amount ,period ,isDisabled ,createdBy ,createdDate ,modifiedBy ,modifiedDate ,isApproved ' EXEC dbo.proc_paging @table ,@sql_filter ,@select_field_list ,@extra_field_list ,@sortBy ,@sortOrder ,@pageSize ,@pageNumber END ELSE IF @flag ='s1'--(rdGrid) BEGIN IF @sortBy IS NULL SET @sortBy = 'condition' IF @sortOrder IS NULL SET @sortOrder = 'ASC' SET @pageNumber = 1 SET @pageSize = 10000 SET @table = '( SELECT main.RuleId ,main.amount ,main.period ,isDisabled=CASE WHEN ISNULL(main.IsActive,''n'')=''y'' then ''Enabled'' else ''Disabled'' END ,main.CreatedBy ,main.CreatedDate ,main.ModifiedBy ,main.ModifiedDate ,CASE WHEN main.ApprovedBy IS NULL THEN '''' ELSE ''none'' END as isApproved FROM csSafeListRuleDetail main WITH(NOLOCK) LEFT JOIN staticDataValue con WITH(NOLOCK) ON main.condition = con.valueId LEFT JOIN staticDataValue cm WITH(NOLOCK) ON main.collMode = cm.valueId LEFT JOIN serviceTypeMaster pm WITH(NOLOCK) ON main.paymentMode = pm.serviceTypeId WHERE --main.csMasterId = + CAST (@csMasterId AS VARCHAR) ISNULL(main.IsDeleted, ''N'') <> ''Y'' --AND ( -- main.ApprovedBy IS NOT NULL -- OR main.CreatedBy = ''' + ISNULL(@user,'') + ''' -- ) )x' SET @sql_filter = '' SET @select_field_list =' RuleID ,Amount ,period ,isDisabled ,AreatedBy ,CreatedDate ,ModifiedBy ,ModifiedDate ,IsApproved ' 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, NULL END CATCH END GO