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.
284 lines
14 KiB
284 lines
14 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_agentBlock] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE proc [dbo].[proc_agentBlock](
|
|
@flag VARCHAR(30) = NULL
|
|
,@user VARCHAR(30) = NULL
|
|
,@id VARCHAR(30) = NULL
|
|
,@agentId VARCHAR(30) = NULL
|
|
,@agentStatus VARCHAR(30) = NULL
|
|
,@remarks VARCHAR(255)= NULL
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
,@modType VARCHAR(30) = NULL
|
|
,@fromDate VARCHAR(30) = NULL
|
|
,@toDate VARCHAR(30) = NULL
|
|
)AS
|
|
BEGIN
|
|
DECLARE
|
|
@selectFieldList VARCHAR(MAX)
|
|
,@extraFieldList VARCHAR(MAX)
|
|
,@table VARCHAR(MAX)
|
|
,@sqlFilter VARCHAR(MAX)
|
|
|
|
|
|
|
|
IF @flag='a'
|
|
BEGIN
|
|
SELECT
|
|
id
|
|
,agentId
|
|
,agentStatus
|
|
,remarks
|
|
FROM agentBlock WHERE id=@id
|
|
RETURN
|
|
END
|
|
IF @flag = 's'
|
|
BEGIN
|
|
IF @sortBy IS NULL
|
|
SET @sortBy = 'agentId'
|
|
|
|
SET @table = '(
|
|
SELECT
|
|
id = ag.id
|
|
,agentId = am.agentName
|
|
,agentStatus= ag.agentStatus
|
|
,remarks = ag.remarks
|
|
,createdBy = ag.createdBy
|
|
,createdDate= ag.createdDate
|
|
,approvedDate= ag.approvedDate
|
|
,approvedBy = ag.approvedBy
|
|
,modifiedBy = ISNULL(x.createdBy, ag.createdBy)
|
|
,modifiedDate = ISNULL(x.createdDate, ag.createdDate)
|
|
,hasChanged = CASE WHEN (x.id IS NOT NULL) OR (ag.approvedBy IS NULL) THEN ''Y'' ELSE ''N'' END
|
|
FROM agentBlock ag WITH(NOLOCK)
|
|
LEFT JOIN (
|
|
SELECT
|
|
id
|
|
,createdBy = MAX(createdBy)
|
|
,createdDate = MAX(createdDate)
|
|
FROM agentBlockMod agm WITH(NOLOCK)
|
|
GROUP BY id
|
|
) x ON ag.id = x.id
|
|
LEFT JOIN agentMaster am with(nolock) on am.agentId=ag.agentId
|
|
where ag.agentStatus=''Block'' OR ag.agentStatus=''Inactive''
|
|
) x'
|
|
|
|
|
|
SET @sqlFilter = ''
|
|
|
|
IF @fromDate IS NOT NULL AND @toDate IS NOT NULL
|
|
SET @sqlFilter=@sqlFilter+ 'AND approvedDate between '''+@fromDate +'''and '''+@toDate+' 23:59:59'''
|
|
IF @agentStatus IS NOT NULL
|
|
SET @sqlFilter=@sqlFilter+' AND agentStatus='''+@agentStatus+''''
|
|
IF @agentId IS NOT NULL
|
|
SET @sqlFilter=@sqlFilter+' AND agentId like ''%'+@agentId+'%'''
|
|
|
|
|
|
SET @selectFieldList = '
|
|
id
|
|
,agentId
|
|
,agentStatus
|
|
,remarks
|
|
,createdBy
|
|
,createdDate
|
|
,modifiedBy
|
|
,modifiedDate
|
|
,approvedDate
|
|
,approvedBy
|
|
,hasChanged
|
|
'
|
|
|
|
|
|
EXEC dbo.proc_paging
|
|
@table
|
|
,@sqlFilter
|
|
,@selectFieldList
|
|
,@extraFieldList
|
|
,@sortBy
|
|
,@sortOrder
|
|
,@pageSize
|
|
,@pageNumber
|
|
END
|
|
IF @flag='i'
|
|
BEGIN
|
|
IF EXISTS(SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE agentId = @agentId AND approvedDate IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Request already in pending.', NULL
|
|
RETURN
|
|
END
|
|
|
|
INSERT INTO agentBlock
|
|
(
|
|
agentId
|
|
,agentStatus
|
|
,remarks
|
|
,createdDate
|
|
,createdBy
|
|
)
|
|
SELECT
|
|
@agentId
|
|
,@agentStatus
|
|
,@remarks
|
|
,GETDATE()
|
|
,@user
|
|
|
|
EXEC proc_errorHandler 0, 'Record has been requested successfully.', NULL
|
|
RETURN
|
|
END
|
|
IF @flag = 'u'
|
|
BEGIN
|
|
|
|
IF EXISTS (SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE id = @id AND approvedBy IS NULL AND createdBy <> @user)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', NULL
|
|
RETURN
|
|
END
|
|
IF EXISTS (SELECT 'X' FROM agentBlockMod WITH(NOLOCK) WHERE id = @id AND createdBy <> @user)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', NULL
|
|
RETURN
|
|
END
|
|
BEGIN TRANSACTION
|
|
|
|
IF EXISTS (SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE id = @id AND approvedBy IS NULL AND createdBy = @user)
|
|
BEGIN
|
|
UPDATE agentBlock SET
|
|
agentId =@agentId
|
|
,agentStatus =@agentStatus
|
|
,remarks =@remarks
|
|
,modifiedDate =GETDATE()
|
|
,modifiedBy =@user
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
DELETE FROM agentBlockMod WHERE id = @id
|
|
INSERT INTO agentBlockMod (
|
|
id
|
|
,agentId
|
|
,agentStatus
|
|
,remarks
|
|
,createdDate
|
|
,createdBy
|
|
,modType
|
|
)
|
|
SELECT
|
|
@id
|
|
,@agentId
|
|
,@agentStatus
|
|
,@remarks
|
|
,GETDATE()
|
|
,@user
|
|
,'U'
|
|
|
|
END
|
|
COMMIT TRANSACTION
|
|
EXEC proc_errorHandler 0, 'Record updated successfully', @agentId
|
|
END
|
|
IF @flag = 'approve'
|
|
BEGIN
|
|
DECLARE @updateAbleCol VARCHAR(30)=NULL
|
|
IF EXISTS (SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE approvedBy IS NULL AND id = @id)
|
|
BEGIN
|
|
SET @modType = 'I'
|
|
SELECT @agentId=agentId FROM agentBlock WITH(NOLOCK) WHERE id = @id
|
|
IF EXISTS(SELECT 'x' FROM agentBlock WITH(NOLOCK) WHERE id=@id AND agentStatus='Inactive')
|
|
BEGIN
|
|
SET @updateAbleCol='isActive'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @updateAbleCol='agentBlock'
|
|
END
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @modType = modType FROM agentBlockMod WITH(NOLOCK) WHERE id = @id
|
|
SELECT @agentId=agentId FROM agentBlockMod WITH(NOLOCK) WHERE id = @id
|
|
IF EXISTS(SELECT 'x' FROM agentBlockMod WITH(NOLOCK) WHERE id=@id AND agentStatus='Inactive')
|
|
BEGIN
|
|
SET @updateAbleCol='isActive'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @updateAbleCol='agentBlock'
|
|
END
|
|
END
|
|
IF @modType = 'I'
|
|
BEGIN --New record
|
|
BEGIN TRAN
|
|
UPDATE agentBlock SET
|
|
approvedBy = @user
|
|
,approvedDate= GETDATE()
|
|
WHERE id = @id
|
|
|
|
IF(@updateAbleCol='isActive')
|
|
BEGIN
|
|
UPDATE agentMaster
|
|
SET isActive='N',
|
|
modifiedBy = @user,
|
|
modifiedDate = GETDATE()
|
|
WHERE agentId=@agentId
|
|
END
|
|
ELSE IF(@updateAbleCol='agentBlock')
|
|
BEGIN
|
|
UPDATE agentMaster SET
|
|
agentBlock='B',
|
|
isActive = 'N',
|
|
modifiedBy = @user,
|
|
modifiedDate = GETDATE()
|
|
WHERE agentId=@agentId
|
|
END
|
|
COMMIT TRAN
|
|
END
|
|
ELSE IF @modType = 'U'
|
|
BEGIN
|
|
BEGIN TRAN
|
|
UPDATE main SET
|
|
main.agentId =mode.agentId
|
|
,main.agentStatus =mode.agentStatus
|
|
,main.remarks =mode.remarks
|
|
,main.modifiedDate =GETDATE()
|
|
,main.modifiedBy = @user
|
|
FROM agentBlock main
|
|
INNER JOIN agentBlockMod mode ON mode.id= main.id
|
|
WHERE mode.id = @id
|
|
|
|
IF(@updateAbleCol='isActive')
|
|
BEGIN
|
|
UPDATE agentMaster
|
|
SET isActive='N',
|
|
modifiedBy = @user,
|
|
modifiedDate = GETDATE()
|
|
WHERE agentId=@agentId
|
|
END
|
|
ELSE IF(@updateAbleCol='agentBlock')
|
|
BEGIN
|
|
UPDATE agentMaster
|
|
SET agentBlock='B',
|
|
isActive = 'N',
|
|
modifiedBy = @user,
|
|
modifiedDate = GETDATE()
|
|
WHERE agentId=@agentId
|
|
END
|
|
COMMIT TRAN
|
|
END
|
|
DELETE FROM agentBlockMod WHERE id = @id
|
|
EXEC proc_errorHandler 0, 'Modification approved successfully', @agentId
|
|
END
|
|
IF @flag='ddlstatus'
|
|
BEGIN
|
|
SELECT '' value, 'Select' text
|
|
UNION ALL SELECT 'Block' value, 'Blocked' text
|
|
UNION ALL SELECT 'Inactive' value, 'Inactive' text
|
|
END
|
|
END
|
|
|
|
|
|
GO
|