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.
1775 lines
138 KiB
1775 lines
138 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_Online_sendTxnTP] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
ALTER PROC [dbo].[proc_Online_sendTxnTP]
|
|
(
|
|
@flag VARCHAR(50) ,
|
|
@user VARCHAR(100) ,
|
|
@senderId VARCHAR(50) = NULL ,
|
|
@sIpAddress VARCHAR(50) = NULL ,
|
|
@benId VARCHAR(50) = NULL ,
|
|
@rfName VARCHAR(100) = NULL ,
|
|
@sIdType VARCHAR(100) =NULL,
|
|
@sIdNo VARCHAR(100) =NULL,
|
|
@sMobile VARCHAR(50) = NULL ,
|
|
@rIdType VARCHAR(100) = NULL ,
|
|
@rIdNo VARCHAR(50) = NULL ,
|
|
@rIdValid DATETIME = NULL ,
|
|
@rdob DATETIME = NULL ,
|
|
@rTel VARCHAR(20) = NULL ,
|
|
@rMobile VARCHAR(20) = NULL ,
|
|
@rNaCountry VARCHAR(50) = NULL ,
|
|
@rcity VARCHAR(50) = NULL ,
|
|
@rAdd1 VARCHAR(150) = NULL ,
|
|
@rEmail VARCHAR(100) = NULL ,
|
|
@raccountNo VARCHAR(50) = NULL ,
|
|
@pCountry VARCHAR(50) = NULL -- pay country
|
|
,@pCountryId INT = NULL -- PAY COUNTRY ID
|
|
,@deliveryMethod VARCHAR(50) = NULL -- payment mode
|
|
,@deliveryMethodId INT = NULL -- payment mode ID
|
|
,@pBank INT = NULL ,
|
|
@pBankName VARCHAR(100) = NULL ,
|
|
@pBankBranch INT = NULL ,
|
|
@pBankBranchName VARCHAR(100) = NULL ,
|
|
@pAgent INT = NULL ,
|
|
@pAgentName VARCHAR(100) = NULL ,
|
|
@pBranch INT = NULL ,
|
|
@pBranchName VARCHAR(100) = NULL ,
|
|
@pBankType CHAR(1) = NULL ,
|
|
@pSuperAgent INT = NULL ,
|
|
@pCurr VARCHAR(3) = NULL ,
|
|
@collCurr VARCHAR(3) = NULL ,
|
|
@cAmt MONEY = NULL ,
|
|
@pAmt MONEY = NULL ,
|
|
@tAmt MONEY = NULL ,
|
|
@serviceCharge MONEY = NULL ,
|
|
@discount MONEY = NULL ,
|
|
@exRate DECIMAL(12,9) = NULL ,
|
|
@purpose VARCHAR(150) = NULL ,
|
|
@sourceOfFund VARCHAR(150) = NULL ,
|
|
@relationship VARCHAR(100) = NULL ,
|
|
@occupation VARCHAR(100) = NULL ,
|
|
@payMsg VARCHAR(1000) = NULL ,
|
|
@controlNo VARCHAR(20) = NULL ,
|
|
@sCountryId INT = NULL ,
|
|
@sCountry VARCHAR(100) = 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 ,
|
|
@branchMapCode VARCHAR(10) = NULL ,
|
|
@agentMapCode VARCHAR(10) = NULL ,
|
|
@collMode VARCHAR(50) = NULL ,
|
|
@depositMode VARCHAR(50) = NULL -- DEPOSIT MODE CASH OR BANK
|
|
,
|
|
@calBy CHAR(1) = NULL ,
|
|
@scDiscount MONEY = NULL ,
|
|
@cardOnline VARCHAR(50) = NULL ,
|
|
@memberShipId VARCHAR(50) = NULL ,
|
|
@agentRefId VARCHAR(50) = NULL ,
|
|
@couponCode VARCHAR(20) = NULL ,
|
|
@schemeId BIGINT = NULL ,
|
|
@tranId VARCHAR(50) = NULL ,
|
|
@ScOrderNo BIGINT = NULL ,
|
|
@unitaryBankAccountNo VARCHAR(50) = NULL ,
|
|
@RState VARCHAR(10) = NULL,
|
|
@RStateText VARCHAR(150) = NULL,
|
|
@RLocation VARCHAR(20) = NULL,
|
|
@RLocationText VARCHAR(150) = NULL,
|
|
@VoucherXML XML=null,
|
|
@tpExRate FLOAT = null,
|
|
@tpPCurr varchar(10) = null,
|
|
@tpRefNo varchar(20) = null,
|
|
@tpTranId varchar(20) = null,
|
|
@tpAgentId int = null,
|
|
@payOutPartner BIGINT = NULL,
|
|
@FOREX_SESSION_ID VARCHAR(40) = NULL,
|
|
@kftcLogId BIGINT = NULL,
|
|
@paymentType VARCHAR(20) = NULL
|
|
)
|
|
AS
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
IF @paymentType IS NULL
|
|
set @paymentType ='wallet'
|
|
|
|
IF @paymentType='autodebit'
|
|
BEGIN
|
|
DECLARE @DATE DATETIME, @NextDate datetime
|
|
select @DATE = CAST(GETDATE() AS DATE)
|
|
SELECT @NextDate = DATEADD(DAY,1,@DATE)
|
|
|
|
SELECT @DATE = @DATE+' 23:20:00',@NextDate = @NextDate+' 00:40:00'
|
|
|
|
IF GETDATE() BETWEEN @DATE AND @NextDate
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,'KFTC service is not available between 11:30 PM to 12:30 AM' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
BEGIN TRY
|
|
BEGIN
|
|
DECLARE @sCurrCostRate FLOAT ,
|
|
@sCurrHoMargin FLOAT ,
|
|
@pCurrCostRate FLOAT ,
|
|
@pCurrHoMargin FLOAT ,
|
|
@sCurrAgentMargin FLOAT ,
|
|
@pCurrAgentMargin FLOAT ,
|
|
@sCurrSuperAgentMargin FLOAT ,
|
|
@pCurrSuperAgentMargin FLOAT ,
|
|
@customerRate DECIMAL(15,10) ,
|
|
@sAgentSettRate FLOAT ,
|
|
@pDateCostRate FLOAT ,
|
|
@agentCrossSettRate FLOAT ,
|
|
@treasuryTolerance FLOAT ,
|
|
@customerPremium FLOAT ,
|
|
@schemePremium FLOAT = NULL,
|
|
@sharingValue MONEY ,
|
|
@sharingType CHAR(1) ,
|
|
@sAgentComm MONEY ,
|
|
@sAgentCommCurrency VARCHAR(3) ,
|
|
@sSuperAgentComm MONEY ,
|
|
@sSuperAgentCommCurrency VARCHAR(3) ,
|
|
@pAgentComm MONEY ,
|
|
@pAgentCommCurrency VARCHAR(3) ,
|
|
@pCommissionType CHAR(1) ,
|
|
@pSuperAgentComm MONEY ,
|
|
@pSuperAgentCommCurrency VARCHAR(3) ,
|
|
@pSuperAgentName VARCHAR(100),
|
|
--, @pCountryId INT
|
|
@pStateId INT,
|
|
--,@deliveryMethodId INT
|
|
@senderName VARCHAR(100),
|
|
@id INT ,
|
|
@customerStatus VARCHAR(20) ,
|
|
@idExpiryDate DATETIME,
|
|
@limitBal MONEY,
|
|
@customerType INT
|
|
|
|
|
|
DECLARE @rowId INT;
|
|
DECLARE @scValue MONEY ,
|
|
@exRateOffer MONEY ,
|
|
@scAction VARCHAR(5) ,
|
|
@AmountLimitPerTran MONEY ,
|
|
@AmountLimitPerDay MONEY ,
|
|
@todaysTotalSent MONEY ,
|
|
@tranMinimum MONEY ,
|
|
@tranMaximum MONEY
|
|
|
|
DECLARE @ad FLOAT;
|
|
|
|
DECLARE @xAmt MONEY ,
|
|
@sendingCustType INT ,
|
|
@msg VARCHAR(MAX);
|
|
DECLARE @iServiceCharge MONEY ,
|
|
@iTAmt MONEY ,
|
|
@iPAmt MONEY ,
|
|
@iCAmt MONEY ,
|
|
@iCustomerRate FLOAT
|
|
DECLARE @place INT ,
|
|
@currDecimal INT;
|
|
|
|
DECLARE @controlNoEncrypted VARCHAR(20);
|
|
DECLARE @csMasterId INT ,
|
|
@count INT ,
|
|
@compFinalRes VARCHAR(20);
|
|
DECLARE @GMTDate VARCHAR(50);
|
|
DECLARE @createdDate DATETIME;
|
|
DECLARE @SENDERS_IDENTITY_TYPE VARCHAR(50);
|
|
DECLARE @errorCode CHAR(1)= 0 ,@agentAvlLimit MONEY;
|
|
|
|
SET @GMTDate = dbo.FNAGMTOnline(GETDATE(), @user);
|
|
|
|
SELECT @sAgent = sAgent,
|
|
@sAgentName = sAgentName,
|
|
@sBranch = sBranch,
|
|
@sBranchName = sBranchName,
|
|
@sSuperAgent = sSuperAgent,
|
|
@sSuperAgentName = sSuperAgentName
|
|
FROM dbo.FNAGetBranchFullDetails(@sBranch)
|
|
|
|
IF @pCountryId IS NULL
|
|
SELECT TOP 1 @pCountryId = countryId FROM countryMaster (NOLOCK) WHERE countryName = @pCountry
|
|
|
|
IF @pCountry LIKE '%?%'
|
|
SELECT TOP 1 @pCountry = COUNTRYNAME FROM COUNTRYMASTER (NOLOCK) WHERE COUNTRYID = @pCountryId
|
|
|
|
DECLARE @discountType VARCHAR(2) = null, @discountvalue money =null, @couponType VARCHAR(3) = NULL, @discountPercent money = null, @couponName VARCHAR(20) = NULL
|
|
|
|
SET @sCountryId = 118
|
|
SET @sCountry = 'South Korea'
|
|
SET @sAgentCommCurrency = 'KRW'
|
|
|
|
SELECT @pBank = @pAgent,
|
|
@pBankName = @pAgentName,
|
|
@pBankBranch = @pBranch ,
|
|
@pBankBranchName = CASE WHEN @pBranchName IS NULL THEN (SELECT TOP 1 agentName FROM agentMaster(NOLOCK) WHERE agentId = @pBranch) ELSE @pBranchName END;
|
|
SELECT @pAgent = null ,@pAgentName = NULL ,@pBranch = NULL ,@pBranchName = NULL;
|
|
|
|
SELECT TOP 1 @pAgent = AM.agentId
|
|
FROM agentMaster AM(NOLOCK)
|
|
WHERE AM.parentId = @payOutPartner AND agentType=2903 AND AM.isSettlingAgent = 'Y' AND AM.isApiPartner = 1
|
|
|
|
SELECT @pSuperAgent = sSuperAgent,@pSuperAgentName = sSuperAgentName,
|
|
@pAgent = sAgent,@pAgentName = sAgentName ,@pBranch = sBranch,@pBranchName = sBranchName
|
|
FROM dbo.FNAGetBranchFullDetails(@pAgent)
|
|
|
|
IF @flag = 'exRate' --Get Exchange Rate, Service Charge, Scheme/Offer and amount details
|
|
BEGIN
|
|
SELECT TOP 1
|
|
@senderId = customerId ,
|
|
@idExpiryDate = idExpiryDate ,
|
|
@createdDate = createdDate,
|
|
@sIdNo = idNumber,
|
|
@sIdType = idType,
|
|
@agentAvlLimit = dbo.FNAGetCustomerACBal(@user),
|
|
@customerStatus = CASE WHEN customerStatus IS NULL THEN 'pending' ELSE 'verified' END,
|
|
@todaysTotalSent = ISNULL(todaysSent, 0),
|
|
@customerType = customerType
|
|
FROM customerMaster WITH ( NOLOCK )
|
|
WHERE email = @user;
|
|
|
|
SELECT TOP 1 @sIdType = detailTitle FROM staticDataValue(NOLOCK) WHERE valueId = @sIdType
|
|
|
|
SELECT @scValue = 0 ,
|
|
@exRateOffer = 0 ,
|
|
@scDiscount = 0 ,
|
|
@AmountLimitPerTran = 3000,
|
|
@AmountLimitPerDay = 20000
|
|
|
|
--IF ( @idExpiryDate < GETDATE() AND @sIdType <> 'National ID')
|
|
--BEGIN
|
|
-- SELECT '1' ErrorCode ,
|
|
-- 'Your provided photo id has been expired. Please contact GME Support Team by writing email to support@gmeremit.com or call on +44 (0) 20 8861 2264.' Msg ,
|
|
-- amountLimitPerDay = @AmountLimitPerDay ,
|
|
-- customerTotalSentAmt = @todaysTotalSent ,
|
|
-- maxAmountLimitPerTran = @tranMaximum ,
|
|
-- PerTxnMinimumAmt = @tranMinimum;
|
|
-- RETURN;
|
|
--END;
|
|
|
|
SELECT @place = place ,
|
|
@currDecimal = currDecimal
|
|
FROM currencyPayoutRound(NOLOCK)
|
|
WHERE ISNULL(isDeleted, 'N') = 'N'
|
|
AND currency = @pCurr AND tranType IS NULL;
|
|
|
|
SET @currDecimal = ISNULL(@currDecimal,0)
|
|
|
|
IF @pCurr IS NULL
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'Currency not been defined yet for receiving country' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT @sCurrCostRate = sCurrCostRate,
|
|
@sCurrHoMargin = sCurrHoMargin,
|
|
@sAgentSettRate = sAgentSettRate
|
|
FROM dbo.FNAGetExRate(@sCountryId, @sAgent, @sBranch, @collCurr, @pCountryId, @pAgent, @pCurr, @deliveryMethod)
|
|
|
|
IF ISNULL(@sAgentSettRate, 0) = 0
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'Exchange rate not defined yet for sending currency (' + @collCurr + ')' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN
|
|
END
|
|
----## FOR RIA AND CONTACT "LOG" GET ONE TIME RATE FROM PARTNER AND STORE IN TABLE ,"SYSTEM" IS FOR GME RATE,"PARTNER" GET RATE FROM PARTNER END REALTIME
|
|
IF EXISTS(SELECT TOP 1 'X' FROM TblPartnerwiseCountry(NOLOCK) WHERE AgentId = @payOutPartner AND PaymentMethod = @deliveryMethod AND IsActive=1 AND GetRateFrom='Log')
|
|
BEGIN
|
|
SELECT TOP 1 @tpExRate = CurrCostRate FROM TBL_PARTNER_COST_RATE(NOLOCK)
|
|
WHERE ProviderId = @payOutPartner AND GETDATE() BETWEEN EffectiveFrom AND EffectiveTo
|
|
AND ToCurr = @pCurr AND FromCurr='USD' ORDER BY CreatedDate desc
|
|
|
|
IF ISNULL(@tpExRate, 0) = 0
|
|
BEGIN
|
|
SELECT '5' ErrorCode ,
|
|
'Call thirdparty api for Ex rate' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = 0 ,
|
|
maxAmountLimitPerTran = @AmountLimitPerTran ,
|
|
PerTxnMinimumAmt = @AmountLimitPerDay;
|
|
RETURN
|
|
END
|
|
|
|
END
|
|
|
|
IF ISNULL(@tpExRate, 0) = 0
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'Third Party Exchange rate fetching error for currency (' + @pCurr + ')' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN
|
|
END
|
|
|
|
SELECT @exRate = round(@tpExRate/@sAgentSettRate, 8)
|
|
|
|
--SELECT @exRate =
|
|
-- dbo.FNAGetCustomerRate(@sCountryId,@sAgent,@sBranch,@collCurr,@pCountryId,@pAgent, @pCurr,@deliveryMethod);
|
|
IF @exRate IS NULL
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'Exchange rate not defined yet for receiving currency ('+ @pCurr + ')' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
|
|
----- Calculation service charge using coupon
|
|
|
|
-- IF EXISTS (SELECT '1'
|
|
-- FROM CouponIssue(NOLOCK) AS CI
|
|
-- INNER JOIN CouponSetup(NOLOCK) AS CS
|
|
-- ON CI.couponId = CS.rowId
|
|
-- WHERE CI.customerId = @senderId
|
|
-- AND CI.endDate >= GETDATE()
|
|
-- AND CI.isActive = 'Y'
|
|
-- AND CS.endDate >= GETDATE()
|
|
-- AND CS.isActive = 'Y'
|
|
-- AND CS.couponType = '1'
|
|
-- AND (ISNULL(CS.usageLimit,0) = 0
|
|
-- OR ISNULL(CS.usageLimit,0) > ISNULL(CI.usedCount,0))
|
|
-- )
|
|
--BEGIN
|
|
SELECT TOP(1) @discountType = CS.discountType,
|
|
@couponName = CS.couponName,
|
|
@discountvalue = CS.discountValue,
|
|
@schemeId = CI.rowId, -- ADD coponIssue ID
|
|
@couponType = CS.couponType
|
|
FROM CouponIssue(NOLOCK) CI
|
|
INNER JOIN CouponSetup(NOLOCK) CS ON CI.couponId = CS.rowId
|
|
AND CI.isActive = 'Y'
|
|
AND CI.endDate >= GETDATE()
|
|
AND CS.endDate >= GETDATE()
|
|
AND CS.isActive = 'Y'
|
|
AND CS.couponType = '1'
|
|
AND customerId = @senderId
|
|
AND (ISNULL(CS.usageLimit,0) = 0
|
|
OR CS.usageLimit > CI.usedCount)
|
|
ORDER BY CI.rowId ASC
|
|
|
|
-- @discountType 1: PERCENTAGE, 2: MONEY
|
|
IF @discountType ='2'
|
|
BEGIN
|
|
SET @scDiscount = @discountvalue
|
|
END
|
|
--END
|
|
|
|
IF @calBy = 'C'
|
|
BEGIN
|
|
SELECT @serviceCharge = amount
|
|
FROM [dbo].FNAGetServiceCharge(@sCountryId,@sSuperAgent,@sAgent,@sBranch,
|
|
@pCountryId,@pSuperAgent,@pAgent,@pBranch,@deliveryMethod,@cAmt,@collCurr);
|
|
|
|
IF @serviceCharge IS NULL
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'Service charge not defined yet for receiving country' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
|
|
-- @discountType 1: PERCENTAGE, 2: MONEY
|
|
IF @discountType = '1'
|
|
BEGIN
|
|
SET @discountPercent = @discountvalue
|
|
SET @discountvalue = @serviceCharge * (@discountvalue/100)
|
|
SET @scDiscount = @discountvalue
|
|
END
|
|
|
|
SET @tAmt = @cAmt - @serviceCharge
|
|
SET @pAmt = ( @cAmt - @serviceCharge) * @exRate
|
|
|
|
SET @pAmt = ROUND(@pAmt,0)
|
|
END;
|
|
ELSE
|
|
IF @calBy = 'P'
|
|
BEGIN
|
|
SET @tAmt = @pAmt / ( @exRate+ @exRateOffer );
|
|
SELECT @serviceCharge = amount
|
|
FROM [dbo].FNAGetServiceCharge(@sCountryId,@sSuperAgent,@sAgent,@sBranch,
|
|
@pCountryId,@pSuperAgent,@pAgent,@pBranch,@deliveryMethod,
|
|
@tAmt, @collCurr);
|
|
|
|
IF @serviceCharge IS NULL
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'Service charge not defined yet for receiving country' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
-- @discountType 1: PERCENTAGE, 2: MONEY
|
|
IF @discountType = '1'
|
|
BEGIN
|
|
SET @discountPercent = @discountvalue
|
|
SET @discountvalue = @serviceCharge * (@discountvalue/100)
|
|
SET @scDiscount = @discountvalue
|
|
END
|
|
|
|
SET @tAmt = ROUND(@tAmt, 0);
|
|
SET @cAmt = @tAmt + @serviceCharge
|
|
|
|
SET @cAmt = ROUND(@cAmt, 0);
|
|
END;
|
|
|
|
IF @serviceCharge > @cAmt
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'COLLECTION AMOUNT SHOULD BE MORE THAN SERVICE CHARGE' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
|
|
--4. Validate Country Sending Limit
|
|
EXEC PROC_CHECKCOUNTRYLIMIT @flag = 's-limit', @cAmt = @tAmt, @pAmt = @pAmt, @sCountryId = @sCountryId, @collMode = @collMode
|
|
,@deliveryMethod = @deliveryMethod,@sendingCustType = @sendingCustType,@pCountryId = @pCountryId,@pCurr = @pCurr, @collCurr = @collCurr
|
|
,@pAgent = @pAgent, @sAgent = @sAgent, @sBranch = @sBranch
|
|
,@msg = @msg OUT, @errorCode = @errorCode OUT
|
|
|
|
IF @errorCode <> '0'
|
|
BEGIN
|
|
SELECT @errorCode ErrorCode, @msg Msg,null Id,null vtype
|
|
RETURN;
|
|
END
|
|
--Validate Country Sending Limit END
|
|
|
|
--5. Validate Country Receiving Limit
|
|
EXEC PROC_CHECKCOUNTRYLIMIT @flag = 'r-limit', @cAmt = @tAmt, @pAmt = @pAmt, @sCountryId = @sCountryId, @collMode = @collMode
|
|
,@deliveryMethod = @deliveryMethod,@sendingCustType = @sendingCustType,@pCountryId = @pCountryId,@pCurr = @pCurr, @collCurr = @collCurr
|
|
,@pAgent = @pAgent, @sAgent = @sAgent, @sBranch = @sBranch
|
|
,@msg = @msg OUT, @errorCode = @errorCode OUT
|
|
|
|
IF @errorCode <> '0'
|
|
BEGIN
|
|
SELECT @errorCode ErrorCode, @msg Msg,null Id,null vtype
|
|
RETURN;
|
|
END
|
|
--Validate Country Receiving Limit
|
|
SET @msg = 'Success';
|
|
|
|
/* Easy Remit limit check */
|
|
IF @customerType = '11048'
|
|
BEGIN
|
|
IF ISNULL(@cAmt, 0) > 1000000
|
|
BEGIN
|
|
SELECT '1' ErrorCode ,
|
|
'You cannot remit more than one million(KRW).' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
|
|
IF ISNULL(@paymentType,'wallet') = 'wallet'
|
|
BEGIN
|
|
IF ISNULL(@agentAvlLimit, 1) < ISNULL(@cAmt, 0)
|
|
BEGIN
|
|
SELECT '1' ErrorCode
|
|
,'You donot have sufficient balance to do the transaction' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum
|
|
RETURN
|
|
END
|
|
END
|
|
---------Validation Begin--------------------------------
|
|
|
|
--SELECT * FROM @csMasterRec RETURN
|
|
DECLARE @complianceRuleId INT, @cAmtUSD MONEY
|
|
|
|
--SELECT
|
|
-- @sCurrCostRate = sCurrCostRate
|
|
-- ,@sCurrHoMargin = sCurrHoMargin
|
|
--FROM dbo.FNAGetExRate(@sCountryId, @sAgent, @sBranch, @collCurr, @pCountryId, @pAgent, @pCurr, @deliveryMethod)
|
|
|
|
IF @sCurrCostRate IS NULL
|
|
BEGIN
|
|
SELECT @errorCode = '1', @msg = 'Transaction cannot be proceed. Exchange Rate not defined!'
|
|
RETURN
|
|
END
|
|
|
|
SET @cAmtUSD = @tAmt / (@sCurrCostRate + ISNULL(@sCurrHoMargin, 0))
|
|
|
|
DECLARE
|
|
@receiverName VARCHAR(50) = NULL
|
|
,@complienceMessage varchar(1000) =NULL
|
|
,@shortMsg varchar(100) =NULL
|
|
,@complienceErrorCode TINYINT = NULL
|
|
|
|
EXEC [proc_complianceRuleDetail]
|
|
@flag = 'sender-limit'
|
|
,@user = @user
|
|
,@sIdType = @sIdType
|
|
,@sIdNo = @sIdNo
|
|
,@receiverName = @rfName
|
|
,@cAmt = @tAmt
|
|
,@cAmtUSD = @cAmtUSD
|
|
,@customerId = @senderId
|
|
,@pCountryId = @pCountryId
|
|
,@deliveryMethod= @deliveryMethod
|
|
,@message = @complienceMessage OUTPUT
|
|
,@shortMessage = @shortMsg OUTPUT
|
|
,@errCode = @complienceErrorCode OUTPUT
|
|
,@ruleId = @complianceRuleId OUTPUT
|
|
|
|
DECLARE @compErrorCode INT
|
|
IF(@complienceErrorCode <> 0)
|
|
BEGIN
|
|
IF(@complienceErrorCode = 1)
|
|
BEGIN
|
|
SET @compErrorCode=101
|
|
--SELECT 101 errorCode,@msg msg, @complienceErrorCode id, @complienceMessage compApproveRemark,'compliance' vtype
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @compErrorCode=102
|
|
INSERT remitTranComplianceTemp(csDetailTranId, matchTranId, agentRefId)
|
|
SELECT @complianceRuleId, NULL, @agentRefId
|
|
--SELECT 102 errorCode,@msg msg, @complienceErrorCode id, @complienceMessage compApproveRemark,'compliance' vtype
|
|
END
|
|
|
|
INSERT INTO ComplianceLog(senderName, senderCountry, senderIdType, senderIdNumber, senderMobile, receiverName
|
|
, receiverCountry,payOutAmt,complianceId,complianceReason,complainceDetailMessage,createdBy,createdDate,logType)
|
|
|
|
SELECT @senderName, @sCountry, @sIdType, @sIdNo, @sMobile, @receiverName
|
|
, @pCountry, @cAmt, @complianceRuleId, @shortMsg, @complienceMessage, @user, GETDATE(),'online'
|
|
END
|
|
|
|
----------Validation End---------------------------------
|
|
IF @complienceErrorCode = '1'
|
|
BEGIN
|
|
SELECT @compErrorCode ErrorCode ,
|
|
@complienceErrorCode Id ,
|
|
@shortMsg Msg ,
|
|
'' vtype ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
IF ISNULL(@paymentType,'wallet') = 'wallet'
|
|
BEGIN
|
|
IF EXISTS (SELECT TOP 1 'X' FROM dbo.customerMaster(nolock) WHERE email=@user)
|
|
BEGIN
|
|
SELECT @agentAvlLimit = [dbo].FNAGetCustomerACBal(@user);
|
|
|
|
SET @agentAvlLimit = ISNULL(@agentAvlLimit, 0);
|
|
|
|
IF ISNULL(@agentAvlLimit, 0) < ISNULL(@cAmt, 0)
|
|
BEGIN
|
|
|
|
SELECT '1' ErrorCode
|
|
,'You donot have sufficient balance to do the transaction' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
END
|
|
END
|
|
IF @payOutPartner NOT IN(415207)
|
|
BEGIN
|
|
SET @FOREX_SESSION_ID = NEWID()
|
|
END
|
|
IF ISNULL(@FOREX_SESSION_ID,'') = ''
|
|
BEGIN
|
|
|
|
SELECT '1' ErrorCode
|
|
,'Internal error occured' Msg ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = @todaysTotalSent ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = @tranMinimum;
|
|
RETURN;
|
|
END;
|
|
|
|
----## lock ex rate for individual txn
|
|
INSERT INTO exRateCalcHistory (
|
|
CUSTOMER_ID,[USER_ID],FOREX_SESSION_ID,serviceCharge,pAmt,customerRate,sCurrCostRate,sCurrHoMargin
|
|
,sCurrAgentMargin,pCurrCostRate,pCurrHoMargin,pCurrAgentMargin,agentCrossSettRate,createdDate,isExpired,tAmt,schemeId
|
|
)
|
|
SELECT @senderId,@user,@FOREX_SESSION_ID,@serviceCharge,@pAmt,@exRate,@sCurrCostRate,@sCurrHoMargin
|
|
,@sCurrAgentMargin,@tpExRate,0,0,@exRate,GETDATE(),0,@tAmt,@schemeId
|
|
|
|
--SELECT
|
|
--@senderId,@user,@FOREX_SESSION_ID,@serviceCharge,@pAmt,@exRate,@sCurrCostRate,@sCurrHoMargin
|
|
--,@sCurrAgentMargin,@pCurrCostRate,@pCurrHoMargin,@pCurrAgentMargin ,@agentCrossSettRate,@treasuryTolerance ,@customerPremium
|
|
--,@sharingValue,@sharingType,GETDATE(),0
|
|
|
|
--Bank compare
|
|
--DECLARE @bankName VARCHAR(25) = 'Bank', @bankRate MONEY, @bankPayout MONEY, @bankFee MONEY
|
|
--, @bankSave MONEY, @bankTransafer MONEY
|
|
|
|
--SELECT @bankRate = customerRate, @bankFee = serviceCharge FROM bankTransferSettings(NOLOCK)
|
|
|
|
--SELECT @bankTransafer = @cAmt - @bankFee
|
|
--SELECT @bankPayout = @bankTransafer * @bankRate
|
|
--SELECT @bankSave = @pAmt - @bankPayout
|
|
|
|
SELECT ErrorCode = @errorCode ,
|
|
Msg = @msg ,
|
|
Id = NULL,
|
|
scCharge = @serviceCharge ,
|
|
exRateDisplay = ROUND(@exRate , 4, -1),
|
|
exRate = @exRate,
|
|
place = @place ,
|
|
pCurr = @pCurr ,
|
|
currDecimal = @currDecimal ,
|
|
pAmt = @pAmt ,
|
|
sAmt = ROUND(@tAmt, 0) ,
|
|
disc = 0.00 ,
|
|
--bank data
|
|
bankTransafer = 0.00,
|
|
bankPayout = 0.00,
|
|
bankRate = 0.00,
|
|
bankFee = 0.00,
|
|
bankSave = 0.00,
|
|
bankName = 0.00,
|
|
|
|
collAmt = @cAmt ,
|
|
collCurr = @collCurr,
|
|
exRateOffer = @exRateOffer ,
|
|
scOffer = @scDiscount ,
|
|
scAction = @scAction ,
|
|
scValue = @scValue ,
|
|
scDiscount = @scDiscount ,
|
|
amountLimitPerTran = @AmountLimitPerTran ,
|
|
amountLimitPerDay = @AmountLimitPerDay ,
|
|
customerTotalSentAmt = ISNULL(@todaysTotalSent,0) ,
|
|
minAmountLimitPerTran = @tranMinimum ,
|
|
maxAmountLimitPerTran = @tranMaximum ,
|
|
PerTxnMinimumAmt = '',
|
|
tpExRate = @tpExRate,
|
|
tpPCurr = @tpPCurr,
|
|
schemeAppliedMsg = '',
|
|
EXRATEID = @FOREX_SESSION_ID,
|
|
schemeId = ISNULL(@schemeId,''),
|
|
couponType = ISNULL(@couponType,''),
|
|
discountType = ISNULL(@discountType,''),
|
|
discountvalue = ISNULL(@scDiscount,''),
|
|
ISNULL(@discountPercent,'') AS discountPercent,
|
|
ISNULL(@couponName,'') AS couponName
|
|
|
|
END
|
|
ELSE IF @flag = 'i'
|
|
BEGIN
|
|
IF @user = 'demo.gme@gmeremit.com'
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'You can not send money through test GME acocunt :(', NULL;
|
|
RETURN;
|
|
END
|
|
|
|
IF @pBank NOT IN ('585117','585118')
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT TOP 1 '' FROM TblPartnerwiseCountry(NOLOCK)
|
|
WHERE AgentId = @payOutPartner AND CountryId = @pCountryId
|
|
AND ISNULL(PaymentMethod,@deliveryMethodId) = @deliveryMethodId and IsActive = 1
|
|
)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Oops, something went wrong.Please perform the transaction again' ,null
|
|
RETURN;
|
|
END
|
|
END
|
|
IF ISNULL(@tpExRate,0) = 0
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction cannot be proceed.Partner Exchange Rate not defined', NULL
|
|
RETURN
|
|
END
|
|
|
|
IF @pAgent IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Oops, something went wrong.Please perform the transaction again' ,null
|
|
RETURN;
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT TOP 1 'X' FROM dbo.customerMaster(nolock) WHERE email = @user AND approvedDate IS NOT NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'You are not authorized to perform transaction :(', NULL;
|
|
RETURN;
|
|
END
|
|
|
|
IF ISNULL(@paymentType,'') NOT IN ('wallet', 'autodebit')
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Invalid payment method.Please perform the transaction again!', NULL;
|
|
RETURN;
|
|
END
|
|
|
|
declare @senderIdIssueDate date,@senderIdExpiryDate date,@senderBirthDate date,@receiverAddCountryCode VARCHAR(5)
|
|
|
|
SELECT @SENDERS_IDENTITY_TYPE = CASE WHEN idType = '1302'THEN 'P' WHEN idType = '7316' THEN 'N' END ,
|
|
@sIdNo = idNumber ,
|
|
@senderName = isnull(fullName, firstname),
|
|
@agentAvlLimit = dbo.FNAGetCustomerACBal(@user),
|
|
@senderIdIssueDate = cm.idIssueDate,
|
|
@senderIdExpiryDate = cm.idExpiryDate,
|
|
@senderBirthDate = cm.dob,
|
|
@occupation = V.detailTitle ,
|
|
@customerType = CM.customerType
|
|
FROM customerMaster (NOLOCK) CM
|
|
LEFT JOIN staticDataValue V(NOLOCK) ON V.valueId = CM.occupation
|
|
WHERE customerId = @senderId
|
|
|
|
----## XPRESS MONEY AND Koronapay VALIDATION
|
|
IF @payOutPartner IN('415207','585119' )
|
|
BEGIN
|
|
IF @senderIdIssueDate > CAST(GETDATE() AS DATE)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Enter ID Issue Date.Call:15886864', NULL;
|
|
RETURN
|
|
END
|
|
IF ISNULL(@senderIdExpiryDate,'') < CAST(GETDATE() AS DATE) AND @sIdType <> 'National ID'
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Update ID Expiry Date.Call:15886864', NULL;
|
|
RETURN
|
|
END
|
|
IF @senderBirthDate > CAST(GETDATE() AS DATE)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Enter valid DOB.Call:15886864', NULL;
|
|
RETURN
|
|
END
|
|
IF (DATEDIFF(YEAR, @senderBirthDate, GETDATE()) < 18 AND @payOutPartner='585119')
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Sender age should be greater than 18 years.Call:15886864', NULL;
|
|
RETURN
|
|
END
|
|
|
|
|
|
END
|
|
|
|
|
|
IF @rfName IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Receiver full Name missing', NULL;
|
|
RETURN;
|
|
END;
|
|
IF (select COUNT(1) from dbo.Split(' ',@rfName))<2 AND @payOutPartner <> 224388
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Receiver full Name is missing', NULL
|
|
RETURN
|
|
END
|
|
IF isnull(@rMobile, '')=''
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Receiver mobile number is required!', NULL
|
|
RETURN
|
|
END
|
|
IF @rAdd1 IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Receiver Address missing', NULL;
|
|
RETURN;
|
|
END;
|
|
IF ISNULL(@deliveryMethod, '') = ''
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Please choose payment mode', NULL;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @serviceCharge IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Service Charge missing',NULL;
|
|
RETURN;
|
|
END;
|
|
IF ISNULL(@tAmt, 0) = 0
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Transfer Amount missing', NULL;
|
|
RETURN;
|
|
END;
|
|
IF ISNULL(@exRate, 0) = 0
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Exchange Rate missing',NULL;
|
|
RETURN;
|
|
END;
|
|
if isnull(@purpose,'') = ''
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Purpose of Remittance is required!', NULL
|
|
RETURN
|
|
END
|
|
if isnull(@sourceOfFund,'') = ''
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Source of Fund is required!', NULL
|
|
RETURN
|
|
END
|
|
IF ISNULL(@cAmt, 0) = 0
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Collection Amount is missing. Cannot send transaction',NULL;
|
|
RETURN;
|
|
END;
|
|
|
|
SET @controlNo = '80' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '0000000000', 9);
|
|
SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo);
|
|
|
|
IF EXISTS (SELECT TOP 1 'X' FROM pinQueueList WITH(NOLOCK) WHERE icn = @controlNoEncrypted)
|
|
BEGIN
|
|
SET @controlNo = '80' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '0000000000', 9);
|
|
SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo);
|
|
|
|
IF EXISTS(SELECT TOP 1 'X' FROM pinQueueList WITH(NOLOCK) WHERE icn = @controlNoEncrypted)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Technical error occurred. Please try again',NULL;
|
|
RETURN;
|
|
END
|
|
END;
|
|
|
|
IF @deliveryMethod = 'Bank Deposit'
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT TOP 1 'A' FROM agentMaster(nolock) where agentId = @pBank and agenttype =2903 and IsIntl = 1)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid bank selected', NULL
|
|
return
|
|
END
|
|
|
|
IF @pBank IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Please select bank', NULL
|
|
RETURN
|
|
END
|
|
--IF @pBankBranch IS NULL
|
|
--BEGIN
|
|
-- EXEC proc_errorHandler 1, 'Please select bank Branch', NULL
|
|
-- RETURN
|
|
--END
|
|
IF @raccountNo IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Account number cannot be blank', NULL
|
|
RETURN
|
|
END
|
|
--if @pCountryId = 169 and len(@raccountNo) = 24
|
|
--begin
|
|
-- exec proc_errorHandler 1,'Please enter valid IBAN Number' ,null
|
|
-- RETURN;
|
|
--end
|
|
END;
|
|
IF @pCountryId = 36 ----## FOR CAMBODIA
|
|
BEGIN
|
|
SELECT @iServiceCharge = ISNULL(amount, -1)
|
|
FROM [dbo].FNAGetServiceCharge(
|
|
@sCountryId, @sSuperAgent, @sAgent, @sBranch,
|
|
@pCountryId, @pSuperAgent, @pAgent, NULL,
|
|
@deliveryMethodId, @pAmt, @collCurr
|
|
)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT
|
|
@iServiceCharge = ISNULL(amount, -1)
|
|
FROM [dbo].FNAGetServiceCharge(
|
|
@sCountryId, @sSuperAgent, @sAgent, @sBranch,
|
|
@pCountryId, @pSuperAgent, @pAgent, @pBranch,
|
|
@deliveryMethodId, @cAmt, @collCurr
|
|
)
|
|
END
|
|
IF @iServiceCharge = -1
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction cannot be proceed. Service Charge is not defined', NULL
|
|
RETURN
|
|
END
|
|
|
|
IF isnull(@iServiceCharge,0) <> isnull(@serviceCharge,1)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction cannot be proceed. Amount detail not match', NULL
|
|
RETURN
|
|
END
|
|
|
|
SELECT @iServiceCharge = @serviceCharge , @customerRate = @exRate;
|
|
|
|
SELECT
|
|
--@customerRate = round(@tpExRate/sAgentSettRate, 8)
|
|
@customerRate = customerRate
|
|
,@sCurrCostRate = sCurrCostRate
|
|
,@sCurrHoMargin = sCurrHoMargin
|
|
,@sCurrAgentMargin = sCurrAgentMargin
|
|
,@pCurrCostRate = @tpExRate
|
|
,@pCurrHoMargin = 0
|
|
,@pCurrAgentMargin = 0
|
|
,@agentCrossSettRate = round(@tpExRate/sAgentSettRate, 8)
|
|
,@treasuryTolerance = 0
|
|
,@customerPremium = 0
|
|
,@sharingValue = 0
|
|
,@sharingType = 0
|
|
FROM dbo.FNAGetExRate(@sCountryId,@sAgent,@sBranch,@collCurr,@pCountryId,@pAgent,@pCurr,@deliveryMethodId)
|
|
|
|
--select @sCountryId,@sAgent,@sBranch,@collCurr,@pCountryId,@pAgent,@pCurr,@deliveryMethodId
|
|
|
|
IF @customerRate IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction cannot be proceed. Exchange Rate not defined', NULL
|
|
RETURN
|
|
END
|
|
|
|
SELECT
|
|
@customerRate = customerRate
|
|
,@sCurrCostRate = sCurrCostRate
|
|
,@sCurrHoMargin = sCurrHoMargin
|
|
,@sCurrAgentMargin = sCurrAgentMargin
|
|
,@pCurrCostRate = pCurrCostRate
|
|
,@pCurrHoMargin = pCurrHoMargin
|
|
,@pCurrAgentMargin = pCurrAgentMargin
|
|
,@agentCrossSettRate = agentCrossSettRate
|
|
,@treasuryTolerance = treasuryTolerance
|
|
,@customerPremium = customerPremium
|
|
,@sharingValue = sharingValue
|
|
,@sharingType = sharingType
|
|
,@iPAmt = pAmt
|
|
,@schemeId = schemeId
|
|
FROM exRateCalcHistory(NOLOCK)
|
|
WHERE FOREX_SESSION_ID = @FOREX_SESSION_ID AND USER_ID = @user
|
|
|
|
------------Find Coupon---------------
|
|
IF ISNULL(@schemeId,'') <> ''
|
|
BEGIN
|
|
-- IF EXISTS (SELECT '1'
|
|
-- FROM CouponIssue(NOLOCK) AS CI
|
|
-- INNER JOIN CouponSetup(NOLOCK) AS CS
|
|
-- ON CI.couponId = CS.rowId
|
|
-- WHERE CI.rowId = @schemeId
|
|
-- AND CI.endDate >= GETDATE()
|
|
-- AND CI.isActive = 'Y'
|
|
-- AND CS.endDate >= GETDATE()
|
|
-- AND CS.isActive = 'Y'
|
|
-- AND CS.couponType = '1'
|
|
-- AND (ISNULL(CS.usageLimit,0) = 0
|
|
-- OR ISNULL(CS.usageLimit,0) > ISNULL(CI.usedCount,0))
|
|
-- )
|
|
-- BEGIN
|
|
DECLARE @CurrentCount int = 0
|
|
SELECT TOP(1)
|
|
@discountvalue = CS.discountValue,
|
|
@CurrentCount = ISNULL(CI.usedCount,0),
|
|
@discountType = CS.discountType
|
|
FROM CouponIssue(NOLOCK) CI
|
|
INNER JOIN CouponSetup(NOLOCK) CS
|
|
ON CI.couponId = CS.rowId
|
|
AND CI.isActive = 'Y'
|
|
AND CI.endDate >= GETDATE()
|
|
AND CS.endDate >= GETDATE()
|
|
AND CS.isActive = 'Y'
|
|
AND CS.couponType = '1'
|
|
AND CI.rowId = @schemeId
|
|
AND (ISNULL(CS.usageLimit,0) = 0
|
|
OR CS.usageLimit > CI.usedCount)
|
|
ORDER BY CI.rowId ASC
|
|
|
|
|
|
IF @discountType = '1'
|
|
BEGIN
|
|
SET @schemePremium = @serviceCharge * (@discountvalue/100)
|
|
END
|
|
ELSE IF @discountType ='2'
|
|
BEGIN
|
|
SET @schemePremium = @discountvalue
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction cannot be proceed. Coupon Checked. But, Can Not Find Coupon', NULL
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
/* Easy Remit limit check */
|
|
IF @customerType = '11048'
|
|
BEGIN
|
|
IF ISNULL(@cAmt, 0) > 1000000
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'You cannot remit more than one million(KRW)!', NULL
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
|
|
IF @paymentType = 'wallet'
|
|
BEGIN
|
|
IF ISNULL(@agentAvlLimit, 1) < ISNULL(@cAmt, 0)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'You donot have sufficient balance to do the transaction!', NULL;
|
|
RETURN;
|
|
END;
|
|
END
|
|
ELSE IF @paymentType = 'autodebit'
|
|
BEGIN
|
|
DECLARE @tranAmt MONEY = NULL
|
|
|
|
SELECT TOP 1 @tranAmt = tranAmt
|
|
FROM KFTC_CUSTOMER_TRANSFER (NOLOCK)
|
|
WHERE rowId = @kftcLogId
|
|
|
|
IF @tranAmt IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Invalid auto debit request.Please perform the transaction again!', NULL;
|
|
RETURN;
|
|
END
|
|
|
|
IF @tranAmt <> @cAmt - ISNULL(@schemePremium,0)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Invalid transaction amount. Please contact GME Support!', NULL;
|
|
RETURN;
|
|
END
|
|
END
|
|
--ELSE
|
|
--BEGIN
|
|
-- EXEC proc_errorHandler 1,'Invalid payment method.Please perform the transaction again!', NULL;
|
|
-- RETURN;
|
|
--END
|
|
|
|
IF @customerRate IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction cannot be proceed. Exchange Rate not defined.', NULL
|
|
RETURN
|
|
END
|
|
|
|
IF @pCurr IN ('MMK','IDR')
|
|
BEGIN
|
|
SET @customerRate = CAST(@customerRate AS DECIMAL(15,10))
|
|
END
|
|
|
|
IF ISNULL(@exRate,0) <> ISNULL(@customerRate,1)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Amount detail not match. Please re-calculate the amount again', NULL
|
|
RETURN
|
|
END
|
|
|
|
DECLARE @scDisc MONEY
|
|
|
|
SELECT @iCustomerRate = @exRate, @iTAmt = @cAmt - @iServiceCharge
|
|
|
|
SELECT TOP 1 @place = place, @currDecimal = currDecimal
|
|
FROM currencyPayoutRound WITH(NOLOCK) WHERE ISNULL(isDeleted, 'N') = 'N'
|
|
AND currency = @pCurr AND tranType IS NULL
|
|
|
|
SET @currDecimal = ISNULL(@currDecimal, 0)
|
|
SET @place = ISNULL(@place, 0)
|
|
|
|
--SET @iPAmt = ROUND(@iTAmt * @iCustomerRate, 0)
|
|
|
|
IF @pCountryId = 36 ----## FOR CAMBODIA
|
|
BEGIN
|
|
SELECT TOP 1 @place = place ,
|
|
@currDecimal = currDecimal
|
|
FROM currencyPayoutRound(NOLOCK)
|
|
WHERE ISNULL(isDeleted, 'N') = 'N'
|
|
AND currency = @pCurr AND (tranType IS NULL OR tranType = @deliveryMethodId);
|
|
|
|
SET @iPAmt = ROUND(@iTAmt * @iCustomerRate, @currDecimal)
|
|
END
|
|
|
|
IF @pCurr = 'USD'
|
|
SET @iPAmt = ROUND(@iPAmt, 2)
|
|
ELSE
|
|
SET @iPAmt = ROUND(@iPAmt, 0)
|
|
|
|
IF @pCurr IN('IDR') AND ISNULL(@iPAmt,0) < ISNULL(@pAmt,1)+10
|
|
BEGIN
|
|
SET @pAmt = ISNULL(@iPAmt,0)
|
|
END
|
|
|
|
IF ISNULL(@iPAmt,0) <> ISNULL(@pAmt,1)
|
|
BEGIN
|
|
declare @iMsg VARCHAR(500) = 'Amount detail not match. Please re-calculate the amount again.' + CAST(@iPAmt AS VARCHAR) + ' - ' + CAST(@pAmt AS VARCHAR)
|
|
EXEC proc_errorHandler 1, @iMsg, NULL
|
|
RETURN
|
|
END
|
|
|
|
--OFAC Checking
|
|
DECLARE @receiverOfacRes VARCHAR(MAX), @ofacRes VARCHAR(MAX), @ofacReason VARCHAR(200)
|
|
EXEC proc_ofacTracker @flag = 't', @name = @senderName, @Result = @ofacRes OUTPUT
|
|
EXEC proc_ofacTracker @flag = 't', @name = @receiverName, @Result = @receiverOfacRes OUTPUT
|
|
|
|
DECLARE @result VARCHAR(MAX)
|
|
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
|
|
--Ofac Checking End
|
|
SET @cAmtUSD = @tAmt / (@sCurrCostRate + ISNULL(@sCurrHoMargin, 0))
|
|
--Compliance Checking
|
|
|
|
EXEC [proc_complianceRuleDetail]
|
|
@flag = 'receiver-limit'
|
|
,@user = @user
|
|
,@sIdType = @sIdType
|
|
,@sIdNo = @sIdNo
|
|
,@receiverName = @rfName
|
|
,@cAmt = @tAmt
|
|
,@cAmtUSD = @cAmtUSD
|
|
,@customerId = @senderId
|
|
,@receiverMobile= @rMobile
|
|
,@pCountryId = @pCountryId
|
|
,@deliveryMethod= @deliveryMethodId
|
|
,@message = @complienceMessage OUTPUT
|
|
,@shortMessage = @shortMsg OUTPUT
|
|
,@errCode = @complienceErrorCode OUTPUT
|
|
,@ruleId = @complianceRuleId OUTPUT
|
|
|
|
IF(@complienceErrorCode <> 0)
|
|
BEGIN
|
|
IF(@complienceErrorCode = 1)
|
|
BEGIN
|
|
SET @compErrorCode=101
|
|
--SELECT 101 errorCode,@msg msg, @complienceErrorCode id, @complienceMessage compApproveRemark,'compliance' vtype
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @compErrorCode=102
|
|
INSERT remitTranComplianceTemp(csDetailTranId, matchTranId, agentRefId)
|
|
SELECT @complianceRuleId, NULL, @agentRefId
|
|
|
|
--SELECT 102 errorCode,@msg msg, @complienceErrorCode id, @complienceMessage compApproveRemark,'compliance' vtype
|
|
END
|
|
|
|
INSERT INTO ComplianceLog(senderName, senderCountry, senderIdType, senderIdNumber, senderMobile, receiverName
|
|
, receiverCountry,payOutAmt,complianceId,complianceReason,complainceDetailMessage,createdBy,createdDate,logType)
|
|
|
|
SELECT @senderName, @sCountry, @sIdType, @sIdNo, @sMobile, @receiverName
|
|
, @pCountry, @cAmt, @complianceRuleId, @shortMsg, @complienceMessage, @user, GETDATE(),'online'
|
|
END
|
|
|
|
IF @complienceErrorCode = 1
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, @complienceMessage, NULL
|
|
RETURN;
|
|
END;
|
|
|
|
--Compliance checking end
|
|
|
|
select @pAgentCommCurrency = 'USD'
|
|
select
|
|
@pAgentComm = (SELECT amount FROM FastMoneyPro_Remit.dbo.[FNAGetPayComm](
|
|
@sAgent,@sCountryId,NULL, NULL, @pCountryId
|
|
, null, @pAgent, @pAgentCommCurrency,@deliveryMethodId, @cAmt, @pAmt, @serviceCharge, NULL, NULL)
|
|
)
|
|
|
|
DECLARE @agentFxGain MONEY;
|
|
|
|
DECLARE @remitTranTemp TABLE (
|
|
tranId BIGINT,controlNo VARCHAR(20),cAmt MONEY,receiverName VARCHAR(200) ,
|
|
receiverIdType VARCHAR(100),receiverIdNumber VARCHAR(50),dot DATETIME
|
|
);
|
|
DECLARE @moneySendTemp TABLE(
|
|
tranNo BIGINT ,refno VARCHAR(20) ,paidAmt MONEY ,receiverName VARCHAR(200) ,
|
|
receiverIdDescription VARCHAR(100) ,receiverIdDetail VARCHAR(50)
|
|
);
|
|
|
|
INSERT INTO @remitTranTemp( tranId ,controlNo ,cAmt ,receiverName ,receiverIdType ,receiverIdNumber ,dot )
|
|
SELECT rt.id ,rt.controlNo ,rt.cAmt ,rt.receiverName ,rec.idType ,rec.idNumber ,rt.createdDateLocal
|
|
FROM vwRemitTran rt WITH ( NOLOCK )
|
|
INNER JOIN vwTranSenders sen WITH ( NOLOCK ) ON rt.id = sen.tranId
|
|
INNER JOIN vwTranReceivers rec WITH ( NOLOCK ) ON rt.id = rec.tranId
|
|
WHERE sen.customerId = @senderId
|
|
AND ( rt.approvedDate BETWEEN CONVERT(VARCHAR,GETDATE(),101) AND CONVERT(VARCHAR,GETDATE(),101)+ ' 23:59:59'
|
|
OR ( approvedBy IS NULL AND cancelApprovedBy IS NULL )
|
|
);
|
|
|
|
IF EXISTS ( SELECT 'X' FROM @remitTranTemp
|
|
WHERE cAmt = @cAmt
|
|
AND ( receiverName = @rfName ) AND DATEDIFF(MI, dot, GETDATE()) <= 2
|
|
)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Similar transaction found', NULL;
|
|
RETURN;
|
|
END;
|
|
|
|
-- #########country and occupation risk point
|
|
DECLARE @countryRisk INT ,@OccupationRisk INT ,@isFirstTran CHAR(1);
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
--IF EXISTS ( SELECT TOP 1 sno FROM dbo.customerTxnLimit WITH ( NOLOCK )
|
|
-- WHERE customer_passport = @sIdNo AND customer_id_type = @SENDERS_IDENTITY_TYPE )
|
|
--BEGIN
|
|
-- UPDATE dbo.customerTxnLimit
|
|
-- SET paidAmt = ISNULL(paidAmt, 0) + @cAmt ,
|
|
-- nos_of_txn = ISNULL(nos_of_txn, 0) + 1 ,
|
|
-- update_ts = GETDATE()
|
|
-- WHERE customer_passport = @sIdNo AND customer_id_type = @SENDERS_IDENTITY_TYPE;
|
|
--END;
|
|
--ELSE
|
|
--BEGIN
|
|
-- INSERT customerTxnLimit(customer_passport,paidAmt,trans_date,agent_id,update_ts,nos_of_txn,customer_name,customer_id_type )
|
|
-- SELECT ISNULL(@sIdNo, '-') , @cAmt ,
|
|
-- CONVERT(VARCHAR, GETDATE(), 101) ,'10100000' ,GETDATE(),1,@senderName ,@SENDERS_IDENTITY_TYPE;
|
|
--END;
|
|
|
|
INSERT INTO remitTranTempOnline
|
|
(
|
|
controlNo ,sCurrCostRate ,sCurrHoMargin ,sCurrSuperAgentMargin ,sCurrAgentMargin ,pCurrCostRate ,pCurrHoMargin ,pCurrSuperAgentMargin ,
|
|
pCurrAgentMargin ,agentCrossSettRate ,customerRate ,sAgentSettRate ,pDateCostRate ,treasuryTolerance ,customerPremium ,schemePremium ,sharingValue ,
|
|
sharingType ,serviceCharge ,handlingFee ,agentFxGain ,sAgentComm ,sAgentCommCurrency ,sSuperAgentComm ,sSuperAgentCommCurrency ,pAgentComm ,pAgentCommCurrency ,
|
|
pCommissionType ,pSuperAgentComm ,pSuperAgentCommCurrency ,promotionCode ,pMessage ,sSuperAgent ,sSuperAgentName ,sAgent ,sAgentName ,sBranch ,
|
|
sBranchName ,sCountry ,pSuperAgent ,pSuperAgentName ,pAgent ,pAgentName ,pBranch ,pBranchName ,pCountry ,paymentMethod ,pBank ,pBankName ,pBankBranch ,pBankBranchName ,
|
|
accountNo ,pBankType ,expectedPayoutAgent ,collMode ,collCurr ,tAmt ,cAmt ,pAmt ,payoutCurr ,relWithSender ,purposeOfRemit ,sourceOfFund ,tranStatus ,payStatus ,createdDate ,
|
|
createdDateLocal ,createdBy ,tranType ,senderName ,receiverName ,calBy ,isOnlineTxn ,schemeId ,ScOrderNo ,UnitaryBankAccountNo,pState,pDistrict,
|
|
sRouteId
|
|
)
|
|
SELECT
|
|
@controlNoEncrypted ,@sCurrCostRate ,@sCurrHoMargin ,@sCurrSuperAgentMargin ,@sCurrAgentMargin ,@pCurrCostRate ,@pCurrHoMargin ,@pCurrSuperAgentMargin ,
|
|
@pCurrAgentMargin ,@agentCrossSettRate ,@customerRate ,@sAgentSettRate ,@pDateCostRate ,@treasuryTolerance ,@customerPremium ,ISNULL(@schemePremium, 0) ,
|
|
@sharingValue , @sharingType , @serviceCharge ,ISNULL(@scDiscount, 0) ,@agentFxGain ,@sAgentComm ,@sAgentCommCurrency ,@sSuperAgentComm ,@sSuperAgentCommCurrency ,@pAgentComm ,@pAgentCommCurrency ,
|
|
@pCommissionType , @pSuperAgentComm ,@pSuperAgentCommCurrency ,@agentRefId ,@payMsg ,@sSuperAgent , @sSuperAgentName ,@sAgent ,@sAgentName ,@sBranch ,@sBranchName ,@sCountry , @pSuperAgent ,
|
|
@pSuperAgentName , @pAgent , @pAgentName , @pBranch ,@pBranchName ,@pCountry ,@deliveryMethod ,@pBank , @pBankName ,@pBankBranch ,@pBankBranchName ,@raccountNo ,@pBankType , @pAgentName ,@collMode , @collCurr ,@tAmt , @cAmt ,
|
|
@pAmt , @pCurr , @relationship , @purpose ,@sourceOfFund ,'Hold' ,'Unpaid' ,@GMTDate ,
|
|
GETDATE() , @user ,ISNULL(@pBankType,'O') , @senderName , @rfName ,@calBy , 'Y' ,@schemeId ,@ScOrderNo ,@unitaryBankAccountNo,@RLocation,@RState,
|
|
CASE WHEN @paymentType = 'wallet' THEN 'w' WHEN @paymentType = 'autodebit' THEN 'a' END
|
|
|
|
SET @id = SCOPE_IDENTITY();
|
|
|
|
INSERT INTO tranSendersTempOnline
|
|
( tranId , customerId ,membershipId ,firstName , middleName ,lastName1 ,lastName2 ,
|
|
fullName ,country ,[address] ,address2 ,[state] ,zipCode ,city ,email ,homePhone ,
|
|
workPhone ,mobile ,nativeCountry ,dob ,placeOfIssue ,idType ,idNumber ,idPlaceOfIssue ,
|
|
issuedDate ,validDate ,occupation ,countryRiskPoint ,customerRiskPoint ,isFirstTran ,
|
|
ipAddress
|
|
)
|
|
SELECT TOP 1
|
|
@id ,@senderId ,membershipId ,firstName ,middleName ,lastName1 ,lastName2 ,
|
|
@senderName ,sc.countryName ,[address] ,address2 ,ss.stateName ,zipCode ,city ,email ,homePhone ,
|
|
workPhone ,LEFT(mobile, 15) ,nativeCountry = nc.countryName ,dob ,c.placeOfIssue ,sdv.detailTitle ,c.idNumber ,c.placeOfIssue ,
|
|
c.idIssueDate ,c.idExpiryDate ,om.detailTitle ,@countryRisk ,( @countryRisk + @OccupationRisk ) ,@isFirstTran ,
|
|
@sIpAddress
|
|
FROM dbo.customerMaster c WITH ( NOLOCK )
|
|
LEFT JOIN countryMaster sc WITH ( NOLOCK ) ON c.country = sc.countryId
|
|
LEFT JOIN countryMaster nc WITH ( NOLOCK ) ON c.nativeCountry = nc.countryId
|
|
LEFT JOIN countryStateMaster ss WITH ( NOLOCK ) ON c.state = ss.stateId
|
|
LEFT JOIN staticDataValue sdv WITH ( NOLOCK ) ON c.idType = sdv.valueId
|
|
LEFT JOIN occupationMaster om WITH ( NOLOCK ) ON c.occupation = om.occupationId
|
|
WHERE c.customerId = @senderId;
|
|
|
|
DECLARE @fName VARCHAR(100) ,
|
|
@mName VARCHAR(100) ,
|
|
@lName VARCHAR(100) ,
|
|
@lName2 VARCHAR(100);
|
|
|
|
SELECT @fName =firstName,
|
|
@mName =middleName,
|
|
@lName =lastName1,
|
|
@lName2 =lastName2
|
|
FROM dbo.FNASplitName(@rfName);
|
|
|
|
DECLARE @firstName VARCHAR(100)
|
|
DECLARE @midName VARCHAR(100)
|
|
DECLARE @lastName VARCHAR(100)
|
|
DECLARE @lastName2 VARCHAR(100)
|
|
DECLARE @payCountry VARCHAR(100)
|
|
DECLARE @recAdd1 VARCHAR(100)
|
|
DECLARE @reccity VARCHAR(100)
|
|
DECLARE @recEmail VARCHAR(100)
|
|
DECLARE @recTel VARCHAR(100)
|
|
DECLARE @recMobile VARCHAR(100)
|
|
DECLARE @recRelationship VARCHAR(100)
|
|
DECLARE @recState VARCHAR(100)
|
|
declare @recDistrict VARCHAR(100)
|
|
|
|
IF @benId IS NULL
|
|
BEGIN
|
|
IF NOT EXISTS ( SELECT 'X'
|
|
FROM receiverInformation
|
|
WHERE ISNULL(firstName, '') = ISNULL(@fName, '')
|
|
AND ISNULL(middleName, '') = ISNULL(@mName, '')
|
|
AND ISNULL(lastName1, '') = ISNULL(@lName, '')
|
|
AND ISNULL(lastName2, '') = ISNULL(@lName2, '')
|
|
AND customerId = @senderId )
|
|
BEGIN
|
|
INSERT INTO receiverInformation
|
|
( customerId ,firstName ,middleName ,lastName1 ,lastName2 ,country ,address ,city ,email ,
|
|
homePhone ,workPhone ,mobile ,relationship,state,district
|
|
)
|
|
SELECT
|
|
@senderId ,firstName ,middleName ,lastName1 ,lastName2 ,@pCountry ,@rAdd1 ,@rCity ,@rEmail ,
|
|
@rTel ,@rTel ,@rMobile ,@relationship,@RLocationText,@RStateText
|
|
FROM dbo.FNASplitName(@rfName);
|
|
|
|
SET @benId = @@IDENTITY;
|
|
END;
|
|
ELSE
|
|
BEGIN
|
|
SELECT TOP 1
|
|
@benId = receiverId
|
|
FROM receiverInformation
|
|
WHERE ISNULL(firstName, '') = @fName
|
|
AND ISNULL(middleName, '') = @mName
|
|
AND ISNULL(lastName1, '') = @lName
|
|
AND ISNULL(lastName2, '') = @lName2
|
|
AND customerId = @senderId;
|
|
END;
|
|
END;
|
|
DECLARE @rNativeCountry VARCHAR(100)
|
|
IF @benId IS NOT NULL
|
|
BEGIN
|
|
SELECT @firstName =firstName
|
|
,@midName =middleName
|
|
,@lastName =lastName1
|
|
,@lastName2 =lastName2
|
|
,@payCountry =country
|
|
,@recAdd1 =address
|
|
,@reccity =city
|
|
,@recEmail =email
|
|
,@recTel =homePhone
|
|
,@recMobile =mobile
|
|
,@recRelationship =relationship
|
|
,@recState =state
|
|
,@recDistrict =district
|
|
,@rNativeCountry =nativeCountry
|
|
FROM dbo.receiverInformation
|
|
WHERE receiverId = @benId
|
|
UPDATE dbo.receiverInformation
|
|
SET firstName =ISNULL( @fName, @firstName)
|
|
, middleName =ISNULL( @mName, @midName)
|
|
, lastName1 =ISNULL( @lName, @lastName)
|
|
, lastName2 =ISNULL( @lName2, @lastName2)
|
|
, country =ISNULL( @pCountry, @payCountry)
|
|
, address =ISNULL( @rAdd1, @recAdd1)
|
|
, city =ISNULL( @rCity, @reccity)
|
|
, state =ISNULL( @RLocationText, @recState)
|
|
, district =ISNULL( @RStateText, @recDistrict)
|
|
, email =ISNULL( @rEmail, @recEmail)
|
|
, homePhone =ISNULL( @rTel, @recTel)
|
|
, workPhone =ISNULL( @rTel, @recTel)
|
|
, mobile =ISNULL( @rMobile, @recMobile)
|
|
, relationship =ISNULL( @relationship, @recRelationship)
|
|
WHERE receiverId = @benId
|
|
END
|
|
INSERT INTO tranReceiversTempOnline( tranId ,customerId ,membershipId ,firstName ,middleName ,lastName1 ,lastName2 ,fullName ,
|
|
country ,[address] ,[state] ,district ,zipCode ,city ,email ,homePhone ,workPhone ,mobile ,nativeCountry ,dob ,
|
|
placeOfIssue ,idType ,idNumber ,idPlaceOfIssue ,issuedDate ,relationType,validDate ,gender
|
|
)
|
|
SELECT @id ,@benId ,NULL ,firstName ,middleName ,lastName1 ,lastName2 ,@rfName ,
|
|
@pCountry ,@rAdd1 ,@RLocationText ,@RStateText ,null ,@rCity, @rEmail ,@rTel ,@rTel ,@rMobile ,@rNativeCountry ,@rdob ,
|
|
NULL ,@rIdType ,@rIdNo ,NULL ,NULL ,@relationship,@rIdValid ,NULL
|
|
FROM dbo.FNASplitName(@rfName);
|
|
|
|
--**********DATA EXIST in TEMP COLLECTION**********
|
|
INSERT INTO collectionDetailsOnline
|
|
( tranId ,collMode ,countryBankId ,amt ,collDate ,narration ,branchId ,createdBy ,createdDate
|
|
)
|
|
SELECT @id ,@collMode ,0 ,@cAmt ,@GMTDate ,'online' ,NULL ,@senderId ,GETDATE();
|
|
|
|
EXEC proc_online_temp_to_main @id = @id OUTPUT,@voucherDetails= @VoucherXML
|
|
|
|
----IF @paymentType = 'wallet'
|
|
EXEC proc_UpdateCustomerBalance @controlNo = @controlNoEncrypted, @type = 'deduct'
|
|
|
|
IF @paymentType = 'autodebit'
|
|
UPDATE KFTC_CUSTOMER_TRANSFER SET tranId = @id WHERE rowId = @kftcLogId
|
|
|
|
----## map locked ex rate with transaction for history
|
|
UPDATE exRateCalcHistory SET controlNo = @controlNoEncrypted,AGENT_TXN_REF_ID=@id WHERE FOREX_SESSION_ID = @FOREX_SESSION_ID
|
|
|
|
--------------------------#########------------OFAC/COMPLIANCE INSERT (IF EXISTS)---------------########----------------------
|
|
IF EXISTS(SELECT 'X' FROM remitTranComplianceTemp WITH(NOLOCK) WHERE agentRefId = @agentRefId)
|
|
BEGIN
|
|
INSERT INTO remitTranCompliance(TranId, csDetailTranId, matchTranId)
|
|
SELECT @id, csDetailTranId, matchTranId FROM remitTranComplianceTemp WITH(NOLOCK) WHERE agentRefId = @agentRefId
|
|
SET @compFinalRes = 'C'
|
|
END
|
|
|
|
IF(ISNULL(@compFinalRes, '') <> '' OR ISNULL(@ofacRes, '') <> '')
|
|
BEGIN
|
|
IF(@ofacRes <> '' AND ISNULL(@compFinalRes, '') = '')
|
|
BEGIN
|
|
INSERT remitTranOfac(TranId, blackListId, reason, flag)
|
|
SELECT @id, @ofacRes, @ofacReason, dbo.FNAGetOFAC_Flag(@ofacRes)
|
|
|
|
UPDATE remitTranTemp SET
|
|
tranStatus = 'OFAC Hold'
|
|
WHERE id = @id
|
|
END
|
|
|
|
ELSE IF(@compFinalRes <> '' AND ISNULL(@ofacRes, '') = '')
|
|
BEGIN
|
|
UPDATE remitTranTemp SET
|
|
tranStatus = 'Compliance Hold'
|
|
WHERE id = @id
|
|
END
|
|
|
|
ELSE IF(ISNULL(@compFinalRes, '') <> '' AND ISNULL(@ofacRes, '') <> '')
|
|
BEGIN
|
|
INSERT remitTranOfac(TranId, blackListId, reason, flag)
|
|
SELECT @id, @ofacRes, @ofacReason, dbo.FNAGetOFAC_Flag(@ofacRes)
|
|
|
|
UPDATE remitTranTemp SET
|
|
tranStatus = 'OFAC/Compliance Hold'
|
|
WHERE id = @id
|
|
END
|
|
END
|
|
--Compliance checking
|
|
|
|
IF @payOutPartner = '2140' --## MTRADE
|
|
BEGIN
|
|
DECLARE @sederNationalityCode VARCHAR(3), @receiverNationalityCode varchar(3), @rBankCode varchar(20), @rBankBranchCode varchar(20), @pBankCode varchar(20), @pBankBranchCode varchar(20),
|
|
@pAgentCode varchar(10)
|
|
--****Data For TP(MTRADE)****----
|
|
SELECT @sederNationalityCode = countryCode ,@rdob = CM.dob
|
|
FROM countryMaster C(NOLOCK)
|
|
INNER JOIN customerMaster CM(NOLOCK) ON CM.nativeCountry = C.countryId
|
|
WHERE CM.customerId = @senderId
|
|
|
|
SELECT @receiverNationalityCode = countryCode FROM countryMaster (NOLOCK) WHERE countryId = @pCountryId
|
|
SELECT @rBankBranchCode = agentCode FROM agentmaster (NOLOCK) WHERE agentId = @pBankBranch
|
|
SELECT @rBankCode = agentCode, @pAgentCode = routingCode FROM agentmaster (NOLOCK) WHERE agentId = @pBank
|
|
|
|
SELECT sederNationalityCode = @sederNationalityCode
|
|
, sIdTypeCode = case @sIdType when 'Alien Registration Card' then '21'
|
|
when 'National ID' then '9' when 'Passport' then '2' end
|
|
,rIdTypeCode = ''--case @rIdType when 'National ID' then '1' else '3' end
|
|
,receiverNationalityCode = @receiverNationalityCode
|
|
,rBankCode = @rBankCode
|
|
,rBankBranchCode = @rBankBranchCode
|
|
,sourceOfFund = '2' --Monthly Income, so we can send our source of fund text.
|
|
,reasonOfRemittance = '1' --Family Maintenance
|
|
,senderOccoupation = '11'
|
|
,remitType = 'P2P'
|
|
,pAgentCode = @pAgentCode
|
|
,senderDob = FORMAT(@rdob,'yyyy-MM-dd')
|
|
,payoutMethod = CASE WHEN @deliveryMethodId = '2' THEN '1'
|
|
WHEN @deliveryMethodId = '1' THEN '2'
|
|
WHEN @pBank = '2135' AND @deliveryMethodId = '2' AND @pCountryId = '45' THEN '21'
|
|
END
|
|
|
|
END
|
|
ELSE IF @payOutPartner = '224388' --## TANGLO
|
|
BEGIN
|
|
|
|
SELECT TOP 1 @pBankCode = agentCode FROM agentMaster (NOLOCK) WHERE agentId = @pBank
|
|
SELECT TOP 1 @pBankBranchCode = agentCode FROM agentMaster (NOLOCK) WHERE agentId = @pBankBranch
|
|
|
|
SELECT @sCountry = countryCode
|
|
FROM countryMaster C(NOLOCK)
|
|
INNER JOIN customerMaster CM(NOLOCK) ON CM.nativeCountry = C.countryId
|
|
WHERE CM.customerId = @senderId
|
|
|
|
SELECT BankBranchName = @sederNationalityCode
|
|
, BankBranchCode = @pBankBranchCode
|
|
,bIdType = '1'
|
|
,sFundSource = '11'
|
|
,bIdNum = '000000'
|
|
,bIssuerCode = @pBankCode
|
|
,bPurposeCode = '10010'
|
|
,bCountry = (SELECT TOP 1 countryCode FROM countryMaster (NOLOCK) WHERE countryId = @pCountryId)
|
|
,bProvinceCode = @RLocation
|
|
,bRegencyCode = @RState
|
|
,Relationship = case when @relationship in ('Brother','Daughter','Father','Grand Father','Grand Mother','Mother','Sister','Son','Spouse') then '4'
|
|
when @relationship in ('Cousin','Aunt','Uncle') then '5' else '8'
|
|
end
|
|
,deliverMethod = case when @deliveryMethodId = '1' then '5'
|
|
when @deliveryMethodId = '2' then '1'
|
|
when @deliveryMethodId = '12' then '9'
|
|
when @deliveryMethodId = '13' then '2'
|
|
when @pCountry = 'China' then '8'
|
|
else '0' end
|
|
,sIdTypeCode = case @sIdType when 'Alien Registration Card' then '1'
|
|
when 'National ID' then '3' when 'Passport' then '2' END
|
|
,sCountry = @sCountry
|
|
|
|
END
|
|
ELSE IF @payOutPartner = '415207' --Xpress
|
|
BEGIN
|
|
DECLARE @bankCode VARCHAR(12),@receivingAgentCode VARCHAR(12),@beneMobCountryCode VARCHAR(5)
|
|
,@tAmtUSD MONEY,@payoutCcyCode VARCHAR(4)
|
|
,@accountAdditionalNo1 VARCHAR(12),@RecAddCountryCode VARCHAR(5)
|
|
|
|
SET @tAmtUSD = ROUND(@tAmt/(@sCurrCostRate + ISNULL(@sCurrHoMargin, 0)),2)
|
|
|
|
IF @pBank IS NOT NULL
|
|
BEGIN
|
|
SELECT TOP 1 @bankCode = BANKCODE,@receivingAgentCode = agentCode,@depositMode = routingcode FROM agentmaster (NOLOCK) WHERE agentId = @pBank
|
|
|
|
IF @pCountryId IN ('42') AND @deliveryMethodId ='2'
|
|
BEGIN
|
|
--SET @accountAdditionalNo1 = '001'
|
|
SELECT TOP 1 @accountAdditionalNo1 = '001' FROM dbo.agentMaster(NOLOCK) WHERE agentId = @pBank AND agentCode IN ('HNBBKLKAC001','HNBBKLKAC002')
|
|
END
|
|
ELSE IF @pCountryId IN ('206') AND @deliveryMethodId ='2' --## FOR SOUTH AFRICA BRANCH CODE HAVE TO PASS IN ADDITIONAL FIELD
|
|
BEGIN
|
|
SET @accountAdditionalNo1 = @depositMode
|
|
END
|
|
END
|
|
|
|
IF @pBankBranch IS NOT NULL
|
|
BEGIN
|
|
IF @pCountryId IN ('104','16')
|
|
BEGIN
|
|
SELECT @accountAdditionalNo1 = agentCode FROM dbo.agentMaster(NOLOCK) WHERE agentId = @pBankBranch
|
|
END
|
|
--ELSE IF @pCountryId IN ('42') AND @deliveryMethodId ='2'
|
|
--BEGIN
|
|
--SET @accountAdditionalNo1 = '001'
|
|
--SELECT @accountAdditionalNo1 = agentCode FROM dbo.agentMaster(NOLOCK) WHERE agentId = @pBankBranch
|
|
--END
|
|
END
|
|
|
|
SELECT @receiverAddCountryCode = CM.countryCode
|
|
FROM dbo.countryMaster CM(NOLOCK)
|
|
WHERE CM.countryName = @rNativeCountry
|
|
|
|
SELECT @beneMobCountryCode = CM.countryMobCode ,@receiverAddCountryCode = CASE WHEN @receiverAddCountryCode IS NULL THEN CM.countryCode ELSE @receiverAddCountryCode END
|
|
,@RecAddCountryCode = CM.countryCode
|
|
FROM dbo.countryMaster CM(NOLOCK)
|
|
WHERE CM.countryId = @pCountryId
|
|
|
|
SELECT deliveryMethod=CASE WHEN @deliveryMethodId ='1' THEN 'PS'
|
|
WHEN @deliveryMethodId ='2' THEN 'AC'
|
|
WHEN @deliveryMethodId ='12' THEN 'DS'
|
|
WHEN @deliveryMethodId ='13' THEN 'MW'
|
|
ELSE '0'
|
|
END
|
|
,sourceOfFund=CASE WHEN @sourceOfFund = 'Salary / Wages' THEN 'S01'
|
|
WHEN @sourceOfFund = 'Business' THEN 'S02'
|
|
WHEN @sourceOfFund = 'Savings or accumulated' THEN 'S03'
|
|
ELSE 'S01' END
|
|
,purposeOfTxn=CASE WHEN @purpose='Family maintenance' THEN 'P58'
|
|
WHEN @purpose='Salary / Commission' THEN 'P29'
|
|
ELSE 'P58'
|
|
|
|
END
|
|
,customerIdType = CASE @sIdType WHEN 'Alien Registration Card' THEN '146'
|
|
WHEN 'National ID' THEN '53'
|
|
WHEN 'Passport' THEN '3'
|
|
WHEN 'Driving License' THEN '5'
|
|
END
|
|
,bankCode = @bankCode
|
|
,beneficiaryRelationship = @relationship
|
|
,SenderIdIssueDate = FORMAT(@senderIdIssueDate,'dd-MM-yyyy')
|
|
,SenderIdExpiryDate = FORMAT(@senderIdExpiryDate,'dd-MM-yyyy')
|
|
,SenderBirthDate = FORMAT(@senderBirthDate,'dd-MM-yyyy')
|
|
,PayoutCcyCode = @payoutCcyCode
|
|
,ReceivingAgentCode = @receivingAgentCode
|
|
,RecMobCountryCode = @beneMobCountryCode
|
|
,RecAddCountryCode = @RecAddCountryCode
|
|
,BeneficiaryNationalityCode = @receiverAddCountryCode
|
|
,AccountAdditionalNo1 = RTRIM(@accountAdditionalNo1) --IFSC/branchcode/routing code needed for bank txn in India, bangladesh and srilanka for specific agentcode
|
|
,USDAmount = @tAmtUSD
|
|
,occupation = @occupation
|
|
END
|
|
|
|
ELSE IF @payOutPartner = '585119' --## Koronapay
|
|
BEGIN
|
|
DECLARE @senderFullName VARCHAR(100) ,@sCountryCode VARCHAR(3) ,@pCountryCode VARCHAR(3) ,@IdIssueDate DATETIME
|
|
,@idPlaceOfIssue VARCHAR(100) ,@idValidate DATETIME ,@senderBirthPlace VARCHAR(100) ,@senderIdNo VARCHAR(100)
|
|
,@senderMobile VARCHAR(100) ,@senderDob DATETIME ,@senderCountry VARCHAR(100) ,@senderCity VARCHAR(100)
|
|
,@senderAddress VARCHAR(100)
|
|
|
|
SELECT TOP 1 @senderFullName=CM.firstName
|
|
,@sederNationalityCode = c.isoAlpha3
|
|
,@senderBirthPlace=ISNULL(c.countryName,cm.city)
|
|
,@senderIdNo=cm.idNumber
|
|
,@IdIssueDate=cm.idIssueDate
|
|
,@idPlaceOfIssue=cm.placeOfIssue
|
|
,@idValidate=cm.idExpiryDate
|
|
,@senderMobile=CM.mobile
|
|
,@senderDob=CM.dob
|
|
,@senderCountry=C.countryName
|
|
,@senderCity=cm.city
|
|
,@senderAddress =cm.address
|
|
FROM countryMaster C(NOLOCK)
|
|
INNER JOIN customerMaster CM(NOLOCK) ON CM.nativeCountry = C.countryId
|
|
WHERE CM.customerId = @senderId
|
|
|
|
SELECT TOP 1 @pCountryCode = CM.isoAlpha3 FROM dbo.countryMaster CM(NOLOCK)WHERE CM.countryId = @pCountryId
|
|
|
|
|
|
SELECT toCountryISO = UPPER(@pCountryCode)--'RUS'--Destination country, format is ISO 3166-1 alpha-3 --required
|
|
,toCityID = CASE WHEN UPPER(@pCountryCode)='RUS' THEN 1
|
|
WHEN UPPER(@pCountryCode)='KGZ' THEN 175
|
|
WHEN UPPER(@pCountryCode)='KAZ' THEN 187351
|
|
WHEN UPPER(@pCountryCode)='UZB' THEN 189734
|
|
WHEN UPPER(@pCountryCode)='TJK' THEN 59552
|
|
WHEN UPPER(@pCountryCode)='TUR' THEN 10415591
|
|
ELSE 1
|
|
END -- all for testing we need to update in live deployment --required NEED TO GET FROM API PROVIDE BY KORONA
|
|
,payerIsResident = ''
|
|
,senderPersonlastName = (SELECT FSN.lastName1 FROM dbo.FNASplitName(@senderFullName) AS FSN)--ISNULL(Ts.lastName1,'')--LastName
|
|
,senderPersonfirstName = (SELECT FSN.firstName FROM dbo.FNASplitName(@senderFullName) AS FSN)--ISNULL(Ts.firstName,'')---firstName
|
|
,senderPersonmiddleOtherName = (SELECT FSN.middleName FROM dbo.FNASplitName(@senderFullName) AS FSN)--ISNULL(Ts.middleName,'')
|
|
,senderPersonpaperCredentialscType = CASE WHEN @sIdType='National ID' THEN 'FOREIGN' --code provide by koronapay
|
|
WHEN @sIdType='Passport' THEN 'OTHER'
|
|
ELSE 'OTHER' END
|
|
,senderPersonpaperCredentialscNumber = @senderIdNo--required
|
|
,senderPersonpaperCredentialsserialNumber = ''
|
|
,senderPersonpaperCredentialsissuer = ''
|
|
,senderPersonpaperCredentialsissueDate = FORMAT(@IdIssueDate,'yyyy-MM-dd')
|
|
,senderPersonpaperCredentialsissuerCode = ''
|
|
,senderPersonpaperCredentialsissueCity = ISNULL(@idPlaceOfIssue,'')
|
|
,senderPersonpaperCredentialsexpireDate = FORMAT(@idValidate,'yyyy-MM-dd')
|
|
,senderPersonphone = @senderMobile --required
|
|
,senderPersoncountryISO = ISNULL(@sederNationalityCode,'')
|
|
,senderPersonbirthDate = FORMAT(@senderDob,'yyyy-MM-dd') --required
|
|
,senderPersonbirthPlace = ISNULL(@senderBirthPlace,'')
|
|
,senderPersonregCountry = ISNULL(@senderCountry,'')
|
|
,senderPersonregCity = ISNULL(@senderCity,'')
|
|
,senderPersonregAddress = ISNULL(@senderAddress,'')
|
|
,senderPersontin = '' --Individual taxpayer identification number (ITIN)
|
|
,fundsamount = (floor(@pAmt) *100) --required
|
|
,fundscurrency = '840' --USD
|
|
END
|
|
|
|
-------START update used coupon status
|
|
--- À§¿¡¼ ¹ë¸®µ¥À̼ÇÀ» ÇÑ´Ù.
|
|
IF EXISTS(SELECT TOP 1 '1' FROM CouponIssue(NOLOCK) WHERE rowId = @schemeId AND isActive = 'Y')
|
|
BEGIN
|
|
|
|
UPDATE CouponIssue
|
|
SET usedCount = @CurrentCount +1
|
|
WHERE rowId = @schemeId
|
|
AND customerId = @senderId
|
|
AND GETDATE() BETWEEN startDate AND endDate AND isActive = 'Y'
|
|
|
|
-------Start insert Coupon History
|
|
INSERT INTO CouponHistory (couponIssueId,customerId,actualDiscountValue,usedCount,holdTranId,couponStatus,createdBy,createdDate)
|
|
VALUES (@schemeId,@senderId,@schemePremium,@CurrentCount + 1,@id,'1',@user, GETDATE())
|
|
-------End insert Coupon History
|
|
|
|
END
|
|
-------END update used coupon status
|
|
|
|
|
|
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION;
|
|
SElect 0 ErrorCode,'Transaction has been sent successfully' Msg, @id id, @controlNo extra,ROUND(@pAmt/@pCurrCostRate,2) extra2
|
|
|
|
RETURN
|
|
END
|
|
ELSE IF @flag = 'success'
|
|
BEGIN
|
|
declare @tpEncryptKey varchar(30)
|
|
IF @tpRefNo = 'C'
|
|
SET @tpRefNo = @tranId
|
|
|
|
select @controlNoEncrypted = dbo.FNAEncryptString(@controlNo),@tpEncryptKey = dbo.FNAEncryptString(@tpRefNo)
|
|
|
|
select @id = id,@payOutPartner = pAgent from remitTranTemp (nolock) where controlno = @controlNoEncrypted
|
|
|
|
IF @tpRefNo IS NULL
|
|
BEGIN
|
|
SELECT 0 ErrorCode,'Transaction has been sent successfully' Msg, @id id,@controlNo extra
|
|
RETURN
|
|
END
|
|
UPDATE remitTranTemp SET controlno = @tpEncryptKey WHERE id = @id
|
|
|
|
UPDATE exRateCalcHistory SET controlNo = @tpEncryptKey WHERE controlNo = @controlNoEncrypted
|
|
|
|
SELECT 0 ErrorCode,'Transaction has been sent successfully' Msg, @id id, @tpRefNo extra
|
|
|
|
EXEC [proc_ApproveHoldedTXN] @flag = 'approve', @id = @id,@user = 'admin'
|
|
|
|
SELECT @id = id from remitTran (nolock) WHERE controlno = @tpEncryptKey AND paystatus = 'UNPAID'
|
|
|
|
IF @payOutPartner IN('2129','415208','393866','585120') --##Merchantrade/xPRESSMONEY/RIA/Koronapay
|
|
BEGIN
|
|
update remitTran set
|
|
controlno = @tpEncryptKey
|
|
,controlNo2 = @controlNoEncrypted
|
|
,ContNo = @tpTranId
|
|
,sharingValue = pcurrCostRate
|
|
,pcurrCostRate = CASE WHEN pcurrCostRate IS NULL THEN @tpExRate ELSE pcurrCostRate END
|
|
,payStatus = 'Post'
|
|
,postedBy = 'system'
|
|
,postedDate = getdate()
|
|
WHERE id = @id AND paystatus = 'UNPAID'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE remitTran SET
|
|
controlno = @tpEncryptKey
|
|
,controlNo2 = @controlNoEncrypted
|
|
,ContNo = @tpTranId
|
|
,sharingValue = pcurrCostRate
|
|
,pcurrCostRate = CASE WHEN pcurrCostRate IS NULL THEN @tpExRate ELSE pcurrCostRate END
|
|
WHERE id = @id AND paystatus = 'UNPAID'
|
|
END
|
|
----## map locked ex rate with transaction for history
|
|
SELECT 0 ErrorCode,'Transaction has been sent successfully' Msg, @id id, @tpRefNo extra
|
|
END
|
|
ELSE IF @flag = 'revertTxn'
|
|
BEGIN
|
|
SELECT TOP 1 @id = id from remitTranTemp(nolock) where controlno = dbo.FNAEncryptString(@controlNo)
|
|
EXEC proc_ApproveHoldedTXN @flag = 'reject', @user =@user , @id =@id
|
|
END
|
|
IF @flag = 'pagentMtrade'
|
|
BEGIN
|
|
IF @tpAgentId IS NULL AND @pCountry IS NOT NULL
|
|
BEGIN
|
|
--IF NOT EXISTS (select 'A' from countryReceivingMode cm
|
|
--inner join countryMaster c (nolock) on c.countryId = cm.countryId
|
|
--where c.countryName = @pCountry and receivingMode = @deliveryMethodId)
|
|
--BEGIN
|
|
-- select @deliveryMethodId = CM.receivingMode from countryReceivingMode cm
|
|
-- inner join countryMaster c (nolock) on c.countryId = cm.countryId
|
|
-- where c.countryName = @pCountry
|
|
--END
|
|
SELECT TOP 1 routingCode FROM agentMaster (NOLOCK) WHERE agentCountry = @pCountry AND agentRole = @deliveryMethodId and parentId = 2140
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT TOP 1 routingCode FROM agentMaster (nolock) where agentId = @tpAgentId
|
|
END
|
|
END
|
|
IF @flag='getRxAgentCode_XM'
|
|
BEGIN
|
|
IF @tpAgentId IS NULL
|
|
BEGIN
|
|
SELECT TOP 1 agentCode FROM agentMaster (NOLOCK)
|
|
WHERE agentCountryId = @pCountryId AND parentId = @payOutPartner AND agentType = '2903' AND isActive = 'Y'
|
|
AND agentRole = @deliveryMethodId
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT TOP 1 agentCode FROM agentMaster (NOLOCK)
|
|
WHERE agentCountryId = @pCountry AND parentId = @payOutPartner AND agentType = '2903' AND isActive = 'Y'
|
|
AND agentId = @tpAgentId AND agentRole = @deliveryMethodId
|
|
END
|
|
END
|
|
END
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT<>0
|
|
ROLLBACK TRANSACTION
|
|
DECLARE @errorMessage VARCHAR(MAX)
|
|
SET @errorMessage = ERROR_MESSAGE()
|
|
EXEC proc_errorHandler 1, @errorMessage, @user
|
|
END CATCH
|
|
GO
|