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.
350 lines
20 KiB
350 lines
20 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_imeRemitCardReIssue] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE proc [dbo].[proc_imeRemitCardReIssue](
|
|
@flag VARCHAR(50) = NULL
|
|
,@user VARCHAR(20) = NULL
|
|
,@rowId VARCHAR(20) = NULL
|
|
,@customerName varchar(40) = NULL
|
|
,@oldRemitCardNo varchar(40) = NULL
|
|
,@newRemitCardNo varchar(40) = NULL
|
|
,@remark VARCHAR(200) = NULL
|
|
,@requestFor VARCHAR(10) = NULL
|
|
,@modType VARCHAR(10) = NULL
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
,@isApproved CHAR(1) = NULL
|
|
)AS
|
|
BEGIN
|
|
|
|
CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), membershipId 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)
|
|
,@errorMsg VARCHAR(MAX)
|
|
|
|
SELECT
|
|
@logIdentifier = 'rowId'
|
|
,@logParamMain = 'IME Remit Card Reissue'
|
|
,@module = '20'
|
|
,@tableAlias = 'imeRemitCardReIssueRequest'
|
|
|
|
|
|
IF @flag = 's'
|
|
BEGIN
|
|
DECLARE
|
|
@selectFieldList VARCHAR(MAX)
|
|
,@extraFieldList VARCHAR(MAX)
|
|
,@table VARCHAR(MAX)
|
|
,@sqlFilter VARCHAR(MAX)
|
|
|
|
DECLARE @hasRight CHAR(1)
|
|
SET @hasRight = dbo.FNAHasRight(@user, '20832430')
|
|
|
|
IF @sortBy IS NULL
|
|
SET @sortBy = 'CustomerName'
|
|
|
|
IF @sortOrder IS NULL
|
|
SET @sortOrder = 'DESC'
|
|
SET @table = '(SELECT
|
|
r.rowId
|
|
,requestingFor = case when requestFor = ''C'' then ''IME Remit Card Loss'' else ''PIN Number Loss'' end
|
|
,oldRemitCardNo = r.oldRemitCardNo
|
|
,newRemitCardNo = r.newRemitCardNo
|
|
,CustomerName = r.customerName
|
|
,createdBy = r.createdBy
|
|
,createdDate = r.createdDate
|
|
,haschanged = CASE WHEN r.approvedBy IS NULL THEN ''Y'' ELSE ''N'' END
|
|
,modifiedBy = ISNULL(r.modifiedBy,r.createdBy)
|
|
,isApproved = CASE WHEN (r.approvedBy IS NULL) THEN ''N'' ELSE ''Y'' END
|
|
FROM imeRemitCardReIssueRequest r WITH(NOLOCK)
|
|
WHERE 1=1
|
|
)x'
|
|
|
|
SET @sqlFilter = ''
|
|
|
|
IF @customerName is not null
|
|
SET @sqlFilter=@sqlFilter+'AND CustomerName LIKE ''%'+@customerName+'%'''
|
|
|
|
IF @oldRemitCardNo is not null
|
|
SET @sqlFilter=@sqlFilter+'AND oldRemitCardNo = '''+@oldRemitCardNo+''''
|
|
|
|
IF @newRemitCardNo is not null
|
|
SET @sqlFilter=@sqlFilter+'AND newRemitCardNo = '''+@newRemitCardNo+''''
|
|
|
|
IF @isApproved IS NOT NULL
|
|
SET @sqlFilter = @sqlFilter + ' AND isApproved = ''' + @isApproved + ''''
|
|
|
|
SET @selectFieldList = '
|
|
rowId
|
|
, requestingFor
|
|
, oldRemitCardNo
|
|
, newRemitCardNo
|
|
, CustomerName
|
|
, createdBy
|
|
, createdDate
|
|
, haschanged
|
|
, modifiedBy
|
|
, isApproved
|
|
'
|
|
|
|
EXEC dbo.proc_paging
|
|
@table
|
|
,@sqlFilter
|
|
,@selectFieldList
|
|
,@extraFieldList
|
|
,@sortBy
|
|
,@sortOrder
|
|
,@pageSize
|
|
,@pageNumber
|
|
RETURN
|
|
END
|
|
|
|
IF @flag='i'
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK)
|
|
WHERE cardStatus IN ('Enrolled','Reserved') AND remitCardNo = @oldRemitCardNo)
|
|
BEGIN
|
|
SELECT '1' errorCode,'IME Remit Card has not been issued yet.' msg,null
|
|
RETURN
|
|
END
|
|
|
|
--IF @requestFor = 'C'
|
|
--BEGIN
|
|
-- IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK) WHERE cardStatus='Available' AND remitCardNo=@newRemitCardNo)
|
|
-- BEGIN
|
|
-- SELECT '1' errorCode,'New IME Remit Card not found.' msg,null
|
|
-- RETURN
|
|
-- END
|
|
--END
|
|
|
|
IF NOT EXISTS(SELECT 'X' FROM kycMaster km WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo AND approvedDate IS NOT NULL)
|
|
BEGIN
|
|
SELECT '1' errorCode,'KYC cutomer not found.' msg,@oldRemitCardNo
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS(SELECT 'X' FROM imeRemitCardReIssueRequest WITH(NOLOCK)
|
|
WHERE oldRemitCardNo = @oldRemitCardNo AND approvedDate is null)
|
|
BEGIN
|
|
SELECT '1' errorCode,'Earlier Request made has not been approved yet: '+@oldRemitCardNo+'.' msg,null
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS(SELECT 'x' FROM dbo.kycMaster km WITH(NOLOCK)
|
|
WHERE approvedDate IS not NULL AND remitCardNo = @newRemitCardNo)
|
|
BEGIN
|
|
SELECT '1' errorCode,'New Remit Card already in use, Please check once.' msg,null
|
|
RETURN
|
|
END
|
|
|
|
INSERT INTO imeRemitCardMaster (remitCardNo,accountNo,cardStatus,createdBy,createdDate)
|
|
SELECT @newRemitCardNo,accountNo,'Available',@user,GETDATE()
|
|
FROM imeRemitCardMaster WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo
|
|
|
|
INSERT INTO imeRemitCardReIssueRequest(
|
|
oldRemitCardNo
|
|
,newRemitCardNo
|
|
,requestRemarks
|
|
,requestFor
|
|
,createdBy
|
|
,createdDate
|
|
,customerName
|
|
)SELECT
|
|
@oldRemitCardNo
|
|
,@newRemitCardNo
|
|
,@remark
|
|
,@requestFor
|
|
,@user
|
|
,GETDATE()
|
|
,ISNULL(km.firstName, '') + ISNULL( ' ' + km.middleName, '')+ ISNULL( ' ' + km.lastName, '')
|
|
FROM kycMaster km with(nolock) where km.remitCardNo = @oldRemitCardNo
|
|
|
|
SELECT '0' errorCode,'New IME Remit Card request has been made successfully. Waiting for approval.' msg,null
|
|
RETURN
|
|
END
|
|
|
|
IF @flag='a'
|
|
BEGIN
|
|
SELECT
|
|
id=rowId
|
|
,oldRemitCardNo
|
|
,newRemitCardNo
|
|
,Remarks=requestRemarks
|
|
,createdBy
|
|
,approvedDate
|
|
,requestFor
|
|
FROM imeRemitCardReIssueRequest WITH(NOLOCK) WHERE rowId=@rowId
|
|
RETURN
|
|
END
|
|
|
|
IF @flag='u'
|
|
BEGIN
|
|
IF EXISTS (SELECT 'X' FROM imeRemitCardReIssueRequest WITH(NOLOCK) WHERE rowId = @rowId 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.', @rowId
|
|
RETURN
|
|
END
|
|
IF EXISTS (SELECT 'X' FROM imeRemitCardReIssueRequestMod WITH(NOLOCK) WHERE reqId = @rowId AND createdBy <> @user)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', @rowId
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK) WHERE cardStatus IN ('Reserved','Enrolled') AND remitCardNo=@oldRemitCardNo)
|
|
BEGIN
|
|
SELECT '1' errorCode,'IME Remit Card has not been issued yet.' msg,null
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS(SELECT 'X' FROM kycMaster km WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo AND approvedDate IS NOT NULL)
|
|
BEGIN
|
|
SELECT '1' errorCode,'KYC cutomer not found.' msg,@oldRemitCardNo
|
|
RETURN
|
|
END
|
|
|
|
IF @requestFor = 'C'
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK) WHERE cardStatus='Available' AND remitCardNo = @newRemitCardNo)
|
|
BEGIN
|
|
SELECT '1' errorCode,'New IME Remit Card not found.' msg,null
|
|
RETURN
|
|
END
|
|
END
|
|
IF EXISTS(SELECT 'x' FROM dbo.kycMaster km WITH(NOLOCK)
|
|
WHERE approvedDate IS not NULL AND remitCardNo = @newRemitCardNo)
|
|
BEGIN
|
|
SELECT '1' errorCode,'New Remit Card already in use, Please check once.' msg,null
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRANSACTION
|
|
if not exists(select 'x' from imeRemitCardMaster with(nolock) where remitCardNo = @newRemitCardNo)
|
|
begin
|
|
INSERT INTO imeRemitCardMaster (remitCardNo,accountNo,cardStatus,createdBy,createdDate)
|
|
SELECT @newRemitCardNo,accountNo,'Available',@user,GETDATE()
|
|
FROM imeRemitCardMaster WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo
|
|
end
|
|
|
|
UPDATE imeRemitCardReIssueRequest
|
|
SET oldRemitCardNo =@oldRemitCardNo
|
|
,newRemitCardNo =@newRemitCardNo
|
|
,requestRemarks =@Remark
|
|
,modifiedBy =@user
|
|
,modifiedDate =GETDATE()
|
|
,requestFor =@requestFor
|
|
,customerName = ''
|
|
FROM imeRemitCardReIssueRequest A,
|
|
(
|
|
SELECT remitCardNo,customerName = ISNULL(km.firstName, '') + ISNULL( ' ' + km.middleName, '')+ ISNULL( ' ' + km.lastName, '')
|
|
FROM kycMaster km WITH(NOLOCK) WHERE km.remitCardNo = @oldRemitCardNo
|
|
)B WHERE B.remitCardNo = @oldRemitCardNo AND A.rowId=@rowId
|
|
|
|
|
|
IF @@ERROR = 0
|
|
BEGIN
|
|
COMMIT TRANSACTION
|
|
SELECT '0' errorCode,'Your request has been modified successfully.' msg,null
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
ROLLBACK TRANSACTION
|
|
EXEC proc_errorHandler 1, 'Modification Failed', @rowId
|
|
RETURN
|
|
END
|
|
RETURN
|
|
END
|
|
|
|
IF @flag='reject'
|
|
BEGIN
|
|
UPDATE imeRemitCardReIssueRequest SET
|
|
rejectedBy =@user
|
|
,rejectedDate =GETDATE()
|
|
WHERE rowId=@rowId
|
|
|
|
SELECT '0' errorCode,'Your request has been rejected successfully.' msg,null
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'approve'
|
|
BEGIN
|
|
DECLARE @remitCardNo VARCHAR(20)=''
|
|
|
|
IF NOT EXISTS(SELECT 'X' FROM imeRemitCardReIssueRequest WITH(NOLOCK) WHERE rowId = @rowId AND approvedDate IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Request not found.', NULL
|
|
RETURN
|
|
END
|
|
BEGIN TRANSACTION
|
|
SELECT
|
|
@remitCardNo=newRemitCardNo
|
|
,@oldRemitCardNo=oldRemitCardNo
|
|
,@requestFor=LTRIM(requestFor)
|
|
FROM imeRemitCardReIssueRequest WITH(NOLOCK)
|
|
WHERE rowId=@rowId
|
|
|
|
IF @requestFor='C'
|
|
BEGIN
|
|
UPDATE kycMaster SET
|
|
remitCardNo = @remitCardNo
|
|
WHERE remitCardNo = @oldRemitCardNo
|
|
|
|
UPDATE customerMaster SET membershipId = @remitCardNo
|
|
WHERE membershipId = @oldRemitCardNo
|
|
END
|
|
|
|
update imeRemitCardMaster set cardStatus = 'Enrolled' where remitCardNo = @remitCardNo
|
|
|
|
UPDATE imeRemitCardReIssueRequest SET
|
|
approvedBy = @user,approvedDate = GETDATE()
|
|
WHERE rowId=@rowId
|
|
|
|
IF @@ERROR = 0
|
|
BEGIN
|
|
COMMIT TRANSACTION
|
|
EXEC proc_errorHandler 0, 'Record approved successfully.', @rowId
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
ROLLBACK TRANSACTION
|
|
EXEC proc_errorHandler 1, 'Failed to approve record.', @rowId
|
|
RETURN
|
|
END
|
|
RETURN
|
|
END
|
|
|
|
IF @flag='a-agent'
|
|
BEGIN
|
|
SELECT TOP 1
|
|
rowId
|
|
,oldRemitCardNo
|
|
,newRemitCardNo
|
|
,requestRemarks
|
|
,createdBy
|
|
,approvedDate
|
|
,requestFor
|
|
FROM imeRemitCardReIssueRequest WITH(NOLOCK)
|
|
WHERE oldRemitCardNo = @oldRemitCardNo
|
|
AND approvedDate IS NULL
|
|
AND rejectedDate IS NULL
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
|
|
|
|
GO
|