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.
1071 lines
34 KiB
1071 lines
34 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_sendTranAPI_v2] Script Date: 7/4/2019 11:35:48 AM ******/
|
|
DROP PROCEDURE [dbo].[proc_sendTranAPI_v2]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_sendTranAPI_v2] Script Date: 7/4/2019 11:35:48 AM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
ALTER PROC [dbo].[proc_sendTranAPI_v2](
|
|
@flag VARCHAR(50)
|
|
,@user VARCHAR(30)
|
|
,@id BIGINT = NULL
|
|
,@membershipId VARCHAR(20) = NULL
|
|
,@agentUniqueRefId VARCHAR(20) = NULL
|
|
,@senderId BIGINT = NULL
|
|
,@sMemId VARCHAR(20) = NULL
|
|
,@sFirstName VARCHAR(50) = NULL
|
|
,@sMiddleName VARCHAR(50) = NULL
|
|
,@sLastName1 VARCHAR(50) = NULL
|
|
,@sLastName2 VARCHAR(50) = NULL
|
|
,@sAddress VARCHAR(200) = NULL
|
|
,@sContactNo VARCHAR(20) = NULL
|
|
,@sIdType VARCHAR(50) = NULL
|
|
,@sIdNo VARCHAR(30) = NULL
|
|
,@sEmail VARCHAR(50) = NULL
|
|
|
|
,@receiverId BIGINT = NULL
|
|
,@rMemId VARCHAR(20) = NULL
|
|
,@rFirstName VARCHAR(50) = NULL
|
|
,@rMiddleName VARCHAR(50) = NULL
|
|
,@rLastName1 VARCHAR(50) = NULL
|
|
,@rLastName2 VARCHAR(50) = NULL
|
|
,@rAddress VARCHAR(200) = NULL
|
|
,@rContactNo VARCHAR(20) = NULL
|
|
,@rIdType VARCHAR(50) = NULL
|
|
,@rIdNo VARCHAR(30) = NULL
|
|
,@remarks VARCHAR(200) = NULL
|
|
|
|
,@sBranch INT = NULL
|
|
,@sBranchName VARCHAR(100) = NULL
|
|
,@sAgent INT = NULL
|
|
,@sAgentName VARCHAR(100) = NULL
|
|
,@sSuperAgent INT = NULL
|
|
,@sSuperAgentName VARCHAR(100) = NULL
|
|
,@settlingAgent INT = NULL
|
|
,@mapCode VARCHAR(8) = NULL
|
|
,@mapCodeDom VARCHAR(8) = NULL
|
|
,@pBranch INT = NULL
|
|
,@pBank INT = NULL
|
|
,@pBankBranch INT = NULL
|
|
,@accountNo VARCHAR(30) = NULL
|
|
,@pCountry VARCHAR(100) = NULL --payout Country
|
|
,@pState VARCHAR(100) = NULL --payout State
|
|
,@pDistrict VARCHAR(100) = NULL --payout District
|
|
,@pLocation INT = NULL --payout Location
|
|
,@collMode VARCHAR(50) = NULL
|
|
,@collCurr VARCHAR(3) = NULL
|
|
,@transferAmt MONEY = NULL
|
|
,@serviceCharge MONEY = NULL
|
|
,@handlingFee MONEY = NULL
|
|
,@cAmt MONEY = NULL
|
|
,@exRate MONEY = NULL
|
|
,@pAmt MONEY = NULL
|
|
,@payoutCurr VARCHAR(3) = NULL
|
|
,@deliveryMethod VARCHAR(50) = NULL
|
|
,@purpose VARCHAR(100) = NULL
|
|
,@sourceOfFund VARCHAR(100) = NULL
|
|
,@Occupation VARCHAR(200) = NULL
|
|
,@relationship VARCHAR(100) = NULL
|
|
,@controlNo VARCHAR(20) = NULL
|
|
,@txnId VARCHAR(50) = NULL
|
|
|
|
,@agentRefId VARCHAR(50) = NULL
|
|
,@mode VARCHAR(10) = NULL
|
|
,@fromSendTrnTime VARCHAR(20) = NULL
|
|
,@toSendTrnTime VARCHAR(20) = NULL
|
|
,@txtPass VARCHAR(50) = NULL
|
|
,@sDcInfo VARCHAR(50) = NULL
|
|
,@sIpAddress VARCHAR(50) = NULL
|
|
,@topupMobileNo varchar(50) = NULL
|
|
,@complianceAction CHAR(1) = NULL
|
|
,@compApproveRemark VARCHAR(200) = NULL
|
|
,@markSuspicious CHAR(1) = NULL
|
|
,@txnbatchId VARCHAR(50) = NULL
|
|
,@txnDocFolder VARCHAR(50) = NULL
|
|
,@sDOB VARCHAR(25) = NULL
|
|
,@sIdIssuedDate VARCHAR(25) = NULL
|
|
,@sIdValidDate VARCHAR(25) = NULL
|
|
,@sDOBBs VARCHAR(25) = NULL
|
|
,@sIdIssuedDateBs VARCHAR(25) = NULL
|
|
,@sIdValidDateBs VARCHAR(25) = NULL
|
|
,@sIdIssuedPlace VARCHAR(50) = NULL
|
|
,@sCustCardId VARCHAR(25) = NULL
|
|
,@sGender VARCHAR(25) = NULL
|
|
,@sMotherFatherName VARCHAR(25) = NULL
|
|
,@sAmountThreshold MONEY = NULL
|
|
)
|
|
|
|
AS
|
|
|
|
DECLARE
|
|
@sCurrCostRate DECIMAL(15, 9)
|
|
,@sCurrHoMargin DECIMAL(15, 9)
|
|
,@pCurrCostRate DECIMAL(15, 9)
|
|
,@pCurrHoMargin DECIMAL(15, 9)
|
|
,@sCurrAgentMargin DECIMAL(15, 9)
|
|
,@pCurrAgentMargin DECIMAL(15, 9)
|
|
,@sCurrSuperAgentMargin DECIMAL(15, 9)
|
|
,@pCurrSuperAgentMargin DECIMAL(15, 9)
|
|
,@customerRate DECIMAL(15, 9)
|
|
,@sAgentSettRate DECIMAL(15, 9)
|
|
,@pDateCostRate DECIMAL(15, 9)
|
|
,@sAgentComm MONEY
|
|
,@sAgentCommCurrency VARCHAR(3)
|
|
,@sSuperAgentComm MONEY
|
|
,@sSuperAgentCommCurrency VARCHAR(3)
|
|
,@sHubComm MONEY
|
|
,@sHubCommCurrency VARCHAR(3)
|
|
,@pAgentComm MONEY
|
|
,@pAgentCommCurrency VARCHAR(3)
|
|
,@pSuperAgentComm MONEY
|
|
,@pSuperAgentCommCurrency VARCHAR(3)
|
|
,@pHubComm MONEY
|
|
,@pHubCommCurrency VARCHAR(3)
|
|
,@pBankName VARCHAR(100)
|
|
,@pBankBranchName VARCHAR(100)
|
|
,@promotionCode INT
|
|
,@promotionType INT
|
|
,@sCountry VARCHAR(100)
|
|
,@pSuperAgent INT
|
|
,@pSuperAgentName VARCHAR(100)
|
|
,@pAgent INT
|
|
,@pAgentName VARCHAR(100)
|
|
,@pBranchName VARCHAR(100)
|
|
,@branchMapCode VARCHAR(8)
|
|
,@bankBranchName VARCHAR(200)
|
|
,@code VARCHAR(50)
|
|
,@userName VARCHAR(50)
|
|
,@password VARCHAR(50)
|
|
,@sCountryId VARCHAR(30)
|
|
,@msg VARCHAR(200)
|
|
,@senderName VARCHAR(100)
|
|
,@receiverName VARCHAR(100)
|
|
|
|
DECLARE
|
|
@limitBal MONEY
|
|
,@sendingCustType INT
|
|
,@sendingCurrency VARCHAR(3)
|
|
,@receivingCurrency VARCHAR(3)
|
|
,@receivingCustType INT
|
|
|
|
DECLARE
|
|
@sendingCount INT
|
|
,@sendingAmount MONEY
|
|
,@receivingCount INT
|
|
,@receivingAmount MONEY
|
|
,@tranCount INT
|
|
,@tranAmount MONEY
|
|
,@period INT
|
|
,@nextAction INT
|
|
|
|
DECLARE
|
|
@pCountryId INT
|
|
,@deliveryMethodId INT
|
|
,@agentType INT
|
|
,@actAsBranchFlag CHAR(1)
|
|
,@approveFlag CHAR(1)
|
|
,@currentDate DATETIME
|
|
,@sFullName VARCHAR(200)
|
|
,@rFullName VARCHAR(200)
|
|
,@iCollectAmount MONEY
|
|
|
|
DECLARE @csMasterId INT, @complianceRes VARCHAR(20), @totalRows INT, @count INT, @compFinalRes VARCHAR(20), @result VARCHAR(MAX)
|
|
DECLARE @csMasterRec TABLE (rowId INT IDENTITY(1,1), masterId INT)
|
|
|
|
EXEC proc_GetAPI @user OUTPUT,@code OUTPUT, @userName OUTPUT, @password OUTPUT
|
|
DECLARE @controlNoEncrypted VARCHAR(20)
|
|
DECLARE @cutOffMinutes TINYINT = 2
|
|
SET XACT_ABORT ON
|
|
BEGIN TRY
|
|
SET @senderName = @sFirstName + ISNULL(' ' + @sMiddleName, '') + ISNULL(' ' + @sLastName1, '') + ISNULL(' ' + @sLastName2, '')
|
|
SET @receiverName = @rFirstName + ISNULL(' ' + @rMiddleName, '') + ISNULL(' ' + @rLastName1, '') + ISNULL(' ' + @rLastName2, '')
|
|
|
|
|
|
IF @flag = 'vt'
|
|
BEGIN
|
|
IF @user IS NULL
|
|
BEGIN
|
|
SELECT 1 errorCode,'Your session has expired. Cannot send transaction.' msg,NULL id,'compliance' vtype
|
|
RETURN
|
|
END
|
|
|
|
IF @deliveryMethod = 'Cash Payment' AND @transferAmt > dbo.FNAGetDomesticSendLimit() --AND @transferAmt > 100000
|
|
BEGIN
|
|
SELECT 1 errorCode,'Transfer amount exceeds Limit.' msg,NULL id,'compliance' vtype
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS(
|
|
SELECT 'X' FROM customerMaster WITH(NOLOCK)
|
|
WHERE membershipId = @sMemId
|
|
AND ISNULL(isDeleted, 'N') <> 'Y'
|
|
AND approvedDate IS NULL
|
|
)
|
|
BEGIN
|
|
IF ISNULL(@sAmountThreshold,0) <> 0 AND ISNULL(@transferAmt,0)<>0
|
|
BEGIN
|
|
IF @transferAmt >= @sAmountThreshold
|
|
BEGIN
|
|
SELECT 1 errorCode,'Customer with this membership ID is not approved yet.
|
|
Unapproved customer cannot send money greater than or equals to threshold amount using customer card. Please contact head office.' msg,NULL id,'custenroll' vtype
|
|
RETURN;
|
|
END
|
|
END
|
|
END
|
|
IF @sIdNo IS NULL AND @sContactNo IS NULL
|
|
BEGIN
|
|
SELECT 0 errorCode,'Transaction verification Successful.' msg,NULL id,'compliance' vtype
|
|
RETURN
|
|
END
|
|
|
|
|
|
|
|
SELECT @pCountry = 'Nepal'
|
|
SELECT @sCountry = 'Nepal'
|
|
SELECT @pCountryId = '151'
|
|
SELECT @sCountryId = '151'
|
|
|
|
DECLARE @cisMasterId INT, @validationRes VARCHAR(50), @validationFinalRes VARCHAR(100)
|
|
DECLARE @cisMasterRec TABLE (rowId INT IDENTITY(1,1), masterId INT)
|
|
DECLARE @requiredField TABLE (rowId INT IDENTITY(1,1), criteriaId INT,controlId VARCHAR(50),errorMsg VARCHAR(200))
|
|
DECLARE @cisValidationResult TABLE (rowId INT IDENTITY(1,1), cisDetailId VARCHAR(20))
|
|
|
|
SELECT @deliveryMethodId = serviceTypeId FROM serviceTypeMaster WITH(NOLOCK) WHERE typeTitle = @deliveryMethod AND ISNULL(isDeleted, 'N') = 'N'
|
|
-------Required Validation Check Begin----------
|
|
|
|
|
|
|
|
|
|
INSERT @cisMasterRec(masterId)
|
|
SELECT masterId FROM dbo.FNAGetIdRuleMaster(@sBranch, @pCountryId, NULL, @pBranch, NULL, @senderId, @receiverId)
|
|
SELECT @totalRows = COUNT(*) FROM @cisMasterRec
|
|
|
|
IF EXISTS(SELECT 'X' FROM @cisMasterRec)
|
|
BEGIN
|
|
|
|
SET @count = 1
|
|
WHILE(@count <= @totalRows)
|
|
BEGIN
|
|
|
|
SELECT @cisMasterId = masterId FROM @cisMasterRec WHERE rowId = @count
|
|
|
|
EXEC proc_idRuleDetail
|
|
@user = @user
|
|
,@tranId = @id
|
|
,@tAmt = @transferAmt
|
|
,@senId = @senderId
|
|
,@masterId = @cisMasterId
|
|
,@paymentMethod = @deliveryMethodId
|
|
,@checkingFor = 'v'
|
|
,@senderId = @sIdNo
|
|
,@senderName = @senderName
|
|
,@senderMobile = @sContactNo
|
|
,@result = @validationRes OUTPUT
|
|
|
|
SET @count = @count + 1
|
|
|
|
IF @validationRes IS NOT NULL
|
|
INSERT INTO @cisValidationResult
|
|
SELECT DISTINCT VALUE from dbo.udf_Split(@validationRes,',')
|
|
|
|
END
|
|
END
|
|
|
|
IF EXISTS (SELECT 'X' FROM @cisValidationResult)
|
|
BEGIN
|
|
DECLARE @FieldValue TABLE (controlId VARCHAR(50) UNIQUE, value VARCHAR(200))
|
|
INSERT @FieldValue
|
|
SELECT 'sof', @sourceOfFund UNION ALL
|
|
SELECT 'por', @purpose UNION ALL
|
|
SELECT 'relWithSender', @relationship UNION ALL
|
|
SELECT 'sIdType', @sIdType UNION ALL
|
|
SELECT 'sIdNo', @sIdNo UNION ALL
|
|
SELECT 'txtSendIdValidDate', @sIdValidDate UNION ALL
|
|
SELECT 'txtSendDOB', @sDOB UNION ALL
|
|
SELECT 'occupation', @Occupation UNION ALL
|
|
SELECT 'sIdIssuedPlace', @sIdIssuedPlace
|
|
DELETE FROM @FieldValue WHERE NULLIF(LTRIM(value), '') IS NULL
|
|
OR (value = 'select' AND controlId IN ('sof', 'por', 'relWithSender' , 'occupation','sIdIssuedPlace'))
|
|
--@sIdType
|
|
|
|
IF '1301' = @sIdType
|
|
DELETE FROM @FieldValue WHERE controlId = 'txtSendIdValidDate'
|
|
|
|
SELECT
|
|
cm.criteriaId
|
|
,cm.controlId
|
|
,errorMsg
|
|
INTO #final
|
|
FROM cisFieldMapping cm WITH(NOLOCK)
|
|
INNER JOIN cisCriteria c WITH(NOLOCK) ON cm.criteriaId = c.criteriaId
|
|
INNER JOIN @cisValidationResult tmpc ON c.cisDetailId = tmpc.cisDetailId
|
|
LEFT JOIN @FieldValue fv ON cm.controlId = fv.controlId
|
|
WHERE ISNULL(cm.scope,'D')='D' AND ISNULL(cm.IsActive,'Y')='Y'
|
|
AND fv.controlId IS NULL AND cm.controlId IS NOT NULL
|
|
ORDER BY ISNULL(controlRankID,0)
|
|
|
|
IF '1301' = @sIdType
|
|
DELETE FROM #final WHERE controlId = 'txtSendIdValidDate'
|
|
|
|
IF EXISTS(SELECT 'X' FROM #final)
|
|
BEGIN
|
|
SET @msg = 'Field validation failed.'
|
|
SELECT 101 errorCode, @msg msg, NULL id,'idrule' vtype
|
|
SELECT DISTINCT * FROM #final
|
|
RETURN
|
|
END
|
|
/*
|
|
SELECT
|
|
cm.criteriaId
|
|
,controlId
|
|
,errorMsg
|
|
FROM cisFieldMapping cm WITH(NOLOCK)
|
|
where criteriaId in(
|
|
SELECT DISTINCT criteriaId FROM cisCriteria c WITH(NOLOCK) INNER JOIN @cisValidationResult tmpc
|
|
ON c.cisDetailId = tmpc.cisDetailId)
|
|
AND ISNULL(scope,'D')='D' AND ISNULL(IsActive,'Y')='Y'
|
|
ORDER BY ISNULL(controlRankID,0)
|
|
*/
|
|
|
|
END
|
|
|
|
|
|
|
|
IF (@pBranch IS NOT NULL)
|
|
BEGIN
|
|
SELECT @pAgent = parentId, @pBranchName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch
|
|
SELECT @pSuperAgent = parentId, @pAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent
|
|
SELECT @pSuperAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pSuperAgent
|
|
END
|
|
|
|
|
|
--3. Check Limit starts
|
|
SELECT @collCurr = 'NPR', @payoutCurr = 'NPR'
|
|
SELECT @sendingCurrency = @collCurr
|
|
SELECT @receivingCurrency = @payoutCurr
|
|
|
|
SET @limitBal = [dbo].FNAGetLimitBal(@settlingAgent)
|
|
|
|
SELECT
|
|
@serviceCharge = ISNULL(serviceCharge, 0)
|
|
FROM dbo.FNAGetDomesticSendComm(@sBranch, NULL, @pLocation, @deliveryMethodId, @transferAmt)
|
|
|
|
IF (@transferAmt + ISNULL(@serviceCharge, 0)) > @limitBal
|
|
BEGIN
|
|
SELECT 1 errorCode,'Transfer amount exceeds Limit. Please, Check your available limit.' msg,NULL id,'compliance' vtype
|
|
RETURN
|
|
END
|
|
IF NOT EXISTS(SELECT 'A' FROM dbo.creditlimit (NOLOCK) WHERE agentId = @settlingAgent) AND ISNULL(@limitBal, 0) = 0
|
|
BEGIN
|
|
SELECT 1 errorCode,'Credit limit not set for sending agent, please contact HO.' msg,NULL id,'creditLimit' vtype
|
|
RETURN
|
|
END
|
|
|
|
SET @currentDate = dbo.FNAGetDateInNepalTz()
|
|
IF EXISTS(SELECT 'X' FROM remitTran trn WITH(NOLOCK)
|
|
LEFT JOIN tranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
|
|
LEFT JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
|
|
WHERE
|
|
sen.firstName = @sFirstName
|
|
AND ISNULL(sen.middleName, '') = ISNULL(@sMiddleName, '')
|
|
AND ISNULL(sen.lastName1, '') = ISNULL(@sLastName1, '')
|
|
AND ISNULL(sen.lastName2, '') = ISNULL(@sLastName2, '')
|
|
AND rec.firstName = @rFirstName
|
|
AND ISNULL(rec.middleName, '') = ISNULL(@rMiddleName, '')
|
|
AND ISNULL(rec.lastName1, '') = ISNULL(@rLastName1, '')
|
|
AND ISNULL(rec.lastName2, '') = ISNULL(@rLastName2, '')
|
|
AND trn.tAmt = @transferAmt
|
|
AND trn.pLocation = @pLocation
|
|
AND trn.serviceCharge = @serviceCharge
|
|
AND trn.cAmt = @cAmt
|
|
AND DATEDIFF(MI, trn.createdDate, @currentDate) <= @cutOffMinutes)
|
|
BEGIN
|
|
SELECT 1 errorCode,'Similar Transaction Found.' msg,NULL id,'compliance' vtype
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS (
|
|
SELECT
|
|
'X'
|
|
FROM sendTranLimit
|
|
WHERE countryId = @sCountryId
|
|
AND (tranType = @collMode OR tranType IS NULL)
|
|
AND (paymentType = @deliveryMethod OR paymentType IS NULL)
|
|
AND (customerType = @sendingCustType OR customerType IS NULL)
|
|
AND currency = @sendingCurrency
|
|
AND (receivingCountry = @pCountryId OR receivingCountry IS NULL)
|
|
AND ISNULL(minLimitAmt, 0) <= @transferAmt
|
|
AND ISNULL(maxLimitAmt, 0) >= @transferAmt
|
|
AND ISNULL(isActive, 'N') = 'Y'
|
|
)
|
|
BEGIN
|
|
SELECT 3 errorCode,'Country Sending limit is not defined or exceeds.' msg,NULL id,'compliance' vtype
|
|
RETURN
|
|
END
|
|
|
|
SELECT @deliveryMethodId = serviceTypeId FROM serviceTypeMaster WITH(NOLOCK) WHERE typeTitle = @deliveryMethod AND ISNULL(isDeleted, 'N') = 'N'
|
|
|
|
-------Compliance Check Begin----------
|
|
|
|
|
|
INSERT @csMasterRec(masterId)
|
|
SELECT masterId FROM dbo.FNAGetComplianceRuleMaster(@sBranch, @pCountryId, NULL, @pBranch, NULL, @senderId, @receiverId)
|
|
SELECT @totalRows = COUNT(*) FROM @csMasterRec
|
|
|
|
DECLARE @denyTxn CHAR(1) = 'N'
|
|
IF EXISTS(SELECT 'X' FROM @csMasterRec)
|
|
BEGIN
|
|
DELETE FROM remitTranComplianceTemp WHERE agentRefId = @agentUniqueRefId
|
|
SET @count = 1
|
|
WHILE(@count <= @totalRows)
|
|
BEGIN
|
|
SELECT @csMasterId = masterId FROM @csMasterRec WHERE rowId = @count
|
|
|
|
EXEC proc_complianceRuleDetail
|
|
@user = @user
|
|
,@tranId = @id
|
|
,@tAmt = @transferAmt
|
|
,@senId = @senderId
|
|
,@benId = @receiverId
|
|
,@beneficiaryName = @receiverName
|
|
,@beneficiaryMobile = @rContactNo
|
|
,@benAccountNo = @accountNo
|
|
,@masterId = @csMasterId
|
|
,@paymentMethod = @deliveryMethodId
|
|
,@checkingFor = 'v'
|
|
,@agentRefId = @agentUniqueRefId
|
|
,@result = @complianceRes OUTPUT
|
|
,@senderId = @sIdNo
|
|
,@senderName = @senderName
|
|
,@senderMobile = @sContactNo
|
|
|
|
SET @compFinalRes = ISNULL(@compFinalRes, '') + ISNULL(@complianceRes, '')
|
|
|
|
IF @complianceRes = 'M' AND ISNULL(@complianceAction, '') <> 'B' AND ISNULL(@complianceAction, '') <> 'C'
|
|
SET @complianceAction = 'M'
|
|
IF @complianceRes = 'C' AND ISNULL(@complianceAction, '') <> 'B'
|
|
SET @complianceAction = 'C'
|
|
IF @complianceRes = 'B'
|
|
SET @complianceAction = 'B'
|
|
SET @count = @count + 1
|
|
END
|
|
END
|
|
|
|
IF(ISNULL(@compFinalRes, '') <> '')
|
|
BEGIN
|
|
IF(@compFinalRes <> '')
|
|
BEGIN
|
|
IF @complianceAction = 'B'
|
|
SET @msg = 'WARNING!!! This customer is under compliance'
|
|
ELSE IF @complianceAction = 'M'
|
|
BEGIN
|
|
SET @compApproveRemark = ISNULL(@compApproveRemark, 'Marked for Compliance')
|
|
SET @msg = 'WARNING!!! This customer is under compliance'
|
|
END
|
|
ELSE
|
|
SET @msg = 'WARNING!!! This customer is under compliance'
|
|
SET @msg = ''
|
|
--SELECT 101 errorCode, @msg msg, @complianceAction id, @compApproveRemark compApproveRemark
|
|
SELECT 101 errorCode,@msg msg, @complianceAction id, @compApproveRemark compApproveRemark,'compliance' vtype
|
|
|
|
END
|
|
RETURN
|
|
END
|
|
|
|
-------Compliance Check End----------
|
|
|
|
--EXEC [proc_errorHandler] 0, 'Transaction verification Successful', NULL
|
|
SELECT 0 errorCode,'Transaction verification Successful.' msg,NULL id,'compliance' vtype
|
|
|
|
--*****Check For Same Name*****
|
|
SELECT tranId = rt.id, senderName, sIdType = ISNULL(sdv.detailTitle,sen.IdType), sIdNo = sen.idNumber, pAmt, pCountry
|
|
FROM vwRemitTran rt WITH(NOLOCK)
|
|
INNER JOIN vwTranSenders sen WITH(NOLOCK) ON rt.id = sen.tranId
|
|
LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON sen.idType=CAST(sdv.valueId AS VARCHAR)
|
|
WHERE senderName = @senderName AND sBranch = @sBranch AND rt.createdDate BETWEEN CONVERT(VARCHAR, GETDATE(), 101) AND CONVERT(VARCHAR, GETDATE(), 101) + ' 23:59:59'
|
|
|
|
--*****Check For Same Id*****
|
|
SELECT tranId = rt.id, senderName, sIdType = ISNULL(sdv.detailTitle,sen.IdType), sIdNo = sen.idNumber, pAmt, pCountry
|
|
FROM vwRemitTran rt WITH(NOLOCK)
|
|
INNER JOIN vwTranSenders sen WITH(NOLOCK) ON rt.id = sen.tranId
|
|
LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON sen.idType=CAST(sdv.valueId AS VARCHAR)
|
|
WHERE idType = @sIdType AND sBranch = @sBranch AND idNumber = @sIdNo AND rt.createdDate BETWEEN CONVERT(VARCHAR, GETDATE(), 101) AND CONVERT(VARCHAR, GETDATE(), 101) + ' 23:59:59'
|
|
RETURN
|
|
END
|
|
|
|
ELSE IF @flag = 'i'
|
|
BEGIN
|
|
IF @user IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Your session has expired. Cannot send transaction', NULL
|
|
RETURN
|
|
END
|
|
|
|
IF @deliveryMethod = 'Cash Payment' AND @transferAmt > dbo.FNAGetDomesticSendLimit() --AND @transferAmt > 100000
|
|
BEGIN
|
|
SELECT 1 errorCode,'Transfer amount exceeds Limit.' msg,NULL id
|
|
RETURN
|
|
END
|
|
|
|
|
|
SET @txtPass = dbo.FNAEncryptString(@txtPass)
|
|
IF NOT EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE PWD = @txtPass AND userName = @user)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'TXN password is invalid !', @user
|
|
RETURN
|
|
END
|
|
IF(DATEDIFF(MI,CAST(dbo.FNAGetDateInNepalTZ() AS TIME), CAST(@fromSendTrnTime AS TIME))) > 0
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'You are not authorized to send at this time', NULL
|
|
RETURN
|
|
END
|
|
IF(DATEDIFF(MI,CAST(dbo.FNAGetDateInNepalTZ() AS TIME), CAST(@toSendTrnTime AS TIME))) < 0
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'You are not authorized to send at this time', NULL
|
|
RETURN
|
|
END
|
|
|
|
SET @controlNo = '777' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '00000000', 8) + 'B'
|
|
SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
|
|
|
|
IF @user IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Your session has expired. Cannot send transaction', NULL
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS(SELECT 'X' FROM dbo.controlNoListDomestic WITH(NOLOCK) WHERE controlNo = @controlNo)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Technical error occured. Please try again.', NULL
|
|
RETURN
|
|
END
|
|
|
|
SELECT @pCountry = 'Nepal'
|
|
SELECT @sCountry = 'Nepal'
|
|
SELECT @pCountryId = '151'
|
|
SELECT @sCountryId = '151'
|
|
|
|
SELECT @collCurr = 'NPR', @payoutCurr = 'NPR'
|
|
SELECT @sendingCurrency = @collCurr
|
|
SELECT @receivingCurrency = @payoutCurr
|
|
|
|
SET @limitBal = [dbo].FNAGetLimitBal(@settlingAgent)
|
|
|
|
SET @currentDate = dbo.FNAGetDateInNepalTz()
|
|
IF EXISTS(SELECT 'X' FROM remitTran trn WITH(NOLOCK)
|
|
LEFT JOIN tranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
|
|
LEFT JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
|
|
WHERE
|
|
sen.firstName = @sFirstName
|
|
AND ISNULL(sen.middleName, '') = ISNULL(@sMiddleName, '')
|
|
AND ISNULL(sen.lastName1, '') = ISNULL(@sLastName1, '')
|
|
AND ISNULL(sen.lastName2, '') = ISNULL(@sLastName2, '')
|
|
AND rec.firstName = @rFirstName
|
|
AND ISNULL(rec.middleName, '') = ISNULL(@rMiddleName, '')
|
|
AND ISNULL(rec.lastName1, '') = ISNULL(@rLastName1, '')
|
|
AND ISNULL(rec.lastName2, '') = ISNULL(@rLastName2, '')
|
|
AND trn.tAmt = @transferAmt
|
|
AND trn.pLocation = @pLocation
|
|
AND trn.serviceCharge = @serviceCharge
|
|
AND trn.cAmt = @cAmt
|
|
AND DATEDIFF(MI, trn.createdDate, @currentDate) <= @cutOffMinutes)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Similar Transaction Found', NULL
|
|
RETURN
|
|
END
|
|
SELECT
|
|
@serviceCharge = ISNULL(serviceCharge, 0)
|
|
FROM dbo.FNAGetDomesticSendComm(@sBranch, NULL, @pLocation, @deliveryMethodId, @transferAmt)
|
|
|
|
IF @transferAmt + ISNULL(@serviceCharge, 0) > ISNULL(@limitBal,0)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transfer amount exceeds Limit. Please, Check your available limit.', NULL
|
|
RETURN
|
|
END
|
|
|
|
|
|
|
|
IF NOT EXISTS (
|
|
SELECT
|
|
'X'
|
|
FROM sendTranLimit
|
|
WHERE countryId = @sCountryId
|
|
AND (tranType = @collMode OR tranType IS NULL)
|
|
AND (paymentType = @deliveryMethod OR paymentType IS NULL)
|
|
AND (customerType = @sendingCustType OR customerType IS NULL)
|
|
AND currency = @sendingCurrency
|
|
AND (receivingCountry = @pCountryId OR receivingCountry IS NULL)
|
|
AND ISNULL(minLimitAmt, 0) <= @transferAmt
|
|
AND ISNULL(maxLimitAmt, 0) >= @transferAmt
|
|
AND ISNULL(isActive, 'N') = 'Y'
|
|
)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Country Sending limit is not defined or exceeds.', NULL
|
|
RETURN
|
|
END
|
|
|
|
--1.Txn Amount and Service Charge Validation
|
|
SELECT @deliveryMethodId = serviceTypeId FROM serviceTypeMaster WITH(NOLOCK) WHERE typeTitle = @deliveryMethod AND ISNULL(isDeleted, 'N') = 'N'
|
|
|
|
--Domestic Service Charge and Commission Calculation
|
|
IF @deliveryMethod = 'Bank Deposit'
|
|
BEGIN
|
|
SELECT @pLocation = agentLocation, @pLocation = agentLocation, @pBank = parentId, @pBankBranchName = agentName, @bankBranchName = agentAddress
|
|
FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBankBranch
|
|
SELECT @pBankName = agentName, @branchMapCode = mapCodeDom FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBank
|
|
|
|
SELECT @pAgent = @pBank, @pAgentName = @pBankName, @pBranch = @pBankBranch, @pBranchName = @pBankBranchName
|
|
|
|
SET @pAgentComm = 0
|
|
SET @pSuperAgentComm = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT
|
|
@pAgentComm = ISNULL(pAgentComm, 0)
|
|
,@pSuperAgentComm = ISNULL(psAgentComm, 0)
|
|
FROM dbo.FNAGetDomesticPayCommForCancel(@sBranch, @pLocation, @deliveryMethodId, @transferAmt)
|
|
END
|
|
|
|
SELECT
|
|
@serviceCharge = ISNULL(serviceCharge, 0)
|
|
,@sAgentComm = ISNULL(sAgentComm, 0)
|
|
,@sSuperAgentComm = ISNULL(ssAgentComm, 0)
|
|
FROM dbo.FNAGetDomesticSendComm(@sBranch, NULL, @pLocation, @deliveryMethodId, @transferAmt)
|
|
|
|
SELECT @sAgentCommCurrency = 'NPR', @sSuperAgentCommCurrency = 'NPR', @pAgentCommCurrency = 'NPR', @pSuperAgentCommCurrency = 'NPR'
|
|
|
|
IF (@cAmt IS NULL)
|
|
BEGIN
|
|
SET @cAmt = @transferAmt + @serviceCharge
|
|
END
|
|
|
|
SET @iCollectAmount = @transferAmt + @serviceCharge
|
|
IF(@cAmt <> @iCollectAmount)
|
|
BEGIN
|
|
SELECT 1 code, @agentUniqueRefId agent_refId, 'Collection Amount not match' [message], NULL
|
|
RETURN
|
|
END
|
|
|
|
SELECT @sFullName = @sFirstName + ISNULL( ' ' + @sMiddleName, '') + ISNULL( ' ' + @sLastName1, '') + ISNULL( ' ' + @sLastName2, '')
|
|
SELECT @rFullName = @rFirstName + ISNULL( ' ' + @rMiddleName, '') + ISNULL( ' ' + @rLastName1, '') + ISNULL( ' ' + @rLastName2, '')
|
|
|
|
--## Start Bonus Point
|
|
IF (ISNULL(@senderId, 0) <> 0)
|
|
BEGIN
|
|
DECLARE @maxPointsPerTxn INT, @bonusSchemeId INT, @bonusUnit INT, @bonusPoint INT
|
|
SELECT @bonusSchemeId = bonusId
|
|
,@maxPointsPerTxn = maxPointsPerTxn
|
|
FROM dbo.FNAGetBonusSetupDetail(@sCountryId, @sAgent, @sBranch, @pCountryId, @pAgent)
|
|
SELECT @bonusUnit = unit, @bonusPoint = points FROM bonusOperationSetup WITH(NOLOCK) WHERE bonusSchemeId = @bonusSchemeId
|
|
|
|
IF @bonusSchemeId IS NOT NULL
|
|
BEGIN
|
|
DECLARE @txnBonusPoint FLOAT
|
|
SET @txnBonusPoint = @pAmt * (CAST(@bonusPoint AS FLOAT)/CAST(@bonusUnit AS FLOAT))
|
|
SET @txnBonusPoint = CASE WHEN @txnBonusPoint > ISNULL(@maxPointsPerTxn, 0) THEN ISNULL(@maxPointsPerTxn, 0) ELSE ISNULL(@txnBonusPoint, 0) END
|
|
UPDATE customerMaster SET
|
|
bonusPointPending = ISNULL(bonusPointPending, 0) + @txnBonusPoint
|
|
,bonusTxnCount = ISNULL(bonusTxnCount, 0) + 1
|
|
,bonusTxnAmount = ISNULL(bonusTxnAmount, 0) + @pAmt
|
|
WHERE customerId = @senderId
|
|
END
|
|
-- ## update total send & activate txn date
|
|
UPDATE customerMaster SET
|
|
sendTxn = ISNULL(sendTxn,0)+1,
|
|
firstTxnDate = ISNULL(firstTxnDate,GETDATE())
|
|
WHERE customerId = @senderId
|
|
END
|
|
--## Start OFAC / Compliance
|
|
DECLARE @receiverOfacRes VARCHAR(MAX),
|
|
@ofacRes VARCHAR(MAX),
|
|
@ofacReason VARCHAR(MAX)
|
|
|
|
/*
|
|
EXEC proc_ofacTrackerDomestic @flag = 't', @name = @sFullName, @Result = @ofacRes OUTPUT
|
|
EXEC proc_ofacTrackerDomestic @flag = 't', @name = @rFullName, @Result = @receiverOfacRes OUTPUT
|
|
|
|
IF ISNULL(@ofacRes, '') <> ''
|
|
BEGIN
|
|
SET @ofacReason = 'Matched by sender name'
|
|
END
|
|
IF ISNULL(@receiverOfacRes, '') <> ''
|
|
BEGIN
|
|
SET @ofacRes = ISNULL(@ofacRes + ',' + @receiverOfacRes, '' + @receiverOfacRes)
|
|
SET @ofacReason = 'Matched by receiver name'
|
|
END
|
|
IF ISNULL(@ofacRes, '') <> '' AND ISNULL(@receiverOfacRes, '') <> ''
|
|
BEGIN
|
|
SET @ofacReason = 'Matched by both sender name and receiver name'
|
|
END
|
|
*/
|
|
BEGIN TRANSACTION
|
|
INSERT INTO remitTran(
|
|
controlNo
|
|
,sCurrCostRate
|
|
,sCurrHoMargin
|
|
,pCurrCostRate
|
|
,pCurrHoMargin
|
|
,sCurrAgentMargin
|
|
,pCurrAgentMargin
|
|
,sCurrSuperAgentMargin
|
|
,pCurrSuperAgentMargin
|
|
,customerRate
|
|
,sAgentSettRate
|
|
,pDateCostRate
|
|
,serviceCharge
|
|
,handlingFee
|
|
,sAgentComm
|
|
,sAgentCommCurrency
|
|
,sSuperAgentComm
|
|
,sSuperAgentCommCurrency
|
|
,sHubComm
|
|
,sHubCommCurrency
|
|
,pAgentComm
|
|
,pAgentCommCurrency
|
|
,pSuperAgentComm
|
|
,pSuperAgentCommCurrency
|
|
,pHubComm
|
|
,pHubCommCurrency
|
|
,promotionCode
|
|
,promotionType
|
|
,pMessage
|
|
,sSuperAgent
|
|
,sSuperAgentName
|
|
,sAgent
|
|
,sAgentName
|
|
,sBranch
|
|
,sBranchName
|
|
,sCountry
|
|
,pSuperAgent
|
|
,pSuperAgentName
|
|
,pAgent
|
|
,pAgentName
|
|
,pBranch
|
|
,pBranchName
|
|
,pCountry
|
|
,pState
|
|
,pDistrict
|
|
,pLocation
|
|
,paymentMethod
|
|
,pBank
|
|
,pBankName
|
|
,pBankBranch
|
|
,pBankBranchName
|
|
,accountNo
|
|
,collMode
|
|
,collCurr
|
|
,tAmt
|
|
,cAmt
|
|
,pAmt
|
|
,payoutCurr
|
|
,relWithSender
|
|
,purposeOfRemit
|
|
,sourceOfFund
|
|
,tranStatus
|
|
,payStatus
|
|
,createdDate
|
|
,createdDateLocal
|
|
,createdBy
|
|
,approvedDate
|
|
,approvedDateLocal
|
|
,approvedBy
|
|
,tranType
|
|
,senderName
|
|
,receiverName
|
|
,bonusPoint
|
|
)
|
|
|
|
SELECT
|
|
dbo.FNAEncryptString(@controlNo)
|
|
,@sCurrCostRate
|
|
,@sCurrHoMargin
|
|
,@pCurrCostRate
|
|
,@pCurrHoMargin
|
|
,@sCurrAgentMargin
|
|
,@pCurrAgentMargin
|
|
,@sCurrSuperAgentMargin
|
|
,@pCurrSuperAgentMargin
|
|
,@customerRate
|
|
,@sAgentSettRate
|
|
,@pDateCostRate
|
|
,@serviceCharge
|
|
,@handlingFee
|
|
,@sAgentComm
|
|
,@sAgentCommCurrency
|
|
,@sSuperAgentComm
|
|
,@sSuperAgentCommCurrency
|
|
,@sHubComm
|
|
,@sHubCommCurrency
|
|
,@pAgentComm
|
|
,@pAgentCommCurrency
|
|
,@pSuperAgentComm
|
|
,@pSuperAgentCommCurrency
|
|
,@pHubComm
|
|
,@pHubCommCurrency
|
|
,@promotionCode
|
|
,@promotionType
|
|
,@remarks
|
|
,@sSuperAgent
|
|
,@sSuperAgentName
|
|
,@sAgent
|
|
,@sAgentName
|
|
,@sBranch
|
|
,@sBranchName
|
|
,@sCountry
|
|
,@pSuperAgent
|
|
,@pSuperAgentName
|
|
,@pAgent
|
|
,@pAgentName
|
|
,@pBranch
|
|
,@pBranchName
|
|
,@pCountry
|
|
,@pState
|
|
,@pDistrict
|
|
,@pLocation
|
|
,@deliveryMethod
|
|
,@pBank
|
|
,@pBankName
|
|
,@pBankBranch
|
|
,@pBankBranchName
|
|
,@accountNo
|
|
,@collMode
|
|
,@collCurr
|
|
,@transferAmt
|
|
,@cAmt
|
|
,@pAmt
|
|
,@payoutCurr
|
|
,@relationship
|
|
,@purpose
|
|
,@sourceOfFund
|
|
,'Payment'
|
|
,'Unpaid'
|
|
,dbo.FNAGetDateInNepalTZ()
|
|
,dbo.FNAGetDateInNepalTZ()
|
|
,@user
|
|
,dbo.FNAGetDateInNepalTZ()
|
|
,dbo.FNAGetDateInNepalTZ()
|
|
,@user
|
|
,'D'
|
|
,@sFullName
|
|
,@rFullName
|
|
,@txnBonusPoint
|
|
|
|
SET @id = SCOPE_IDENTITY()
|
|
|
|
IF (ISNULL(@senderId, 0) <> 0 and ISNULL(@sMemId, 0) <> 0)
|
|
BEGIN
|
|
INSERT INTO tranSenders(
|
|
tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2
|
|
,country,[address],[state],district,email,mobile
|
|
,dob,idPlaceOfIssue,idType,idNumber,dcInfo,ipAddress,occupation,workPhone
|
|
)
|
|
SELECT top 1
|
|
@id,@senderId,membershipId,@sFirstName,@sMiddleName,@sLastName1,@sLastName2
|
|
,pCountry,@sAddress,pZone,pDistrict,@sEmail,@sContactNo
|
|
,dobEng,c.placeOfIssue,@sIdType,@sIdNo,@sDcInfo,@sIpAddress,@occupation,@topupMobileNo
|
|
FROM customerMaster c WITH(NOLOCK)
|
|
WHERE c.customerId = @senderId
|
|
|
|
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO tranSenders(
|
|
tranId,firstName,middleName,lastName1,lastName2
|
|
,country,[address],[state],zipCode,city,email,homePhone,workPhone,mobile,nativeCountry
|
|
,dob,placeOfIssue,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,dcInfo,ipAddress,occupation
|
|
)
|
|
SELECT
|
|
@id,@sFirstName,@sMiddleName,@sLastName1,@sLastName2
|
|
,'Nepal',@sAddress,NULL,NULL,NULL,@sEmail,NULL,NULL,@sContactNo,NULL
|
|
,NULL,NULL,@sIdType,@sIdNo,NULL,NULL,NULL,@sDcInfo,@sIpAddress,@occupation
|
|
END
|
|
IF (ISNULL(@receiverId, 0) <> 0 and ISNULL(@rMemId, 0) <> 0)
|
|
BEGIN
|
|
INSERT INTO tranReceivers(
|
|
tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2
|
|
,country,[address],[state],district,email,mobile
|
|
,dob,idPlaceOfIssue,idType,idNumber
|
|
)
|
|
SELECT top 1
|
|
@id,@receiverId,membershipId,@rFirstName,@rMiddleName,@rLastName1,@rLastName2
|
|
,pCountry,@rAddress,pZone,pDistrict,email,@rContactNo
|
|
,dobEng,c.placeOfIssue,@rIdType,@rIdNo
|
|
|
|
FROM customerMaster c WITH(NOLOCK)
|
|
WHERE c.customerId = @receiverId
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO tranReceivers(
|
|
tranId,firstName,middleName,lastName1,lastName2
|
|
,country,[address],[state],zipCode,city,email,homePhone,workPhone,mobile,nativeCountry
|
|
,dob,placeOfIssue,idType,idNumber,idPlaceOfIssue,issuedDate,validDate
|
|
)
|
|
SELECT
|
|
@id,@rFirstName,@rMiddleName,@rLastName1,@rLastName2
|
|
,'Nepal',@rAddress,NULL,NULL,NULL,NULL,NULL,NULL,@rContactNo,NULL
|
|
,NULL,NULL,@rIdType,@rIdNo,NULL,NULL,NULL
|
|
END
|
|
|
|
-- Move Txn Document
|
|
IF EXISTS(SELECT 'x' FROM dbo.txnDocUploadTEMP WITH(NOLOCK) WHERE batchId = @txnbatchId)
|
|
BEGIN
|
|
INSERT INTO txnDocUpload (
|
|
tranId
|
|
,[fileName]
|
|
,fileType
|
|
,fileDescription
|
|
,txnDocFolder
|
|
,createdBy
|
|
,createdDate
|
|
)
|
|
SELECT
|
|
@id
|
|
,[fileName]
|
|
,fileType
|
|
,fileDescription
|
|
,@txnDocFolder
|
|
,createdBy
|
|
,createdDate FROM dbo.txnDocUploadTEMP WITH(NOLOCK) WHERE batchId = @txnbatchId
|
|
|
|
DELETE FROM dbo.txnDocUploadTEMP WHERE batchId = @txnbatchId
|
|
END
|
|
|
|
-------Compliance Check Begin----------
|
|
|
|
IF EXISTS(SELECT 'X' FROM remitTranComplianceTemp WITH(NOLOCK) WHERE agentRefId = @agentUniqueRefId)
|
|
BEGIN
|
|
INSERT INTO remitTranCompliance(TranId, csDetailTranId, matchTranId)
|
|
SELECT @id, csDetailTranId, matchTranId FROM remitTranComplianceTemp WITH(NOLOCK) WHERE agentRefId = @agentUniqueRefId
|
|
|
|
DELETE FROM dbo.remitTranComplianceTemp WHERE agentRefId = @agentUniqueRefId
|
|
SET @compFinalRes = 'C'
|
|
END
|
|
/*
|
|
IF EXISTS(SELECT 'X' FROM @remitTranTemp WHERE dot BETWEEN CONVERT(VARCHAR, GETDATE(), 101) AND CONVERT(VARCHAR, GETDATE(), 101) + ' 23:59:59' AND cAmt = @cAmt AND (receiverName = @receiverName OR (ISNULL(receiverIdType, '0') = @rIdType AND ISNULL(rec
|
|
|
|
|
|
|
|
eiverIdNumber, '0') = @rIdNo)))
|
|
BEGIN
|
|
INSERT INTO remitTranCompliance(TranId, csDetailTranId, matchTranId, reason)
|
|
SELECT @id, 0, tranid, 'Suspected duplicate transaction' FROM @remitTranTemp WHERE cAmt = @cAmt AND (receiverName = @receiverName OR (ISNULL(receiverIdType, '0') = @rIdType AND ISNULL(receiverIdNumber, '0') = @rIdNo))
|
|
SET @compFinalRes = 'C'
|
|
SET @complianceAction = 'C'
|
|
END
|
|
*/
|
|
---------------------------------
|
|
|
|
IF(ISNULL(@compFinalRes, '') <> '' OR ISNULL(@ofacRes, '') <> '')
|
|
BEGIN
|
|
IF(ISNULL(@ofacRes, '') <> '' AND ISNULL(@compFinalRes, '') = '')
|
|
BEGIN
|
|
INSERT remitTranOfac(TranId, blackListId, reason, flag)
|
|
SELECT @id, @ofacRes, @ofacReason, dbo.FNAGetOFAC_Flag(@ofacRes)
|
|
|
|
UPDATE remitTran SET
|
|
tranStatus = 'OFAC Hold'
|
|
WHERE id = @id
|
|
END
|
|
ELSE IF(@compFinalRes <> '' AND ISNULL(@ofacRes, '') = '')
|
|
BEGIN
|
|
|
|
IF ISNULL(@complianceAction, '') = 'M'
|
|
BEGIN
|
|
UPDATE remitTran SET
|
|
tranStatus = 'Hold'
|
|
WHERE id = @id
|
|
|
|
UPDATE remitTranCompliance SET
|
|
approvedRemarks = @compApproveRemark
|
|
,approvedBy = 'system'
|
|
,approvedDate = GETDATE()
|
|
WHERE tranId = @id
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE remitTran SET
|
|
tranStatus = 'Compliance Hold'
|
|
WHERE id = @id
|
|
END
|
|
END
|
|
ELSE IF(ISNULL(@compFinalRes, '') <> '' AND ISNULL(@ofacRes, '') <> '')
|
|
BEGIN
|
|
|
|
INSERT remitTranOfac(TranId, blackListId, reason, flag)
|
|
SELECT @id, @ofacRes, @ofacReason, dbo.FNAGetOFAC_Flag(@ofacRes)
|
|
|
|
IF ISNULL(@complianceAction, '') = 'M'
|
|
BEGIN
|
|
UPDATE remitTran SET
|
|
tranStatus = 'OFAC Hold'
|
|
WHERE id = @id
|
|
|
|
UPDATE remitTranCompliance SET
|
|
approvedRemarks = @compApproveRemark
|
|
,approvedBy = 'system'
|
|
,approvedDate = GETDATE()
|
|
WHERE tranId = @id
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE remitTran SET
|
|
tranStatus = 'OFAC/Compliance Hold'
|
|
WHERE id = @id
|
|
END
|
|
END
|
|
END
|
|
|
|
INSERT INTO controlNoListDomestic(controlNo)
|
|
SELECT @controlNo
|
|
|
|
EXEC FastMoneyPro_Account.dbo.[PROC_REMIT_DATA_UPDATE]
|
|
@flag = 's'
|
|
,@controlNo = @controlNo
|
|
,@mapCode = @mapCodeDom
|
|
,@sFirstName = @sFirstName
|
|
,@sMiddleName = @sMiddleName
|
|
,@sLastName1 = @sLastName1
|
|
,@sLastName2 = @sLastName2
|
|
,@rFirstName = @rFirstName
|
|
,@rMiddleName = @rMiddleName
|
|
,@rLastName1 = @rLastName1
|
|
,@rLastName2 = @rLastName2
|
|
,@cAmt = @cAmt
|
|
,@pAmt = @pAmt
|
|
,@serviceCharge = @serviceCharge
|
|
,@sAgentComm = @sAgentComm
|
|
,@pAgentComm = @pAgentComm
|
|
,@pBank = @pBank
|
|
,@pBankName = @pBankName
|
|
,@pBankBranch = @pBankBranch
|
|
,@deliveryMethod = @deliveryMethod
|
|
,@user = @user
|
|
,@tranId = @id
|
|
|
|
IF @remarks IS NOT NULL
|
|
BEGIN
|
|
INSERT INTO tranModifyLog(tranId,[message],createdBy,createdDate,MsgType,[status])
|
|
SELECT @id,@remarks,@user,dbo.FNAGetDateInNepalTZ(),'','Not Resolved'
|
|
END
|
|
|
|
EXEC Proc_AgentBalanceUpdate @flag = 's',@tAmt = @cAmt ,@settlingAgent = @settlingAgent
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION
|
|
EXEC [proc_errorHandler] 0, 'Transaction has been sent successfully', @controlNo
|
|
END
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0
|
|
ROLLBACK TRANSACTION
|
|
SELECT 1 error_code, ERROR_MESSAGE() mes, null id,NULL vtype
|
|
END CATCH
|
|
|
|
|