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.
398 lines
15 KiB
398 lines
15 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_cancelTranAPI_v2] Script Date: 7/4/2019 11:35:48 AM ******/
|
|
DROP PROCEDURE [dbo].[proc_cancelTranAPI_v2]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_cancelTranAPI_v2] Script Date: 7/4/2019 11:35:48 AM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
CREATE PROC [dbo].[proc_cancelTranAPI_v2] (
|
|
@flag VARCHAR(50)
|
|
,@controlNo VARCHAR(20) = NULL
|
|
,@user VARCHAR(30) = NULL
|
|
,@agentRefId VARCHAR(50) = NULL
|
|
,@tranId INT = NULL
|
|
,@sCountry INT = NULL
|
|
,@sFirstName VARCHAR(30) = NULL
|
|
,@sMiddleName VARCHAR(30) = NULL
|
|
,@sLastName1 VARCHAR(30) = NULL
|
|
,@sLastName2 VARCHAR(30) = NULL
|
|
,@sMemId VARCHAR(30) = NULL
|
|
,@sId BIGINT = NULL
|
|
,@sTranId VARCHAR(50) = NULL
|
|
,@rCountry INT = NULL
|
|
,@rFirstName VARCHAR(30) = NULL
|
|
,@rMiddleName VARCHAR(30) = NULL
|
|
,@rLastName1 VARCHAR(30) = NULL
|
|
,@rLastName2 VARCHAR(30) = NULL
|
|
,@rMemId VARCHAR(30) = NULL
|
|
,@rId BIGINT = NULL
|
|
,@pCountry INT = NULL
|
|
|
|
,@customerId INT = NULL
|
|
,@agentId INT = NULL
|
|
,@senderId INT = NULL
|
|
,@benId INT = NULL
|
|
,@cancelReason VARCHAR(200) = NULL
|
|
,@refund CHAR(1) = NULL
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
)
|
|
AS
|
|
|
|
DECLARE
|
|
@select_field_list VARCHAR(MAX)
|
|
,@extra_field_list VARCHAR(MAX)
|
|
,@table VARCHAR(MAX)
|
|
,@sql_filter VARCHAR(MAX)
|
|
,@sAgent INT
|
|
,@tAmt MONEY
|
|
,@cAmt MONEY
|
|
,@pAmt MONEY
|
|
,@message VARCHAR(200)
|
|
,@payStatus varchar(20)
|
|
|
|
SET NOCOUNT ON
|
|
SET XACT_ABORT ON
|
|
SELECT @pageSize = 1000, @pageNumber = 1
|
|
|
|
DECLARE
|
|
@code VARCHAR(50)
|
|
,@userName VARCHAR(50)
|
|
,@password VARCHAR(50)
|
|
|
|
EXEC proc_GetAPI @user OUTPUT,@code OUTPUT, @userName OUTPUT, @password OUTPUT
|
|
|
|
DECLARE @tranStatus VARCHAR(20)
|
|
DECLARE @chargeToCustomer INT
|
|
DECLARE @controlNoEncrypted VARCHAR(20)
|
|
SELECT @controlNoEncrypted = dbo.FNAEncryptString(UPPER(LTRIM(RTRIM(@controlNo))))
|
|
|
|
if right(@controlNo,1) <> 'D'
|
|
set @flag ='cancelTxnAdmin'
|
|
|
|
-->> Direct domestic cancel
|
|
IF @flag = 'cancel'
|
|
BEGIN
|
|
DECLARE @sBranch INT, @pLocation INT, @deliveryMethod VARCHAR(100), @deliveryMethodId INT, @pAgentComm MONEY, @cancelCharge MONEY, @returnAmt MONEY
|
|
SELECT
|
|
@tranStatus = tranStatus
|
|
,@sBranch = sBranch
|
|
,@sAgent = sAgent
|
|
,@pLocation = pLocation
|
|
,@deliveryMethod = paymentMethod
|
|
,@tAmt = tAmt
|
|
,@cAmt = cAmt
|
|
,@pAmt = pAmt
|
|
,@payStatus = payStatus
|
|
FROM remitTran 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 IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction not found', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Paid')
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction has already been paid', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
IF (@payStatus = 'Post')
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction has already been POST', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Cancel')
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction already been cancelled', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Hold')
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction is hold. Transaction must be approved for cancellation.', NULL
|
|
RETURN
|
|
END
|
|
DECLARE @id BIGINT, @settlingAgent INT, @ssAgent INT
|
|
|
|
SELECT @deliveryMethodId = serviceTypeId FROM serviceTypeMaster WITH(NOLOCK) WHERE typeTitle = @deliveryMethod AND ISNULL(isDeleted, 'N') = 'N'
|
|
SELECT @pAgentComm = pAgentComm FROM [dbo].FNAGetDomesticPayCommForCancel(@sBranch, @pLocation, @deliveryMethodId, @tAmt)
|
|
SET @returnAmt = @tAmt + @pAgentComm
|
|
SET @cancelCharge = @cAmt - @returnAmt
|
|
BEGIN TRANSACTION
|
|
UPDATE remitTran SET
|
|
tranStatus = 'Cancel'
|
|
,cancelApprovedBy = @user
|
|
,cancelApprovedDate = dbo.FNAGetDateInNepalTZ()
|
|
,cancelApprovedDateLocal = dbo.FNAGetDateInNepalTZ()
|
|
,cancelReason = @cancelReason
|
|
,refund = @refund
|
|
WHERE controlNo = @controlNoEncrypted
|
|
|
|
SELECT @tranId = id FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
|
|
SELECT @message = 'Cancel Request Approved'
|
|
EXEC proc_transactionLogs 'i', @user, @tranId, @message, 'Cancel Approved'
|
|
|
|
SELECT @ssAgent = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @sAgent
|
|
|
|
SELECT @settlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @sAgent AND isSettlingAgent = 'Y'
|
|
IF @settlingAgent IS NULL
|
|
SELECT @settlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @ssAgent AND isSettlingAgent = 'Y'
|
|
|
|
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 remitTran SET
|
|
cancelCharge = 0
|
|
WHERE controlNo = @controlNoEncrypted
|
|
SET @chargeToCustomer = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE remitTran SET
|
|
cancelCharge = @cancelCharge
|
|
WHERE controlNo = @controlNoEncrypted
|
|
SET @chargeToCustomer = 1
|
|
END
|
|
|
|
EXEC FastMoneyPro_Account.dbo.[PROC_REMIT_DATA_UPDATE]
|
|
@flag = 'c'
|
|
,@user = @user
|
|
,@controlNo = @controlNo
|
|
-- ## Limit Update
|
|
EXEC Proc_AgentBalanceUpdate @flag = 'c',@tAmt = @cAmt ,@settlingAgent = @settlingAgent
|
|
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION
|
|
|
|
EXEC [proc_errorHandler] 0, 'Transaction Cancelled successfully', @tranId
|
|
END
|
|
|
|
ELSE IF @flag = 'cancelReject'
|
|
BEGIN
|
|
--EXEC proc_cancelTran @flag = 'cancelReject', @controlNo = ''
|
|
BEGIN TRANSACTION
|
|
UPDATE remitTran SET
|
|
tranStatus = 'Payment'
|
|
WHERE controlNo = @controlNoEncrypted
|
|
--End-----------------------------------------------------------------------------------------------------------------
|
|
|
|
--Transaction Log---------------------------
|
|
SELECT @tranId = id FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
|
|
SELECT @message = 'Cancel Request for this transaction rejected'
|
|
EXEC proc_transactionLogs 'i', @user, @tranId, @message, 'Cancel Reject'
|
|
--------------------------------------------
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION
|
|
|
|
EXEC proc_errorHandler 0, 'Cancel Request rejected successfully', @controlNoEncrypted
|
|
select 'a'
|
|
REturn
|
|
--EXEC proc_addCommentAPI @flag = 'i', @controlNo = @controlNo, @user = @user, @message = @message, @agentRefId = NULL
|
|
END
|
|
|
|
-->> Direct internation cancel
|
|
ELSE IF @flag = 'cancelTxnAdmin'
|
|
BEGIN
|
|
DECLARE @serviceCharge MONEY,@scRefund MONEY,@cancelReason1 VARCHAR(MAX),@canceledAmt MONEY,@createdBy AS VARCHAR(50),@branchId INT,
|
|
@isPaidTxn CHAR(1), @sCountryId INT, @pCountryId INT, @pAgent INT, @bonusPoint INT,@holdTranId bigint
|
|
SELECT
|
|
@tranId = a.id
|
|
,@serviceCharge = a.serviceCharge
|
|
,@tAmt = a.tAmt
|
|
,@cAmt = a.cAmt
|
|
,@createdBy = a.createdBy
|
|
,@tranStatus = a.tranStatus
|
|
,@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)
|
|
,@payStatus = a.payStatus
|
|
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 (@payStatus = 'Post')
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction already been POST.', @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 @refund ='D' THEN @cAmt ELSE @tAmt END,@refund
|
|
|
|
IF @tranStatus NOT LIKE '%HOLD%'
|
|
BEGIN
|
|
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
|
|
|
|
-- ## Limit Update
|
|
EXEC Proc_AgentBalanceUpdate @flag = 'c',@tAmt = @cAmt, @settlingAgent = @sBranch
|
|
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 = @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
|
|
|
|
-- ## Limit Update
|
|
UPDATE creditLimitInt SET
|
|
todaysSent = ISNULL(todaysSent,0) - @canceledAmt
|
|
WHERE agentId = @sAgent
|
|
|
|
|
|
DELETE FROM remitTranTemp WHERE controlNo = @controlNoEncrypted
|
|
DELETE FROM tranSendersTemp WHERE tranId = @tranId
|
|
DELETE FROM tranReceiversTemp WHERE tranId = @tranId
|
|
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
|