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.
 
 
 

1177 lines
42 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_cancelTranInt] Script Date: 7/4/2019 11:35:48 AM ******/
DROP PROCEDURE [dbo].[proc_cancelTranInt]
GO
/****** Object: StoredProcedure [dbo].[proc_cancelTranInt] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[proc_cancelTranInt] (
@flag VARCHAR(50)
,@controlNo VARCHAR(20) = NULL
,@user VARCHAR(100) = NULL
,@agentId INT = NULL
,@cancelReason VARCHAR(200) = NULL
,@scRefund VARCHAR(50) = NULL
,@id BIGINT = NULL
,@tranId INT = NULL
,@Branch VARCHAR(200) = NULL
,@branchId INT = NULL
,@createdBy VARCHAR(100) = NULL
,@userType VARCHAR(10) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
)
AS
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE
@select_field_list VARCHAR(MAX)
,@extra_field_list VARCHAR(MAX)
,@table VARCHAR(MAX)
,@sql_filter VARCHAR(MAX)
DECLARE
@controlNoEncrypted VARCHAR(50)
,@tranStatus VARCHAR(50)
,@message VARCHAR(MAX)
,@serviceCharge MONEY
,@cAmt MONEY
,@tAmt MONEY
,@txnSentBy VARCHAR(50)
,@tranIdType VARCHAR(1)
,@cancelReason1 VARCHAR(500)
,@tellerBalance AS MONEY
,@DT1 DATETIME
,@sAgent1 INT
,@payStatus varchar(20)
DECLARE @TransStatusNep VARCHAR(20), @TransPayStatusNep VARCHAR(20),@msg VARCHAR(200)
DECLARE @moneySendTranStatus VARCHAR(50), @moneySendPayStatus VARCHAR(50), @remitTranStatus VARCHAR(50)
SELECT @controlNoEncrypted = dbo.FNAEncryptString(UPPER(LTRIM(RTRIM(@controlNo))))
-->> SEARCH HOLD/UNPAID TRANSACTION - AGENT PANEL
IF @flag = 'searchAgent'
BEGIN
IF @user IS NULL
BEGIN
EXEC proc_errorHandler 1, 'Your session has expired. Cannot send cancel request.', NULL
RETURN
END
SELECT @agentId = agentId,@userType=userType
FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
IF @tranId IS NOT NULL
BEGIN
IF LEN(@tranId) = 8
SELECT
@tranStatus = tranStatus
,@tranId = id
,@txnSentBy = createdBy
,@controlNoEncrypted = controlNo
,@sAgent1 = sAgent
,@payStatus = payStatus
FROM vwRemitTran WITH(NOLOCK) WHERE ISNULL(CAST(holdTranId AS VARCHAR(50)),CAST(id AS VARCHAR(50))) = CAST(@tranId AS VARCHAR(50))
ELSE
SELECT
@tranStatus = tranStatus
,@tranId = id
,@txnSentBy = createdBy
,@controlNoEncrypted = controlNo
,@sAgent1 = sAgent
,@payStatus = payStatus
FROM vwRemitTran WITH(NOLOCK) WHERE CAST(id AS VARCHAR(50)) = CAST(@tranId AS VARCHAR(50))
END
IF @controlNo IS NOT NULL
BEGIN
SELECT
@tranStatus = tranStatus
,@tranId = id
,@txnSentBy = createdBy
,@controlNoEncrypted = controlNo
,@sAgent1 = sAgent
,@payStatus = payStatus
FROM vwRemitTran WITH(NOLOCK) WHERE controlNo =@controlNoEncrypted
END
IF (@tranStatus IS NOT NULL)
BEGIN
INSERT INTO tranViewHistory(
controlNumber
,tranViewType
,createdBy
,createdDate
)
SELECT
@controlNoEncrypted
,'C'
,@user
,GETDATE()
END
ELSE
BEGIN
EXEC proc_errorHandler 1000, 'No Transaction Found', @controlNoEncrypted
RETURN
END
IF NOT EXISTS(SELECT 'X' FROM vwRemitTran WITH(NOLOCK)
WHERE controlNo = @controlNoEncrypted AND sAgent = @sAgent1)
BEGIN
EXEC proc_errorHandler 1, 'Transaction is not in authorized mode', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Cancel')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled', @controlNoEncrypted
RETURN
END
IF (@payStatus = 'Post')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been POST.', @controlNoEncrypted
RETURN
END
IF (@payStatus = 'Paid')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been Paid.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'CANCELLED')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Cancel Processing')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been Cancel Processing.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'ModificationRequest')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been requested for modification.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Lock')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is locked. Please contact HO', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Block')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is blocked. Please contact HO', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'CancelRequest')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been requested for cancellation', @controlNoEncrypted
RETURN
END
IF EXISTS(SELECT 'x' FROM trancancelrequest WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted AND cancelStatus <> 'Rejected')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is already requested for cancel.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Paid')
BEGIN
EXEC proc_errorHandler 1, 'Already Paid transaction cannot be requested for cancellation', @controlNoEncrypted
RETURN
END
SET @tranStatus = @tranStatus+'|'+dbo.FNADecryptString(@controlNoEncrypted)
EXEC proc_errorHandler 0, 'Transaction Found', @tranStatus
END
-->> MAKE A REQUEST - AGENT PANEL
ELSE IF @flag = 'request'
BEGIN
IF @user IS NULL
BEGIN
EXEC proc_errorHandler 1, 'Your session has expired. Cannot send cancel request.', NULL
RETURN
END
SELECT
@tranStatus = tranStatus
,@tranId = id
,@txnSentBy = createdBy
,@controlNoEncrypted = controlNo
,@sAgent1 = sAgent
FROM vwRemitTran WITH(NOLOCK)
WHERE controlNo = @controlNoEncrypted
IF (@tranStatus IS NULL)
BEGIN
EXEC proc_errorHandler 1, 'Transaction not found.', @controlNoEncrypted
RETURN
END
SELECT @agentId = agentId,@userType=userType
FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
-->>checking if transaction is in authorisation mode
IF @agentId <> (SELECT dbo.FNAGetHOAgentId())
BEGIN
IF EXISTS(SELECT 'X' FROM vwRemitTran WITH(NOLOCK)
WHERE controlNo = @controlNoEncrypted AND sAgent <> @sAgent1)
BEGIN
EXEC proc_errorHandler 1, 'Transaction is not in authorized mode.', @controlNoEncrypted
RETURN
END
END
IF (@tranStatus = 'Cancel')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'CANCELLED')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Cancel Processing')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been Cancel Processing.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'ModificationRequest')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been requested for modification.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Lock')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is locked. Please contact HO', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Block')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is blocked. Please contact HO', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'CancelRequest')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been requested for cancellation', @controlNoEncrypted
RETURN
END
BEGIN TRANSACTION
IF EXISTS(SELECT 'X' FROM remitTranTemp WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted)
BEGIN
UPDATE remitTranTemp SET
tranStatus = 'CancelRequest'
,cancelRequestBy = @user
,cancelRequestDate = GETDATE()
,cancelRequestDateLocal = dbo.FNADateFormatTZ(GETDATE(), @user)
,trnStatusBeforeCnlReq = @tranStatus
WHERE controlNo = @controlNoEncrypted
END
ELSE
BEGIN
UPDATE remitTran SET
tranStatus = 'CancelRequest'
,cancelRequestBy = @user
,cancelRequestDate = GETDATE()
,cancelRequestDateLocal = dbo.FNADateFormatTZ(GETDATE(), @user)
,trnStatusBeforeCnlReq = @tranStatus
WHERE controlNo = @controlNoEncrypted
DECLARE @DT DATETIME = GETDATE()
END
INSERT INTO tranCancelrequest(tranId,controlNo,cancelReason,cancelStatus,createdBy,createdDate,tranStatus)
SELECT @tranId,@controlNoEncrypted,@cancelReason,'CancelRequest',@user,GETDATE(),@tranStatus
--########### TO UPDATE THE STATUS IN INFICARE AND AC DB
SELECT @message = 'Transaction requested for Cancel. Reason : ''' + @cancelReason + ''''
EXEC proc_transactionLogs @flag = 'i',@user = @user,@tranId = @tranId,
@message = @message, @msgType = 'Cancel Request', @controlNo = @controlNoEncrypted
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC proc_errorHandler 0, 'Transaction has been requested for cancel successfully', @controlNoEncrypted
END
-->> HOLD/UNPAID CANCEL REQUEST LIST
ELSE IF @flag = 's1'
BEGIN
SET @sortBy = 'createdDate'
SET @sortOrder = 'DESC'
SET @table = '(
SELECT
id = ISNULL(trn.holdTranId,trn.Id)
,controlNo = dbo.FNADecryptString(trn.controlNo)
,senderName = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
,receiverName = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
,Branch = trn.sBranchName
,cAmt
,pAmt
,ServiceCharge
,A.createdBy
,requestedDate = convert(VARCHAR(20),A.createdDate,100)
,A.scRefund
,trnStatusBeforeCnlReq = CASE WHEN trn.trnStatusBeforeCnlReq = ''Payment'' THEN ''Unpaid'' ELSE trn.trnStatusBeforeCnlReq END
,trn.pCountry
,createdDate = A.createdDate
FROM vwRemitTran trn WITH(NOLOCK)
INNER JOIN tranCancelrequest A WITH(NOLOCK) ON A.controlNo=trn.controlNo
LEFT JOIN vwTranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
LEFT JOIN vwTranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
WHERE trn.tranStatus = ''CancelRequest''
and A.cancelStatus =''CancelRequest'' AND TRN.pagent <> 393228
'
SET @sql_filter = ''
--SET @table = @table + ' AND A.tranStatus IN (''Hold'',''Payment'',''Compliance Hold'',''OFAC Hold'',''Compliance'',''OFAC'')'
IF @controlNo IS NOT NULL
SET @table = @table + ' AND trn.controlNo = ''' + @controlNoEncrypted + ''''
IF @id IS NOT NULL
SET @table = @table + ' AND ISNULL(trn.holdTranId,trn.Id) = ''' + CAST(LTRIM(RTRIM(@id)) AS VARCHAR) + ''''
IF @Branch IS NOT NULL
SET @table = @table + ' AND trn.sBranchName LIKE ''' + @Branch + '%'''
IF @createdBy IS NOT NULL
SET @table = @table + ' AND A.createdBy LIKE ''' + @createdBy + '%'''
SET @select_field_list ='
id
,controlNo
,senderName
,receiverName
,Branch
,cAmt
,pAmt
,ServiceCharge
,createdBy
,createdDate
,scRefund
,trnStatusBeforeCnlReq
,pCountry
,requestedDate
'
SET @table = @table + ') x'
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,@extra_field_list
,@sortBy
,@sortOrder
,@pageSize
,@pageNumber
END
-->> PAID/POST CANCEL REQUEST LIST
ELSE IF @flag = 's2'
BEGIN
SET @sortBy = 'createdDate'
SET @sortOrder = 'DESC'
SET @table = '(
SELECT
id = ISNULL(trn.holdTranId,trn.Id)
,controlNo = dbo.FNADecryptString(trn.controlNo)
,senderName = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
,receiverName = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
,Branch = trn.sBranchName
,cAmt
,pAmt
,ServiceCharge
,A.createdBy
,requestedDate = convert(VARCHAR(20),A.createdDate,100)
,A.scRefund
,trnStatusBeforeCnlReq = CASE WHEN trn.trnStatusBeforeCnlReq = ''Payment'' THEN ''Unpaid'' ELSE trn.trnStatusBeforeCnlReq END
,A.createdDate
,trn.pCountry
,trn.pAgentName
FROM vwRemitTran trn WITH(NOLOCK)
INNER JOIN tranCancelrequest A WITH(NOLOCK) ON A.controlNo=trn.controlNo
LEFT JOIN vwTranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
LEFT JOIN vwTranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
WHERE trn.tranStatus = ''CancelRequest''
AND trn.payStatus in (''Post'',''Paid'')
and A.cancelStatus =''CancelRequest''
'
SET @sql_filter = ''
SET @table = @table + ' AND A.tranStatus IN (''POST'',''PAID'')'
IF @controlNo IS NOT NULL
SET @table = @table + ' AND trn.controlNo = ''' + @controlNoEncrypted + ''''
IF @id IS NOT NULL
SET @table = @table + ' AND ISNULL(trn.holdTranId,trn.Id) = ''' + CAST(@id AS VARCHAR) + ''''
IF @Branch IS NOT NULL
SET @table = @table + ' AND trn.sBranchName LIKE ''' + @Branch + '%'''
IF @createdBy IS NOT NULL
SET @table = @table + ' AND A.createdBy LIKE ''' + @createdBy + '%'''
SET @select_field_list ='
id
,controlNo
,senderName
,receiverName
,Branch
,cAmt
,pAmt
,ServiceCharge
,createdBy
,createdDate
,scRefund
,trnStatusBeforeCnlReq
,pCountry
,requestedDate
,pAgentName
'
SET @table = @table + ') x'
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,@extra_field_list
,@sortBy
,@sortOrder
,@pageSize
,@pageNumber
END
-->> HOLD/UNPAID CANCEL REQUEST LIST FOR REGIONAL
ELSE IF @flag = 's3'
BEGIN
DECLARE @branchList AS VARCHAR(MAX)
SET @branchList = '
INNER JOIN (
SELECT ' + CAST(@branchId AS VARCHAR) + ' agentId '
IF @userType = 'RH'
BEGIN
SET @branchList = @branchList + '
UNION ALL
SELECT
am.agentId
FROM agentMaster am WITH(NOLOCK)
INNER JOIN regionalBranchAccessSetup rba ON am.agentId = rba.memberAgentId
WHERE rba.agentId = ' + CAST(@branchId AS VARCHAR) + '
AND ISNULL(rba.isDeleted, ''N'') = ''N''
AND ISNULL(rba.isActive, ''N'') = ''Y''
AND memberAgentId <> ' + CAST(@branchId AS VARCHAR) + ''
END
IF @userType = 'AH'
BEGIN
SET @branchList = @branchList + '
UNION ALL
select agentId from agentMaster with(nolock) where parentId =
(select parentId from agentmaster with(nolock) where agentId=' + CAST(@branchId AS VARCHAR) + ')
and agentId <> ' + CAST(@branchId AS VARCHAR) + ''
END
SET @branchList = @branchList + '
) bl ON trn.sBranch = bl.agentId
'
SET @sortBy = 'createdDate'
SET @sortOrder = 'DESC'
SET @table = '(
SELECT
id = ISNULL(trn.holdTranId,trn.Id)
,controlNo = dbo.FNADecryptString(trn.controlNo)
,senderName = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
,receiverName = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
,Branch = trn.sBranchName
,cAmt
,pAmt
,ServiceCharge
,A.createdBy
,requestedDate = convert(VARCHAR(20),A.createdDate,100)
,A.scRefund
,trnStatusBeforeCnlReq = trn.trnStatusBeforeCnlReq
,trn.pCountry
,createdDate = A.createdDate
FROM vwRemitTran trn WITH(NOLOCK)
' + @branchList + '
INNER JOIN tranCancelrequest A WITH(NOLOCK) ON A.controlNo=trn.controlNo
LEFT JOIN vwTranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
LEFT JOIN vwTranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
WHERE trn.tranStatus = ''CancelRequest'' AND trn.payStatus not in (''Post'',''Paid'')
and A.cancelStatus =''CancelRequest''
'
SET @sql_filter = ''
SET @table = @table + ' AND A.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'')'
IF @controlNo IS NOT NULL
SET @table = @table + ' AND trn.controlNo = ''' + @controlNoEncrypted + ''''
IF @id IS NOT NULL
SET @table = @table + ' AND ISNULL(trn.holdTranId,trn.Id) = ''' + CAST(@id AS VARCHAR) + ''''
IF @Branch IS NOT NULL
SET @table = @table + ' AND trn.sBranchName LIKE ''' + @Branch + '%'''
IF @createdBy IS NOT NULL
SET @table = @table + ' AND A.createdBy LIKE ''' + @createdBy + '%'''
SET @select_field_list ='
id
,controlNo
,senderName
,receiverName
,Branch
,cAmt
,pAmt
,ServiceCharge
,createdBy
,createdDate
,scRefund
,trnStatusBeforeCnlReq
,pCountry
,requestedDate
'
SET @table = @table + ') x'
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,@extra_field_list
,@sortBy
,@sortOrder
,@pageSize
,@pageNumber
END
-->> APPROVE CANCEL REQUEST TRANSACTION
ELSE IF @flag='approve'
BEGIN
DECLARE @pCountry VARCHAR(100), @isPaidTxn CHAR(1), @sCountryId INT, @sAgent INT, @sBranch INT,
@pCountryId INT, @pAgent INT, @bonusPoint INT,@canceledAmt money,@holdTranId bigint
SELECT
@tranId = a.id
,@serviceCharge = a.serviceCharge
,@tAmt = a.tAmt
,@cAmt = a.cAmt
,@createdBy = a.createdBy
,@tranStatus = b.tranStatus
,@remitTranStatus = a.tranStatus
,@cancelReason1 = b.cancelReason
,@pCountry = a.pCountry
,@isPaidTxn = CASE WHEN (paidBy IS NOT NULL OR paidDate IS NOT NULL) THEN 'Y' ELSE 'N' END
,@sCountryId = (SELECT countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = sCountry)
,@sAgent = sAgent
,@sBranch = sBranch
,@pCountryId = (SELECT countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = pCountry)
,@pAgent = pAgent
,@bonusPoint = ISNULL(a.bonusPoint, 0)
,@canceledAmt = (a.cAmt - ISNULL(a.sAgentComm,0) - ISNULL(a.agentFxGain,0)) / (a.sCurrCostRate + ISNULL(a.sCurrHoMargin,0))
,@agentId = a.sAgent
,@holdTranId = a.holdTranId
FROM vwRemitTran a WITH(NOLOCK)
INNER JOIN tranCancelrequest b WITH(NOLOCK) ON a.controlNo = b.controlNo
WHERE a.controlNo = @controlNoEncrypted AND b.approvedDate IS NULL AND b.cancelStatus='CancelRequest'
DECLARE @customerId BIGINT
SELECT @customerId = customerId FROM vwTranSenders WITH(NOLOCK) WHERE tranId = @tranId
IF @user IS NULL
BEGIN
EXEC proc_errorHandler 1, 'Your session has expired. Cannot cancel transaction', NULL
RETURN
END
IF (@tranStatus IS NULL)
BEGIN
EXEC proc_errorHandler 1, 'Transaction not found', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Cancel')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'CANCELLED')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Cancel Processing')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'ModificationRequest')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been requested for modification.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Paid')
BEGIN
EXEC proc_errorHandler 1, 'Already Paid transaction cannot be requested for cancellation.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Lock')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is locked. Please contact HO', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Block')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is blocked. Please contact HO', @controlNoEncrypted
RETURN
END
IF @cAmt IS NULL
SET @cAmt=0
BEGIN TRANSACTION
-->> UPDATE CANCEL HISTORY TABLE
UPDATE
tranCancelrequest SET
cancelStatus = 'Approved'
,scRefund = CASE WHEN @scRefund ='Y' THEN ISNULL(@cAmt,0) ELSE ISNULL(@tAmt,0) END
,approvedBy = @user
,approvedDate = GETDATE()
,approvedRemarks = @cancelReason
,isScRefund = @scRefund
WHERE controlNo = @controlNoEncrypted AND cancelStatus='CancelRequest'
-->> FOR API
IF @tranStatus NOT LIKE '%Hold%'
BEGIN
-->> UPDATE REMITTRAN
UPDATE remitTran SET
tranStatus = 'Cancel'
,cancelApprovedBy = @user
,cancelApprovedDate = GETDATE()
,cancelApprovedDateLocal = GETDATE()
WHERE controlNo = @controlNoEncrypted
UPDATE FastMoneyPro_account.dbo.remit_trn_master SET
trn_status = 'Cancel'
,cancel_date = GETDATE()
WHERE trn_ref_no = @controlNoEncrypted
UPDATE creditLimitInt SET todaysCancelled = ISNULL(todaysCancelled,0) + @canceledAmt
WHERE agentId = @sAgent
END
IF @tranStatus LIKE '%HOLD%'
BEGIN
-->> UPDATE REMITTRAN
UPDATE remitTranTemp SET
tranStatus = 'Cancel'
,cancelApprovedBy = @user
,cancelApprovedDate = GETDATE()
,cancelApprovedDateLocal = GETDATE()
WHERE controlNo = @controlNoEncrypted
INSERT INTO cancelTranHistory(
tranId,controlNo,sCurrCostRate,sCurrHoMargin,sCurrSuperAgentMargin,sCurrAgentMargin,pCurrCostRate
,pCurrHoMargin,pCurrSuperAgentMargin,pCurrAgentMargin,agentCrossSettRate,customerRate,sAgentSettRate,pDateCostRate,agentFxGain
,treasuryTolerance,customerPremium,schemePremium,sharingValue
--,sharingType
,serviceCharge,handlingFee,sAgentComm,sAgentCommCurrency
,sSuperAgentComm,sSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency,promotionCode
,promotionType,pMessage,sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,pCountry,pSuperAgent,pSuperAgentName
,pAgent,pAgentName,pBranch,pBranchName,paymentMethod,pBank,pBankName,pBankBranch,pBankBranchName,accountNo,externalBankCode,collMode
,collCurr,tAmt,cAmt,pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,createdDate,createdDateLocal
,createdBy,modifiedDate,modifiedDateLocal,modifiedBy,approvedDate,approvedDateLocal,approvedBy,paidDate,paidDateLocal,paidBy
,cancelRequestDate,cancelRequestDateLocal,cancelRequestBy,cancelReason,refund,cancelCharge,cancelApprovedDate,cancelApprovedDateLocal
,cancelApprovedBy,blockedDate,blockedBy,lockedDate,lockedDateLocal,lockedBy,payTokenId,tranType,ContNo
,uploadLogId,voucherNo,controlNo2,pBankType,senderName,receiverName
)
SELECT
id,controlNo,sCurrCostRate,sCurrHoMargin,sCurrSuperAgentMargin,sCurrAgentMargin,pCurrCostRate
,pCurrHoMargin,pCurrSuperAgentMargin,pCurrAgentMargin,agentCrossSettRate,customerRate,sAgentSettRate,pDateCostRate,agentFxGain
,treasuryTolerance,customerPremium,schemePremium,sharingValue
--,sharingType
,serviceCharge,handlingFee,sAgentComm,sAgentCommCurrency
,sSuperAgentComm,sSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency,promotionCode
,promotionType,pMessage,sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,pCountry,pSuperAgent,pSuperAgentName
,pAgent,pAgentName,pBranch,pBranchName,paymentMethod,pBank,pBankName,pBankBranch,pBankBranchName,accountNo,externalBankCode,collMode
,collCurr,tAmt,cAmt,pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,createdDate,createdDateLocal
,createdBy,modifiedDate,modifiedDateLocal,modifiedBy,approvedDate,approvedDateLocal,approvedBy,paidDate,paidDateLocal,paidBy
,cancelRequestDate,cancelRequestDateLocal,cancelRequestBy,@cancelReason1,refund,cancelCharge,dbo.FNADateFormatTZ(GETDATE(), @user),GETDATE()
,@user,blockedDate,blockedBy,lockedDate,lockedDateLocal,lockedBy,payTokenId,tranType,ContNo
,uploadLogId,voucherNo,controlNo2,pBankType,senderName,receiverName
FROM remitTranTemp WHERE controlNo = @controlNoEncrypted
INSERT INTO cancelTranSendersHistory
(tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,STATE,district,
zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,occupation,idType,
idNumber,idPlaceOfIssue,issuedDate,validDate,extCustomerId,cwPwd,ttName,isFirstTran,customerRiskPoint,countryRiskPoint,
gender,salary,companyName,address2,dcInfo,ipAddress,notifySms,txnTestQuestion,txnTestAnswer)
SELECT tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,STATE,district,
zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,occupation,idType,
idNumber,idPlaceOfIssue,issuedDate,validDate,extCustomerId,cwPwd,ttName,isFirstTran,customerRiskPoint,countryRiskPoint,
gender,salary,companyName,address2,dcInfo,ipAddress,notifySms,txnTestQuestion,txnTestAnswer
FROM transenderstemp WITH(NOLOCK) WHERE tranId = LTRIM(RTRIM(@tranId))
INSERT INTO cancelTranReceiversHistory
(tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,
STATE,district,zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,
occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,idType2,idNumber2,idPlaceOfIssue2,issuedDate2,
validDate2,relationType,relativeName,gender,address2,dcInfo,ipAddress)
SELECT tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,
STATE,district,zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,
occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,idType2,idNumber2,idPlaceOfIssue2,issuedDate2,
validDate2,relationType,relativeName,gender,address2,dcInfo,ipAddress
FROM tranReceiversTemp WITH(NOLOCK) WHERE tranId = LTRIM(RTRIM(@tranId))
DELETE FROM remitTranTemp WHERE controlNo = @controlNoEncrypted
DELETE FROM tranSendersTemp WHERE tranId = LTRIM(RTRIM(@tranId))
DELETE FROM tranReceiversTemp WHERE tranId = LTRIM(RTRIM(@tranId))
UPDATE creditLimitInt SET todaysSent = ISNULL(todaysSent,0) - @canceledAmt
WHERE agentId=@sAgent
END
SELECT @message = 'Transaction cancel has been done successfully.'
EXEC proc_transactionLogs 'i', @user, @tranId, @message, 'Transaction Cancel Approved'
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC FastMoneyPro_account.dbo.[PROC_REMIT_DATA_UPDATE]
@flag = 'c'
,@user = @user
,@controlNo = @controlNoEncrypted
EXEC [proc_errorHandler] 0, 'Transaction cancel has been done successfully', @tranId
END
-->> REJECT CANCEL REQUEST TRANSACTION
ELSE IF @flag='reject'
BEGIN
SELECT
@tranStatus = CASE WHEN tranStatus ='Post' THEN 'Payment' ELSE transtatus END
,@tranId = id
FROM tranCancelrequest WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
IF @user IS NULL
BEGIN
EXEC proc_errorHandler 1, 'Your session has expired. Cannot cancel transaction', NULL
RETURN
END
IF (@tranStatus = 'Cancel')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled', @controlNoEncrypted
RETURN
END
BEGIN TRANSACTION
IF @tranStatus LIKE '%HOLD%'
BEGIN
UPDATE remitTranTemp SET
tranStatus = @tranStatus
,cancelRequestBy = NULL
,cancelRequestDate = NULL
,cancelRequestDateLocal = NULL
WHERE controlNo = @controlNoEncrypted
END
ELSE
BEGIN
UPDATE remitTran SET
tranStatus = @tranStatus
,cancelRequestBy = NULL
,cancelRequestDate = NULL
,cancelRequestDateLocal = NULL
WHERE controlNo = @controlNoEncrypted
END
UPDATE tranCancelrequest SET
cancelStatus = 'Rejected'
,approvedBy = @user
,approvedDate = GETDATE()
,approvedRemarks = @cancelReason
WHERE controlNo = @controlNoEncrypted
SELECT @message = 'Transaction Cancel Request Rejected'
EXEC proc_transactionLogs @flag = 'i',@user = @user,@tranId = @tranId,
@message = @message, @msgType = 'Transaction Cancel Rejected', @controlNo = @controlNoEncrypted
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC [proc_errorHandler] 0, 'Transaction Cancel Request Rejected Successfully', @tranId
END
-->> CANCEL RECEIPT
ELSE IF @flag = 'cancelReceipt'
BEGIN
SELECT @tranStatus = tranStatus FROM tranCancelrequest WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
IF @tranStatus LIKE '%Hold%'
BEGIN
SELECT
controlNo = dbo.FNADecryptString(trn.controlNo)
,sBranch = trn.sBranchName
,sBranchId = trn.sBranch
,createdBy = trn.createdBy
,sendDate = trn.createdDate
,cancelAppDate = req.approvedDate
,cancelReqDate = req.createdDate
,cancelReqBy = req.createdBy
,cancelReason = req.cancelReason
,sender = sen.firstName + ISNULL(' ' + sen.middleName, '') + ISNULL(' ' + sen.lastName1, '') + ISNULL(' ' + sen.lastName2, '')
,receiver = rec.firstName + ISNULL(' ' + rec.middleName, '') + ISNULL(' ' + rec.lastName1, '') + ISNULL(' ' + rec.lastName2, '')
,rContactNo = rec.mobile
,trn.collCurr
,trn.cAmt
,trn.serviceCharge
,trn.pAmt
,pCurr = trn.payoutCurr
,cancelCharge = ISNULL(trn.cancelCharge ,0)
,returnAmt = req.scRefund
FROM cancelTranHistory trn WITH(NOLOCK)
INNER JOIN tranCancelrequest req WITH(NOLOCK) ON trn.tranId=req.tranId
INNER JOIN cancelTranSendersHistory sen WITH(NOLOCK) ON trn.tranId = sen.tranId
INNER JOIN cancelTranReceiversHistory rec WITH(NOLOCK) ON trn.tranId = rec.tranId
WHERE trn.controlNo = @controlNoEncrypted
END
ELSE
BEGIN
SELECT
controlNo = dbo.FNADecryptString(trn.controlNo)
,sBranch = trn.sBranchName
,sBranchId = trn.sBranch
,createdBy = trn.createdBy
,sendDate = trn.createdDate
,cancelAppDate = req.approvedDate
,cancelReqDate = req.createdDate
,cancelReqBy = req.createdBy
,cancelReason = req.cancelReason
,sender = sen.firstName + ISNULL(' ' + sen.middleName, '') + ISNULL(' ' + sen.lastName1, '') + ISNULL(' ' + sen.lastName2, '')
,receiver = rec.firstName + ISNULL(' ' + rec.middleName, '') + ISNULL(' ' + rec.lastName1, '') + ISNULL(' ' + rec.lastName2, '')
,rContactNo = rec.mobile
,trn.collCurr
,trn.cAmt
,trn.serviceCharge
,trn.pAmt
,pCurr = trn.payoutCurr
,cancelCharge = ISNULL(trn.cancelCharge ,0)
,returnAmt = req.scRefund
FROM remitTran trn WITH(NOLOCK)
INNER JOIN tranCancelrequest req WITH(NOLOCK) ON trn.id=req.tranId
INNER JOIN tranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
INNER JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
WHERE trn.controlNo = @controlNoEncrypted
END
END
-->> CHECKING STATUS OF REQUEST
ELSE IF(@flag='displayRequest')
BEGIN
SELECT cancelReason
FROM tranCancelrequest T WITH(NOLOCK)
WHERE controlNo=@controlNoEncrypted AND approvedDate IS NULL
AND cancelStatus='CancelRequest'
END
-->> CANCEL REQUEST LIST - AGENT PANEL
ELSE IF @flag = 'sAgentpending'
BEGIN
SELECT @userType = USERTYPE FROM applicationUsers WHERE userName =@user
SET @table = '(
SELECT
RT.sAgentName
,RT.sBranchName
,A.createdBy
,controlNo = ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'AgentPanel/Reports/SearchTransaction/TransactionDetail.aspx?searchBy=controlNo&searchValue='' + dbo.FNADecryptString(RT.controlNo) + '''''')">'' + dbo.FNADecryptString(RT.co
ntrolNo) + ''</a>''
,RT.cAmt
,CONVERT(VARCHAR,A.createdDate,101) createdDate
,RT.sBranch
,filterControlNo = dbo.FNADecryptString(RT.controlNo)
FROM vwRemitTran RT WITH(NOLOCK)
INNER JOIN tranCancelrequest A WITH(NOLOCK) ON A.controlNo=RT.controlNo
WHERE RT.tranStatus = ''CancelRequest''
) x'
SET @sql_filter = ''
IF @controlNo IS NOT NULL
SET @sql_filter = @sql_filter+ ' AND filterControlNo ='''+@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 ='
sAgentName
,sBranchName
,createdBy
,controlNo
,cAmt
,createdDate
,filterControlNo
'
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,''
,@sortBy
,@sortOrder
,@pageSize
END
-->> MAKE CANCEL TRANSACTION - ADMIN PANEL
ELSE IF @flag = 'cancelTxnAdmin'
BEGIN
SELECT
@tranId = a.id
,@serviceCharge = a.serviceCharge
,@tAmt = a.tAmt
,@cAmt = a.cAmt
,@createdBy = a.createdBy
,@tranStatus = a.tranStatus
,@pCountry = a.pCountry
,@branchId = a.sBranch
,@isPaidTxn = CASE WHEN (paidBy IS NOT NULL OR paidDate IS NOT NULL) THEN 'Y' ELSE 'N' END
,@sCountryId = (SELECT countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = sCountry)
,@sAgent = sAgent
,@sBranch = sBranch
,@pCountryId = (SELECT countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = pCountry)
,@pAgent = pAgent
,@bonusPoint = ISNULL(a.bonusPoint, 0)
,@canceledAmt = (a.cAmt - ISNULL(a.sAgentComm,0) - ISNULL(a.agentFxGain,0)) / (a.sCurrCostRate + ISNULL(a.sCurrHoMargin,0))
FROM vwRemitTran a WITH(NOLOCK)
WHERE a.controlNo = @controlNoEncrypted
IF @user IS NULL
BEGIN
EXEC proc_errorHandler 1, 'Your session has expired. Cannot cancel transaction.', NULL
RETURN
END
IF (@tranStatus IS NULL)
BEGIN
EXEC proc_errorHandler 1, 'Transaction not found.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Cancel')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'CANCELLED')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Cancel Processing')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'ModificationRequest')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been requested for modification.', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Lock')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is locked. Please contact HO', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'Block')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is blocked. Please contact HO', @controlNoEncrypted
RETURN
END
IF (@tranStatus = 'CancelRequest')
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been requested for cancellation', @controlNoEncrypted
RETURN
END
IF EXISTS(SELECT 'x' FROM trancancelrequest WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted AND cancelStatus <> 'Rejected')
BEGIN
EXEC proc_errorHandler 1, 'Transaction is already requested for cancel.', @controlNoEncrypted
RETURN
END
BEGIN TRANSACTION
INSERT INTO tranCancelrequest(tranId,controlNo,cancelReason,cancelStatus,
createdBy,createdDate,tranStatus,approvedBy,approvedDate,scRefund,isScRefund)
SELECT @tranId,@controlNoEncrypted,@cancelReason,'Approved',@user,GETDATE(),@tranStatus,@user,GETDATE(),
CASE WHEN @scRefund ='Y' THEN @cAmt ELSE @tAmt END,@scRefund
IF @tranStatus NOT LIKE '%HOLD%'
BEGIN
UPDATE remitTran SET
tranStatus = 'Cancel'
,cancelRequestBy = @user
,cancelRequestDate = GETDATE()
,cancelRequestDateLocal = dbo.FNADateFormatTZ(GETDATE(), @user)
,cancelApprovedBy = @user
,cancelApprovedDate = GETDATE()
,cancelApprovedDateLocal = GETDATE()
,trnStatusBeforeCnlReq = @tranStatus
WHERE controlNo = @controlNoEncrypted
IF EXISTS (SELECT 'X' FROM remitTran WITH(NOLOCK)
WHERE controlNo = @controlNoEncrypted
AND createdDate BETWEEN CONVERT(VARCHAR,GETDATE(),101) AND CONVERT(VARCHAR,GETDATE(),101) + ' 23:59:59')
BEGIN
UPDATE creditLimitInt SET
todaysCancelled = ISNULL(todaysCancelled,0) + @canceledAmt
WHERE agentId = @sAgent
END
END
IF @tranStatus LIKE '%HOLD%'
BEGIN
-->> UPDATE REMITTRAN
UPDATE remitTranTemp SET
tranStatus = 'Cancel'
,cancelApprovedBy = @user
,cancelApprovedDate = GETDATE()
,cancelApprovedDateLocal = GETDATE()
,cancelRequestBy = @user
,cancelRequestDate = GETDATE()
,cancelRequestDateLocal = dbo.FNADateFormatTZ(GETDATE(), @user)
,trnStatusBeforeCnlReq = @tranStatus
WHERE controlNo = @controlNoEncrypted
INSERT INTO cancelTranHistory(
tranId,controlNo,sCurrCostRate,sCurrHoMargin,sCurrSuperAgentMargin,sCurrAgentMargin,pCurrCostRate
,pCurrHoMargin,pCurrSuperAgentMargin,pCurrAgentMargin,agentCrossSettRate,customerRate,sAgentSettRate,pDateCostRate,agentFxGain
,treasuryTolerance,customerPremium,schemePremium,sharingValue,sharingType,serviceCharge,handlingFee,sAgentComm,sAgentCommCurrency
,sSuperAgentComm,sSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency,promotionCode
,promotionType,pMessage,sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,pCountry,pSuperAgent,pSuperAgentName
,pAgent,pAgentName,pBranch,pBranchName,paymentMethod,pBank,pBankName,pBankBranch,pBankBranchName,accountNo,externalBankCode,collMode
,collCurr,tAmt,cAmt,pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,createdDate,createdDateLocal
,createdBy,modifiedDate,modifiedDateLocal,modifiedBy,approvedDate,approvedDateLocal,approvedBy,paidDate,paidDateLocal,paidBy
,cancelRequestDate,cancelRequestDateLocal,cancelRequestBy,cancelReason,refund,cancelCharge,cancelApprovedDate,cancelApprovedDateLocal
,cancelApprovedBy,blockedDate,blockedBy,lockedDate,lockedDateLocal,lockedBy,payTokenId,tranType,ContNo
,uploadLogId,voucherNo,controlNo2,pBankType,trnStatusBeforeCnlReq,senderName,receiverName
)
SELECT
id,controlNo,sCurrCostRate,sCurrHoMargin,sCurrSuperAgentMargin,sCurrAgentMargin,pCurrCostRate
,pCurrHoMargin,pCurrSuperAgentMargin,pCurrAgentMargin,agentCrossSettRate,customerRate,sAgentSettRate,pDateCostRate,agentFxGain
,treasuryTolerance,customerPremium,schemePremium,sharingValue,sharingType,serviceCharge,handlingFee,sAgentComm,sAgentCommCurrency
,sSuperAgentComm,sSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency,promotionCode
,promotionType,pMessage,sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,pCountry,pSuperAgent,pSuperAgentName
,pAgent,pAgentName,pBranch,pBranchName,paymentMethod,pBank,pBankName,pBankBranch,pBankBranchName,accountNo,externalBankCode,collMode
,collCurr,tAmt,cAmt,pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,createdDate,createdDateLocal
,createdBy,modifiedDate,modifiedDateLocal,modifiedBy,approvedDate,approvedDateLocal,approvedBy,paidDate,paidDateLocal,paidBy
,cancelRequestDate,cancelRequestDateLocal,cancelRequestBy,@cancelReason1,refund,cancelCharge,GETDATE(),dbo.FNADateFormatTZ(GETDATE(), @user)
,@user,blockedDate,blockedBy,lockedDate,lockedDateLocal,lockedBy,payTokenId,tranType,ContNo
,uploadLogId,voucherNo,controlNo2,pBankType,trnStatusBeforeCnlReq,senderName,receiverName
FROM remitTranTemp WHERE controlNo = @controlNoEncrypted
INSERT INTO cancelTranSendersHistory
(tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,STATE,district,
zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,occupation,idType,
idNumber,idPlaceOfIssue,issuedDate,validDate,extCustomerId,cwPwd,ttName,isFirstTran,customerRiskPoint,countryRiskPoint,
gender,salary,companyName,address2,dcInfo,ipAddress,notifySms,txnTestQuestion,txnTestAnswer)
SELECT tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,STATE,district,
zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,occupation,idType,
idNumber,idPlaceOfIssue,issuedDate,validDate,extCustomerId,cwPwd,ttName,isFirstTran,customerRiskPoint,countryRiskPoint,
gender,salary,companyName,address2,dcInfo,ipAddress,notifySms,txnTestQuestion,txnTestAnswer
FROM transenderstemp WITH(NOLOCK) WHERE tranId = @tranId
INSERT INTO cancelTranReceiversHistory
(tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,
STATE,district,zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,
occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,idType2,idNumber2,idPlaceOfIssue2,issuedDate2,
validDate2,relationType,relativeName,gender,address2,dcInfo,ipAddress)
SELECT tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,
STATE,district,zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,
occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,idType2,idNumber2,idPlaceOfIssue2,issuedDate2,
validDate2,relationType,relativeName,gender,address2,dcInfo,ipAddress
FROM tranReceiversTemp WITH(NOLOCK) WHERE tranId = @tranId
IF EXISTS (SELECT 'X' FROM remitTranTemp WITH(NOLOCK)
WHERE id = @tranId
AND createdDate BETWEEN CONVERT(VARCHAR,GETDATE(),101) AND CONVERT(VARCHAR,GETDATE(),101) + ' 23:59:59')
BEGIN
UPDATE creditLimitInt SET todaysSent = ISNULL(todaysSent,0) - @canceledAmt
WHERE agentId=@sAgent
END
DELETE FROM remitTranTemp WHERE controlNo = @controlNoEncrypted
DELETE FROM tranSendersTemp WHERE tranId = @tranId
DELETE FROM tranReceiversTemp WHERE tranId = @tranId
SELECT @agentId = agentId FROM applicationUsers WITH(NOLOCK) WHERE userName=@createdBy
END
IF @isPaidTxn = 'N'
BEGIN
UPDATE customers SET
bonusPointPending = ISNULL(bonusPointPending, 0) - @bonusPoint
,bonusTxnCount = ISNULL(bonusTxnCount, 0) - 1
,bonusTxnAmount = ISNULL(bonusTxnAmount, 0) - @cAmt
WHERE customerId = @customerId
END
ELSE IF @isPaidTxn = 'Y'
BEGIN
UPDATE customers SET
bonusPoint = ISNULL(bonusPoint, 0) - @bonusPoint
,bonusTxnCount = ISNULL(bonusTxnCount, 0) - 1
,bonusTxnAmount = ISNULL(bonusTxnAmount, 0) - @cAmt
WHERE customerId = @customerId
END
SELECT @message = 'Transaction cancel has been done successfully.'
EXEC proc_transactionLogs 'i', @user, @tranId, @message, 'Transaction Cancel Approved'
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC [proc_errorHandler] 0, 'Transaction cancel has been done successfully', @tranId
END
GO