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.
 
 
 

306 lines
7.4 KiB

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, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @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, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @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