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.
 
 
 

314 lines
11 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_modifyTranRequest] Script Date: 7/4/2019 11:35:48 AM ******/
DROP PROCEDURE [dbo].[proc_modifyTranRequest]
GO
/****** Object: StoredProcedure [dbo].[proc_modifyTranRequest] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[proc_modifyTranRequest]
@flag VARCHAR(50) = NULL
,@controlNo VARCHAR(20) = NULL
,@rowId INT = NULL
,@newValue VARCHAR(500) = NULL
,@oldValue VARCHAR(500) = NULL
,@changeType VARCHAR(200) = NULL
,@user VARCHAR(100) = NULL
,@ScChargeMod MONEY = NULL
,@createdBy VARCHAR(100) = NULL
,@fieldValue VARCHAR(MAX) = NULL
,@fieldName VARCHAR(MAX) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
,@branchId INT = NULL
,@tranId BIGINT = NULL
AS
BEGIN TRY
DECLARE
@table VARCHAR(MAX)
,@sql_filter VARCHAR(200)
,@select_field_list VARCHAR(MAX)
,@encryptedControlNo VARCHAR(100)
IF @controlNo IS NOT NULL
SELECT @encryptedControlNo = dbo.FNAEncryptString(@controlNo)
IF @flag='i' -->> TXN modification Rquest part
BEGIN
IF (@fieldName ='accountNo' AND LEN(@newValue) > 30)
BEGIN
EXEC proc_errorHandler 0,'Account number field is out of range. Max Size 20 characters.',NULL
RETURN
END
IF (@fieldName ='senderName' AND LEN(@newValue) > 100)
BEGIN
EXEC proc_errorHandler 0,'Sender name field is out of range. Max Size 100 characters.',NULL
RETURN
END
IF (@fieldName ='receiverName' AND LEN(@newValue) > 100)
BEGIN
EXEC proc_errorHandler 0,'Receiver name field is out of range. Max Size 100 characters.',NULL
RETURN
END
IF (@fieldName ='rAddress' AND LEN(@newValue) > 100)
BEGIN
EXEC proc_errorHandler 0,'Receiver address field is out of range. Max Size 100 characters.',NULL
RETURN
END
IF (@fieldName ='rContactNo' AND LEN(@newValue) > 20)
BEGIN
EXEC proc_errorHandler 0,'Receiver contact field is out of range. Max Size 20 characters.',NULL
RETURN
END
IF (@fieldName ='rIdNo' AND LEN(@newValue) > 50)
BEGIN
EXEC proc_errorHandler 0,'Receiver id number field is out of range. Max Size 50 characters.',NULL
RETURN
END
IF EXISTS(
SELECT 'X' FROM tranModifyLog
WHERE fieldName = @fieldName
AND [status] = 'Request'
AND controlNo=dbo.FNAEncryptString(@controlNo)
)
BEGIN
EXEC proc_errorHandler 0,'Cannot Insert Duplicate Request',NULL
RETURN
END
----## direct update the temp transactions modification details
IF EXISTS(SELECT 'A' FROM remitTranTemp(nolock) where controlNo=dbo.FNAEncryptString(@controlNo))
BEGIN
SELECT @tranId = rt.id, @oldValue = CASE
WHEN @fieldName ='rIdType' THEN ISNULL(c.idType, c.idType2)
WHEN @fieldName ='rAddress' THEN c.address
WHEN @fieldName ='rContactNo' THEN c.mobile
WHEN @fieldName ='rIdNo' THEN c.idNumber
WHEN @fieldName ='accountNo' THEN rt.accountNo
WHEN @fieldName ='senderName' THEN b.firstName + ISNULL(' ' + b.middleName, '') + ISNULL(' ' + b.lastName1, '') + ISNULL(' ' + b.lastName2, '')
WHEN @fieldName ='receiverName' THEN c.firstName + ISNULL(' ' + c.middleName, '') + ISNULL(' ' + c.lastName1, '') + ISNULL(' ' + c.lastName2, '')
END
FROM remitTranTemp rt WITH(NOLOCK)
INNER JOIN tranSendersTemp b WITH(NOLOCK) ON rt.id=b.tranId
INNER JOIN tranReceiversTemp c WITH(NOLOCK) ON rt.id=c.tranId
WHERE rt.controlNo=dbo.FNAEncryptString(@controlNo)
IF @fieldName = 'rIdType'
UPDATE tranReceiversTemp SET IdType = @fieldValue WHERE tranId = @tranId
ELSE IF @fieldName = 'rAddress'
UPDATE tranReceiversTemp SET [address] = @fieldValue WHERE tranId = @tranId
ELSE IF @fieldName = 'rContactNo'
UPDATE tranReceiversTemp SET mobile = @fieldValue,homePhone = CASE WHEN homePhone IS NULL THEN @fieldValue ELSE homePhone END WHERE tranId = @tranId
ELSE IF @fieldName = 'rIdNo'
UPDATE tranReceiversTemp SET idNumber = @fieldValue WHERE tranId = @tranId
ELSE IF @fieldName = 'receiverName'
UPDATE tranReceiversTemp SET firstName = @fieldValue WHERE tranId = @tranId
ELSE IF @fieldName = 'accountNo'
UPDATE remitTranTemp SET accountNo = @fieldValue WHERE id = @tranId
ELSE IF @fieldName = 'senderName'
UPDATE tranSendersTemp SET firstName = @fieldValue WHERE tranId = @tranId
INSERT INTO tranModifyLog(tranId,controlNo, MESSAGE, createdBy, createdDate,status ,fieldName , fieldValue,msgType,oldValue
,resolvedBy,resolvedDate)
SELECT @tranId,dbo.FNAEncryptString(@controlNo),ISNULL(@changeType, 'NULL')+' [<b>'+isnull(@oldValue,'')+'</b>] has been requested to change by [<b>' + ISNULL(@newValue, 'NULL')+'</b>]', @user, GETDATE(),'approved',@fieldName,@fieldValue,'MODIFY',@oldValue
,@user,getdate()
-->> ## SELECTING REQUESTED LIST
SELECT message,ScChargeMod,rowId FROM tranModifyLog
WHERE [status]='approved' AND controlNo = dbo.FNAEncryptString(@controlNo)
END
ELSE
BEGIN
SELECT @tranId = rt.id, @oldValue = CASE
WHEN @fieldName ='rIdType' THEN ISNULL(c.idType, c.idType2)
WHEN @fieldName ='rAddress' THEN c.address
WHEN @fieldName ='rContactNo' THEN c.mobile
WHEN @fieldName ='rIdNo' THEN c.idNumber
WHEN @fieldName ='accountNo' THEN rt.accountNo
WHEN @fieldName ='senderName' THEN b.firstName + ISNULL(' ' + b.middleName, '') + ISNULL(' ' + b.lastName1, '') + ISNULL(' ' + b.lastName2, '')
WHEN @fieldName ='receiverName' THEN c.firstName + ISNULL(' ' + c.middleName, '') + ISNULL(' ' + c.lastName1, '') + ISNULL(' ' + c.lastName2, '')
END
FROM remitTran rt WITH(NOLOCK)
INNER JOIN tranSenders b WITH(NOLOCK) ON rt.id=b.tranId
INNER JOIN tranReceivers c WITH(NOLOCK) ON rt.id=c.tranId
WHERE rt.controlNo=dbo.FNAEncryptString(@controlNo)
-->> ## INSERTING REQUESTED LIST
INSERT INTO tranModifyLog(tranId,controlNo, MESSAGE, createdBy, createdDate,status ,fieldName , fieldValue,msgType,oldValue)
SELECT @tranId,dbo.FNAEncryptString(@controlNo),ISNULL(@changeType, 'NULL')+' [<b>'+isnull(@oldValue,'')+'</b>] has been requested to change by [<b>' + ISNULL(@newValue, 'NULL')+'</b>]', @user, GETDATE(),'Request',@fieldName,@fieldValue,'MODIFY',@oldValue
-->> ## SELECTING REQUESTED LIST
SELECT message,ScChargeMod,rowId FROM tranModifyLog
WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
END
END
IF @flag='showModifiedLog'
BEGIN
set @controlNo = dbo.FNAEncryptString(@controlNo)
SELECT
ROW_NUMBER() OVER(ORDER BY ROWID) [SN],
message [Message - New Modification],
oldValue [Old Data]
FROM tranModifyLog WITH(NOLOCK)
WHERE [status] ='Request'
AND controlNo = @controlNo
END
ELSE IF @flag = 'getApprovedModificationLog'
BEGIN
SET @controlNo = dbo.FNAEncryptString(@controlNo)
SELECT
ROW_NUMBER() OVER(ORDER BY ROWID) [SN],
message [Message - New Modification],
oldValue [Old Data]
FROM tranModifyLog WITH(NOLOCK)
WHERE [status]='Approved' AND MsgType = 'MODIFY'
AND controlNo = @controlNo
END
ELSE IF @flag='uSC' -- change SC charge
BEGIN
IF NOT EXISTS(SELECT 'X' FROM tranModifyLog WHERE [status]='Request'
AND controlNo = dbo.FNAEncryptString(@controlNo) AND createdBy = @user)
BEGIN
EXEC proc_errorHandler 1,'Please add the modification detail!',@controlNo
RETURN;
END
-->> UPDATE LOCAL DB STATUS AS ModificationRequest
UPDATE remitTran
SET tranStatus ='ModificationRequest'
WHERE controlNo=@encryptedControlNo
EXEC proc_errorHandler 0,'Transaction Modification Requested successfully',@controlNo
END
ELSE IF @flag='refundSC' -- SC CHARGE REFUND for main table
BEGIN
UPDATE TL SET TL.status='Approve'
,TL.resolvedBy=@user
,TL.resolvedDate=GETDATE()
FROM remitTran RT
INNER JOIN tranModifyLog TL ON RT.controlNo=TL.controlNo
WHERE TL.[status]='Request' AND TL.controlNo = dbo.FNAEncryptString(@controlNo)
EXEC proc_errorHandler 0,'Transaction Modification Approved successfully',@controlNo
END
ELSE IF @flag='Reqtxn' --== TXN modification Rquest part
BEGIN
SELECT * FROM tranModifyLog
WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
END
ELSE IF @flag='d'
BEGIN
DELETE FROM tranModifyLog WHERE rowId= @rowId
SELECT message,ScChargeMod,rowId FROM tranModifyLog (NOLOCK)
WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
AND createdBy=@user
END
ELSE IF @flag='a'
BEGIN
SELECT * FROM tranModifyLog
WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
--AND createdBy=@user
END
ELSE IF @flag='reqUser' --- TXN MODIFICATION REQUESTED USER LIST FOR FILTER
BEGIN
SELECT null [value],'ALL' [text] UNION ALL
SELECT DISTINCT createdBy,createdBy FROM tranModifyLog
WHERE [status]='Request'
END
ELSE IF @flag='s'
BEGIN
SET @sortBy = 'createdDate'
SET @sortOrder = 'DESC'
SET @table = '(
SELECT
DISTINCT
RT.sCountry
,RT.sAgentName
,RT.sBranchName
,TL.createdBy
,controlNo = ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'AgentPanel/Utilities/ModifyRequest/TxnDetail.aspx?searchBy=controlNo&searchValue='' + dbo.FNADecryptString(TL.controlNo) + '''''')">'' + dbo.FNADecryptString(TL.controlNo) + ''</a>''
,RT.cAmt
,CONVERT(VARCHAR,TL.createdDate,100) requestedDate
,TL.createdDate
,sBranch
,filterControlNo = dbo.FNADecryptString(TL.controlNo)
,pCountry
,pAgentName
,RT.payStatus
FROM tranModifyLog TL WITH (NOLOCK)
INNER JOIN remitTran RT WITH (NOLOCK) ON TL.controlNo=RT.controlNo
WHERE TL.status=''Request''
) x'
SET @sql_filter = ''
IF @controlNo IS NOT NULL
SET @sql_filter = @sql_filter+ ' AND filterControlNo ='''+ UPPER(LTRIM(RTRIM(@controlNo))) +''''
IF @branchId IS NOT NULL
SET @sql_filter = @sql_filter+ ' AND sBranch ='''+CAST(@branchId AS VARCHAR)+''''
IF @createdBy IS NOT NULL
SET @sql_filter= @sql_filter + ' AND createdBy='''+@createdBy+''''
SET @select_field_list ='
sCountry
,sAgentName
,sBranchName
,createdBy
,controlNo
,cAmt
,createdDate
,filterControlNo
,requestedDate
,pCountry
,pAgentName
,payStatus
'
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,''
,@sortBy
,@sortOrder
,@pageSize
END
--## TXN modification Rquest 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
GO